ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:221.19KB ,
资源ID:5362862      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5362862.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VC++实现图像的二值处理.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VC++实现图像的二值处理.docx

1、VC+实现图像的二值处理VC+实现图像的二值处理 作者: 日期: Visual C+实现二值图像处理二值图像是一种简单的图像格式,它只有两个灰度级,即”0表示黑色的像素点,255”表示白色的像素点,至于如何从一幅普通的图像获得二值图像,请参考我近期在天极网上发表的Visual C+编程实现图像的分割一文。 二值图像处理在图像处理领域占据很重要的位置,在具体的图像处理应用系统中,往往需要对于获得的二值图像再进一步进行处理,以有利于后期的识别工作。二值图像处理运算是从数学形态学下的集合论方法发展起来的,尽管它的基本运算很简单,但是却可以产生复杂的效果。常用的二值图像处理操作有许多方法,如腐蚀、膨胀

2、、细化、开运算和闭运算等等。本文对这些内容作些研究探讨, 希望对爱好图像处理的朋友有所帮助。一、腐蚀和膨胀形态学是一门新兴科学,它的用途主要是获取物体拓扑和结果信息,它通过物体和结构元素相互作用的某些运算,得到物体更本质的形态。它在图像处理中的应用主要是:1.利用形态学的基本运算,对图像进行观察和处理,从而达到改善图像质量的目的;2.描述和定义图像的各种几何参数和特征,如面积,周长,连通度,颗粒度,骨架和方向性。限于篇幅,我们只介绍简单二值图像的形态学运算,对于灰度图像的形态学运算,有兴趣的读者可以看有关的参考书。二值图像基本的形态学运算是腐蚀和膨胀,简单的腐蚀是消除物体的所有边界点的一种过程

3、,其结果是使剩下的物体沿其周边比原物体小一个像素的面积.如果物体是圆的,它的直径在每次腐蚀后将减少两个像素,如果物体在某一点处任意方向上连通的像素小于三个,那么该物体经过一次腐蚀后将在该点处分裂为二个物体。简单的膨胀运算是将与某物体接触的所有背景点合并到该物体中的过程。过程的结果是使物体的面积增大了相应数量的点,如果物体是圆的,它的直径在每次膨胀后将增大两个像素.如果两个物体在某一点的任意方向相隔少于三个像素,它们将在该点连通起来。下面给出具体的实现腐蚀和膨胀的函数代码:/二值图像腐蚀操作函数从上面的说明可以看出,腐蚀可以消除图像中小的噪声区域,膨胀可以填补物体中的空洞。对一个图像先进行腐蚀运

4、算然后再膨胀的操作过程称为开运算,它可以消除细小的物体、在纤细点处分离物体、平滑较大物体的边界时不明显的改变其面积。如果对一个图像先膨胀然后再收缩,我们称之为闭运算,它具有填充物体内细小的空洞、连接邻近物体、在不明显改变物体面积的情况下平滑其边界的作用。通常情况下,当有噪声的图像用阈值二值化后,所得到的边界是很不平滑的,物体区域具有一些错判的孔洞,背景区域散布着一些小的噪声物体,连续的开和闭运算可以显著的改善这种情况,这时候需要在连接几次腐蚀迭代之后,再加上相同次数的膨胀,才可以产生所期望的效果。为了更好的显示出二值图像的处理效果,我们仍旧以图像采集卡获取的汽车图像为处理源图像,下图为处理后的

5、效果:(b)开运算处理图一 开运算效果图上图中,a图为包含噪声的图像,b图为经过腐蚀膨胀处理后的图像,可以看出,经过上述处理,成功的消除了图像中的噪声点,同时又起到了平滑边缘的作用。二、细化图像处理中物体的形状信息是十分重要的,为了便于描述和抽取图像特定区域的特征,对那些表示物体的区域通常需要采用细化算法处理,得到与原来物体区域形状近似的由简单的弧或曲线组成的图形,这些细线处于物体的中轴附近,这就是所谓的图像的细化。通俗的说图像细化就是从原来的图像中去掉一些点,但仍要保持目标区域的原来形状,通过细化操作可以将一个物体细化为一条单像素宽的线,从而图形化的显示出其拓补性质。实际上,图像细化就是保持

6、原图的骨架。所谓骨架,可以理解为图象的中轴,例如一个长方形的骨架是它的长方向上的中轴线;正方形的骨架是它的中心点;圆的骨架是它的圆心,直线的骨架是它自身,孤立点的骨架也是自身。对于任意形状的区域,细化实质上是腐蚀操作的变体,细化过程中要根据每个像素点的八个相邻点的情况来判断该点是否可以剔除或保留。下面我们给几个例子来说明如何判断当前像素点是否该保留或剔除.图二 根据某点的八个相邻点的情况来判断该点是否能删除上图给出了当前需要处理的像素点在不同的八邻域条件下的情况,可以看出:(1)不能删,因为它是个内部点,我们要求的是骨架,如果连内部点也删了,骨架也会被掏空的;(2)不能删,和(1)是同样的道理

7、;(3)可以删,这样的点不是骨架;(4)不能删,因为删掉后,原来相连的部分断开了;(5)可以删,这样的点不是骨架;(6)不能删,因为它是直线的端点,如果这样的点删了,那么最后整个直线也被删了,剩不下什么;(7)不能删,因为孤立点的骨架就是它自身。 总结一下,有如下的判据:1。内部点不能删除;2。孤立点不能删除;3.直线端点不能删除;4。如果P是边界点,去掉P后,如果连通分量不增加,则P可以删除。我们可以根据上述的判据,事先做出一张表,从0到255共有256个元素,每个元素要么是0,要么是1.我们根据某点(当然是要处理的黑色点了)的八个相邻点的情况查表,若表中的元素是1,则表示该点可删,否则保留

