MyYuanLaiPic = imread('e:/image/matlab/Cluo.jpg');%讀取RGB格式的圖像 MyFirstGrayPic = rgb2gray(MyYuanLaiPic);%用已有的函數進行RGB到灰度圖像的轉換 [rows , cols , colors] = size(MyYuanLaiPic);%得到原來圖像的矩陣的參數 MidGrayPic = zeros(rows , cols);%用得到的參數創建一個全零的矩陣,這個矩陣用來存儲用下面的方法產生的灰度圖像 MidGrayPic = uint8(MidGrayPic);%將創建的全零矩陣轉化為uint8格式,因為用上面的語句創建之后圖像是double型的 for i = 1:rows for j = 1:cols sum = 0; for k = 1:colors sum = sum + MyYuanLaiPic(i , j , k) / 3;%進行轉化的關鍵公式,sum每次都因為后面的數字而不能超過255 end MidGrayPic(i , j) = sum; end end imwrite(MidGrayPic , 'E:/image/matlab/Cluo.png' , 'png'); %顯示原來的RGB圖像 figure(1); imshow(MyYuanLaiPic); %顯示經過系統函數運算過的灰度圖像 figure(2); imshow(MyFirstGrayPic); %顯示轉化之后的灰度圖像 figure(3); imshow(MidGrayPic);