Farbe ein Graustufenbild mit opencv

ich bin mit openNI für ein Projekt mit kinect-sensor. ich möchte die Farbe der Benutzer Pixel gegeben, mit der Tiefe gekennzeichnet. jetzt habe ich Pixel das geht von weiß zu schwarz, aber ich will von rot auf schwarz. ich habe versucht mit alpha-blending, aber mein Ergebnis ist nur, dass ich die Pixel pink zu schwarz, da ich (mit addWeight) rot+weiß = rosa.

dies ist meine aktuelle code:

layers = device.getDepth().clone();
cvtColor(layers, layers, CV_GRAY2BGR);

Mat red = Mat(240,320, CV_8UC3, Scalar(255,0,0));
Mat red_body; //= Mat::zeros(240,320, CV_8UC3);
red.copyTo(red_body, device.getUserMask());

addWeighted(red_body, 0.8, layers, 0.5, 0.0, layers);

wobei das Gerät.getDepth() gibt eine cv::Mat mit der Tiefe von Karte und Gerät.getUserMask() gibt eine cv::Mat mit user Pixel (nur weiße Pixel)

einige Ratschläge?

BEARBEITEN:
eine weitere Sache:
Dank sammy Antwort ich es getan habe. aber eigentlich habe ich nicht Werte genau von 0 bis 255, sondern von (zum Beispiel) 123-220.

werde ich minimum und maximum finden, die über eine einfache for-Schleife (gibt es bessere Wege?), und wie kann ich anzeigen meine Werte von min-max 0-255 ?

  • Haben Sie -Auswahl aufheben - Sammy ' s Antwort?? Es war eine sehr nette Antwort. Ich hatte nicht verstanden, wie Sie wollte Kolorieren Sie Ihre Graustufen-Bild. Mul ist eine schöne Lösung. Ich denke, es ist sehr unhöflich, um fügen Sie einen anderen Teil Ihrer Frage, der un-wählen Sie die zuvor richtige Antwort, und mehr warten. Nicht zu erwähnen, dass max-min " und " Skalierung sind leicht nach oben in den Referenzen.
InformationsquelleAutor nkint | 2012-05-21
Schreibe einen Kommentar