歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux + Matlab2009b彩色圖像變換成灰度圖像實現

Linux + Matlab2009b彩色圖像變換成灰度圖像實現

日期:2017/2/28 15:50:37   编辑:Linux教程
=摘要=
這個學期有圖像處理課程...這類課程少不了要做實驗,交實驗作品...今天在完裝完成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代碼:
{{{[直接復制/粘貼]
  1. clear
  2. close all
  3. img=imread('~/Desktop/sky.png'); %加載圖像RBG三維矩陣.
  4. figure;
  5. imshow(img); %顯示處理前圖像(真彩);
  6. I = ( (img(:,:,1)+img(:,:,2)+img(:,:,3) ) )/3; %得到每一個RGB像素對應的分量I.(RGB轉HSI模型的計算公式)
  7. gray(:,:,1)=I; %各分量賦值I
  8. gray(:,:,2)=I; %各分量賦值I
  9. gray(:,:,3)=I; %各分量賦值I
  10. figure;
  11. imshow(gray); %顯示處理後的圖像(灰度);
}}}
Copyright © Linux教程網 All Rights Reserved