2016-04-04 15 views
-2

Ich versuche, ein RGB-Bild in HSV-Farbraum zu konvertieren und den HSV-Wert eines Pixels zu erhalten. Aber das Ergebnis ist ein wenig seltsam, soweit ich weiß, der Bereich von H ist zwischen 0 und 360, S und V ist zwischen 0 bis 255, aber das Ergebnis, das ich habe, ist 0 ~ 255 für alle HSV-Wert . Ich bezweifle, dass OpenCV die Transformation gemacht hat, ist das richtig? Bitte hilf mir.Das Ergebnis der Funktion "cvtColor" von OpenCV

+1

See [diese Frage] (http://stackoverflow.com/questions/10948589/choosing-correct-hsv-values -for-opencv-thresholding-mit-in-Bereichen). Die H-Range in opencv ist nicht das, was du denkst. –

+0

Vielen Dank !!! – Bing

Antwort

0

Wenn Sie mit der RGB-HSV Umwandlung sind bekannt machen, OpenCV verwendet die folgenden Formeln B zu konvertieren, G, R-Wert, (0 ~ 255) bis H, S, V:

V = Max (B, G, R)

S = 255 * [1-min (B, G, R)/max (B, G, R)]

sei d = max (B, G, R) -min (B, G, R)

H = 30 * [((GB)/d)% 6], wenn V = R

= 30 * [((BR)/d) +2] wenn V = G

= 30 * [((RG)/d) 4], wenn V = B