=摘要=
這個學期有圖像處理課程...這類課程少不了要做實驗,交實驗作品...今天在完裝完成matlab(linux) 後http://www.linuxidc.com/Linux/2012-05/61227.htm 便開始了一個小小的實驗...
這個實驗就是<彩色圖變換成灰級圖>..這個記錄就是介紹怎麼實現的.(基於matlab);
=實驗結果=
原彩色圖:
變換後的灰級圖:
=原理=
彩圖之所以是彩色的,是因為其位圖信息中一個像素是由RBG三個分量組成的....
當一個像素的R,G,B三個分量的值是一樣時,此時像素的色是灰級的(這一點在RBG立體圖中可以看出)....
一般彩圖是RGB模式的,而HSI模式中的I是代表一種色的亮度...包含了灰度信息...這個就是基於RGB到HSI模式的彩圖到灰級圖的轉換原理.
只需要從R,G,B分量中計算出對應的I分量,...然後把R,G,B分量都賦值I...這樣就得到此圖的灰度圖像了.
RGB轉HSI模式可以參考其他資料...這裡給出RGB分量得到I分量的公式:
I = ( R + G + B )/3;I是向下取整的.
=實現=
實現過程: 使用matlab加載一幅png圖像(彩色的) ,
得到此圖的RGB數據.. 行*列*3字節大小
使用矩陣運算...最後得到R,G,B分量都是對應的I分量就OK了..
顯示處理前/處理後的圖片,的確得到了一灰級圖像.
matlab代碼:
{{{[直接復制/粘貼]
- clear
- close all
- img=imread('~/Desktop/sky.png'); %加載圖像RBG三維矩陣.
- figure;
- imshow(img); %顯示處理前圖像(真彩);
- I = ( (img(:,:,1)+img(:,:,2)+img(:,:,3) ) )/3; %得到每一個RGB像素對應的分量I.(RGB轉HSI模型的計算公式)
-
-
- gray(:,:,1)=I; %各分量賦值I
- gray(:,:,2)=I; %各分量賦值I
- gray(:,:,3)=I; %各分量賦值I
-
-
- figure;
- imshow(gray); %顯示處理後的圖像(灰度);
}}}