YCrCb
YCrCb在視頻壓縮和一些數字圖像處理中使用得比較多,是一種基於人眼感知的顏色空間。
在OpenCV中,從RGB空間轉換到YCrCb空間的公式如下:
注意從RGB到YcrCb的公式並不是唯一的,這里OpenCV只是采用的是Intel IPP中的公式而已。
其中的delta的取值為:
這里我們以RGB三通道都為8bit來舉例說明,即delta取128。通過上面的公式推導,可以求出Y的取值范圍為(0, 255),Cr的取值范圍為(0.54768, 255.452315),Cb的取值范圍為(0.57548, 255.42452)。因此我們有很大的理由近似認為Y,Cr,Cb的取值范圍都近似為(0, 255)。
從上面的公式可以看出,如果圖像是全黑的,即R=G=B=0,則可以算出Y=0,Cr=Cb=128,特別要注意的是此時的Cr,Cb並不為0。
YCrCb的示意圖如下:
其中圖一是RGB原圖,圖二是Y分量使用RGB模型顯示出來的圖,圖三和圖四分別是Cb和Cr部分對應的圖。
HSV
HSV顏色空間是描述比RGB更准確的顏色感知顏色聯系,並在計算上更簡單。
從RGB顏色空間轉換到HSV顏色空間在OpenCV中是如下實現的:
其中的RGB圖像不管是8位的,還是16位的,首先需要將其統統轉換成浮點型的,即其值在0~1之間。因此轉換后的V和S也屬於0~1,H屬於0~360度。
HSV的示意圖如下: