Matlab 讀取彩色圖像是三維數組,圖像的座標是以左上角爲(0,0)點,彩色圖像形成的三維數組中前兩位表示圖像的像素點的座標,第三位爲1時表示是圖像中R的值,爲2時表示G的值,爲3時表示B的值。故若要對一個彩色圖像分別讀取R,G,B時,採用下述代碼即可。
% 2017-3-14
% write by Mr.Han
clc;
clear;
%讀入原圖像及獲取大小
image = imread('1.jpg');
% 分別讀取RGB
image_r=image(:,:,1);
image_g=image(:,:,2);
image_b=image(:,:,3);
% 測試RGB輸出
subplot(2,2,1),imshow(image_r),title('Red component');
subplot(2,2,2),imshow(image_g),title('green component');
subplot(2,2,3),imshow(image_g),title('blue component');
subplot(2,2,4),imshow(image),title('original image');
對上述結果進行驗證,分別讀取圖像的RGB的值,並取原圖像左上角10X10的值。代碼如下:
% 2017-3-14
% write by Mr.Han
clc;
clear;
%讀入原圖像
image = imread('1.jpg');
% 分別讀取RGB
image_r=image(:,:,1);
image_g=image(:,:,2);
image_b=image(:,:,3);
% 測試RGB輸出
subplot(2,2,1),imshow(image_r),title('Red component');
subplot(2,2,2),imshow(image_g),title('green component');
subplot(2,2,3),imshow(image_g),title('blue component');
subplot(2,2,4),imshow(image),title('original image');
%取原圖像部分數據
partdate(:,:,:)=image(1:10,1:10,:);%取最左上角10X10的原始圖像數據
通過查看變量數據進行驗證:partdata中可以看到分別用val(:,:,1),val(:,:,2),val(:,:,3)來顯示R,G,B的值。
我們再查看image_r左上10X10的值來驗證val(:,:,1)
同樣對比image_g,image_b的左上10X10與partdata中val(:,:,2),val(:,:,3)