基於rgb顏色空間的簡單閾值膚色識別
在human skin color clustering for face detection一文中提出如下簡單的判別算式:
r>95 and g>40 and b>20 and r>g and r>b and max(r,g,b)-min(r,g,b)>15 and abs(r-g)>15
演算法非常之簡單,同樣主要把複雜的判斷條件放到後面去判斷,能有效的降低程式的執行時間。
int detectface(image_type *bmp_img,dword width,dword height)
memset(&bf, 0, sizeof(bf));
memset(&bi, 0, sizeof(bi));
bf.bftype = (word)0x4d42;
//8位影象資料每行位元組數為4的倍數
linebyte = (width * newbibitcount / 8 + 3) / 4 * 4;
colortablesize = 1024;
bf.bfsize = sizeof(bitmapfileheader)+sizeof(bitmapinfoheader)+colortablesize+linebyte*height;//影象資料加上調色盤資訊和前兩部分bmp檔案資訊
bf.bfreserved1 = 0;
bf.bfreserved2 = 0;
bf.bfoffbits = sizeof(bitmapfileheader)+sizeof(bitmapinfoheader)+colortablesize;//注意此offset是bmp前三部分資料,也就是真正影象資料的前面幾部分之和
bi.bisize = 40;
bi.biheight = height;
bi.biwidth = width;
bi.biplanes = 1;
bi.bicompression = 0;
bi.bibitcount = newbibitcount;//每乙個畫素由8 bits表示
有很多誤判的區域,還是不夠準確!
膚色檢測演算法 - 基於不同顏色空間簡單區域劃分的**檢測演算法
RGB和HSV顏色空間
rgb顏色空間 rgb red,green,blue 顏色空間最常用的用途就是顯示器系統,彩色陰極射線管,彩色光柵圖形的顯示器都使用r g b數值來驅動r g b電子槍發射電子,並分別激發螢光屏上的r g b三種顏色的螢光粉發出不同亮度的光線,並通過相加混合產生各種顏色 掃瞄器也是通過吸收原稿經反射...
RGB顏色空間轉LAB
第一 lab顏色空間簡介 lab是由乙個亮度通道 channel 和兩個顏色通道組成的。在lab顏色空間中,每個顏色用l a b三個數字表示,各個分量的含義是這樣的 第二 為什麼使用lab顏色空間 因為它是一種裝置無關的顏色系統,也是一種基於生理特徵的顏色系統。它所描述的顏色空間就是人眼的視覺感應。...
RGB轉HSI顏色空間
顯示原圖 def rgb2hsi rgb img row np.shape rgb img 0 col np.shape rgb img 1 對原始影象進行複製 hsi img rgb img.copy 對影象進行通道拆分 b,g,r cv2.split rgb img 把通道歸一化到 0,1 b,...