MATLAB学习笔记8-图像的形态学处理

2018.5.10

转载自 https://blog.csdn.net/yangleo1987/article/details/53168423 
感谢作者 ,作者写得特别好

 

一.最基本两个形态学运算----膨胀与腐蚀

 

膨胀与腐蚀能够实现以下作用:

 

   1.消除噪声

   2.分割出独立的图像元素,在图像中连接相邻的元素

   3.寻找图像中的明显的极大值区域或者极小值区域

   4.求出图像的梯度

 

   需要注意之处: 腐蚀和膨胀都是对图像的白色部分(高亮部分)而言。膨胀是图像中的高亮部分进行膨胀,类似于领域扩张,效果图拥有比原图更大的高亮区域;腐蚀是原图的高亮部分被腐蚀,类似于领域被蚕食,效果图拥有比原图更小的高亮区域。

从数学的角度来说,膨胀和腐蚀操

 

作就是将图像与核进行卷积,核可以是任意形状和大小的。

膨胀代码如下:

 

clc;
vidObj = VideoReader('traffic.avi');

B=[0 1 0
   1 1 1 
   0 1 0];
for k=1:1  %读取前1帧
    frame = read(vidObj, k);  
    frame = rgb2gray(frame); %彩色图像灰度化
    
    A1 = imdilate(frame, B); %图像被结构元素B膨胀
    A2 = imdilate(A1, B); %图像被结构元素B二次膨胀
    A3 = imdilate(A2, B); %图像被结构元素B三次膨胀
    
    subplot(221) ; imshow(frame);
    title('图像原始图像');
     subplot(222) ; imshow(A1);
    title('图像第一次膨胀');
     subplot(223) ; imshow(A2);
    title('图像二次膨胀');
     subplot(224) ; imshow(A3);
    title('图像三次膨胀');
end

效果图:

腐蚀代码如下:

clc;
Vid = VideoReader('traffic.avi');

frame = read(Vid,20);
frame = rgb2gray(frame);
subplot(221),imshow(frame);
title('原始图像');

se1 = strel('disk',5); %创建一个半径为5的平坦型圆盘结构的元素
A1 = imerode(frame, se1);
subplot(222), imshow(A1);
title('使用结构原始disk(5)腐蚀图像');

se2 = strel('disk',10);  
A2 = imerode(frame,se2);
subplot(223),imshow(A2);
title('使用结构原始disk(10)腐蚀图像');
    

效果图:

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值