(整理)实验四:形态学.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四形态学操作与空间变换

一、实验目的

1.了解膨胀和腐蚀的Matlab实现方法

2.掌握图像膨胀、腐蚀、开启、闭合等形态学操作函数的使用方法

3.了解二进制图像的形态学应用

4.了解空间变换函数及图像匹配方法

二、实验内容

1.图像膨胀

A)对包含矩形对象的二进制图像进行膨胀操作。

BW=zeros(9,10);

BW(4:6,4:7)=1;

imshow(BW,'notruesize')

se=strel('square',3);

BW2=imdilate(BW,se);

figure,imshow(BW2,'notruesize')

B)改变上述结构元素类型(如:line, diamond, disk等),重新进行膨胀

操作。

Line: BW=zeros(9,10);

BW(4:6,4:7)=1;

imshow(BW,'notruesize')

se=strel('line',3,3);

BW2=imdilate(BW,se);

figure,imshow(BW2,'notruesize')

C)对图像‘text.png’进行上述操作,观察不同结构元素膨胀的效果。

BW3=imread('text.png ');

imshow(BW3)

se2=strel('line',11,90); %线型结构元素

BW4=imdilate(BW3,se2);

figure,imshow(BW4)

2.图像腐蚀

A)对图像‘circbw.tif’进行腐蚀操作。

BW1=imread('circbw.tif');

se=strel('arbitrary',eye(5));

BW2=imerode(BW1,se);

imshow(BW1)

figure,imshow(BW2)

B)对图像‘text.tif’进行腐蚀操作。

BW=imread('text.tif');

se=strel('line',11,90);

BW2=imerode(BW3,se);

imshow(BW)

figure,imshow(BW2)

3.膨胀与腐蚀的综合使用

A)从原始图像‘circbw.tif’中删除电流线,仅保留芯片对象。

方法一:先腐蚀(imerode),再膨胀(imdilate);

BW1=imread('circbw.tif');

imshow(BW1)

se=strel('rectangle',[40 30]); %选择适当大小的矩形结构元素BW2=imerode(BW1,se); %先腐蚀,删除较细的直线

figure,imshow(BW2)

BW3=imdilate(BW2,se); %再膨胀,恢复矩形的大小

figure,imshow(BW3)

方法二:使用形态开启函数(imopen)。

BW1=imread('circbw.tif');

imshow(BW1)

se=strel('rectangle',[30,20]);

BW2=imopen(BW1,se); %开启操作

figure,imshow(BW2)

B)改变结构元素的大小,重新进行开启操作,观察处理结果。se=strel(‘rectangle’,[20 10]);

se=strel(‘rectangle’,[50 40]);

C)置结构元素大小为[4 3],同时观察形态开启(imopen)与闭合(imclose)

的效果,总结形态开启与闭合在图像处理中的作用。

I=imread('circbw.tif');

imshow(I)

se=strel('rectangle',[4 3]);

I1=imopen(I,se); %开启操作

I2=imclose(I,se); %闭合操作

figure,imshow(I1)

figure,imshow(I2)

4.*高帽与低帽变换

A)读入图像‘pearlite.tif’,分别显示其高帽变换与低帽变换结果,并

与原图像比较。(设se=strel('disk',5);)。

I=imread('pearlite.tif');

subplot(221),imshow(I)

se=strel('disk',5);

J=imtophat(I,se);

subplot(222),imshow(J)

K=imbothat(I,se);

subplot(223),imshow(K)

L=imsubtract(imadd(J,I),K);

subplot(224),imshow(L)

B)要求显示在一个窗口中。

5.图像极值的处理方法

A)对于下图所示的图像矩阵A,利用函数imregionalmax寻找其局部极大

A=[10 10 10 10 10 10 10 10 10 10;

10 13 13 13 10 10 11 10 11 10;

10 13 13 13 10 10 10 11 10 10;

10 13 13 13 10 10 11 10 11 10;

10 10 10 10 10 10 10 10 10 10;

10 11 10 10 10 18 18 18 10 10;

10 10 10 11 10 18 18 18 10 10;

10 10 11 10 10 18 18 18 10 10;

10 11 10 11 10 10 10 10 10 10;

10 10 10 10 10 10 11 10 10 10];

B=imregionalmax(A)

B =

相关文档
最新文档