java 图像膨胀与腐蚀程序_使用不同的膨胀和腐蚀方法对图像进行处理

膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。通过膨胀,可以填充图像中的小孔及在图像边缘处的小凹陷部分。结构元素B对图像A进行膨胀,记作A 37d18057725e0ea1d7eb813a09ccccda.pngwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==​ B

腐蚀和膨胀是对偶操作。腐蚀是一种消除边界点,使边界向内部收缩的过程。利用腐蚀操作,可以消除小且无意义的物体。集合A被结构元素B腐蚀,记作A

4f00fc4aba0645f3f74056416d294783.gifB

这里为了简化起见,被膨胀和腐蚀图像我们处理成二值图像:

matlab 中

膨胀函数 IM2 = imdilate(IM,SE)   对图像IM进行膨胀,采用的结构元素为SE,SE为函数strel()得到的结构元素

腐蚀函数 IM2 = imerode(IM,SE)  对图像IM进行腐蚀,其他同上

以膨胀为例代码如下:

close all;clear all;clc;

I = imread('ceshi1.jpg');

I = im2bw(I);

I = ~I;

se1 = strel('square',3); %方形膨胀元素

se2 = strel('line',5,90); %线性膨胀元素

%se3 = strel('ball',5,10); %球形膨胀元素 不能用于二值图像

se4 = strel('disk',11); %磁盘膨胀元素

se5 = strel('rectangle',[20 30]); %矩形膨胀元素

A = imdilate(I,se1);

B = imdilate(I,se2);

%C = imdilate(I,se3);

D = imdilate(I,se4);

E = imdilate(I,se5);

figure;

subplot(231);imshow(I);title('origin');

subplot(232);imshow(A);title('square');

subplot(233);imshow(B);title('line');

%subplot(234);imshow(C);title('ball');

subplot(235);imshow(D);title('disk');

subplot(236);imshow(E);title('rectangle');

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

strel结构元素说明:

Examples

--------

se1 = strel('square',11)      % 11-by-11 square

se2 = strel('line',10,45)     % line, length 10, angle 45 degrees

se3 = strel('disk',15)        % disk, radius 15

se4 = strel('ball',15,5)      % ball, radius 15, height 5

注意:这里球形结构元素不能用于膨胀操作,腐蚀操作类似,只需要修改imdilate函数为imerode函数

程序执行后输出如下:

a539d59af791bf2f280fe7f86d0e98a4.png

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值