1. 程式人生 > 實用技巧 >MATLAB影象處理 (一)

MATLAB影象處理 (一)

最近在做關於計算機視覺影象處理的相關東西。總結一下知識點。

首先關於影象的知識,影象可以分為黑白照片或者彩色照片。每幅照片都是由一個個畫素點構成。如果是彩色影象,則每幅圖片可以分為RGB三通道分別表示。由於現在我們處理的幾乎全是彩色影象,所以我們主要考慮彩色影象,暫不討論黑白影象。我們拿下面這幅影象為例。順便看看這個影象的屬性。

一、讀取檔案提取RGB三通道

MATLAB讀取檔案可以分為讀取圖片和視訊。我們這裡是讀取圖片,等到讀取視訊的時候再總結視訊。

讀取圖片檔案使用imread(),裡面填的是圖片的名稱或者是圖片的地址。

 1 %讀取圖片
 2 image = imread('1.jpg');
3 figure; 4 subplot(2,2,1) 5 imshow(image); 6 title('原始影象'); 7 %提取圖片的RGB三通道 8 image_double = double(image); 9 R = image_double(:,:,1); 10 G = image_double(:,:,2); 11 B = image_double(:,:,3); 12 %分別顯示RGB三通道的圖片資訊 13 subplot(2,2,2); 14 imshow(uint8(R)); 15 title('紅色通道'); 16 subplot(2,2,3); 17 imshow(uint8(G));
18 title('綠色通道'); 19 subplot(2,2,4); 20 imshow(uint8(B)); 21 title('藍色通道');
View Code

這裡直接使用一行程式碼就可以讀取圖片資訊了。

可以在工作區看到原始影象image的資訊。427*640*3,分別表示畫素為高*寬為427*640,與影象資訊相符合。3表示圖片為RGB彩色圖片。紅綠藍。原始圖片的型別是uint8,所以將三個通道資訊提取出來後為double型別,然後生成影象時在使用uint8格式轉換。

二、RGB三通道合成原始影象

現在我們獲得了RGB三個成分分量,現在我們將三個分量在合成為原始影象。

1 %RGb合成原始影象
2 mix(:,:,1) = R; 3 mix(:,:,2) = G; 4 mix(:,:,3) = B; 5 figure ; 6 imshow(uint8(mix)); 7 title('合成影象');
View Code

全部程式碼如下:

 1 %讀取圖片
 2 image = imread('1.jpg');
 3 figure;
 4 subplot(2,2,1)
 5 imshow(image);
 6 title('原始影象');
 7  %提取圖片的RGB三通道
 8 image_double = double(image);
 9 R = image_double(:,:,1);
10 G = image_double(:,:,2);
11 B = image_double(:,:,3);
12 %分別顯示RGB三通道的圖片資訊
13 subplot(2,2,2);
14 imshow(uint8(R));
15 title('紅色通道');
16 subplot(2,2,3);
17 imshow(uint8(G));
18 title('綠色通道');
19 subplot(2,2,4);
20 imshow(uint8(B));
21 title('藍色通道');
22 
23 %RGb合成原始影象
24 mix(:,:,1) = R;
25 mix(:,:,2) = G;
26 mix(:,:,3) = B;
27 figure ;
28 imshow(uint8(mix));
29 title('合成影象');
View Code