Guten Tag!OpenCV Recolorization
Ich kann nicht scheinen, die richtigen Bedingungen für das zu finden, was ich in OpenCV getan habe. Hier ist die Situation:
Ich habe ein Graustufenbild und Farbe (BGR).
Ich möchte die Farbe auf das Graustufenbild anwenden, aber die Luma beibehalten und danach speichern.
Mein ursprünglicher Denkprozess war:
- Konvertieren BGR Farbe
- Luv L Ersetzen von Graustufenbild
- Endbild BGR Konvertieren und
Dies retten ist, was ich Bisher getan:
cv::Mat pixelColor(1, 1, CV_8UC3, cv::Scalar(0));
pixelColor.at<cv::Vec3b>(1, 1) = cv::Vec3b(128, 255, 0); // currently hard-coded but it actually comes from another source
cv::cvtColor(pixelColor, pixelColor, CV_BGR2Luv);
pixelColor.at<cv::Vec3b>(1, 1)[0] = image.at<unsigned char>(y, x);
cv::cvtColor(pixelColor, pixelColor, CV_Luv2BGR);
I iteriert über alle y und x meines Graustufenbildes. Die tatsächliche Farbe kommt woanders hin, aber es ist garantiert BGR.
Meine Fragen sind: (1) Was ist der richtige Ausdruck für diesen Prozess? (2) Wo gehe ich falsch?
Wie funktioniert das/funktioniert nicht? '(2)' fragt ', wo ich falsch liege ", aber Sie versäumen es, anzugeben, welche Fehler Sie empfangen. –
nicht Fehler, eher nicht das gesamte Farbspektrum ist richtig platziert. Mein spezieller Fall, ich färbt ein Graustufenbild mit 3 Farben Das Kriterium für die Kolorierung ergibt sich aus einem Wahrscheinlichkeitsmaßfeld, das ich bereits berechnet habe: je nach Farbraum sind nur 2 der 3 Farben richtig platziert, manchmal gehen die Details verloren, ich weiß nicht was Ich vermisse das. –