版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数学形态学图像处理*本科学生毕业设计数学形态学图像处理学生:*学号:*指导教师:*专业:*二零一二年六月Japanguardandsui,respectivelystationedcountiessongling,shengze,pingWang,zhenzetownandtransporthub,buildingpositions,establishmentofmantell,implementingdotsoccupation.Theninothertownsandlargeruralareaswithouttheenemygarrison.Localoverabundanceguerri
2、llasinWujiang,inwhichfamousChengWanjun,ZhaoAnminforceinTaihuLakearea,strictareaofZhuXi'sTomb,Wuzhen,WangHesongforcesnorth,luqu,LiliforcefullyHaoDaosheng,ChenAyouYixingtroopseachfortheparty.Thefirsthalfof1938,thirdwarzoneCommanderoftheKuomintangandChairmanoftheJiangsuProvince,Guzhutong,appointedc
3、ommanderChengZerenShenLiqunandagainstselfdefence中文摘要数学形态学对图像的处理具有直观上的简明性和数学上的严谨性,在定量描述图像的形态特征上具有独特的优势,为基于形状细节进行图像处理提供了强有力的手段。建立在集合理论基础上的数学形态学,主要通过选择相应的结构元素采用膨胀、腐蚀、开启、闭合4种基本运算的组合来处理图像。数学形态学在图像处理中的应用广泛,有许多实用的算法,但在每种算法中结构元素的选取都是一个重要的问题。本课题旨在以数学形态学为基础,根据其基本算法膨胀、腐蚀、开运算与闭运算,基于VC+软件设计一个程序,观察其效果,评价其能力,弥补其缺陷
4、,为多媒体智能软件系统提供有效的工具。本文介绍了数学形态学的基本运算在图像处理中的主要应用,用集合理论描述图像和图像变换,通过图像各部分之间的关系来说明目标的结构特点。最后对数学形态学今后的研究、发展进行了展望。关键词:膨胀;腐蚀;数学形态学,图像处理1ABSTRACTMathematicalmorphologyimageprocessingwiththeintuitivesimplicityandmathematicalrigor,hasuniqueadvantagesinthequantitativedescriptionoftheimageonthemorphologicalcharac
5、teristics,andprovidesapowerfulmeansforthedetailsoftheshape-basedimageprocessing.Insettheorybasedonmathematicalmorphology,mainlyusedbyselectingtheappropriatestructuralelementsofexpansion,corrosion,open,closedcombinationoffourkindsofbasicoperationstohandleimages.Thewideapplicationofmathematicalmorphol
6、ogyinimageprocessing,therearemanypracticalalgorithm,buttheselectionofthestructuralelementsineachalgorithmisanimportantissue.Thissubjectisdesignedbasedonmathematicalmorphology,accordingtothebasicalgorithmexpansion,corrosion,openingoperationandclosingoperation,basedonVC+softwaredesignaprogramtoobserve
7、itseffects,toevaluatetheabilitytocompensateforitsshortcomings,multimediaintelligentsoftwaresystemeffectivetool.Thisarticledescribesthemainapplicationsofthebasicoperationsofmathematicalmorphologyinimageprocessing,andsettheorytodescribetheimageandtheimagetransformation,therelationshipbetweenthevarious
8、partsoftheimagetoillustratethestructuralcharacteristicsofthetarget.Finally,mathematicalmorphologyfutureresearch,developmentprospect.Keywords:dilation,erosion,mathematicalmorphology,imageprocessingJapanguardandsui,respectivelystationedcountiessongling,shengze,pingWang,zhenzetownandtransporthub,buildi
9、ngpositions,establishmentofmantell,implementingdotsoccupation.Theninothertownsandlargeruralareaswithouttheenemygarrison.LocaloverabundanceguerrillasinWujiang,inwhichfamousChengWanjun,ZhaoAnminforceinTaihuLakearea,strictareaofZhuXi'sTomb,Wuzhen,WangHesongforcesnorth,luqu,LiliforcefullyHaoDaosheng
10、,ChenAyouYixingtroopseachfortheparty.Thefirsthalfof1938,thirdwarzoneCommanderoftheKuomintangandChairmanoftheJiangsuProvince,Guzhutong,appointedcommanderChengZerenShenLiqunandagainstselfdefence目录第1章绪论1第2章形态学的理论22.1 膨胀22.2 腐蚀32.3 开运算42.4 闭运算4第3章BMP图像格式5第4章数学形态学用于图像处理94.1 腐蚀94.1.1 水平腐蚀94.1.2 垂直腐蚀134.1.
11、3 全方位腐蚀174.2 膨胀214.2.1 水平膨胀214.2.2 垂直膨胀254.2.3 全方向膨胀294.3 开运算与闭运算334.3.1 开运334.3.2 闭运34第5章结论35参考文献363第1章绪论数学形态学(MathematicalMorphology)诞生于1964年,是由法国巴黎矿业学院博士生赛拉(J.Serra)和导师马瑟荣,在从事铁矿核的定量岩石学分析及预测其开采价值的研究中提出“击中/击不中变换”,并在理论层面上第一次引入了形态学的表达式,建立了颗粒分析方法。他们的工作奠定了这门学科的理论基础,如击中/击不中变换、开闭运算、布尔模型及纹理分析器的原型等。数学形态学的基
12、本思想是用具有一定形态的结构元素去量度和提取图像中的对应形状以达到对图像分析和识别的目的。近几十年来,数学形态受到了国际学术界的广泛关注。例如国际光学工程年会(SPIE)在近年的年会中举办了数学形态学的专题,并且每年出版一本ImageAlgebraandMorphologicalImageProcessing。有关的国际际刊物和会议文集也刊登了大量的数学形态学的研究成果,如1986年计算机视觉与图形图像处理杂志(GVGIP)出版了数学形态学专刊。数学形态学已经成为图像处理的一个主要研究方向,它的理论和方法是图像分析领域的一个强有力的工具,尤其是与形状相关的内容,例如:计算机文字识别,医学图像处
13、理,工业检测,地质学,冶金学,机器人视觉,视频压缩等等方面都获得了非常成功的应用。最初,数学形态学处理的是二值图像,被称为“二值形态学”(BinaryMorphology)。它将二值图像看成集合,运用最简单的集合和几何运算,如:包含,交、并、补和平移等对原始图像进行探测。因为它的各种运算是基于集合的运算,计算简单且适合于并行计算,因此在二值图像的去噪、边界检测、骨架化、区域分割等方面都有非常重要的应用。为了使数学形态学能够处理灰度图像,人们提出了灰度数学形态学。从二值形态学到灰度形态学的方法有很多,主要有:阴影集方法(TheUmbraApproach)、阈值方法(TheThresholdSet
14、Approach)、完备格方法(TheCompleteLatticesApproach)以及模糊逻辑方法(TheFuzzyLogicApproach),其中完备格方法当前被认为是最合适的形态学理论框架,由二值图像推广到灰度图像是自然的,只需要将二值形态学中的交和并换分别换成取下确界和取上确界即可。1第2章形态学的理论数学形态学是由一组形态学的集合运算组成的,其基本运算有:膨胀、腐蚀、开运算和闭运算、击中/击不中、细化和粗化。这些基本运算在二值图像和灰度图像中各有特点。基于这些基本运算还可推导和组合各种数学形态学实用算法。其中膨胀和腐蚀是数学形态学方法中最基本的运算。膨胀和腐蚀的原理是利用一个称
15、作结构元素的“探针”收集图像的信息,当探针在图像中不断移动时,通过简单的逻辑运算便可考察图像各个部分之间的相互关系,从而了解图像的结构特征。2.1膨胀其定义是:把结构元素B平移a后得到B,若B击中X,我们记下这个aaa点。所有满足上述条件的a点组成的集合称做X被B膨胀的结果。用公式表示为:D(X)=a|Ba?X=XB,如图2.1.1所示。图2.1.1中X是被处理的对象,B是结构元素,不难知道,对于任意一个在阴影部分的点a,B击中X,所以Xa小被B膨胀的结果就是那个阴影部分。阴影部分包括X的所有范围,就象X膨胀了一圈似的,这就是为什么叫膨胀的原因。在图2.1.2中,左边是被处理的图象X(二值图象
16、,我们针对的是黑点),中间是结构元素B。膨胀的方法是,拿B的中心点和X上的点及X周围的点一个一个地对,如果B上有一个点落在X的范围内,则该点就为黑;右边是膨胀后的结果。可以看出,它包括X的所有范围,就象X膨胀了一圈似的。Japanguardandsui,respectivelystationedcountiessongling,shengze,pingWang,zhenzetownandtransporthub,buildingpositions,establishmentofmantell,implementingdotsoccupation.Theninothertownsandlarge
17、ruralareaswithouttheenemygarrison.Localover-abundanceguerrillasinWujiang,inwhichfamousChengWanjun,ZhaoAnminforceinTaihuLakearea,strictareaofZhuXi'sTomb,Wuzhen,WangHesongforcesnorth,luqu,LiliforcefullyHaoDaosheng,ChenAyouYixingtroopseachfortheparty.Thefirsthalfof1938,thirdwarzoneCommanderoftheKuo
18、mintangandChairmanoftheJiangsuProvince,Guzhutong,appointedcommanderChengZerenShenLiqunandagainstself-defence图2.1.1膨胀的示意图图2.1.2膨胀运算2.2腐蚀把结构元素B平移a后得到B,若B包含于X,我们记下这个a点,所有满aa足上述条件的a点组成的集合称做X被B腐蚀(Erosion)的结果。用公式表示为:E(X)=a|BX=XB,如图2.2.1所示。a图2.2.1腐蚀的示意图图2.2.1中X是被处理的对象,B是结构元素。不难知道,对于任意一个在阴影部分的点a,B包含于X,所以X被B
19、腐蚀的结果就是那个阴影部分。阴影a部分在X的范围之内,且比X小,就象X被剥掉了一层似的,这就是为什么叫腐蚀的原因。2.3开运算愚结构元素B对输入图像A的开运算记为A?B,定义为A?B=(A9B)B=UB+x:B十xA。从几何上看,开运算可以通过计算所有可以填入图像内部的结构元素平移的并求得。这也正是对A先腐蚀后膨胀运算的结果。开运算具有平滑功能,能清除图像的某些微小连接、边缘毛刺和孤立斑点。2.4闭运算空结构元素B对输入图像A的闭运算记为A?B,定义为A?B=(AB)8B。从儿何上看,闭运算是开运算的对偶运算,即是对A先膨胀后腐蚀运算的结果。闭运算具有过滤功能,可填平图像内部小沟、孔洞和裂缝,
20、使断线相连。Japanguardandsui,respectivelystationedcountiessongling,shengze,pingWang,zhenzetownandtransporthub,buildingpositions,establishmentofmantell,implementingdotsoccupation.Theninothertownsandlargeruralareaswithouttheenemygarrison.LocaloverabundanceguerrillasinWujiang,inwhichfamousChengWanjun,ZhaoAnm
21、inforceinTaihuLakearea,strictareaofZhuXi'sTomb,Wuzhen,WangHesongforcesnorth,luqu,LiliforcefullyHaoDaosheng,ChenAyouYixingtroopseachfortheparty.Thefirsthalfof1938,thirdwarzoneCommanderoftheKuomintangandChairmanoftheJiangsuProvince,Guzhutong,appointedcommanderChengZerenShenLiqunandagainstselfdefen
22、ce第3章BMP图像格式图像格式即图像文件存放在记忆卡上的格式,通常有JPEGTIFF、RAVWIo由于数码相机拍下的图像文件很大,储存容量却有限,因此图像通常都会经过压缩再储存。本课题主要用的是BM昭式的图像。BMP1一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMPC件所占用的空间很大。BMPC件的图像深度可选lbit、4bit、8bit及24bit。BMPC件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMPX件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图
23、形图像软件都支持BMPS像格式。典型的BMF0像文件由三部分组成:位图文件头数据结构,它包含BMFS像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMPS像的宽、高、压缩方法,以及定义颜色等信息。BMF0像,即通常所说的位图(Bitmap),是Windows系统中最为常见的图像格式。Windows3.0以前的版本只支持与设备相关位图DDB(DeviceDependentBitmap)。DDB1一种内部位图格式,它显示的图像依计算机显示系统的设置不同而不同,因此一般不存储为文件,与通常所说的BMPS像不同。在Windows.h中,结构体BITMAP义了DDEB图的类型、宽度、高度、颜色
24、格式和像素位值等,代码如下:typedefstructtagBITMAPintbmType;/位图类型,必须设为0intbmWidth;/位图宽度intbmHeight;/位图高度intbmWidthBytes;/位图中每一扫描行中的字节数BYTEbmPlanes;/颜色层数BYTEbmBitsPixel;/每一像素所占的位数voidFAR*bmBits;/存放像素值内存块的地址BITMAP;DDEfr不包括颜色信息,显示时是以系统的调色板为基础进行像素的颜色映射的。Windows只能保证系统调色板的前20种颜色稳定不变,所以DDER能保证正确显示少于20色的位图。WindowsSD视供标准的
25、DDBS图操彳函数;MFC中定义了CBitmap类来说明DDE©图,其中封装了与DDBa图5操作相关的数据结构和函数。Windows3.1以上版本提供了对设备无关位图DIB(DeviceIndependentBitmap)的支持。DIB位图可以在不同的机器或系统中显示位图所固有的图像。相对于DDBB言,DIB是一种外部位图格式,经常存储为常见的以BM次后缀的位图文件(有时也以DIB为后缀)。因此,通常所说的BMFa像,即是DIB位图。BMW图文彳包括4部分,即位图文件头结构BITMAPFILEHEADE新图信息头结构BITMAPINFOHEAD.ER图颜色表RGBQUAD位图像素数据
26、,BMP©图文件的结构如图3.1所示。位图文件头结构BITMAPFILEHEADER位图信息头结构BITMAPINFOHEADER位图颜色表RGBQUAD位图像素数据图3.1BMP位图文件的结构下面介绍BM收件头、BMPS图信息头、颜色表这3个结构体在Windows.h中的定义。1. BMP文件头BMPC件头含有BMPC件的类型、文件的大小、位图文件的保留字、位图数据距文件头的偏移量等信息。定义如下:typedefstructtagBITMAPFILEHEADERUINTbfType;/位图文件的类型,必须为BMDWORDbfSize;/位图文件的大小,以字节为单位UINTbfRes
27、erved1;/位图文件保留字,必须为0UINTbfReserved2;/位图文件保留字,必须为0DWORDbfOffBits;/位图数据距文件头的偏移量,以字节为单位BITMAPFILEHEADER;2. BMP位图信息头BM取图信息头用于说明位图的尺寸等信息,定义如下:typedefstructtagBIMAPINFOHEADERDWORDbiSize;/本结构所占用字节数LONGbiWidth;/位图的宽度,以像素为单位LONGbiHeight;/位图的高度,以像素为单位WORDbiPlanes;/目标设备的级别,必须为1Japanguardandsui,respectivelystat
28、ionedcountiessongling,shengze,pingWang,zhenzetownandtransporthub,buildingpositions,establishmentofmantell,implementingdotsoccupation.Theninothertownsandlargeruralareaswithouttheenemygarrison.LocaloverabundanceguerrillasinWujiang,inwhichfamousChengWanjun,ZhaoAnminforceinTaihuLakearea,strictareaofZhuX
29、i'sTomb,Wuzhen,WangHesongforcesnorth,luqu,LiliforcefullyHaoDaosheng,ChenAyouYixingtroopseachfortheparty.Thefirsthalfof1938,thirdwarzoneCommanderoftheKuomintangandChairmanoftheJiangsuProvince,Guzhutong,appointedcommanderChengZerenShenLiqunandagainstselfdefenceWORDbiBitCount;/每个像素所需的位数,必须是1(双色)、/4
30、(16色)、8(256色)或24(真彩色)之一DWORDbiCompression;/位图压缩类型,必须是0(不压缩)、/1(BI_RLE8压缩类型)或2(BI_RLE压缩类型)之一DWORDbiSizeImage;/位图的大小,以字节为单位LONGbiXPelsPerMeter;/位图水平分辨率,每米像素数LONGbiYPelsPerMeter;/位图垂直分辨率,每米像素数DWORDbiClrUsed;/位图实际使用的颜色表中的颜色数DWORDbiClrImportant;/位图显示过程中重要的颜色数BITMAPINFOHEADER;3. 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每
31、一个表项是一个RGBQUA®型的结构,且定义一种颜色,定义如下:typedefstructtagRGBQUADBYTErgbBlue;/蓝色的亮度(值范围为0,255)BYTErgbGreen;/绿色的亮度(值范围为0,255)BYTErgbRed;/红色的亮度(值范围为0,255)BYTErgbReserved;/保留,必须为0RGBQUAD;位图信息头和颜色表组成位图信息,BITMAPINFO吉构定义如下:typedefstructtagBITMAPINFOBITMAPINFOHEADERbmiHeader;RGBQUADbmiColorsi;BITMAPINFO;颜色表中RGB
32、QUAD构数据的个数由biBitCount来确定,当biBitCount=14. 8时,分别有2、16、256个表项;当biBitCount=24时,没有颜色表项。位图数据记录了位图的每一个像素值,记录顺序是在扫描行内从左到右、扫描行之间从下到上。位图的一个像素值所占的字节数如下:l当biBitCount=1时,8个像素占1个字节。l当biBitCount=4时,2个像素占1个字节。l当biBitCount=8时,1个像素占1个字节。l当biBitCount=24时,1个像素占3个字节。Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充,一个扫描行所占
33、的字节数计算方法如下:DataSizePerLine=(biWidthxbiBitCount+31)/87这是本设计中的一个关键点,无论对图像进行何种变换,都要进行扫描行的4字节对齐。除了上述的WindowsBM叫外,还有一种与其结构相似,但不完全相同的另一种BMPS像,即OS/2采用的BMP其与WindowsBMP勺主要区别是位图信息结构(信息头结构和颜色表结构)不同。而它们的图像位数据的存储方式是完全一样的。本设计只讨论Windows系统下的BMPS像,故对OS/2使用的BMP¥进行详细分析。Japanguardandsui,respectivelystationedcounti
34、essongling,shengze,pingWang,zhenzetownandtransporthub,buildingpositions,establishmentofmantell,implementingdotsoccupation.Theninothertownsandlargeruralareaswithouttheenemygarrison.LocaloverabundanceguerrillasinWujiang,inwhichfamousChengWanjun,ZhaoAnminforceinTaihuLakearea,strictareaofZhuXi'sTomb
35、,Wuzhen,WangHesongforcesnorth,luqu,LiliforcefullyHaoDaosheng,ChenAyouYixingtroopseachfortheparty.Thefirsthalfof1938,thirdwarzoneCommanderoftheKuomintangandChairmanoftheJiangsuProvince,Guzhutong,appointedcommanderChengZerenShenLiqunandagainstselfdefence第4章数学形态学用于图像处理程序运行结果:*L二呼之-工W_!_士.区"显砺EJr帜w
36、开肩修闰的嗡M,asAsB*aaMriVC+图像处理4.1 腐蚀4.1.1 水平腐蚀代码:voidFuShiYuPengZhangDib二ChuiZhiFuShi()LPBYTEp_data;指向DIB象素指针LPBYTElpSrc;指向源图像的指针LPBYTElpDst;/指向缓存图像的指针LPBYTEtemp;/指向缓存DIB图像的指针inti;intj;9intn;循环变量p_data=GetData();/找到DIB图像象素起始位置LONGwide=GetWidth();/DIB的宽度LONGheight=GetHeight();/DIB的高度灰度图像if(m_pBitmapInfoH
37、eader->biBitCount<9)/temp=newBYTEwide*height;/暂时分配内存,以保存新图像lpDst=(LPBYTE)temp;memset(lpDst,(BYTE)255,wide*height);/初始化新分配的内存,设定初始值为255/使用垂直方向的结构元素进行腐蚀for(j=1;j<height-1;j+)for(i=0;i<wide;i+)/由于使用3X1的结构元素,为防止越界,所以不处理最上边和最下边的两列像素/指向源图像倒数第j行,第i个象素的指针lpSrc=(unsignedchar*)(p_data+wide*j+i);lp
38、Dst=(unsignedchar*)(temp+wide*j+i);/指向目标图像倒数第j行,第i个象素的指针* lpDst=0;/目标图像中的当前点先赋成黑色/如果源图像中(0,-1)、(0,0)、(0,1)三个点之一有白点,/则将目标图像中的(0,0)点赋成白色for(n=0;n<3;n+)if(*(lpSrc+(n-1)*wide)>128)* lpDst=255;Japanguardandsui,respectivelystationedcountiessongling,shengze,pingWang,zhenzetownandtransporthub,building
39、positions,establishmentofmantell,implementingdotsoccupation.Theninothertownsandlargeruralareaswithouttheenemygarrison.LocaloverabundanceguerrillasinWujiang,inwhichfamousChengWanjun,ZhaoAnminforceinTaihuLakearea,strictareaofZhuXi'sTomb,Wuzhen,WangHesongforcesnorth,luqu,LiliforcefullyHaoDaosheng,C
40、henAyouYixingtroopseachfortheparty.Thefirsthalfof1938,thirdwarzoneCommanderoftheKuomintangandChairmanoftheJiangsuProvince,Guzhutong,appointedcommanderChengZerenShenLiqunandagainstselfdefencebreak;/复制腐蚀后的图像memcpy(p_data,temp,wide*height);/释放内存deletetemp;else/24位真彩色LONGDibWidth;/原图长、宽DibWidth=this->
41、;GetDibWidthBytes();/取得原图的每行字节数BYTE*p_temp=newBYTEheight*DibWidth;使用垂直方向的结构元素进行腐蚀/for(j=1;j<height-1;j+)for(i=0;i<DibWidth;i+=3)/由于使用3X1的结构元素,为防止越界,所以不处理最上边和最下边的两列像素/指向源图像倒数第j行,第i个象素的指针lpSrc=(unsignedchar*)(p_data+DibWidth*j+i);lpDst=(unsignedchar*)(p_temp+DibWidth*j+i);/指向目标图像倒数第j行,第i个象素的指针*
42、lpDst=0;/目标图像中的当前点先赋成黑色*(lpDst+1)=0;11*(lpDst+2)=0;/如果源图像中(0,-1)、(0,0)、(0,1)三个点之一有白点,/则将目标图像中的(0,0)点赋成白色for(intm=0;m<3;m+)for(n=0;n<3;n+)if(*(lpSrc+(n-1)*DibWidth)>128)*lpDst=255;break;else*lpDst=*lpSrc;lpSrc+;lpDst+;/复制腐蚀后的图像memcpy(p_data,p_temp,DibWidth*height);/释放内存deletep_temp;水平腐蚀后的图:J
43、apanguardandsui,respectivelystationedcountiessongling,shengze,pingWang,zhenzetownandtransporthub,buildingpositions,establishmentofmantell,implementingdotsoccupation.Theninothertownsandlargeruralareaswithouttheenemygarrison.LocaloverabundanceguerrillasinWujiang,inwhichfamousChengWanjun,ZhaoAnminforce
44、inTaihuLakearea,strictareaofZhuXi'sTomb,Wuzhen,WangHesongforcesnorth,luqu,LiliforcefullyHaoDaosheng,ChenAyouYixingtroopseachfortheparty.Thefirsthalfof1938,thirdwarzoneCommanderoftheKuomintangandChairmanoftheJiangsuProvince,Guzhutong,appointedcommanderChengZerenShenLiqunandagainstselfdefenceVC百图像
45、处理4.1.2垂直腐蚀代码:voidFuShiYuPengZhangDib二Shuipingfushi()/指向DIB象素指针LPBYTEp_data;/指向源图像的指针LPBYTElpSrc;/指向缓存图像的指针LPBYTElpDst;/指向缓存DIB图像的指针LPBYTEtemp;/循环变量inti;intj;intn;/找到DIB图像象素起始位置p_data=GetData();/DIB的宽度LONGwide=GetWidth();/DIB的高度LONGheight=GetHeight();if(m_pBitmapInfoHeader->biBitCount<9)/灰度图像1
46、3/暂时分配内存,以保存新图像temp=newBYTEwide*height;/初始化新分配的内存,设定初始值为255lpDst=(LPBYTE)temp;memset(lpDst,(BYTE)255,wide*height);/使用水平方向的结构元素进行腐蚀for(j=0;j<height;j+)for(i=1;i<wide-1;i+)/由于使用1X3的结构元素,为防止越界,所以不处理最左边和最右边的两列像素lpSrc=(unsignedchar*)(p_data+wide*j+i);/指向目标图像倒数第j行,第i个象素的指针lpDst=(unsignedchar*)(temp+
47、wide*j+i);/目标图像中的当前点先赋成黑色*lpDst=0;/如果源图像中(-1,0)、(0,0)、(1,0)三个点之一有白点,/则将目标图像中的(0,0)点赋成白色for(n=0;n<3;n+)if(*(lpSrc+(n-1)>128)*lpDst=255;break;Japanguardandsui,respectivelystationedcountiessongling,shengze,pingWang,zhenzetownandtransporthub,buildingpositions,establishmentofmantell,implementingdot
48、soccupation.Theninothertownsandlargeruralareaswithouttheenemygarrison.LocaloverabundanceguerrillasinWujiang,inwhichfamousChengWanjun,ZhaoAnminforceinTaihuLakearea,strictareaofZhuXi'sTomb,Wuzhen,WangHesongforcesnorth,luqu,LiliforcefullyHaoDaosheng,ChenAyouYixingtroopseachfortheparty.Thefirsthalfo
49、f1938,thirdwarzoneCommanderoftheKuomintangandChairmanoftheJiangsuProvince,Guzhutong,appointedcommanderChengZerenShenLiqunandagainstselfdefence/复制腐蚀后的图像memcpy(p_data,temp,wide*height);/释放内存deletetemp;else/24位真彩色LONGDibWidth;/原图长、宽DibWidth=this->GetDibWidthBytes();/取得原图的每行字节数BYTE*p_temp=newBYTEheig
50、ht*DibWidth;/使用水平方向的结构元素进行腐蚀for(j=0;j<height;j+)for(i=3;i<DibWidth-3;i+=3)/由于使用1X3的结构元素,为防止越界,所以不处理最左边和最右边的两列像素lpSrc=(unsignedchar*)(p_data+DibWidth*j+i);/指向目标图像倒数第j行,第i个象素的指针lpDst=(unsignedchar*)(p_temp+DibWidth*j+i);/目标图像中的当前点先赋成黑色*lpDst=0;*(lpDst+1)=0;*(lpDst+2)=0;/如果源图像中(-1,0)、(0,0)、(1,0)三
51、个点之一有白点,/则将目标图像中的(0,0)点赋成白色for(intm=0;m<3;m+)15for(n=0;n<3;n+)if(*(lpSrc+(n-1)*3)>128)*lpDst=255;break;else*lpDst=*lpSrc;lpSrc+;lpDst+;/复制腐蚀后的图像memcpy(p_data,p_temp,DibWidth*height);/释放内存deletep_temp;垂直腐蚀后的图:VC+图像处理Japanguardandsui,respectivelystationedcountiessongling,shengze,pingWang,zhen
52、zetownandtransporthub,buildingpositions,establishmentofmantell,implementingdotsoccupation.Theninothertownsandlargeruralareaswithouttheenemygarrison.LocaloverabundanceguerrillasinWujiang,inwhichfamousChengWanjun,ZhaoAnminforceinTaihuLakearea,strictareaofZhuXi'sTomb,Wuzhen,WangHesongforcesnorth,lu
53、qu,LiliforcefullyHaoDaosheng,ChenAyouYixingtroopseachfortheparty.Thefirsthalfof1938,thirdwarzoneCommanderoftheKuomintangandChairmanoftheJiangsuProvince,Guzhutong,appointedcommanderChengZerenShenLiqunandagainstselfdefence4.1.3全方位腐蚀代码:voidFuShiYuPengZhangDib二Quanfangxiangfushi()/指向DIB象素指针LPBYTEp_data;
54、/指向源图像的指针LPBYTElpSrc;/指向缓存图像的指针LPBYTElpDst;/指向缓存DIB图像的指针LPBYTEtemp;/循环变量inti;intj;intm;intn;/找到DIB图像象素起始位置p_data=GetData();/DIB的宽度LONGwide=GetWidth();/DIB的高度LONGheight=GetHeight();if(m_pBitmapInfoHeader->biBitCount<9)/灰度图像/暂时分配内存,以保存新图像temp=newBYTEwide*height;/初始化新分配的内存,设定初始值为255lpDst=(LPBYTE)
55、temp;17memset(lpDst,(BYTE)255,wide*height);/3X3的结构元素intB9=1,0,1,0,0,0,1,0,1;/使用全方向的结构元素进行腐蚀for(j=1;j<height-1;j+)for(i=1;i<wide-1;i+)/由于使用3X3的结构元素,为防止越界,所以不处理最左、右、上、下四边的像素/指向源图像倒数第j行,第i个象素的指针lpSrc=(unsignedchar*)(p_data+wide*j+i);/指向目标图像倒数第j行,第i个象素的指针lpDst=(unsignedchar*)(temp+wide*j+i);/目标图像中
56、的当前点先赋成黑色*lpDst=0;/如果源图像中3X3结构元素对应位置有白点/则将目标图像中的(0,0)点赋成白色for(m=0;m<3;m+)for(n=0;n<3;n+)if(Bm+n=1)continue;if(*(lpSrc+(1-m)*wide+(n-1)>128)Japanguardandsui,respectivelystationedcountiessongling,shengze,pingWang,zhenzetownandtransporthub,buildingpositions,establishmentofmantell,implementingdotsoccupation.Theninotherto
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年老年人服务专员招聘面试参考题库及答案
- 2025年医疗统计师招聘面试题库及参考答案
- 2025年前端开发工程师人员招聘面试参考题库及答案
- 2025年公寓经理人员招聘面试题库及参考答案
- 2025年学习和发展经理招聘面试参考题库及答案
- 2025年数字内容策略师招聘面试参考题库及答案
- 2025年商业智能工程师招聘面试题库及参考答案
- 2025年保险产品开发经理招聘面试题库及参考答案
- 2025年协议工程师招聘面试参考题库及答案
- 2025年客服支持工程师招聘面试题库及参考答案
- JJG 705-2014液相色谱仪行业标准
- (高清版)TDT 1056-2019 县级国土资源调查生产成本定额
- 新员工三个月转正的工作总结
- 岗位竞聘目标规划方案
- 济南建筑行业分析
- 组织架构调整与优化计划
- 小学一年级语文生字注音练习-上册
- 2023地下供水管网非开挖修复用塑料管道第1部分:总则
- GB/T 678-2023化学试剂乙醇(无水乙醇)
- 快感体验能力量表(TEPS)
- 燃气锅炉运行记录表
评论
0/150
提交评论