数字图像处理之matlab实验(五):形态学图像处理

这篇具有很好参考价值的文章主要介绍了数字图像处理之matlab实验(五):形态学图像处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

常见的形态学处理包括腐蚀、膨胀、开运算、闭运算。不同的操作有不同的作用,同样的操作在不同类型的图片上也有不同效果,具体效果如下表格所示。要求熟练掌握对二值图像的形态学处理。

不同操作对不同类型图像处理效果

一、对二值图像进行处理

1、结构元素

在开始形态学操作之前,要准备好结构元素,通常结构元素是凸的,并且有一个参考点。

数字图像处理之matlab实验(五):形态学图像处理

 我们会将结构元素的参考点滑过待处理图像的每一个像素,并考虑此时结构元素和图像区域的关系。下面定义一个结构元素,结构元素的图片效果、数值展示如下图:

数字图像处理之matlab实验(五):形态学图像处理数字图像处理之matlab实验(五):形态学图像处理

SE = strel('diamond',3);
GN=getnhood(SE)%获取结构元素的邻域
figure,imshow(GN,[]); 

2、腐蚀

腐蚀的作用是标记原图像中结构元素出现的位置,标记的位置为参考点所在的位置。

数字图像处理之matlab实验(五):形态学图像处理

Image=imread('menu.bmp');     %打开图像
BW=im2bw(Image);                %转换为二值图像
subplot(131),imshow(BW);title('原图像');
[h w]=size(BW);                  %获取图像尺寸
result=ones(h,w);                %定义输出图像,初始化为1
for x=2:w-1
    for y=2:h-1                    %扫描图像每一点,即结构元素移动到每一个位置
        for m=-1:1
            for n=-1:1             %当前点周围3×3范围,即3×3结构元素所覆盖范围
               if BW(y+n,x+m)==0  %该范围内有像素点为0,即该位置不能完全包含结构元素
                   result(y,x)=0;  %将参考点记录为背景点,即腐蚀掉
                   break;
               end
            end
        end
    end
end
subplot(132),imshow(result); title('自编程实现二值图像腐蚀');
SE=strel('square',3);             %创建结构元素
result=imerode(BW,SE);         %腐蚀运算
subplot(133),imshow(result); title('二值图像imerode');

3、膨胀

膨胀,具有让二值图像视觉加粗的效果,膨胀的方向,取决于结构元素,以下图结构元素为例,结构元素的参考点上下分别有两个像素,那么作用在这个结构元素的原图像会在上下两个方向膨胀两个像素。

数字图像处理之matlab实验(五):形态学图像处理数字图像处理之matlab实验(五):形态学图像处理

Image=imread('menu.bmp');             %打开图像
BW=im2bw(Image);                   %转换为二值图像
subplot(131),imshow(BW),title('显示原图像');
[h w]=size(BW);                      %获取图像尺寸
result=zeros(h,w);                     %定义输出图像,初始化为0
for x=2:w-1
    for y=2:h-1                      %扫描图像每一点,即结构元素移动到每一个位置
        for m=-1:1
            for n=-1:1               %当前点周围3×3范围,即结构元素为3×3大小
               if BW(y+n,x+m)       %结构元素所覆盖3×3范围内有像素点为1,即交集不为空
                   result(y,x)=1;      %将参考点记录为前景点
                   break;
               end
            end
        end
    end
end
subplot(132),imshow(result);title('自定义实现二值图像膨胀');
SE=strel('square',3);                 %创建结构元素
result1=imdilate(BW,SE);             %膨胀运算
subplot(133),imshow(result1);title('imdilate实现二值图像膨胀');

4、开运算和闭运算

开运算是用同一个结构元素对原图像先腐蚀后膨胀,常见应用是,消除感兴趣目标外部孤立的噪声点和细长的毛刺(尺寸都要比结构元素小)。

闭运算是用同一个结构元素对原图像先膨胀后腐蚀,常见应用是,消除感兴趣目标内部的孔洞。

数字图像处理之matlab实验(五):形态学图像处理

Image=imread('A.bmp');
BW=im2bw(Image);
SE=strel('square',3);
result1=imdilate(imerode(BW,SE),SE);
result2=imopen(BW,SE);              %用3×3结构元素进行开运算
figure,imshow(result1);title('开运算方法1');
figure,imshow(result2);title('开运算方法2');
result3=imerode(imdilate(BW,SE),SE);
result4=imclose(BW,SE);             %用3×3结构元素进行闭运算
figure,imshow(result3);title('闭运算方法1');
figure,imshow(result4);title('闭运算方法2');

