DIP实验报告形态学图像处理.docx

上传人:b****7 文档编号:26574540 上传时间:2023-06-20 格式:DOCX 页数:15 大小:500.40KB
下载 相关 举报
DIP实验报告形态学图像处理.docx_第1页
第1页 / 共15页
DIP实验报告形态学图像处理.docx_第2页
第2页 / 共15页
DIP实验报告形态学图像处理.docx_第3页
第3页 / 共15页
DIP实验报告形态学图像处理.docx_第4页
第4页 / 共15页
DIP实验报告形态学图像处理.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

DIP实验报告形态学图像处理.docx

《DIP实验报告形态学图像处理.docx》由会员分享,可在线阅读,更多相关《DIP实验报告形态学图像处理.docx(15页珍藏版)》请在冰豆网上搜索。

DIP实验报告形态学图像处理.docx

DIP实验报告形态学图像处理

DIP实验报告-形态学图像处理

算的结果才是1。

图2显示了涉及图像逻辑运算的不同例子。

这里,黑色表示1,而白色表示0(这里使用两种约定的说法,有时会颠倒黑色和白色二值的意义,取决于在给定情况下哪种表达更清楚。

使用图1中的定义构造其他的逻辑运算很容易。

例如,异或运算是当两个像素的值不同时结果为1,否则为0。

这种运算与“或”运算不同。

“或”运算在两个像索有一个为1或两个均为1时结果为1。

数学形态学方法对图像进行分析的基本思想是:

用具有一定形态的结构元素去度量和提取图像中的对应形状,达到对图像分析和识别的目的。

将数学形态学作为工具从图像中提取对于表达和描绘区域形状有用处的图像分量,比如边界、骨架以及凸壳,等等。

数学形态学是对于探索和研究二值图像和灰度图像具有很大益处.

图2图像逻辑运算

2、二值图像的腐蚀与膨胀及形态学算法之一:

边界提取

1、二值图像腐蚀:

对Z中的集合A和B,使用B对A进行腐蚀定义为:

(式9.2-1)

这个公式说明,使用B对A进行腐蚀是所有B中包含于A中的点z的集合用z平移。

2、二值图像膨胀:

设A和B是(Z2)中的集合,A被B膨胀定义为:

(式9.2-3)

这个公式是以得到B的相对于它自身原点的映像并且由z对映像进行位移为基础的。

A被占膨胀是所有位移z的集合,这样,B和A至少有一个元素是重叠的。

与在其他形态学运算中一样,集合B通常叫做膨胀的结构函数。

二值图像的腐蚀与膨胀示例图如图(3)所示:

图3二值图像的腐蚀与膨胀示例图

3、集合A的边界表示为

,它可以通过先由B对A腐蚀,而后用A减去腐蚀得到。

即:

(式9.5-1)

这里B是一个适当的结构元素。

图3说明了边界提取的机理。

这幅图像显示了一个简单的二值对象、一个结构元素B和使用式9.5-1的结果。

尽管图3中显示的结构元素是最常用的结构元素之一,但它绝对不是惟一的。

例如,使用由1组成的5×5大小的结构元素将得到2到3个像素宽的边界。

图4边界提取

3、灰度图像的膨胀与腐蚀及形态学的应用

1、用结构元B对灰度图像进行膨胀表示为:

这里

分别是f和b的定义域。

f和b是函数而不是二值形态学情况中的集合。

必须在f的定义域内以及x和y必须在b的定义域内的条件与膨胀的二值定义中的条件是相似的(这里两个集合的交集至少应有一个元素)。

该公式的形式与二维卷积是相似的,并且用最大值运算代替卷积求和,用加法运算代替卷积乘积。

2、用结构元B对灰度图像进行腐蚀表示为:

这里

分别是f和b的定义域。

平移参数

必须在f的定义域内,而且x和y必须在b的定义域内,这与腐蚀的二值定义中的条件相似。

同样,公式在形式上与二维相关是相似的,并且用最小值运算代替了相关运算,用减法运算代替了相关的乘积。

灰度形态学的膨胀与腐蚀的一维示意图如下:

图5膨胀与腐蚀一维示意图

3、形态学梯度:

膨胀和腐蚀经常用于计算图像的形态学梯度,其公式为:

(式9.6-11)

膨胀粗化一副图像中的区域,二腐蚀则细化它们。

膨胀和腐蚀的差强调了区域间的边界。

同质区域不受影响,因此减操作趋于消除同质区域。

最终结果是边缘被增强而同质区域的贡献被抑制,从而产生类似于微分的效果。

4、形态学Top-hat变换,定义为:

(式9.6-12)

f是输入图像,b是结构元函数,该应用对于增强灰度图像的阴影细节很有用处。

 

一、实验结果及讨论

实验结果如图(6)~图(7)所示:

1、对于处理二值图像Fig9.20(left),本实验使用全1矩阵作为结构元素。

实验结果如图6所示:

从左做到右,从上到下依次为:

Fig9.20(left)原图像、对图像进行腐蚀、膨胀和边缘特征提取处理结果。

从实验结果可见,经过腐蚀处理后,白色英文字母变得细化了,而

经过膨胀处理后字母显得更宽了。

右下角是边界提取结果,从结果可见边界比较明显。

2、对于处理灰度图像Fig9.39(a),本次实验使用M矩阵作为结构元素。

实现灰度图像的膨胀、腐蚀并进行形态学梯度处理和Top-hat变换。

图7从左做到右,从上到下依次为:

灰度图像的膨胀、腐蚀、形态学梯度处理和Top-hat变换结果。

可以看到,膨胀处理后灰度图像的亮特征变浓了,暗特征降低了。

腐蚀处理后灰度图像的暗特征变浓了,亮特征降低了,与膨胀效果相反。

从图7的左下图可以看到经过形态学梯度公式处理后的图像边缘被增强而同质区域的贡献被抑制,产生了类似于微分的效果。

从图7的右下图可以看到经过Top-hat变换后的图像的阴影细节得到增强。

 

图6二值图像的膨胀、腐蚀和边缘特征提取

图5灰度图像的膨胀、腐蚀、形态学梯度及Top-hat结果

二、程序附录

clc;clearall;closeall;

%%

%%第一部分:

二值图像的膨胀腐蚀及边界提取

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%主函数

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

A=imread('Fig9.20(left).jpg');%输入图像I

A=mat2gray(A);

B=[111;111;111];%3*3的结构元

erode_img=My_DilateErode(A,B,'im_erode');

subplot(1,2,1);

imshow(A);

title('Fig9.20(left)原图');

subplot(1,2,2);

imshow(erode_img);

title('腐蚀处理图');

figure

dilate_img=My_DilateErode(A,B,'im_dilate');

subplot(1,2,1);

imshow(dilate_img);

title('膨胀处理图');

K=A-erode_img;%边界提取:

原图减去腐蚀结果

subplot(1,2,2);

imshow(K);

title('边界提取结果图');

%%第二部分:

灰度图像的膨胀腐蚀及Top-hat处理

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

M=[010;111;010];%3*3的结构元

ima=imread('Fig9.39(a).jpg');

dilate_img=My_GrayDilateErode(ima,M,'im_dilate');

figure

imshow(uint8(dilate_img));

title('灰度图的膨胀结果');

Figure

erode_img=My_GrayDilateErode(ima,M,'im_erode');

imshow(uint8(erode_img));

title('灰度图的腐蚀结果');

Figure

grad_img=dilate_img-erode_img;%公式9.6-11

grad_img=uint8(grad_img);

imshow(grad_img);

title('形态学梯度输出结果');

%Tophat处理:

先进行开操作,然后原图减去开操作结果

m1=erode_img;

m2=My_GrayDilateErode(m1,M,'im_dilate');%开操作

Th=double(ima)-m2;%顶帽变换

Th=uint8(Th);

figure

imshow(Th);

title('Tophat变换输出结果');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%功能:

实现二值图像膨胀或腐蚀

%调用形式:

imb=My_DilateErode(ima,M,option)

%输入参数:

%ima:

输入图像,

%M:

输入的结构元,

%opetion:

选择输出

%输出参数:

%imb:

膨胀或者腐蚀后的二值图像

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

functionimb=My_DilateErode(ima,M,option)

[m,n]=size(ima);

image_dilate=ones(m,n);%输出膨胀图像

image_erode=zeros(m,n);%输出腐蚀图像

Judge=zeros(3,3);%3×3逻辑运算结果初始化

%结构元作用于图像四周时为了不超出范围,需要将图像四周扩展

imt=zeros(m+2,n+2);

fori=2:

m+1

forj=2:

n+1

imt(i,j)=ima(i-1,j-1);

end

end

fori=2:

m+1

forj=2:

n+1

%将结构元素与扩展图像中每3×3个模块进行与运算

Judge=M&[imt(i-1,j-1),imt(i-1,j),imt(i-1,j+1);...

imt(i,j-1),imt(i,j),imt(i,j+1);...

imt(i+1,j-1),imt(i+1,j),imt(i+1,j+1)];

%腐蚀:

只有当3×3中所有元素都与结构元的各素均不同时将此中心位置置0

if(Judge==zeros(3,3))

image_dilate(i-1,j-1)=0;

end

%膨胀:

只有当3×3中所有元素都与结构元的各素均相同时将此中心位置置1

if(Judge==ones(3,3))

image_erode(i-1,j-1)=1;

end

end

end

switchoption%根据输入参数,选择输出结果

case'im_dilate'

imb=image_dilate;%返回膨胀后的图像

case'im_erode'

imb=image_erode;%返回腐蚀后的图像

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%功能:

实现二值图像膨胀或腐蚀

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%功能:

实现二值图像膨胀或腐蚀

%调用形式:

imb=My_GrayDilateErode(ima,B,option)

%输入参数:

%ima:

输入图像,

%B:

输入的结构元,

%opetion:

选择输出

%输出参数:

%imb:

膨胀或者腐蚀后的二值图像

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

functionimb=My_GrayDilateErode(ima,B,option)

[M,N]=size(ima);

imd=double(ima);

B=double(B);

if(strcmp(option,'im_erode'))

im_erode=imd;

form=4:

(M-4)

forn=4:

(N-4)

forx=1:

3

fory=1:

3

f(x,y)=imd(m-x,n-y)-B(x,y);

end

end

im_erode(m,n)=min(f(:

));

end

end

imb=im_erode;%返回腐蚀后的灰度图像

end

if(strcmp(option,'im_dilate'))

im_dilate=imd;

form=4:

(M-4)

forn=4:

(N-4)

forx=1:

3

fory=1:

3

f(x,y)=imd(m-x,n-y)+B(x,y);

end

end

im_dilate(m,n)=max(f(:

));

end

end

imb=im_dilate;%返回膨胀后的灰度图像

end

end

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1