在弄图像处理的时候,我们都会经常接触到“二值化”这个名词。例如下面的指纹识别流程中,二值化是作为指纹图像预处理中间关键的一环。
在此之前,如果你对图像处理的基础知识不熟悉,可以看下之前写的博客巩固下,方便下面的理解。
要了解二值化,我们就要认识二值形态学,因为二值化是它其中的一部分内容。二值形态学里的涉及的基本运算及操作多而且偏复杂,需要有一定的耐心才能很好消化吸收。
二值形态学
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('对比度增强的结果');
相关推荐
图像处理,关于二值化后的形态学处理~包括膨胀腐蚀,开闭过程
数字图像处理,利用Open CV对图像进行二值化,中值滤波降噪,图像空洞进行处理,图像形态学处理,找出检测对象+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,...
高级图像处理综合-灰度图像二值化 +灰度图像最大连通域 +形态学提取二值化图像骨架+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功...
数学形态学是计算机图像分割的经典方法,也是相对来说比较成熟的方法。
二值化 开运算 闭运算 带图 详细代码 数字图像处理学习有用
二、利用OTSU自适应阈值算法将灰度图像二值化处理后并取反运算 三、对二值图像进行形态学处理,腐蚀运算后进行开运算 四、对二值图像进行距离变换和初次分水岭变换 五、对imextendedmin的以下调用应该只产生大致位于...
形态学方法对下面的图像进行处理,消除光照的非均匀性,然后进行二值化处理,对二值化图像用形态学方法进行处理,统计图像中米粒的数量。
图像处理,包括图像的二值化,阈值分割,滤波以及形态学处理
对图像进行二值化,形态学滤波等处理,实现图序图像的自动减法,和滤波处理
matlab识别英文字母程序 附带图像处理二值化
基于灰度直方图和形态学处理的二值化算法研究,袁璐,李仁发,随着数字图像处理和模式识别技术的发展,字符识别技术得到了广泛的应用。二值化技术作为字符预处理的一个重要环节,对后续的字符
【项目资源】:数字图像处理,利用Open CV对图像进行二值化,中值滤波降噪,图像空洞进行处理,图像形态学处理,找出检测对象,并进行标记。ORB 进行特征向量提取,识别目标。包括C++、Java、python、web、C#、EDA等...
对创建的二值图像进行膨胀处理(matlab编程实现),膨胀会增长或粗化二值图像中的物体,我自己编写了一个用matlab编程实现二值化的例子
图像处理 源代码 腐蚀 膨胀 二值化 灰度变化 小波变换 目标跟踪之类的都有,vc6.0实现,书上的源代码,书isbn9787121067488
数学形态学图像处理应用广泛,可以用于图像去噪、特征提取、边缘检测、图像分割、形状识别、纹理分析、图像恢复与...常用的数学形态学运算有 4 个:膨胀、腐蚀、开启和闭合,都可以应用于二值图像和灰度图像处理中。
数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能.由于数字图像处理的各种算法的出现,使得...主要论述了利用MATLAB实现图像的二值化,二值图像的腐蚀、膨胀、开、闭等形态学处理.
为了更好地分离出目标信息,一般的做法是将摄像机的背景设置得比较干净,这样就可以通过图像二值化的方法将目标提取出来。而提取前需要将背景和目标进行灰度处理。灰度图像信息是二维的,目标与背景好分割,所以阈值...
印刷显微网点图像的分割是实现印刷质量在线监测的基础。在对图像进行灰度化、图像增强、二值化处理的基础上,采用数学形态学对其进行的图像分割
基于数学形态学的背景噪声处理算法通过图像二值化、二值形态学处理及背景替换消除背景噪声。其减小了互信息配准测度的局部极值,改善了配准测度。