下载  >  开发技术  >  C++  > 数字图像处理 完整PDF版

数字图像处理 完整PDF版 评分

数字图像处理,完整PDF版
第8章形态学图像处理 注意:注意对于结构元素S,我们感兴趣的物体S1之外的背景S2不能选择得太宽, 因为使得S包含背景S2的目的仅仅是定义出物体S1的外轮廓,以便在图像中能够 找到准确的完全匹配位置。从这个意义上说,物体S周国有一个像素宽的背景环 绕就足够了,例83中选择了4个像素宽的背景,是为了使结构元素背景部分S2 看起来比较明显,但如杲背景部分过大,则会影响击中/击不中变换的计算结果 在上例中,中间的正方形Y与右上的正方形Z之间的水平距离为6,如果在定义S 时,S2的宽度超过6个像素,则最终的计算结果将是空集。 根据式(8-3)给出的对偶关系,式(8-7)还可表示为如下两种形式,然血,式(87) 更为直观,更易理解 AS=(AGS1)A曲S2) =(A○S1)-(AS2) (8-8) 2. Matlab实现 IPT中进行击中不中变换的函数为 bwhitmiss,调用形式为 工hm- whi tmis(,s1,s2); 参数说 I为输入图像 s1和S2即为式(8-7)中介绍过的结构元素。 返回值 Ihm是击中/击不中变换后的结果图像 如果使用 bwhitmis函数来完成例8.3,则只需下面的一句代码: rhm= bwhitmi.s(I,se,s2);号se和s2与在例B.3中时的意义相同 3. Visual c++实现 在821小节中介绍腐蚀的ⅤsuaC++实现时,已经提到了当结构元素中包含0时, Erode() 算法将具有模板匹配的功能,可直接用于实现击中不中变换。此时只有在结构元素se中 为1的元素下面的像素为0(图像中的前景黑色),同时e中为0的元素下面的像素为255 图像中的背景白色)的情况下才形成一个匹配,而se中为-1的元素下面的像素不关心,为 0或255均可。 为了实现标准的击中/不中变换,只需要如下设定结构元素se并调用Eode):在希望 匹配的物体周围加上一圈宽度至少为一个像素的背景,即在模板se中,用1表示物体,周围 加上至少一个像素宽的0即可 83,2边界提取与跟踪及其实现 轮廓是对物体形状的有力描述,对图像分析和识别十分有用。通过边界提取算法可以得 到物体的边界轮廓:而边界跟踪算法在提取边界的同时还能依次记录下边界像素的位置信息, 下面分别介绍。 数宇图像处理与杋器视觉— Visual c++与 Matlab实现 1.边界提取 要在二值图像中提取物体的边界,容易想到的一个方法是将所有物体内部的点删除(置 为背景色)。具体地说,可以逐行扫描原图像,如果发现一个黑点(图817中黑点为前景点 的8个邻域都是黑点,则该点为内部点,在目标图像中将它删除。实际上这相当于采用一 个3×3的结构元素对原图像进行腐蚀,使得只有那些8个邻域都有黑点的内部点被保留, 再用原图像减去腐蚀后的图像,恰好删除了这些内部点,留下了边界像素。这一过程可参 见图817。 b Cc) (dt a}原图像A,(b)腐蚀的结构元素S,(c)A被s腐蚀后,(d)用A减去 (c)中腐图像得到的边界图像,在图中贯穿像素中心的一条 黑色线标出了1个像素宽的边界 图817边界提取 【例8.4】边界轮廓提取 采用前述方法提取提取二值人脸图像边界轮廓的 Matlab程序如下: >>I= imread( head portrait.bmp);读入原图像 £gure, dshow(I);影得到图8.18(a)中的图像 >se=atre1(" square',3);83*3的正方形结构元素 >Ie= imerode(I,se);鲁腐蚀得到内部点 >Iout=I-Ie;减去内部点留下边界点 > fiqure, dshow(rout];得到图8.18〔b)中的图像 上述程序的运行结果如图818所示。 (b) 图818(a)侧面轮廓为二值化图像 head_ portrait. bmp,(b)采用上述方法边界提政后图像 292 第8章形态学图像处理 2.边界跟踪 为了依次记录下边界上的各个像素,边界跟踪首先按照某种扫描规则找到目标物体边界 上的一个像素,而后就以该像素为起始点,根据某种顺序(如顺时针或逆时针)依次找出物 体边界上的其余像素,直到又回到了起始点,完成整条边界的跟踪。 例如,我们可以按照从左到右、从上到下的顺序扫描 图像,这样首先会找到目标物体最左上方的边界点P0,显 然,这个点的左侧及上侧都不可能存在边界点(否则左侧 或者上侧的边界点就会成为第一个被扫描到的边界点),因 此不妨从左下方向逆时针开始探查,如左下方的点是黑点, 直接跟踪至此边界点,否则搡查方向逆时针旋转45°,直 至找到第一个黑点为止,跟踪至此边界点。找到边界点后, 在当前探查方向的基础上顺时针回转90°,继续用上述 方法搜索下一个边界点,直到探查又回到初始的边界点 P0,则可完成整条边界的跟踪。整个跟踪过程如图819 所示。 图8.19轮跟踪算法示意图 3.边界跟踪算法的suaC++实现 ★★青肯★★古肯★★青★西青青 void CImgProcess:: Trace Boundary (CGray* pTo) 功能:跟踪二值图像中第一个找到的物体的边界 注 只能处理2值图象 参数: gRay*pro:目标输出图像的 GRay指针 返回值:无 来青★青★★★南*/ void CImgProceas:: TraceBoundary (CImgProcess *pTo P2o-> InitPixels(255);//消空目标图像 int nHeight =GetHeight(): int nwidth= Getwidthpixel(); //环变量 nn t直 t /起始边昇点与当前边界点 POINT ptstarti PoINT ptcuri //搜索方向数组,(左下,下,右下,右,右上,上,左上,左 int Direction[8[2J【(-1,1},0,1},[1,11,(1,0),r-1},(0,-1}[-1,-1], 【-1,0】 int BeginDirect; int ncurDirect=3://当前探查方向 数字图像处理与机器视觉VsaC+与Maab实现 int xe。s int yPOs: //为true表示探查刚刚开始,为了区别 ptcr== restart的两种情况(一种开始,一种结束) bool bAtstartpti //算法不处理边界上的点,将图像的四周的一圆边界置白 for(i=0: i<nHeight: i++) Setpixel1(0,i,RGB(255;255,255)) SetPixel (nkidth-1, i, RGB (255, 255, 255))7 for(d-0: i<nwidth: 1++)( Setpixel(,0,RGa(255:255,255))2 SetPixel(i, nHeight-1, RGB (255, 255, 255))i 逐行扫描 for(=0主< nHeight;++ for(j=0; i<nwidth: j++) if(GetGray(j,i)==0)/找到最左上的第一个边界点 ptstart. x= J tstat. y=1i ptcur ptstart; bAtstartPt = true: while(((ptcur x I= ptstart. x)II (ptcur y !=ptstart y)) I bAtstartpt) bAtstartpt false //下一个探查位置 xPos ptCur x Direction [ncurDirect][O]: yPos =ptCur, y Direction [nCurDirect] [1]: int nSearchTimes 1 while( GetGray (xPos, yPos)==255 nCurDirect++;/逆时针旋转45 if(ncurDirect >=8) nCurDirect -= B: xPos= ptcr,x+ Direction【 ncurDirect]I0】 yPos ptCur y t Direction [ncurDirect][11: //8邻域中都没有边界点,说明是孤立点 主f【++ nSearchTime>=8) xPos= ptcr.Ki Pos ptcryi breaki 294 第8章形态学图像处理 //找到下一个边界点 ptcr, x=XPOS: ptCr. y =yPDg: //在新图像上标记边界 pTo->SetPixel (ptcur. x, ptcur. y, RGB(O, 0,0)): 在此处添加适当的代码,如果需要依次记录下边界点 ptCr 士害言★古古★宝士 //将当前探查方向顺时针回转90°作为下一次的探查初始方向 CurDirect -=21 if(ncur Direct 0) nCurDirect += 8: return: }/1主E /★★★★★末x*★ 在此处添加适当的代码,并去掉上面的 return语句,如果需要跟踪图像中所有物体的边界。 ★市★★★食古★★ )// for i M// for i 关于 Trace Boundary算法,还有以下几点需要说明。 如果需要在边界跟踪过程中依次记录各个边界点的坐标信息,可在代码中的适当位置 见代码中注释)将pCu保存起来,如保存到一个 vector数組中。 Trace Boundary只是跟踪了第1个找到的物体的边界(即最左上方物体的边界)就返 回。如果需要跟踪图像中所有物体的边界,可以通过多次调用 Trace Boundary或直接 修改函数本身(见代码中注释)实现,每跟踪完毕一个物体的边界就将该物体清除摔 置白),然后再继续跟踪其他物体的边界。 提示:在已知物体中的某个点的情况下,可以采用基于连通区域的方法清除该物体 有关连通区域的知识将在8.34小节中介绍。 TraceBoundary算法只能提取出物体的外轮廓,对于带有孔洞的物体,无法跟踪至其 孔洞的轮廓 利用 Trace Boundary O函数实现边界跟踪的完整示例被封装在 DIPDemo工程的视图类 函数 void cdiPdemo view: OnMorphTraceO中,调用 Trace Boundary函数的代码片断如下 所 /输出的临时对象 CImgProcess imgoutput imgInput: //调用 TraceBoundary()函数实现边界跟踪 img Input. TraceBoundarysimgoutput)F 数字困像处理与机器视觉 Visual c++与Matb实现 //将结果返回给文档类 pDoc->m Image imgoutput: 读者可以通过光盘示例程序 DIPDemo中的菜单命令“形态学变换→边界跟踪”来观察 处理效果。 8.33区域填充及其 Visual c++实现 区域填充可视为边昇提取的反过程,它是在边界己知的情况下得到边界包围的整个区域 的形态学技术。 理论基础 问题的描述如下:已知某一8连通边界和边界内部的某个点,要求从该点开始填充整个 边界包围的区域,这一过程称为“种子”填充,填充的开始点被称为“种子” 如图820所示,对于4连通的边界,其围成的内部区域是8连通的,而8连通的边界围 成的内部区域却是4连通的。 日 (a) Cb) (d) 图820(a)4连通边弄的8连通内部区域(b)用来填充4连通边昇的3×3结构元素 (c)8连通边界的4连通内部区域(d)用来填充B连通边界的十字结构元素 为了填充4连通的边界应选择图820(b)中的3×3结构元素,但如果想在8连通边界 内从种子点得到区域则需选用图820(d)的十字结构元素S对初始时仅为种子点的图像B 进行膨胀,十字结构元素S能够保证只要B在边界A的内部(不包括边界本身),每次膨胀 都不会产生边界之外的点(新膨胀出来的点或者在边界内部,或者落在边界上),这样只需 把每次膨胀的结果图像和边界的补图像A°相交,就能把膨胀限制在边界内部。随着对B的 不断膨胀,B的区域不断生长,但每次膨胀后与A的交又将B限制在边界A的内部,这样 一直到最终B充满整个A的内部区域,停止生长。此时的B与A的并集即为最终的厂 296 第8章形态学图像处理 充结果。 算法概要如下: 初始化:B0=种子点 循环:DoB1=(B曲S)∩A Until B + B 图8.21(d)~(j)形象地模拟了整个区域填充过程。 (a)8连通边界A (b)de c)十字结构元素S d)初始种子B (e)B用s膨账1次 ()B1=B∩A将膨胀限制在A之 (g)B1用S膨胀后 (h)B2=B1∩A将影胀限制在A之内 (i)量终膨胀结果B1=B )最终影胀结果B与边界A的并集BUA 图821区域填充效果模拦 数字图俾处理与机器视觉 Visual c++与 Matlab实现 2. Visual C++实现 食★★青女古害★★★齿重★世责★ void CImgProcess:: FillRgn(CImgProcess* pTo, POINT ptstart 功能:以 restart作为开始点(种子),对图像进行填充 注 只能处理2值图象,边界假定为8连通, ptstart必须在原图像*ths的边界之内 参数: CImg process*pTo:目标输出图像的 CImgProcess指针 POINT restart;种子点坐标 返回值:无 void CImg Process: FillRgn(CImg Process *PTo, POINT ptstart) ntse3][3]={1-1,1,-1},11,1,1},{-1,1,-1}:/+字形结构元素 int nHeight =GetHeight(): int nwidth GetwidthPixe1(); pTo->InitPixels(255); //濟空目标输出图像 CImgProcess revImg =(*this) i revImg =!revIgi //原图像的补,用来限制膨胀 pro-> Setpixel( restart,x; restart,y,BGB{00,0));/初始化目标图像为只有种子点 CImg Process tmpinmg=*p2o;//暂存上一次的运算结果 whi1e(true)/循环直到图像的受限膨胀不再产生变换 tamPing. Dilate(pTo,se);//用十字结构元素膨胀 po=* pTo s revImg;//限制膨不会超出原始边界 if(*To== temPing//不再变化时停止 break: tmpImg ="pTo /最终的结果为受限膨胀结果与原始边界的并集 oTo pTo I (*this)F 利用FRgn(函数实现区域填充的完整示例被封装在 DIPDemo工程的视图类函数void CDIPDemoView: OnMorphFilIRgng中,调用 FillRgno函数的代码片断如下所示: //输出的临时对象 CImg Process imgOutput imgInput: //需要根据实际情况设置种子点的坐标,这里简单地取种子点为图像的中心点 POINT ptstart: ptstart. x=inqInput, GetwidthPixel()/2: ptstart. y= inmgInput, GetHeight()/2: /调用F11Rgn()函数实現种子填充 imgInput. FillRgn(&imgoutput, ptstart): 298

...展开详情
所需积分/C币:14 上传时间:2013-04-14 资源大小:9.07MB
举报 举报 收藏 收藏
分享 分享
数字图像处理 原书第四版 pdf完整版

数字图像领域圣经 由冈萨雷斯(Rafael C.Gonzalez)教授编著的数字图像处理(Digital Image Processing) 今年已经出到了第四版 第四版中加入了机器学习深度学习用于图像模式识别的讨论。文件排版清晰,内容完整!

立即下载
Digital Image Processing 4th Edition 数字图像处理 原书第四版 (英文原版、高清带书签) .zip

作者: Rafael C. Gonzalez / Richard E. Woods (冈萨雷斯) 出版社: Pearson 压缩包中是PDF 格式的电子书

立即下载
数字图像处理第三版.pdf

图像处理经典教材。第三版新增了400多幅图像、200多幅图表和80多道习题。书中适当的位置给出了复杂处理过程的逐步算法。全书仍分为12章,即绪论、数字图像基础、灰度变换与空间滤波、频率域滤波、图像复原与重建、彩色图像处理、小波和多分辨率处理、图像压缩、形态学图像处理、图像分割、表示与描述、目标识别。

立即下载
数字图像处理.pdf

数字图像处理MATLAB版本科教学版 第2版 [(美)冈萨雷斯,(美)伍兹,(美)艾丁斯 著] 2014年版

立即下载
Digital Image Processing 4th Edition 数字图像处理 第四版 冈萨雷斯 英文原版

数字图像处理,冈萨雷斯,文字版,英文版,第四版,国内外经典教材,原版PDF文档

立即下载
数字图像处理 原书第四版 pdf 带书签

数字图像领域圣经 由冈萨雷斯(Rafael C.Gonzalez)教授编著的数字图像处理(Digital Image Processing) 今年已经出到了第四版 第四版中加入了机器学习深度学习用于图像模式识别的讨论

立即下载
冈萨雷斯的数字图像处理第四版 全球版英文版 2018版,是官方原版,不是那种电子书转的,掏钱买的,

冈萨雷斯的数字图像处理第四版 全球版英文版 2018版,是官方原版,不是那种电子书转的,掏钱买的,赚点csdn分,只要一个csdn分,方便大家,更新比较大,包含深度学习部分,和某刀客 4000分的一样,可以预览 http://www.doc88.com/p-9436471739190.html

立即下载
数字图像处理第四版(英文版)

数字图像处理第三版中文版和第四版英文版,由冈萨雷斯所写,书籍非常好。

立即下载
数字图像处理第3版pdf

数字图像处理第3版pdf

立即下载
数字图像处理 第三版 冈萨雷斯 英文版PDF非扫描版 Digital Image Processing_3ed_Gonzalez

数字图像处理经典书籍《数字图像处理》第三版 冈萨雷斯,本资源为其英文版PDF,非扫描版,文字非常清晰,适合科研

立即下载
数字图像处理(中)第三版 (完美书签).pdf

数字图像处理 冈萨雷斯(中)第三版 ,之前下载的没有书签,我自己添加了所有书签本书共12章,即绪论、数字图像基础、灰度变换与空间滤波、频率域滤波、图像复原与重建、彩色图像处理、小波和多分辨率处理等。

立即下载
数字图像处理中文第三版PDF

数字图像处理中文第三版PDF冈萨雷斯

立即下载
图像处理技术手册完整PDF版

本书详细阐述图像模型、图像几何学、模式识别与神经网络、图像理解与计算机视觉等基础知识,也给出视觉、光与色、波动光学、辐射传递理论、数学形态学、模糊理论等关联知识,同时结合图像处理领域的最新发展现状,全面论述图像重建、图像变换、图像识别、图像分析等相关理论和具体算法,并就图像特殊效果处理、图形绘制、序列图像处理、文档图像解析、三维图像处理等热点专题进行了系统剖析。

立即下载
数字图像处理 冈萨雷斯 第四版 PDF版

数字图像处理 冈萨雷斯 第四版 纯净PDF文字版 Digital Image Processing 4th Edition Rafael C. Gonzalez

立即下载
数字图像处理技术及其应用.pdf

介绍了数字图像处理的基本概念、基本原理,对其中一些算法进行了详细的说明,对不同算法进行了比较。 同时,在对现有图像处理方法进行应用的同时,对滤波做了一些新的尝试。最后,将像素细分算法应用于实际生产中, 获得了较好的效果

立即下载
数字图像处理及应用-谢凤英 pdf书籍2014版 第二版2016程序代码、实验设计及PPT课件

数字图像处理及应用-谢凤英 pdf书籍2014版 第二版2016程序代码、实验设计及PPT课件

立即下载