数字图像处理实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 Matlab图像显示方法
一、实验目的
1.了解Matlab的基本功能及操作方法
2.练习图像读写和显示函数的使用方法
3.掌握Matlab支持的五类图像的显示方法
二、实验内容
1.图像的读写
A)图像读
RGB = imread('ngc6543a.jpg');
B)图像写
先从一个.mat 文件中载入一幅图像,然后利用图像写函数imwrite,创建一个.bmp文件,并将图像存入其中。
load clown
whos
imwrite(X,map,'clown.bmp')
C)图像文件格式转换
bitmap = imread('clown.bmp','bmp');
imwrite(bitmap,'clown.png','png');
2.图像显示
A)二进制图像的显示
BW1=zeros(20,20); %创建仅包含0/1的双精度图像
BW1(2:2:18,2:2:18)=1;
imshow(BW1,'notruesize');
whos
BW2=uint8(BW1);
figure,imshow(BW2,'notruesize')
BW3=BW2~=0; %逻辑标志置为on
figure,imshow(BW3,'notruesize')
whos
BW=imread('circles.tif');
imshow(BW);
figure,imshow(~BW);
figure,imshow(BW,[1 0 0;0 0 1]);
B)灰度图像的显示
I=imread('testpat1.tif');
J=filter2([1 2;-1 -2],I);
imshow(I)
figure,imshow(J,[])
C)索引图像的显示
load clown %装载一幅图像
imwrite(X,map,'clown.bmp'); %保存为bmp文件
imshow(X)
imshow(X,map)
D)RGB图像的显示
I=imread('flowers.tif');
imshow(I)
RGB=imread('ngc6543a.jpg');
figure,imshow(RGB)
imshow(I(:,:,3) % 显示第3个颜色分量
E)多帧图像的显示
mri=uint8(zeros(128,128,1,27)); % 27帧文件mri.tif初始化
for frame=1:27
[mri(:,:,:,frame),map]=imread('mri.tif',frame); % 读入每一帧 end
imshow(mri(:,:,:,3),map); % 显示第3帧
figure,imshow(mri(:,:,:,6),map); % 显示第6帧
figure,imshow(mri(:,:,:,10),map); % 显示第10帧
figure,imshow(mri(:,:,:,20),map); % 显示第20帧
F)显示多幅图像
[X1,map1]=imread('forest.tif');
[X2,map2]=imread('trees.tif');
subplot(1,2,1),imshow(X1,map1)
subplot(1,2,2),imshow(X2,map2)
subplot(1,2,1),subimage(X1,map1) subplot(1,2,2),subimage(X2,map2)
实验二图像运算
一、实验目的
1.熟悉图像点运算和代数运算的实现方法
2.了解图像几何运算的简单应用
3.了解图像的邻域操作
二、实验内容
1.图像点运算
读入图像‘rice.tif’,通过图像点运算改变对比度。
rice=imread('rice.tif');
subplot(131),imshow(rice)
I=double(rice); %转换为双精度类型
J=I*0.43+60;
rice2=uint8(J); %转换为uint8
subplot(132),imshow(rice2)
J=I*1.5-60;
rice3=uint8(J); %转换为uint8
subplot(133),imshow(rice3)
2.图像的代数运算
A)图像加法运算
I=imread('rice.tif');
imshow(I)
J=imread('cameraman.tif');
figure,imshow(J)
K=imadd(I,J);
figure,imshow(K)
K2=imadd(I,J,'uint16');
figure,imshow(K2,[])
RGB=imread('flowers.tif');
RGB2=imadd(RGB,50);
imshow(RGB)
figure,imshow(RGB2)
RGB3=imadd(RGB,100);
figure,imshow(RGB3)
B)图像减法运算
I=imread('rice.tif');
imshow(I)
background = imopen(I,strel('disk',15)); %估计背景图像
figure, imshow(background);
I2=imsubtract(I,background); %从原始图像中减去背景图像
figure, imshow(I2)
C)图像乘法运算
I=imread('moon.tif');
J=immultiply(I,1.2);
K=immultiply(I,0.5);
imshow(I)
figure,imshow(J)
figure,imshow(K)
D)*图像除法运算
3.图像的几何运算
A)改变图像的大小
读入图像‘ic.tif’,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。
I=imread('ic.tif');
J=imresize(I,1.25);
K=imresize(I,0.8);
imshow(I)
figure,imshow(J)
figure,imshow(K)
Y=imresize(I,[100,150]);
figure,imshow(Y)
B)旋转一幅图像
将上述图像顺时针和逆时针旋转任意角度,观察显示效果。
I=imread('ic.tif');
J=imrotate(I,30,'bilinear');