文档详情

二值图像的膨胀运算及其VC实现.docx

发布:2017-01-10约2.4千字共6页下载文档
文本预览下载声明
?二值图像的膨胀运算及其VC实现?本文主要对二值图像膨胀的定义、原理以及VC下实现方法进行总结,并通过图像处理结果对图像膨胀操作的功能以及使用场合进行讨论。1、定义?参考冈萨雷斯的经典教材,对Z空间中的集合A和B,使用B对A进行膨胀,可定义为:??可以理解膨胀过程为:首先得到膨胀结构元素相对于自身原点(按照本人的理解,对于对称的结构元素,原点为其对称中心,对于非对称的结构元素,原点由工程师根据相应的应用制定)的映射,然后根据此映射的z平移,如果结构元素的映射与集合A交集非空,则z属于膨胀后的集合。?按照本人的理解,这个定义的意思就是从图像的第一个像素点开始依行遍历全部像素,在每个像素点上,移动结构元素B的映射的中心与其重合,然后判断此位置的结构元素是否有对A集合的覆盖,如果有,则保留这个点,否则对此点取反(按照如下的符号约定,即将改点灰度值设置为0)。2、灰度值及逻辑约定?1)二值图像中,所有黑色像素的集合是图像完整的形态学描述?2)对于二值化后的图像:黑色表示灰度为0,白色表示灰度为255?3)对于形态学结构元素:黑色代表1,白色表示0?4)值为1的点组成完整的形态学结构元素3、VC实现灰度图的二值膨胀?首先贴上代码,然后再进行说明。作者实现的代码如下:/*************************************************************************?*?*?\函数名称:?*DilationAlgorithm()?*?*?\输入参数:?*pGrayMat:二值图像数据?*pErosionMat:输出的腐蚀图像数据?*???width:图形尺寸宽度?*???height:图形尺寸高度?*nWindows:腐蚀操作结构元素尺寸,当nWindows=3时,如下:?*??????????????????????????????????1????1????1?*??????????????????????????????????1????1????1?*??????????????????????????????????1????1????1?*?\返回值:?*无?*?\函数说明:??实现图像形态学算子-膨胀?*?************************************************************************/?void?CDilationDlg::DilationAlgorithm(CvMat?*pGrayMat,?CvMat?*pErosionMat,?int?width,?int?height,?int?nWindows)??{???int?nSize?=?(int)(nWindows/2);???for(int?i=0;?iheight;?i++)???{???for(int?j=0;?jwidth;?j++)???{???int?nFlag?=?1;//用于控制循环跳出??for(int?m=i-nSize;?m=i+nSize;?m++)???{???for(int?n=j-nSize;?n=j+nSize;?n++)???{???if((m=0)(mheight)(n=0)(nwidth))???{???double?nData?=?cvmGet(pGrayMat,?m,?n);???if((nData?==?0))??//如果覆盖区域有一个黑点,则设置保留当前结构元素中心点??{???nFlag=0;???break;???}?}?}???if(nFlag==0)???break;???}???if(nFlag==0)???{???double?nData?=?0;???cvmSet(pErosionMat,?i,?j,?nData);???}???else??{???double?nData?=?255;???cvmSet(pErosionMat,?i,?j,?nData);???}???}???}??}????对程序实现的主要说明如下:?1)选择腐蚀结构元素:本文对结构元素的选取不做过多的讨论,采用最简单常见的正方形结构元素,其全部像素均为1。这样一个结构元素相对于其原点的映射还是自身,因此在代码实现中没有进行相关的反射操作。所实现的函数DilationAlgorithm中最后一个参数用于控制结构元素尺寸。?2)边界处理:由于结构元素有一定的尺寸,因此当结构元素中心移动到图像边缘的若干个像素时,可能有一部分的结构元素超出了图像边界,这是本程序的处理方法是:将图像进行虚拟扩充,扩充的元素灰度值全部填255(根据上文定义,即为无意义的白色像素填充).?3)原始图像选择:所选择图片是白底上面有几个离散的黑点。这样可容易看出经
显示全部
相似文档