MATLAB影象處理 (一)
阿新 • • 發佈:2020-09-19
最近在做關於計算機視覺影象處理的相關東西。總結一下知識點。
首先關於影象的知識,影象可以分為黑白照片或者彩色照片。每幅照片都是由一個個畫素點構成。如果是彩色影象,則每幅圖片可以分為RGB三通道分別表示。由於現在我們處理的幾乎全是彩色影象,所以我們主要考慮彩色影象,暫不討論黑白影象。我們拿下面這幅影象為例。順便看看這個影象的屬性。
一、讀取檔案提取RGB三通道
MATLAB讀取檔案可以分為讀取圖片和視訊。我們這裡是讀取圖片,等到讀取視訊的時候再總結視訊。
讀取圖片檔案使用imread(),裡面填的是圖片的名稱或者是圖片的地址。
1 %讀取圖片 2 image = imread('1.jpg');View Code3 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('藍色通道');
這裡直接使用一行程式碼就可以讀取圖片資訊了。
可以在工作區看到原始影象image的資訊。427*640*3,分別表示畫素為高*寬為427*640,與影象資訊相符合。3表示圖片為RGB彩色圖片。紅綠藍。原始圖片的型別是uint8,所以將三個通道資訊提取出來後為double型別,然後生成影象時在使用uint8格式轉換。
二、RGB三通道合成原始影象
現在我們獲得了RGB三個成分分量,現在我們將三個分量在合成為原始影象。
1 %RGb合成原始影象View Code2 mix(:,:,1) = R; 3 mix(:,:,2) = G; 4 mix(:,:,3) = B; 5 figure ; 6 imshow(uint8(mix)); 7 title('合成影象');
全部程式碼如下:
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