2014-05-01 9 views
6

Sto provando a disegnare linee di sfumatura su un'immagine. Voglio che le mie linee siano di colore verde e io uso Scalare (0,255,0). Comunque, sto diventando solo di colore nero. Anche per Scalar (0,0,0) sto diventando nero. Per Scalare (255,255,255) ottengo bianco, ma nessun altro colore per nessuna combinazione. Parte del codice è il seguente:Scalare (0,255,0) non fornisce una linea di colore verde in opencv

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

controllo della type() di visual_image. se è 0 (grigio), non 16 (rgb) non puoi disegnare i colori in esso. – berak

+0

fantastico! ciò ha senso. Grazie. Quindi non c'è modo di disegnare linee colorate su un'immagine grigia? –

risposta

11

dal momento che non può disegnare linee, cerchi, ecc colorato in un'immagine in scala di grigi, è necessario convertirlo in 3 canali prime:

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

Grazie! Funziona. –

Problemi correlati