5、形态学滤波

顾名思义,从图像中提取固定形状的原图像内容,提取的形状和结构元素的形状一致,这里用开运算实现,先进行腐蚀后进行膨胀,腐蚀时的结构元素尺寸需要大于不想要的形状,小于想要保留的形状尺寸;这样的腐蚀之后就能保证,只留下了感兴趣的目标形状,这样再膨胀一次就能恢复到初始形状的大小。

数字图像处理之matlab实验(五):形态学图像处理

Image=imread('pattern.jpg');
Th=graythresh(Image);
OriginBW=im2bw(Image,Th);
subplot(131);imshow(OriginBW);title('原始二值图像');
imwrite(OriginBW,'pattern1.bmp');
BW1=1-OriginBW;
se=strel('square',3);%结构元素为边长为3的正方形
BW2=1-imopen(BW1,se);
subplot(132);imshow(BW2);title('矩形块提取');
imwrite(BW2,'rectang1.bmp');
se45=strel('line',25,45);%结构元素为角度为45的线,长度为25个像素
BW3=1-imopen(BW1,se45);
subplot(133);imshow(BW3);title('线段提取');
imwrite(BW3,'line1.bmp');

6、平滑处理

通过先开运算后闭运算的操作,去除目标图像内部和外部的噪声。

数字图像处理之matlab实验(五):形态学图像处理

Image=imread('A.bmp');
BW=im2bw(Image);
subplot(131);imshow(BW);title('原图像');
SE=strel('square',4);
result1=imclose(imopen(BW,SE),SE);               %用3×3结构元素先开后闭
subplot(132);imshow(result1);title('先开后闭');
result2=imopen(imclose(BW,SE),SE);               %先闭后开
subplot(133);imshow(result2);title('先闭后开');

7、击中与不击中 

这个有点目标检测的意思,不仅需要内部形状满足结构元素,也需要外部形状满足结构元素,处理结果标记的是查找到的符合要求的位置。

数字图像处理之matlab实验(五):形态学图像处理

Image=zeros(12,12);   %定义目标图像Image
Image(2:6,3:5)=1;
Image(9:11,4:6)=1;
Image(3:5,8:10)=1;
Image(8:9,9:10)=1;
Image(2,10)=1;
Image(3,11)=1;
SE1=[0 0 0 0 0    %定义结构元素SE1
     0 1 1 1 0
     0 1 1 1 0
     0 1 1 1 0
     0 0 0 0 0];      
SE2=[1 1 1 1 1    %定义结构元素SE2
     1 0 0 0 1
     1 0 0 0 1
     1 0 0 0 1
     1 1 1 1 1];    
subplot(121),imshow(Image); title('原图像');
result1=imerode(Image,SE1); %结构元素SE1探测图像内部,结果为result1
Image1=~Image;  %目标图像Image求补
result2=imerode(Image1,SE2); %结构元素SE2检测图像外部,结果为result2
result=result1 & result2; %求出击中与否变换的结果result        
subplot(122),imshow(result); title('击中与否变换结果');


二、对灰度图进行处理

1、腐蚀和膨胀

对灰度图腐蚀后,图像整体变暗,亮细节被削弱;对灰度图膨胀后,图像整体变亮,暗细节被削弱;总之,经过腐蚀膨胀处理后,图像会变模糊;对彩色图像膨胀腐蚀处理后,是不是有一种油画的效果呢~

数字图像处理之matlab实验(五):形态学图像处理文章来源地址https://www.toymoban.com/news/detail-442296.html

数字图像处理之matlab实验(五):形态学图像处理
Image=(imread('maleman.gif'));
se=strel('ball',5,5);%选取球形结构元素
result1=imdilate(Image,se);%膨胀灰度图像
result2=imerode(Image,se); %腐蚀灰度图像
imshow(Image);title('原始灰度图像');
figure,imshow(result1);title('膨胀后的图像');
figure,imshow(result2);title('腐蚀后的图像');
imwrite(result1,'ym1.bmp');
imwrite(result2,'ym2.bmp');

