Byłem zaskoczony, gdy nie mogłem znaleźć niczego w dokumentacji OpenCV, opisując - słowami - to, co oznaczają różne typy, a Googling też nie pomógł. Wiem, że CV_8UC1 ma skalę szarości, ale co oznacza CV_8UC3? Czy to RGB? Lub YUV?Co CV_8UC3 i inne typy oznaczają w OpenCV?
Co dalej z innymi definicjami z types_c.h
(brak też komentarzy). Czy istnieje wzorzec tego, czym jest konwencja nazewnictwa? Czy potrafię interpretować ich imiona na podstawie ich cech, takich jak kolory itp.?
#define CV_8UC1 CV_MAKETYPE(CV_8U,1)
#define CV_8UC2 CV_MAKETYPE(CV_8U,2)
#define CV_8UC3 CV_MAKETYPE(CV_8U,3)
#define CV_8UC4 CV_MAKETYPE(CV_8U,4)
#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))
#define CV_8SC1 CV_MAKETYPE(CV_8S,1)
#define CV_8SC2 CV_MAKETYPE(CV_8S,2)
#define CV_8SC3 CV_MAKETYPE(CV_8S,3)
#define CV_8SC4 CV_MAKETYPE(CV_8S,4)
#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))
#define CV_16UC1 CV_MAKETYPE(CV_16U,1)
#define CV_16UC2 CV_MAKETYPE(CV_16U,2)
#define CV_16UC3 CV_MAKETYPE(CV_16U,3)
#define CV_16UC4 CV_MAKETYPE(CV_16U,4)
#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))
#define CV_16SC1 CV_MAKETYPE(CV_16S,1)
#define CV_16SC2 CV_MAKETYPE(CV_16S,2)
#define CV_16SC3 CV_MAKETYPE(CV_16S,3)
#define CV_16SC4 CV_MAKETYPE(CV_16S,4)
#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))
#define CV_32SC1 CV_MAKETYPE(CV_32S,1)
#define CV_32SC2 CV_MAKETYPE(CV_32S,2)
#define CV_32SC3 CV_MAKETYPE(CV_32S,3)
#define CV_32SC4 CV_MAKETYPE(CV_32S,4)
#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))
#define CV_32FC1 CV_MAKETYPE(CV_32F,1)
#define CV_32FC2 CV_MAKETYPE(CV_32F,2)
#define CV_32FC3 CV_MAKETYPE(CV_32F,3)
#define CV_32FC4 CV_MAKETYPE(CV_32F,4)
#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))
#define CV_64FC1 CV_MAKETYPE(CV_64F,1)
#define CV_64FC2 CV_MAKETYPE(CV_64F,2)
#define CV_64FC3 CV_MAKETYPE(CV_64F,3)
#define CV_64FC4 CV_MAKETYPE(CV_64F,4)
#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))
"To nie upoważnia" - ale zakładam, że funkcje takie jak "cv :: imread" wypełnią je wartościami RGB? – sashoalm
To zależy od flag przekazanych do 'imread'. Ale jeśli przekażemy 'CV_LOAD_IMAGE_COLOR', to wyjście powinno zawsze być BGR, które jest formatem kolorów zwykle używanym przez OpenCV. –
Co mam na myśli w moim poście, to, że matryca/obraz ma typ 'CV_8UC3' nie musi oznaczać, że jest BGR. Równie dobrze może to być HSV, albo coś, co w ogóle nie jest informacją o kolorze. –