2013-05-22 12 views
14

Kann mir jemand erklären, warum der Farbtonwert eines HSV-Bildes in OpenCV nur auf 180 ° und nicht auf volle 360 ​​° geht?Warum ist der Farbtonbereich 0-180 ° in opencv?

Ich habe irgendwo gefunden, dass OpenCV einen 180 ° Zylinder verwendet, aber ich kann einen solchen Zylinder nicht wirklich visualisieren.

Vielen Dank im Voraus!
J

Antwort

6

Im cv::cvtColordocumentation für RGB<->HSV Umwandlung ist es klar gesagt, dass H liegt in [0; 360] Bereich. Wenn Sie das unterschiedliche Verhalten erfahren, sollten Sie report a bug.

+11

Ich habe diesen Teil der Dokumentation verpasst, danke. Mein Bild ist ein 8-Bit-Bild entsprechend der Dokumentation 'Für 8-Bit-Bilder: H <- H/2 (passend für 0 bis 255)'. – JasperV

21

Versuch 360 in eine uchar zu setzen;)

so, wird es durch 2 geteilt, nur um es fit zu machen ..

+0

Sie haben sich nicht die Mühe gemacht zwei weitere Absätze der Dokumentation zu lesen, oder? :) – Mikhail

+2

hmm? Was meinen Sie ? vielleicht sollte hinzugefügt werden, dass es im 8-Bit-Fall nur durch 2 geteilt wird? – berak

+0

Ich habe meinen Gedanken nicht richtig ausgedrückt. Ich meinte, Sie haben die gleiche Dokumentation wie ich überprüft, aber lesen Sie zwei Absätze mehr und fand die eigentliche Sache, die das Problem erklärt. Mein Punkt war, dass die ursprüngliche Frage ein bisschen Neuling ist und es nur ein paar Sekunden dauerte, um eine Antwort zu posten. – Mikhail

6

Das reicht, dass OpenCV verwalten für HSV-Format sind die folgenden:

Für HSV ist Hue Bereich [0179], Sättigung Bereich [0255] und Wertebereich ist [0255]. Verschiedene Software verwenden unterschiedliche Maßstäbe. Wenn Sie also OpenCV-Werte mit ihnen vergleichen, müssen Sie diese Bereiche normalisieren.

Hier ist der Link zur OpenCV-Dokumentation, der es erklärt.

http://docs.opencv.org/3.2.0/df/d9d/tutorial_py_colorspaces.html

+0

Link funktioniert nicht. –

+0

Link aktualisiert auf http://docs.opencv.org/3.2.0/df/d9d/tutorial_py_colorspaces.html – igaurav