Matlab图像处理实验指导书 下载本文

郑州大学 《Matlab应用图像处理》课程实验指导书

实验六 图像分析与理解及图像压缩

一、实验目的

1. 2. 3. 4. 5.

了解DCT变换在图像压缩中的应用 掌握边缘检测的Matlab实现方法

了解用四叉数分解函数进行区域分割的方法 了解Matlab区域操作函数的使用方法 了解图像分析和理解的基本方法

二、实验内容

1. 图像分析与理解 A) 边缘检测

使用edge函数对图像‘rice.tif’进行边缘检测。

I=imread('rice.tif'); imshow(I)

bw1=edge(I,'roberts'); bw2=edge(I,'sobel'); bw3=edge(I,'prewitt'); bw4=edge(I,'canny'); bw5=edge(I,'log'); figure,imshow(bw1) figure,imshow(bw2) figure,imshow(bw3) figure,imshow(bw4) figure,imshow(bw5)

要求同时比较'roberts','sobel','prewitt','canny','log'算子的检测效果。 edge函数提供的最有效的边缘检测方法是canny方法。优点:

使用两种不同的阈值分别检测强、弱边缘,并且仅当弱边缘与强边缘相连时,才将弱边缘包含在输出图像中。

该方法不易受噪声干扰,能够在噪声和边缘间取得较好的平衡,检测到真正的弱边缘。

B) 区域操作

使用区域选择函数roicolor, 区域滤波函数roifilt2和区域填充函数roifilld对图像

20

郑州大学 《Matlab应用图像处理》课程实验指导书

‘pout.tif’或‘eight.tif’进行区域操作。

I=imread('pout.tif'); imshow(I) BW=roipoly;

figure,imshow(BW) h=fspecial('unsharp'); I2=roifilt2(h,I,BW); figure,imshow(I2) I3=roifill;

figure,imshow(I3);

I=imread('eight.tif'); imshow(I)

c=[222 272 300 270 221 194]; r=[21 21 75 121 121 75]; BW=roipoly(I,c,r); figure,imshow(BW) H=fspecial('unsharp'); J1=roifilt2(H,I,BW); figure,imshow(J1) J2=roifill(I,c,r); figure,imshow(J2)

C) *区域分割

使用函数qtdecomp对图像‘alumgrns.tif’进行四叉树分解。 I=imread('alumgrns.tif'); I=I(1+[1:256],1+[1:256]); imshow(I)

S=qtdecomp(I,0.2); figure,imshow(S) S=qtdecomp(I,0.1); figure,imshow(S)

D) 图像分析与理解

*用分水岭分割函数watershed对图像‘afmsurf.tif’进行分割,测试互相接触的对象。

afm=imread('afmsurf.tif');

subplot(231),imshow(afm),title('Original Image');

21

郑州大学 《Matlab应用图像处理》课程实验指导书

se=strel('disk',15);

Itop=imtophat(afm,se);

% 高帽变换

subplot(232),imshow(Itop,[ ]),title('Tophat Image'); Ibot=imbothat(afm,se); % 低帽变换

subplot(233),imshow(Ibot,[ ]),title('Bottomhat Image'); Ienhance=imsubtract(imadd(Itop,afm),Ibot);

subplot(234),imshow(Ienhance),title('Original+Tophat-Bottomhat');

Iec=imcomplement(Ienhance);

Iemin=imextendedmin(Iec,22); % 搜索谷值 Iimpose=imimposemin(Iec,Iemin); % 置谷值为0 subplot(235),imshow(Iimpose),title('Complement of Image');

wat=watershed(Iimpose); % 分水岭分割

Enhanced

subplot(236),imshow(wat),title('Watershed Segmented Image'); rgb=label2rgb(wat);

subplot(236),imshow(rgb),title('Color Segmented Image');

2. 图像压缩

A) DCT变换在图像压缩中的应用

执行Matlab自带的演示程序dctdemo,比较DCT变换矩阵舍弃系数对重构图像的影响

dctdemo

B) *小波变换在图像压缩中的应用

22

郑州大学 《Matlab应用图像处理》课程实验指导书

A a

abs 绝对值、模、字符的ASCII码值 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割

align 启动图形对象几何位置排列工具 all 所有元素非零为真 angle 相角

ans 表达式计算结果的缺省变量名 any 所有元素非全零为真 area 面域图

argnames 函数M文件宗量名 asec 反正割 asech 反双曲正割 asin 反正弦 asinh 反双曲正弦 assignin 向变量赋值 atan 反正切 atan2 四象限反正切 atanh 反双曲正切 autumn 红黄调秋色图阵 axes 创建轴对象的低层指令 axis 控制轴刻度和风格的高层指令 B b

bar 二维直方图 bar3 三维直方图 bar3h 三维水平直方图 barh 二维水平直方图

23