`
海王子1994
  • 浏览: 45206 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

图像处理之二值化形态学(1)

 
阅读更多

  在弄图像处理的时候,我们都会经常接触到“二值化”这个名词。例如下面的指纹识别流程中,二值化是作为指纹图像预处理中间关键的一环。

 



 

在此之前,如果你对图像处理的基础知识不熟悉,可以看下之前写的博客巩固下,方便下面的理解。大笑


 

要了解二值化,我们就要认识二值形态学,因为二值化是它其中的一部分内容。二值形态学里的涉及的基本运算及操作多而且偏复杂,需要有一定的耐心才能很好消化吸收。
 

二值形态学

 

1.1基本思想:用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。

 

1.2优点:
1)在图像恢复处理中,基于数学形态学的形状滤波器可借助于先验的几何特征信息,利用形态学算子有效地滤除噪声,又可以保留图像中的原有信息。
2)边缘信息提取处理,不像微分算法对噪声那样敏感,同时,提取的边缘也比较平滑,利用数学形态学方法提取的图像骨架也比较连续、断点少。

 

2.图像形态学

 

首先,我们要认识下最为常用的两个概念,膨胀腐蚀

 

a.膨胀:给图像中的对象边界添加像素,输出像素值是输入图像相应像素邻域内所有像素的最大值。

b.腐蚀:删除图像边界元素,输出像素值是输入图像相应像素邻域内所有像素的最小值。

 

然后,由于膨胀和腐蚀不是互为逆运算,所以可以结合膨胀和腐蚀,又产生了两种运算:开启和闭合。

 

c.开启:先对图像做腐蚀运算,然后对腐蚀结果做膨胀运算。——消除了尺寸较小的亮细节

d.闭合:先对图像做膨胀运算,然后对膨胀结果做腐蚀运算。——消除了尺寸较小的暗细节

 

 谈到膨胀和腐蚀运算,就必须扯到结构元素,它就好比是工具一样。在通常情况下,形态学图像处理以在图像中移动一个结构元素并进行一种类似卷积操作的方式进行。运算产生的效果是取决于结构元素的大小、内容以及逻辑运算的性质。它可以具有任意大小,也可以包含任意的0与1组合。

 

例:

function A=exa_delete(I)
bw=imread(I);
se=strel('line',11,90);   %创建一个线性结构元素
bw2=imdilate(bw,se);      %用线性结构元素来做膨胀操作
bw3=imerode(bw,se);       %用线性结构元素来做腐蚀操作
I1=bwmorph(bw,'open');    %对图像进行开启运算     
I2=bwmorph(bw,'close');   %对图像进行闭合运算
subplot(2,3,1);
imshow(bw);title('原始图像');
subplot(2,3,2);
imshow(bw2);title('膨胀图像');
subplot(2,3,3);
imshow(bw3);title('腐蚀图像');
subplot(2,3,4);
imshow(I1);title('开启运算图像');
subplot(2,3,5);
imshow(I2);title('闭合运算图像');

 



 

 这里说下bwmorph函数,它的功能是对图像做指定的形态运算

 

语法格式:BW2=bwmorph(BW1,operation,n)

 

注:
1)n表示次数,可以取Inf,在这种情况下,操作将持续到图像不再变化为止
2)BW1可以取double型或者unit8型。

 

operation参数有非常多,如bothat(闭合运算)、fill(填充运算)、bridge(连接运算)等等,所以这个函数可以实现的功能非常多!!!

 

3. 细化与骨架提取

 

细化:把输入的具有一定宽度的图像轮廓用逐次去掉边缘的方法最终变为宽度仅为一个像素的骨架。

 

细化通过两步腐蚀来实现:
1)有条件的正常腐蚀,那些被标为除去的像素点并不立刻被除去
2)只去掉那些消除后不破坏连通性的点

 

抽取骨架:也称为中轴变换或焚烧草技术。中轴是所有与物体在两个或更多非邻接边界点处相切的圆心的轨迹。概念上,中轴可设想成按如下方式形成:想象一片与物体形状相同的草,沿其外围各点同时点火,火势向内蔓延,向前推进的火线相遇处各点的轨迹就是中轴。

 

 例:

 

function A=exa_delete(I)
BW1=imread(I);
imshow(BW1);
%用形态学算子去掉图像的内点:若像素的四邻域为1,则像素值为0,使边缘像素是亮点
BW2=bwmorph(BW1,'remove');
%用形态学算子抽取图像的骨架
BW3=bwmorph(BW1,'skel',Inf);
%用形态学算子细化图像
BW4=bwmorph(BW1,'thin',Inf);
subplot(2,2,1);
imshow(BW1);title('原图像');
subplot(2,2,2);
imshow(BW2);title('去除内点图像');
subplot(2,2,3);
imshow(BW3);title('图像骨架');
subplot(2,2,4);
imshow(BW4);title('图像细化');

 

高帽变换可以增强图像的对比度,体现了原始图像中的灰度峰值。

 

function A=exa_delete(BW)
I=imread(BW);
subplot(1,3,1);
imshow(I),title('原始图像');
se=strel('disk',12);
J=imtophat(I,se);    %利用结构元素,进行高帽变换
subplot(1,3,2);
imshow(J);title('高帽变换的结果');
%为了提高图像的可视化,进行直方图变换
K=imadjust(J,stretchlim(J));
subplot(1,3,3);
imshow(K);title('对比度增强的结果');

 

 

 

 

 

 

 

 

  • 大小: 12.8 KB
  • 大小: 3.9 KB
  • 大小: 28 KB
  • 大小: 172.8 KB
1
2
分享到:
评论
3 楼 laogao3232 2015-04-10  
我当年毕业设计就是用matlab处理图像的。
2 楼 jhq198 2015-04-10  
comsci 写道
老大,你这个软件是什么语言开发的? 开源否?

明显人家打了matlab的标签啊 呵呵
1 楼 comsci 2015-04-10  
老大,你这个软件是什么语言开发的? 开源否?

相关推荐

    二值形态学图像处理

    图像处理,关于二值化后的形态学处理~包括膨胀腐蚀,开闭过程

    数字图像处理,利用Open CV对图像进行二值化,中值滤波降噪,图像空洞进行处理,图像形态学处理,找出检测对象+源代码+文档说明

    数字图像处理,利用Open CV对图像进行二值化,中值滤波降噪,图像空洞进行处理,图像形态学处理,找出检测对象+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,...

    matlab图像二值化

    Matlab 图像二值化技术详解 Matlab 图像二值化是将图像转换为黑白二进制图像的过程...Matlab 图像二值化技术可以用于图像处理、模式识别、图像分割等领域,并且可以通过选择合适的阈值或形态学操作实现图像的二值化。

    数字图像处理 二值化变换

    在实践中,二值化变换经常与其它图像处理技术结合使用,如膨胀、腐蚀、开闭运算等形态学操作,以进一步优化图像质量和提取目标特征。通过熟练掌握这些基本概念和技术,可以有效地解决图像处理中的各种问题,提高算法...

    erzhihua.rar_LABVIEW图像处理_labview 二值化_labview 图像_labview二值化_labvi

    LabVIEW的图像处理功能不仅限于二值化,还包括颜色空间转换、形态学操作、边缘检测、模板匹配等。这些功能可以通过LabVIEW的图形化编程方式灵活组合,为用户提供了强大的图像处理工具。对于学习者而言,通过"二值化...

    图像二值化操作

    在您提供的压缩包文件中,我们可以推测包含的资源可能是一个C语言开发的图像处理工具或库,它支持二值化以及一些基本的形态学操作。 首先,我们要理解什么是二值化。在灰度图像中,像素的灰度值范围通常为0到255,...

    大津法二值化并形态学腐蚀.doc

    大津法二值化与形态学操作是图像处理领域中非常重要的两个技术。大津法二值化能够有效地区分图像中的前景与背景,而形态学操作则能够在图像预处理阶段提高图像质量,为后续的特征提取和模式识别等任务提供更好的基础...

    图像处理课程设计(形态学)

    图像处理课程设计(形态学) 本课程设计旨在熟悉基本图像增强方法的原理,掌握 MATLAB 中的图像处理工具箱和常用的图像处理函数,以及掌握灰度拉伸、直方图均衡化、均值滤波和中值滤波的基本原理与实现方法。课程...

    图像二值化

    综上所述,本文介绍了一种基于数学形态学的图像二值化方法,该方法通过结合腐蚀、膨胀、均值滤波以及不同阈值的二值化操作,有效地实现了对图像的预处理和二值化。此外,还提供了一个MATLAB示例代码以及ERDAS和ENVI...

    数字图像处理中的二值化 开运算 闭运算 有图

    在数字图像处理领域,二值化、开运算和闭运算是三个重要的图像处理技术,它们在图像分割、噪声去除和形态学操作等方面有着广泛应用。这些技术对于理解和分析图像内容至关重要,尤其是在计算机视觉、医学影像分析以及...

    图像黑白化处理_图像二值化_

    在图像处理领域,黑白化处理和图像二值化是两种重要的技术,主要用于将彩色或灰度图像转换为黑白(二值)图像。这种转换对于文本识别、二维码读取、图像分割以及很多计算机视觉应用至关重要。下面我们将深入探讨这两...

    matlab数学形态学图像处理:33 骨架化形态学运算.zip

    本资料“matlab数学形态学图像处理:33 骨架化形态学运算.zip”着重介绍了如何在MATLAB环境中进行骨架化的操作。 骨架化是将图像转化为其最瘦的表示形式,即图像的“骨架”,它保留了图像的主要结构特征,但去除了...

    图像处理之图像二值化处理_图像处理_

    在图像处理领域,二值化是一项基础且至关重要的技术,尤其在计算机视觉、模式识别以及文档扫描等领域有着广泛应用。图像二值化处理是将图像转化为黑白两色调的处理过程,通常将像素点的灰度值设定为0(黑色)或255...

    图片二值化_labview_二值化_图片处理二值化_

    总结来说,"图片二值化_labview_二值化_图片处理二值化_"这个主题涉及了图像处理的基本概念,特别是二值化技术,以及如何在LabVIEW环境中实现这一过程。通过使用LabVIEW创建的"图片二值化.vi",我们可以便捷地对图像...

    图像二值化-轮廓提取-细化1

    图像二值化和轮廓提取是图像处理中的基础步骤,它们对于图像分析、识别和压缩具有重要意义。在C#中进行图像处理,我们可以利用各种库,如AForge.NET或OpenCV来实现这些功能。 首先,我们要了解图像二值化的概念。二...

    高级图像处理综合-灰度图像二值化 +灰度图像最大连通域 +形态学提取二值化图像骨架+源代码+文档说明

    高级图像处理综合-灰度图像二值化 +灰度图像最大连通域 +形态学提取二值化图像骨架+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功...

    二值化-MATLAB.rar_二值化图像_二值化算法_图像二值化_图像二值化算法_图像的二值化

    二值化是图像处理中的一个基础且重要的步骤,它将图像转换为只有黑白两种颜色的图像,即二值图像。这种技术广泛应用于文字识别、噪声去除、图像分割和形状分析等场景。MATLAB作为强大的科学计算环境,提供了丰富的...

    morphological.zip_Morphological_dilate_图像膨胀_形态学图像二值化_腐蚀膨胀

    在图像处理领域,形态学操作是一种非常重要的技术,主要用于处理二值图像。本文将深入探讨“morphological.zip”压缩包中的“Morphological_dilate_图像膨胀_形态学图像二值化_腐蚀膨胀”相关知识点,并结合提供的...

    图像分割方法之数学形态学技术

    数学形态学是计算机图像分割的经典方法,也是相对来说比较成熟的方法。

    基于形态学的图像二值化方法

    综上所述,基于形态学的图像二值化方法是一种有效的图像处理技术,尤其适合于需要保留边缘细节的应用场景。通过对图像进行适当的预处理并结合数学形态学原理,可以显著提高图像二值化的质量和效果。

Global site tag (gtag.js) - Google Analytics