一、實驗目的
1.了解 圖像處理工具箱函數中的基本功能及操作方法。
2.掌握中圖像讀寫和顯示函數的使用方法。
3.掌握如何利用函數獲取圖像大小、顏色、高度、寬度等信息。
4.熟悉常用的圖像類型的相互轉換。
二、實驗內容和步驟
1.利用()函數分別讀入圖像trees.tif和.jpg數字圖像處理實驗報告模板,存入兩個數組中,用“whos”命令獲取圖像的基本信息。
實驗代碼:
clear all;
A = imread("C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\trees.tif");
B = imread("C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\ngc6543a.jpg");
whos A;
whos B;
實驗結果:
2.利用()函數將圖像trees.tif壓縮,將其保存為一幅壓縮了像素的jpg文件, 圖像名為為.jpg;
實驗代碼:
clear all;
A = imread("C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\trees.tif");
imwrite(A,'C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\trees1.jpg');
實驗結果:
3.命令窗口利用函數來獲取圖像文件的壓縮,顏色等等其他的詳細信息。
實驗代碼:
clear all;
info=imfinfo('C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\trees1.jpg');
info
實驗結果:
4.在4個不同的圖像窗口中顯示任意4幅不同圖像類型(二值、索引、灰度、真彩色)的圖像。
實驗代碼:
clear all;
I=imread('C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\onion.png');
figure(1);
I1 = im2bw(I); %二值類型的圖像
imshow(I1);
figure(2);
imshow(I);
figure(3);
I3 = rgb2gray(I)
imshow(I3); %灰度
figure(4);
imshow (gray2ind(I));
實驗結果:
5.分別用和load命令讀入兩幅不同的圖像,并排顯示在同一圖像窗口。
實驗代碼:
clear all;
E = imread("C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\trees.tif");
subplot(1,2,1);
image(E);
subplot(1,2,2);
load('C:\Users\25023\Desktop\圖像識別文件\代碼文件\matlab.mat');
image(K);
實驗結果:
6.利用()函數來顯示圖像trees.tif,要求先轉化為rgb圖像,分別顯示每個通道,然后合并再顯示)
實驗代碼:
clear all;
[X,map]=imread("C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\trees.tif");
RGB=ind2rgb(X,map);
imwrite(RGB,'C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\tress.jpg')
R = RGB(:,:,1);
G = RGB(:,:,2);
B = RGB(:,:,3);
figure;
imshow(R);

figure;
imshow(G);
figure;
imshow(B);
figure;
imshow(RGB);
實驗結果:
7.用()將一幅索引圖像trees.tif轉化為灰度圖像,并且用顯示出來觀察圖像的特征。
實驗代碼:
clear all;
[X,map]=imread('C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\trees.tif');
G1=ind2gray(X,map);
figure;
imshow(G1);
實驗結果:
8.用im2bw()將一幅灰度圖像.jpg轉化為二值圖像數字圖像處理實驗報告模板,并且用顯示出來觀察圖像的特征。
實驗代碼:
clear all;
B=imread("C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\cameraman.jpg");
B2=im2bw(B);

imshow(B2);
實驗結果:
9.用()將真彩色圖像onion.png轉化為索引圖像,用顯示出來,并讀取出兩種圖像的數據,觀察圖像的特征。
實驗代碼:
clear all;
C=imread("C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\onion.png");
[X,map] = rgb2ind(C,32);
figure;
imshow(C);
figure;
imshow(X,map);
實驗結果:
10.讀入并在同一窗口顯示27幀索引圖像陣列“mri.mat”,并在單獨窗口顯示第6、10、20幀圖像。
實驗代碼:
clear all;
mri=uint8(zeros(128,128,1,27)); % 27幀文件mri.tif初始化
for frame=1:27
[mri(:,:,:,frame),map]=imread('C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\mri.tif',frame); % 讀入每一幀
end

figure,imshow(mri(:,:,:,6),map);
figure,imshow(mri(:,:,:,10),map);
figure,imshow(mri(:,:,:,20),map);
figure;
montage(mri,map);
實驗結果:
11.制作并顯示一個動態圖。
實驗代碼:
clear all;
mri=uint8(zeros(128,128,1,27));
for frame=1:27
[mri(:,:,:,frame),map]=imread('C:\Users\25023\Desktop\圖像識別文件\實驗一圖像\mri.tif',frame);
end
figure;
hold on;
for frame=1:27
hold on;imshow(mri(:,:,:,frame),map);
pause(0.1)
end
實驗結果: