数字图像处理 第九章课后作业
文档地址:https://download.csdn.net/download/qq_44143405/12549550
如果不能下载请邮件联系(说明来意):[email protected]
第一题
9-7 (a)反复膨胀一幅图像的极限效果是什么?假设不使用只有一个点的结构元。
(b)为使(a)的答案成立,你能从其开始的最小图像是什么?
第二题
9-18 考虑下图所示的3幅二值图像。左侧的图像由边长为1,3,5,7,9和15像素的方块组成。中间的图像是使用大小为13×13像素、元素为1的方形结构元对左侧图像进行腐蚀生成的,除了最大的几个之外,消除了所有的方块。最后,右侧的图像是使用相同的结构元对中间图像膨胀后的结果,其目的是恢复最大的方块。我们知道,先腐蚀再膨胀实际上是对图像的开操作,并且我们还知道开操作通常不能将物体恢复为原始形式。请解释这种情况下为何能完全重建较大的方块。
附:
第一题代码块
Image=imread('menu.bmp'); %打开图像
BW=im2bw(Image); %转换为二值图像
[h w]=size(BW); %获取图像尺寸
result=zeros(h,w); %定义输出图像,初始化为0
for x=2:w-1
for y=2:h-1 %扫描图像每一点,即结构元素移动到每一个位置
for m=-1:1
for n=-1:1 %当前点周围3×3范围,即结构元素为3×3大小
if BW(y+n,x+m) %结构元素所覆盖3×3范围内有像素点为1,即交集不为空
result(y,x)=1; %将参考点记录为前景点
break;
end
end
end
end
end
figure,
subplot(121),imshow(BW);title('原始二值图像');
subplot(122),imshow(result);title('二值图像膨胀');
SE=strel('square',3) %创建结构元素
A1=imdilate(BW,SE); %膨胀运算
A2=imdilate(A1,SE);
A3=imdilate(A2,SE);
A4=imdilate(A3,SE);
A5=imdilate(A4,SE);
A6=imdilate(A5,SE);
A7=imdilate(A6,SE);
A8=imdilate(A7,SE);
A9=imdilate(A8,SE);
A10=imdilate(A9,SE);
figure,
subplot(221),imshow(A1);
title('1次膨胀后的图像');
subplot(222),imshow(A3);
title('3次膨胀后的图像');
subplot(223),imshow(A5);
title('5次膨胀后的图像');
subplot(224),imshow(A10);
title('10次膨胀后的图像');
原始二值图像及其膨胀的图形:
第二题代码块
%%ex.9-18
clc
clear
f=imread('left.tif');
SE=strel('square',13); %方型结构元素
SE1=strel('disk',13); %圆盘型结构元素
result1=imopen(f,SE); %用3×3结构元素进行开运算
result2=imdilate(imerode(f,SE1),SE);
result3=imerode(imdilate(f,SE1),SE);
figure
subplot(221),imshow(f);title('开闭运算原始图像');
subplot(222),imshow(result1);title('开闭运算后图像');
subplot(223),imshow(result2);title('膨胀一个被圆部分腐蚀的矩形');
subplot(224),imshow(result3);title('腐蚀一个被圆部分膨胀的矩形');