8、。查表的方法是,设白点为1,黑点为0;左上方点对应一个8位数的第一位(最低位),正上方点对应第二位,右上方点对应的第三位,左邻点对应第四位,右邻点对应第五位,左下方点对应第六位,正下方点对应第七位,右下方点对应的第八位,按这样组成的8位数去查表即可。例如上面的例子中(1)对应表中的第0项,该项应该为0;(2)对应37,该项应该为0;(3)对应173,该项应该为1;(4)对应231,该项应该为0;(5)对应237,该项应该为1;(6)对应254,该项应该为0;(7)对应255,该项应该为0。仔细考虑当前像素点的各种八邻域的情况,我们可以得到一个细化操作查找表,该表在下面的细化算法中详细介绍。本文

9、为互联网收集,请勿用作商业用途文档为个人收集整理,来源于网络为了避免分裂物体,细化的过程分为两个步骤,第一步是正常的腐蚀操作,但是它是有条件的,也就是说那些被标记的可除去的像素点并不立即消去;在第二步中,只将那些消除后并不破坏连通性的点消除,否则的话保留这些边界点。以上的步骤是在一个3x3邻域内运算,可以通过查表实现细化的操作。算法的实现步骤如下:1) 定义一个3x3模板和一个查找表,模板和查找表分别如图二和表一所示:表一 细化查找表2)对二值图像从上到下、从左到右进行扫描;该过程结束后再对图像进行从左到右,从上到下的扫描;如果图像中当前像素点的灰度值为”0,且其左右(第一次扫描过程考虑左右像

10、素点)或上下(第二次扫描过程考虑上下两个像素点)两个像素点中有任意一个为255”则转至步骤三,否则回转到步骤二;3) 该像素点为中心的3x3区域内的各个像素值和定义的模板中的权值进行卷积求和,得到表4.1中的查找索引值k;4) 根据这个索引值k得到表里相应的数据,如果为”1,那么该像素点的灰度值设为”255,如果为”0,则该像素点的灰度值为0”。5) 图像从头至尾扫描二遍后,如果该次扫描修改了图像中的点,则跳转至步骤二,开始新的一轮扫描.否则图像细化结束。为了实现图像的细化算法,笔者定义了一个细化函数,具体实现代码如下:(b)图三 细化效果图三、图像的几何校正CCD获取的图像有时几何变形严重,

11、细心的读者可以发现有时作为直线在获取的图像中已经类似为弧线,所以在图像处理系统中,经常要要对图像消除畸变。设原图像(未畸变图像)用( )坐标系,畸变图像坐标系为( ),两个坐标系之间的关系为:=h ( ) ; =h ( ) ;在消除摄像头几何畸变的已有工作中,可以将校正方法分为两类:一类是坐标转换函数h 、h 已知的情况下对图像进行校正,另一类是对这两个函数未知的情况下对图像进行校正。设 为待校正的畸形图像,g(x,y)为校正后所得到的图像,两个图像的坐标关系h ,h 是已知的情况下,这种校正方法就是根据这些函数确定与g(x,y)图像中点(x,y)相对应的( ),由对应点的灰度级设置g(x,y

12、)。若点( )正好落在f中的数字化网格上,则用该网格的灰度值来确定g(x,y)的值;但是一般情况下,( )不一定是整数,既不一定落在数字化网格上,通常有两种方法解决这种问题:1)找到最接近( )的网格,由该网格的灰度值来确定g(x,y)的灰度;2)用( )周围四个相邻的网格点的灰度的加权内插来作为g(x,y)的值,特殊情况可以选取均值.这种方法对于图像的几何尺寸的缩小、放大和图像旋转的应用都能取得较好的效果。在不知道两个坐标关系的情况,对于大面积的图像来讲不一定是线性畸变,但是取一小块却可以近似认为是线性畸变.那么就可以将畸变系统和校正系统坐标用下列线性方程来联系:; ;将畸变图像按具体的情况

13、和经验分成若干小区,每个小区找三个点,利用已知图像和经验数据找到对应的点,根据这种关系确定两个坐标系之间的坐标关系,既上述式中的各个系数,然后在按已知坐标关系的情况校正图像。在实际图像处理系统中,我们得到的图像和校正图像的坐标转换关系是不可预知的,采用上述第二种情况的处理方法,牵涉到畸变图像的控制点的选取和确定校正后的控制点的位置,这样所需工作量就很大,为此,可以采用一种计算机自动识别控制点和确定控制点的坐标的方法。一般情况下,我们可以近似认为以CCD光轴为中心的一个小的圆形区域形成的图像没有畸变或畸变很小可以忽略不记,正是基于上述考虑,我们以CCD光轴在水平面上的投影点为中心确定一个正方形,

14、在该正方形的四个顶点的位置作四个”十字型,十字型的交点对应着四边形的端点,以这四个点来作为控制点,在图像中确定控制点后,根据考试场地的各边端点与控制点的坐标关系,确定校正后的边界位置。在上述方法实现校正几何畸变的过程中,最重要的是如何自动判别控制点,这里介绍采用模板匹配的方法识别十字型,针对”十”字交叉线会出现多种不规则的现象,共设计了四个模板,各个模板如图四所示:模板一用于识别图像内垂直的”十字所包含的控制点.模板二用于识别横线上的控制点,其中a,b,c中有且只有一个”0;d,e,f中亦然。模版三用于识别竖线上的控制点,其中A,B,C中有且只有一个”0,D,E,F亦然。模板四用来搜索中心断裂的”十字。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1