图像形态学处理——膨胀(Matlab)

clc;
clear all;
close all;

%读入图像,并转换为double型,该计算针对的是二值图像,所以加入图像时需注意
%膨胀测试图像
I=im2double(imread('D:\Gray Files\9-7.tif'));
%获得图像大小
[M,N]=size(I);
%存放膨胀后的图像
J=zeros(M,N);

%%
%===============================膨胀图像===================================
%结构元素
B=[0 1 0;
    1 1 1;
    0 1 0];
n_B=numel(B);
n=3;
%这里需要B对其原点进行翻转,因为B是对称的,所以翻转后的结果与其本身相同
l_m=floor(n/2);
l_n=floor(n/2);
%将原始图像进行扩展,这里采用了镜像扩展,以进行图像边缘计算
I_pad=padarray(I,[l_m,l_n],'symmetric');
%膨胀过程
for x=1:M
    for y=1:N
        %从扩展图像中取出子图像
         Block=I_pad(x:x+2*l_m,y:y+2*l_n);
         %将结构元素与子图像点乘,值赋给新图像
         %将结构元素与子图像点乘,即逻辑“与”操作
         c=B.*Block;
          %比较结构元素与c中的0的数量,如都为0,则该点的值为0,否则为1
         ind=find(c==0);
         if length(ind)~=n_B
             J(x,y)=1;
         end
    end
end
imshow(J,[]);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值