【数字图像处理】实验五 形态学图像处理

1 实验目的

1、了解形态学的基本理论和方法。
2、掌握对图像进行膨胀、腐蚀的方法。
3、掌握开闭运算。

2 实验环境

matlab

3 实验内容

1、采用形态学处理方法实现图像去噪。

%1)lab51.m
close all;
clear;
clc;
I=imread('lab51.jpeg');
I=rgb2gray(I);
I=im2bw(I);
I=double(I);

J1=imnoise(I,'salt & pepper',0.02); %椒盐噪声

se=strel('disk',1);
% se=[0 1 0;1 1 1;0 1 0];
se.Neighborhood

%去掉黑噪声
J2=imdilate(J1,se);
J2=imerode(J2,se);
%二值反转,去掉白噪声
J3=imcomplement(J2);
% J2=dilation(J2,se);
% J2=erosion(J2,se);
J3=dilation(J3,se.Neighborhood);
J3=erosion(J3,se.Neighborhood);
%二值反转
J4=imcomplement(J3);

figure('NumberTitle','off','name','形态学处理去噪'),
subplot(2,3,1);imshow(I);title('原始图像','FontName','宋体');
subplot(2,3,2);imshow(J1);title('添加噪声','FontName','宋体');
subplot(2,3,4);imshow(J2);title('去除黑噪声','FontName','宋体');
subplot(2,3,5);imshow(J3);title('去除白噪声','FontName','宋体');
subplot(2,3,6);imshow(J4);title('去噪后的图像','FontName','宋体');
%2)自定义图像膨胀函数dilation.m
function j=dilation(i,se)

[w,h]=size(se);
% i=padarray(i,[w-1 h-1],'symmetric');
[width,height]=size(i);

%  j=zeros(width,height);
j=i;

for row=1:width-(w-1)
    for col=1:height-(h-1)
        mark=i(row:row+(w-1),col:col+(h-1));
        temp=se.*mark;
        if sum(temp(:))>0 %只要卷积结果中有非零元素,则将输出图像的对应位置赋值1
            j(row+floor((w-1)/2),col+floor((h-1)/2))=1;
        else
            j(row+floor((w-1)/2),col+floor((h-1)/2))=0;
        end
    end
end
%3)自定义图像腐蚀函数erosion.m
function j=erosion(i,se)

[w,h]=size(se);
% i=padarray(i,[w-1 h-1],'symmetric');
[width,height]=size(i);
 j=zeros(width,height);
 
count_1=0;
for x=1:w
    for y=1:h
        if se(x,y)==1
            count_1=count_1+1;
        end
    end
end

for row=1:width-(w-1)
    for col=1:height-(h-1)
        mark=i(row:row+(w-1),col:col+(h-1));
        temp=mark.*se;
        count=0;
        for x=1:w
            for y=1:h
                if temp(x,y)~=0
                    count=count+1;
                end
            end
        end
        %比较结构元素与c中的1的数量,如果一样多,则该点的值为1
         if count==count_1
             j(row+floor((w-1)/2),col+floor((h-1)/2))=1;
         else
             j(row+floor((w-1)/2),col+floor((h-1)/2))=0;
         end
    end
end

形态学处理去噪

2、对图像分割实验(实验四)得到的分割结果进行形态学处理,对肺部区域的空洞进行填充。

%主函数lab52.m
close all;
clear;
clc;
I=imread('lab52.tif');

se=strel('disk',7);
se.Neighborhood

J1=dilation(I,se.Neighborhood);
J1=erosion(J1,se.Neighborhood);
figure('NumberTitle','off','name','形态学处理去噪'),
subplot(1,2,1);imshow(I);title('原始图像','FontName','宋体');
subplot(1,2,2);imshow(J1);title('填补空洞','FontName','宋体');

填充肺部空洞

4 实验心得

进一步理解了形态学处理图像的方法,实现了图像的膨胀、腐蚀以及开闭运算等操作。实验中没有直接自定义开闭运算函数,在操作过程中,使用同一结构元素对图像先膨胀后腐蚀,相当于闭运算

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

社恐患者

赚钱不易呜呜呜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值