到了这里,关于数字图像处理之matlab实验(五):形态学图像处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图像处理基础篇-形态学处理-边缘检测(matlab仿真与图像处理系列第4期)

    图像处理方面的老师,第一天学习以下内容和代码: 图像读取和显示:在Matlab中,可以使用imread函数读取图像,并使用imshow函数显示图像。以下是一个简单的示例代码: 图像滤波:滤波是图像处理中常用的一种技术,可以用来去除噪声、平滑图像等。以下是一些常见的滤波

    2024年02月11日
    浏览(47)
  • 基于图像形态学处理的目标几何形状检测算法matlab仿真

    目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程     matlab2022a        目标几何形状检测是计算机视觉领域中的重要任务之一,旨在从图像中自动识别和定位不同的几何形状,例如矩形、圆形、三角形等。这些形状检测在许

    2024年02月14日
    浏览(59)
  • 数字图像处理 - 形态学算法 - 颗粒划分 - 冈萨雷斯第三版 - 9.36

    形态学算法 - 颗粒分割 项目地址:https://github.com/LetMeFly666/MorphologicalAlgorithm_ParticleSegmentation 在线文档: https://maps.letmefly.xyz 显微应用中一个预处理步骤是从两组或更多组重叠的类似颗粒(见右图)中分离出单个独立的一种颗粒。假设所有颗粒的大小相同,提出一种产生3幅图

    2024年02月04日
    浏览(71)
  • 第九章 形态学图像处理

    图像形态学也叫数学形态学,是指一系列处理图像 形状特征 的图像处理技术,是一门建立在格伦和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论。其基本思想是利用一种特殊的 结构元 来测量或提取输入图像中相应的形状或特征,以便进一步进行图像分析

    2024年02月09日
    浏览(42)
  • 形态学运算与仿真:图像处理中形态学操作的简单解释

    形态学是图像处理领域的一个分支,主要用于描述和处理图像中的形状和结构。形态学可以用于提取图像中的特征、消除噪声、改变图像的形状等。其中形态学的核心操作是形态学运算。 形态学运算是一种基于形状的图像处理技术,它是通过结构元素与图像进行特定运算的方

    2024年02月04日
    浏览(67)
  • 图像处理技巧形态学滤波之腐蚀操作

    欢迎回来,我的图像处理爱好者们!今天,让我们深入研究图像处理领域中的形态学计算。这些非线性的图像处理技术允许我们操纵图像中对象的形状和结构。在本系列中,我们将依次介绍四种基本的形态学操作:腐蚀、膨胀、开操作和闭操作。 闲话少说,我们直接开始吧!

    2024年02月13日
    浏览(55)
  • OpenCV图像处理学习十,图像的形态学操作——膨胀腐蚀

    一.形态学操作概念 图像形态学操作是指基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学对图像进行处理。 形态学有四个基本操作:腐蚀、膨胀、开操作、闭操作,膨胀与腐蚀是图像处理中最常用的形态学操作手段。 二.形态学操作-膨胀 跟卷积

    2024年02月05日
    浏览(55)
  • OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

    图像显示 转hsv图像 颜色表示为三个组成部分:色调(Hue)、饱和度(Saturation)和亮度(Value)。常用于图像处理中,因为它允许调整颜色的感知特性,如色彩和亮度,这些在RGB颜色模型中不那么直观。 HSV模型特别适用于任务如图像分割和对象追踪,因为它可以更好地处理光

    2024年04月22日
    浏览(89)
  • 【计算机视觉】图像处理算法(形态学滤波篇)

    来源:《OpenCV3编程入门》,怀念毛星云大佬🕯️ 说明: 本系列重点关注各种图像处理算法的原理、作用和对比 数学形态学的概念: 数学形态学(Mathematical morphology)是立在格论和拓扑学基础之上的图像分析学科,足数学形态学阁像处现的基本理论。其基本的运算包括:二值腐

    2024年03月10日
    浏览(55)
  • 简要介绍 | 基于Python的图像形态学处理概述

    注1:本文系“简要介绍”系列之一,仅从概念上对基于Python的图像形态学处理进行非常简要的介绍,不适合用于深入和详细的了解。 Digital terrain models from airborne laser scanning for the automatic extraction of natural and anthropogenic linear structures In: Geomorphological Mapping: a professional handbook of

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包