形态学图像处理

一、形态学操作的MATALB实现

1. 腐蚀操作

IM2=imerode(IM,SE);
IM2=imerode(IM,NHOOD);
IM2=imerode(_,PACKOPT,M);
IM2=imerode(_,SHAPE);
IM2=imerode(gpuarrayIM,_)

其中,IM、IM2分别为输入图像和输出图像;

          SE为结构元素,SE可以是一个定义结构元素邻域的二进制矩阵或由strel函数返回的对象;

 

          NHOOD是一个由0和1组成的数组,用来指定结构元素的大小和形状;

         PACKOPT、M、SHAPE是可选参数,用来说明输入输出图像的大小、形状信息

e.g. 1 使用圆形结构对一幅二值图像进行腐蚀

% 读入一张图片
originalBW=imread('circles.png');
% 定义结构元素
se=strel('disk',11);
% 施加腐蚀操作
erodedBW=imerode(originalBW,se);
% 显示结果
subplot(121);
imshow(originalBW);title('原图');
subplot(122);
imshow(erodedBW);title('腐蚀后');

                              

e.g.2 使用球形结构对一幅灰度图像进行腐蚀操作

% 读入一张图片
originalI=imread('cameraman.tif');
% 定义结构元素
se=strel('ball',5,5); %创建椭圆体,半径5,高5
% 施加腐蚀操作
erodedI=imerode(originalI,se);
% 显示结果
subplot(121);
imshow(originalI);title('原图');
subplot(122);
imshow(erodedI);title('腐蚀后');

               

2. 膨胀操作

MATLAB使用imdilate函数对指定的图像进行膨胀操作,参数与imerode中相同。

e.g.1 使用圆形结构对一幅二值图像进行膨胀

% 读入一张图片
originalI=imread('text.png');
% 定义长度为11、与水平方向夹角为90度的线性结构
se=strel('line',11,90); 
% 施加膨胀操作
erodedI=imdilate(originalI,se);
% 显示结果
subplot(121);
imshow(originalI);title('原图');
subplot(122);
imshow(erodedI);title('膨胀后');

e.g.2 使用球形结构对一幅灰度图像进行膨胀。

% 读入一张图片
originalI=imread('cameraman.tif');
% 定义半径为5的球形结构
se=strel('ball',5,5); 
% 施加膨胀操作
erodedI=imdilate(originalI,se);
% 显示结果
subplot(121);
imshow(originalI);title('原图');
subplot(122);
imshow(erodedI);title('膨胀后');

                   

3.应用

膨胀:桥接裂缝

3. 开运算与闭运算

开运算是先对图像进行腐蚀操作,再对腐蚀结果做膨胀操作;

开运算常用来平滑图像轮廓,断开狭窄的连接和消除细的突出物。

闭运算是先对图像进行膨胀操作,再对膨胀结果做腐蚀操作;

闭运算通过融合缝隙,对图像不平滑的部分进行填补,消除狭窄的间断和细长的鸿沟,消除小的孔洞,并填补轮廓线中的裂痕。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值