2014-05-01 13 views
6

Ich versuche, Farbverlaufslinien auf ein Bild zu zeichnen. Ich möchte, dass meine Linien grün gefärbt sind und ich Scalar (0,255,0) verwende. Trotzdem, ich bekomme nur schwarze Farbe. Für Scalar (0,0,0) werde ich auch schwarz. Für Scalar (255,255,255) bekomme ich Weiß, aber keine andere Farbe für irgendeine Kombination. Ein Teil des Codes ist unten angegeben:Skalar (0,255,0) gibt keine grüne Linie in opencv

line(visual_image, 
    Point(x1*scaleFactor, y1*scaleFactor), 
    Point(x2*scaleFactor, y2*scaleFactor), 
    Scalar(0,255,0), 
    1,8,0); 
+2

Kontrolle der type() von visual_image. Wenn es 0 (grau), nicht 16 (RGB) ist, können Sie keine Farben darin zeichnen. – berak

+0

großartig! Das macht Sinn. Vielen Dank. Kann ich also keine farbigen Linien auf einem grauen Bild zeichnen? –

Antwort

11

, da Sie nicht Linien gefärbt zeichnen können, Kreise, etc. in ein Graustufenbild, müssen Sie es zunächst auf 3 Kanäle konvertieren:

Mat rgb; 
cvtColor(visual_image, rgb, CV_GRAY2BGR); 
// now draw your lines: 
line(rgb, 
    Point(x1*scaleFactor, y1*scaleFactor), 
    Point(x2*scaleFactor, y2*scaleFactor), 
    Scalar(0,255,0), 
    1,8,0); 
+0

Danke! Es klappt. –

Verwandte Themen