2013-05-22 16 views
14

Czy ktoś może mi wyjaśnić, dlaczego wartość barwy obrazu HSV w OpenCV idzie tylko do 180 °, a nie do pełnego 360 °?Dlaczego zakres od 0-180 ° w opencv

Znalazłem gdzieś, że OpenCV używa cylindra 180 °, ale tak naprawdę nie mogę sobie wyobrazić takiego cylindra.

Z góry dziękuję!
J

Odpowiedz

6

W cv::cvtColordocumentation dla RGB<->HSV konwersji jest wyraźnie powiedziane, że H kłamstwa w [0; 360] zakresie. Jeśli wystąpi inne zachowanie, powinieneś report a bug.

+11

Tęskniłem za tą częścią dokumentacji, dziękuję. Mój obraz jest obrazem 8-bitowym, więc zgodnie z dokumentacją 'Dla obrazów 8-bitowych: H <- H/2 (dla dopasowania od 0 do 255)'. – JasperV

21

spróbować umieścić 360 do uchar;)

tak, to po prostu podzielić przez 2, aby zmieścić ..

+0

Nie zadałeś sobie trudu, aby przeczytać jeszcze dwa akapity dokumentacji, prawda? :) – Mikhail

+2

hmm? co masz na myśli ? może należy dodać, że jest on podzielony tylko na 2 w przypadku 8bit? – berak

+0

Nie wyraziłem poprawnie mojej myśli. Chodzi mi o to, że sprawdziłeś tę samą dokumentację co ja, ale przeczytałem jeszcze dwa akapity i dowiedziałem się o rzeczy, która wyjaśnia problem. Chodzi mi o to, że pierwotne pytanie brzmi trochę nowicjuszowo i wysłanie odpowiedzi zajęło tylko kilka sekund. – Mikhail

6

zakresach że OpenCV zarządzania dla formatu HSV są następujące:

Dla HSV, zakres Hue [0179], zakres Nasycenie [0255] Zakres wartości i to [0255]. Różne oprogramowanie używa różnych skal. Więc jeśli porównujesz wartości OpenCV z nimi, musisz znormalizować te zakresy.

Oto link do dokumentacji OpenCV, która wyjaśnia to.

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

+0

Link nie działa. –

+0

Link zaktualizowano do http://docs.opencv.org/3.2.0/df/d9d/tutorial_py_colorspaces.html – igaurav