具體的數學公式參照岡薩雷斯版《數字影象處理(第三版)》432-434頁,中譯版的260-261頁。
下面貼**:
1 #include "測試影象為彩色lena圖,執行結果如下:opencv_libs.h
"2 #include 3 #include 4 #include 56/*
7* 描述:實現rgb顏色模型到hsi顏色模型之間的相互轉換89
10*/
1112
//將hsi顏色空間的三個分量組合起來,便於顯示
13 iplimage* cathsimage(cvmat* hsi_h, cvmat* hsi_s, cvmat*hsi_i)
1430}31
32return
hsi_image;33}
3435
//將hsi顏色模型的資料轉換為rgb顏色模型的影象
36 iplimage* hsi2rgbimage(cvmat* hsi_h, cvmat* hsi_s, cvmat*hsi_i)
3762
//gb扇區
63else
if(dh < 240 && dh >= 120)64
74//
br扇區
75else
7686
87 ib = dtempb * 255
;88 ig = dtempg * 255
;89 ir = dtempr * 255;90
91cvset2d( rgb_image, i, j, cvscalar( ib, ig, ir ) );92}
93}9495
return
rgb_image;96}
9798
99int
main()
100151
else
152155
}156
else
157160
161//
賦值162
cvmset( hsi_h, i, j, fhue );
163cvmset( hsi_s, i, j, fsaturation);
164cvmset( hsi_i, i, j, fintensity );
165}
166}
167168 iplimage* hsi_image =cathsimage( hsi_h, hsi_s, hsi_i );
169 iplimage* rgb_image =hsi2rgbimage( hsi_h, hsi_s, hsi_i );
170171 cvshowimage("
img"
, img);
172 cvshowimage("
hsi color model
", hsi_image);
173 cvshowimage("
rgb color model
", rgb_image);
174175 cvwaitkey(0
);176
177 cvreleaseimage( &img );
178 cvreleaseimage( &hsi_image );
179 cvreleaseimage( &rgb_image );
180 cvreleasemat( &hsi_h);
181 cvreleasemat( &hsi_s);
182 cvreleasemat( &hsi_i);
183184
cvdestroyallwindows();
185186
return0;
187 }
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,...
RGB和HSV顏色空間
rgb顏色空間 rgb red,green,blue 顏色空間最常用的用途就是顯示器系統,彩色陰極射線管,彩色光柵圖形的顯示器都使用r g b數值來驅動r g b電子槍發射電子,並分別激發螢光屏上的r g b三種顏色的螢光粉發出不同亮度的光線,並通過相加混合產生各種顏色 掃瞄器也是通過吸收原稿經反射...
RGB顏色空間轉換為HSV空間顏色值
void rgb2hsv float r,float g,float b,float h,float s,float v if r max h g b delta between yellow magenta else if g max h 2 b r delta between cyan yell...