![数字图像处理与深度学习技术应用教材配套课件 第8章 图像形态学处理_第1页](http://file4.renrendoc.com/view14/M01/39/03/wKhkGWdETt-AA8szAACRHpvqQ18472.jpg)
![数字图像处理与深度学习技术应用教材配套课件 第8章 图像形态学处理_第2页](http://file4.renrendoc.com/view14/M01/39/03/wKhkGWdETt-AA8szAACRHpvqQ184722.jpg)
![数字图像处理与深度学习技术应用教材配套课件 第8章 图像形态学处理_第3页](http://file4.renrendoc.com/view14/M01/39/03/wKhkGWdETt-AA8szAACRHpvqQ184723.jpg)
![数字图像处理与深度学习技术应用教材配套课件 第8章 图像形态学处理_第4页](http://file4.renrendoc.com/view14/M01/39/03/wKhkGWdETt-AA8szAACRHpvqQ184724.jpg)
![数字图像处理与深度学习技术应用教材配套课件 第8章 图像形态学处理_第5页](http://file4.renrendoc.com/view14/M01/39/03/wKhkGWdETt-AA8szAACRHpvqQ184725.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章图像形态学处理8.1概述基本思想:用一定形态的结构元素去量度和提取图像中的对应形状,达到分析和识别目的。可用于图像处理的各个方面,包括图像分割、特征抽取、边界检测等。对图像处理的理论和技术产生了重大影响,已经构成一种新的图像处理方法和理论,成为一个重要研究领域。8.1形态学基本概念这门学科在计算机文字识别,计算机显微图像分析,医学图像处理,工业检测等方面都取得了非常成功的应用。形态学方法已成为图像应用领域工程技术人员的必备工具。目前,有关数学形态学的技术和应用正在不断地研究和发展。形态学作用数学形态学的数学基础和所用语言是集合论,具有完备的数学基础。数学形态学的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。元素和集合:形态学数学基础形态学数学基础2)交集、并集和补集3)
包含、击中与击不中形态学作用结构元素:形态学变换中的基本元素,是为了探测图像的某种结构信息而设计的特定形状和尺寸的图像,称为收集图像结构信息的探针。结构元素有多种类型:如圆形、方形、线型等,可携带知识(形态、大小、灰度和色度信息)来探测、研究图像的结构特点。形态学基本方法
二值形态学中的运算对象是集合。设X为图像集合,B为结构元素,数学形态学运算是用B对X进行操作。需要指出,实际上结构元素本身也是一个图像集合。形态学基本方法形态学运算包括:二值腐蚀和膨胀、二值开闭运算、骨架抽取、击中击不中变换等。
形态学4个基本算子:膨胀、腐蚀、开启和闭合组成。这些基本运算还可推导和组合成各种数学形态学实用算法。形态学算子腐蚀:是将图像X中每一与结构元素B全等的子集B+x收缩为点x。腐蚀作用:消除物体边界点,使边界向内部收缩,可以把小于结构元素的物体去除。选取不同的大小的结构元素,去除不同大小的物体。如两个物体间有细小的连通,通过腐蚀可将两个物体分开。腐蚀运算S=
S--腐蚀后的二值图像集合;B--腐蚀的结构元素,每一个元素取值为0或1,它可以组成任何一种形状的图形,在B图形中有一个中心点;X--经过二值化后的像素集合。用B来腐蚀X得到的集合S,S是由B完全包括在X中时B的当前位置的集合。基本方法通常是拖动结构元素在X域移动,在每一个位置上,当结构元素B的中心点平移到X图像上的某一点(x,y)。如果结构元素内的每一个像素都与以(x,y)为中心的相同邻域中对应像素完全相同,那么就保留(x,y)像素点;对于不满足条件的像素点则全部删除,达到边界向内收缩效果。基本方法B+x的三种可能的状态:
M1说明B+x与X相关最大,M3说明B+x与X不相关,而M2说明B+x与X只是部分相关。腐蚀运算满足M1的点x的全体构成结构元素与图像最大相关点集,这个点集称为B对X的腐蚀,X用B腐蚀的结果:B完全包括在X中时B的原点位置的集合。腐蚀运算(a)原图
(b)结构元素图
(c)腐蚀示意图腐蚀作用腐蚀作用腐蚀作用腐蚀:消除物体边界点。结构元素取3×3块,使边界减少一个像素。小于结构元素的物体(毛刺、小凸起)去除。选取不同大小结构元素,在原图像中去掉不同大小的物体。如果两个物体之间有细小的连通,当结构元素足够大时,可以将两个物体分开。
腐蚀作用作用:与腐蚀相反。对二值化物体边界点扩充,将与物体接触的所有背景点合并到该物体中,使边界向外部扩张。如果两个物体之间的距离比较近,会把两个物体连通到一起。对填补图像分割后物体中的空洞有用。膨胀如果结构元素为一个圆盘:膨胀:填充图像中的小孔(比结构元素小的孔洞)及图像边缘处的小凹陷部分。腐蚀:消除图像边缘小的成分,并将图像缩小,从而使其补集扩大。膨胀和腐蚀:并不互为逆运算,可以级连结合使用。膨胀作用
S=X
通常是拖动结构元素在X图像域移动,在每一个位置上,当结构元素B的中心点平移到X图像上的某一点(x,y),如果结构元素的像素与目标物体至少有一个像素相交,保留(x,y)像素点,达到边界向外扩张。膨胀算子将X中的每一个点x扩大为B+x:膨胀作用(a)原图(b)结构元素图(c)膨胀示意图膨胀作用膨胀作用8.2图像腐蚀8.2.1水平腐蚀8.2.1水平腐蚀水平腐蚀的原理同上面介绍的相同,使用的结构元素不同,水平腐蚀所用的结构元素:1)得图像的首地址及宽和高,并二值化。2)开辟缓冲区,初始化为255。3)由于使用1×3的结构元素结构[0,0,0],从第1行第2列开始,将像素点赋为0,检查这个像素点,判断该像素点的前一点和后一点中是否有背景点,有则将检查的像素点值赋为255,否则保持不变。4)循环步骤3,直到处理全部像素点。实现步骤函数说明(1)retval=cv2.getStructuringElement(shape,ksize,anchor=None)retval:返回构造的特定结构;shape:代表形状类型,其中类型有以下三种:
cv2.MORPH_RECT,矩形结构元素,所有元素值都是1;
cv2.MORPH_CROSS,十字形结构元素,对角线元素值都是1;
cv2.MORPH_ELLIPSE,椭圆形结构元素;ksize:代表形状元素的大小,写法为元组(width,height);anchor:坐标(x,y),元素内的锚定位置。默认值为(-1,-1)即结构化元素的中心。函数说明(2)retval=cv2.erode(src,k[,anchor[,iterations[,boderType[,boderValue]]]])retval:表示返回的腐蚀处理结果;src:表示原始图像,即需要被腐蚀的图像;k:表示腐蚀操作时所要采取的结构类型;anchor:表示锚点的位置,默认为(-1,-1),表示在结构元素的中心;iterations:表示腐蚀擦操作的迭代次数;boderType:表示边界样式,一般默认使用BORDER_CONSTANT;boderValue:表示边界值,一般使用默认值。效果图效果展示8.2.2垂直腐蚀8.2.2垂直腐蚀垂直腐蚀所用的结构元素:,
(1)得原图像的首地址及宽和高。(2)开辟缓冲区,并初始化为255。(3)由于使用3×1的结构元素结构,从第2行第1列开始,将像素点赋为0,检查这个像素点,判断该像素点的上一点和下一点中是否有背景点,有则将检查的像素点赋为255,否则保持不变。(4)循环步骤3,直到处理全部像素。实现步骤效果图效果展示8.2.3全方向腐蚀8.2.3全方向腐蚀全方向腐蚀所用的结构元素:(1)得原图像的首地址及宽和高。(2)辟缓冲区,并初始化为255。(3)为用到3×3的结构元素,定义一个一维数组S[9];(4)从第2行第2列开始,利用结构元素数组判断除中心点外,四个为0的位置中是否有背景点,有则将检查的像素点赋为255,否则保持不变。(5)循环步骤4,直到处理完全部像素点。
实现步骤效果图作用:图像的边界点消除,使图像沿着边界向内收缩。操作过程:使用一个结构元对像素进行逐个遍历,每一次判定的点都是与结构元中心点所对应的点。根据结构元与被腐蚀图像的关系来确定腐蚀的结果。
与结构元完全相同时,结构元对应的中心点为1,与结构元不完全相同时,结构元对应的中心点为0。常见的结构元有:
矩形结构、椭圆形结构、十字交叉形结构和线性结构等。
腐蚀---小结
Python实现dst=cv2.erode(src,k[,anchor[,iterations[,boderType[,boderValue]]]])·dst表示返回的腐蚀处理结果。·src表示原始图像,即需要被腐蚀的图像。·k表示腐蚀操作时所要采取的结构类型。两种方式.1.通过自定义得到,2.通过cv2.getStructuringElement()函数得到·anchor表示锚点的位置,默认为(-1,-1),表示在结构元的中心。·iterations表示腐蚀操作的迭代次数。·boderType表示边界样式,一般默认使用BORDER_CONSTANT。·boderValue表示边界值,一般使用默认值。
【例1】使用cv2.erode()函数实现图像的腐蚀操作。importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/aaa.jpg")#读取一幅图像cv.imshow("image",image)#显示原始图像k=np.ones((3,3),np.uint8)#构建3×3的矩形结构元img=cv.erode(image,k,iterations=3)
#腐蚀操作,迭代3次cv.imshow("erode",img)#显示腐蚀后的图像cv.waitKey()cv.destroyAllWindows()
a是原始图像;b是迭代1次的腐蚀结果;c是迭代2次的腐蚀结果;d是迭代3次的结果。在iterations=3时,腐蚀效果最好。
腐蚀程度随迭代次数而加剧
效果展示8.3图像膨胀8.3.1水平膨胀理论基础水平膨胀所用的结构元素如图8-11所示
图8-11水平膨胀结构元素示意图实现步骤(1)retval=cv2.dilate(src,k[,anchor[,iterations[,boderType[,boderValue]]]])retval:表示返回的膨胀处理结果;src:表示原始图像,即需要被膨胀的图像;k:表示膨胀操作时所要采取的结构类型;anchor:表示锚点的位置,默认为(-1,-1),表示在结构元素的中心;iterations:表示膨胀操作的迭代次数;boderType:表示边界样式,一般默认使用BORDER_CONSTANT;boderValue:表示边界值,一般使用默认值。效果展示
图8-12水平膨胀处理效果图8.3.2垂直膨胀理论基础垂直膨胀所用的结构元素如图8-13所示.图8-13垂直膨胀结构元素示意图效果展示8.3.3全方向膨胀膨胀操作与腐蚀操作刚好相反,它是由图像的边界点处向外部扩张。与腐蚀操作一样,在图像的膨胀操作过程中也是逐个像素地遍历待膨胀图像,并且根据结构元与待膨胀图像的关系来决定膨胀的效果。与结构元完全相同时,结构元对应的中心点为1,与结构元有部分相同时,结构元对应的中心点为1。膨胀
Python实现dst=cv2.dilate(src,k[,anchor[,iterations[,boderType[,boderValue]]]])•dst表示返回的膨胀处理结果。•src表示原始图像,即需要被膨胀的图像。•k表示膨胀操作时所要采取的结构类型。它由两种方式得到,第一种是通过自定义得到,第二种是通过cv2.getStructuringElement()函数得到•anchor表示锚点的位置,默认为(-1,-1),表示在结构元的中心。•iterations表示膨胀操作的迭代次数。•iterations表示膨胀操作的迭代次数。•boderType表示边界样式,一般默认使用BORDER_CONSTANT。•boderValue表示边界值,一般使用默认值。
【例2】使用cv2.dilate()函数实现图像的膨胀操作。importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/shortA.jpg")#读取一幅图像cv.imshow("image",image)#显示原始图像k=np.ones((3,3),np.uint8)#构建3×3的矩形结构元img1=cv.dilate(image,k,iterations=1)
#膨胀操作,迭代1次img2=cv.dilate(image,k,iterations=2)#膨胀操作,迭代2次img3=cv.dilate(image,k,iterations=3)#膨胀操作,迭代3次cv.imshow("dilate1",img1)#显示膨胀后的图像cv.imshow("dilate2",img2)#显示膨胀后的图像cv.imshow("dilate3",img3)#显示膨胀后的图像cv.waitKey()cv.destroyAllWindows()a是原始图像;b是迭代1次;c是迭代2次;d是迭代3次。膨胀程度随迭代次数而加剧。理论基础全方向膨胀所用的结构元素如图8-15所示效果展示图8-16全方位膨胀处理效果图8.4图像开运算与闭运算由膨胀和腐蚀两个运算的复合与集合操作(并、交、补等)组合成的所有运算构成。开运算:先对图像腐蚀后膨胀。闭运算:先对图像膨胀后腐蚀。使用同一个结构元素。8.4图像开启与闭合8.4.1图像开运算开运算:能够去除孤立的小点,毛刺和小桥(即连通两块区域的小点),消除小物体、平滑较大物体的边界,同时并不明显改变其面积。不过这一恢复不是信息无损的,即它们通常不等于原始图像。8.4.1图像开运算开运算:先对图像腐蚀后膨胀。腐蚀运算:如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉。膨胀运算:如果B上有一个点落在X的范围内,则该点就为黑。开运算开运算和闭运算依据腐蚀和膨胀的不可逆性,演变而来的。开运算:能够去除孤立的小点,毛刺和小桥(即连通两块区域的小点),消除小物体、平滑较大物体的边界,同时并不明显改变其面积。不过这一恢复不是信息无损的,即它们通常不等于原始图像。开运算B的中心点和X上的点一个一个地对比。开运算经过开运算后,能够去除孤立的小点,毛刺和小桥(即连通两块区域的小点),平滑较大物体的边界,同时并不明显改变面积。开运算作用(1)获得原图的首地址及图像的高和宽。(2)调用腐蚀函数对图像进行腐蚀处理。(3)调用膨胀函数对腐蚀后的图像进行膨胀处理。实现步骤效果图函数说明retval=cv2.morphologyEx(src,op,k[,anchor[,iterations[,boderType[,boderValue]]]])retval:表示返回运算的结果;src:表示原始图像;op:表示操作类型,当设置为cv2.MORPH_GRADIENT时,表示对图像进行梯度运算,当设置为cv2.MORPH_OPEN和cv2.MORPH_CLOSE时,可以对图像实现开运算与闭运算的操作;参数k、anchor、iterations、boderType和boderValue与cv2.dilate()函数的参数用法一致。效果展示图8-18开运算处理效果图8.4.2图像闭运算闭运算是通过对腐蚀和膨胀的另一种不同次序的执行而得到的。闭运算:先膨胀后腐蚀,其功能是用来填充物体内细小空洞、连接邻近物体、平滑其边界,同时不明显改变其面积。
8.4.2图像闭运算膨胀运算:如果B上有一个点落在X的范围内,则该点就为黑。腐蚀运算:如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉。闭运算闭运算是通过对腐蚀和膨胀的另一种不同次序的执行而得到的,闭运算是先膨胀后腐蚀的过程,其功能是用来填充物体内细小空洞、连接邻近物体、平滑其边界,同时不明显改变其面积。闭运算作用B的中心点和X上的点一个一个地对比。闭运算经过闭运算后,断裂的地方被弥合了。闭运算能够填平小孔,弥合小裂缝,而总的位置和形状不变。闭运算作用闭运算作用(1)获得原图像的首地址及图像的高和宽。(2)调用膨胀函数对原图像进行膨胀处理。(3)调用腐蚀函数对膨胀后的图像进行腐蚀处理。实现步骤效果展示图8-20闭运算处理效果图开运算和闭运算是以腐蚀和膨胀为基础操作的一种形态学处理方法。开运算与闭运算都以腐蚀和膨胀操作为基础。开运算是先将图像腐蚀,再膨胀。闭运算是先将图像膨胀,再腐蚀。开运算与闭运算---小结小结1.开运算:
先腐蚀后膨胀可以消除亮度较高的细小区域、在纤细点处分离物体。对于较大物体,在不明显改变面积下平滑边界。2.闭运算:图像先膨胀后腐蚀,与开运算相反可以填充白色物体内细小黑色空洞的区域、连接临近物体等。Python实现可以利用cv2.erode()函数和cv2.dilate()函数来实现开运算与闭运算OpenCV提供cv2.morphologyEx()实现开运算与闭运算。openimg=cv.morphologyEx(image,cv.MORPH_OPEN,k)closeimg=cv.morphologyEx(image,cv.MORPH_CLOSE,k)
op参数设置为cv2.MORPH_OPEN:开运算cv2.MORPH_CLOSE时:闭运算importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/aaa.jpg")#读取一幅图像k=np.ones((10,10),np.uint8)#构建10×10的矩形结构元openimg=cv.morphologyEx(image,cv.MORPH_OPEN,k)#设置参数,实现图像的开运算cv.imshow("image",image)#显示原始图像cv.imshow("openimg",openimg)#显示开运算图像cv.waitKey()cv.destroyAllWindows()a为原始图像;b为对a进行开运算的结果。可以看出,图像的毛边被消除了。【例
5】用cv2.erode()函数和cv2.dilate()函数来实现图像的开运算importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/aaa.jpg")#读取一幅图像k=np.ones((10,10),np.uint8)#构建10×10的结构元erod_n=cv.erode(image,k)#实现图像的腐蚀操作dilate_n=cv.dilate(erod_n,k)#实现图像的膨胀操作cv.imshow("image",image)#显示原始图像cv.imshow("image",image)#显示原始图像cv.imshow("open",dilate_n)#显示经过先腐蚀后膨胀的图像cv.waitKey()cv.destroyAllWindows()a为原始图像,b为对a进行先腐蚀后膨胀的结果。可以看出,先腐蚀后膨胀的结果与开运算的结果基本一样。2.闭运算演示【例
6】用cv2.morphologyEx()函数实现图像的闭运算importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/love.png")#读取一幅图像k=np.ones((10,10),np.uint8)#构建10×10的矩形结构元closeimg=cv.morphologyEx(image,cv.MORPH_CLOSE,k)#设置参数,实现图像的闭运算cv.imshow("image",image)#显示原始图像cv.imshow("closeimg",closeimg)#显示开运算图像cv.waitKey()cv.destroyAllWindows()a原始图像,b为对a进行闭运算的结果。可以看出,前景图像的黑点被消除了。【例7】用cv2.erode()函数和cv2.dilate()函数来实现图像的闭运算importcv2ascimportnumpyasnpimage=cv.imread("F:/picture/love.png")#读取一幅图像k=np.ones((10,10),np.uint8)#构建10×10的结构元dilate_n=cv.dilate(image,k)#实现图像的膨胀操作erod_n=cv.erode(dilate_n,k)#实现图像的腐蚀操作cv.imshow("image",image)#显示原始图像cv.imshow("close",erod_n)#显示经过先膨胀后腐蚀的图像cv.waitKey()cv.destroyAllWindows()a为原始图像,b为对a进行先膨胀后腐蚀的结果。可以看出,先膨胀后腐蚀的结果与闭运算的结果基本上一样8.5形态学梯度运算理论基础梯度运算是利用图像的膨胀图像减去腐蚀图像的一种形态学操作,这种操作可以获得图像的边缘信息。形态学梯度的定义:函数说明dst=cv2.morphologyEx(src,op,k[,anchor[,iterations[,boderType[,boderValue]]]])dst:表示返回梯度运算的结果。src:表示原始图像。op:表示操作类型,当设置为cv2.MORPH_GRADIENT时,表示对图像进行梯度运算。参数k、anchor、iterations、boderType和boderValue与cv2.dilate()函数的参数用法一致。效果展示(a)是原始图像;(b)是结构元k=2×2的梯度运算结果;(c)是结构元k=5×5的梯度运算结果,随着结构元k的增大,扫描到的边缘会越来越粗,以至于无法分辨出边缘。图8-21形态学梯度运算利用图像的膨胀图像减去腐蚀图像的一种形态学操作,可以获得图像的边缘信息。梯度运算的过程就是膨胀结果减去腐蚀结果。梯度运算---小结Python实现dst=cv2.morphologyEx(src,op,k[,anchor[,iterations[,boderType[,boderValue]]]])dst表示返回梯度运算的结果。src表示原始图像。op表示操作类型,当设置为cv2.MORPH_GRADIENT时,表示对图像进行梯度运算。参数k、anchor、iterations、boderType和boderValue与cv2.dilate()函数的参数用法一致。importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/contours.png")#读取一幅图像k1=np.ones((2,2),np.uint8)
#构建一个2×2的结构元k2=np.ones((5,5),np.uint8)#构建一个5×5的结构元r1=cv.morphologyEx(image,cv.MORPH_GRADIENT,k1)#实现图像的梯度运算r2=cv.morphologyEx(image,cv.MORPH_GRADIENT,k2)#实现图像的梯度运算cv.imshow("image",image)#显示原图cv.imshow("r1",r1)#显示梯度运算后的结果图cv.imshow("r2",r2)#显示梯度运算后的结果图cv.waitKey()cv.destroyAllWindows()a是原始图像;b是结构元k=2*2的梯度运算结果;c是结构元k=5*5的梯度运算结果。随着结构元k的增大,扫描到的边缘会越来越粗,以至于无法分辨出边缘。8.6黑帽与礼帽运算理论基础黑帽与礼帽运算建立在开运算与闭运算的基础上。(1)黑帽运算黑帽运算是用原始图像减去闭运算的结果,即它可以获得比原始图像边缘更加黑暗的边缘部分,或者获得图像内部的小孔。(2)礼帽运算礼帽运算是用原始图像减去开运算的结果,即它可以获得图像的噪声信息或者比原始图像边缘更亮的边缘部分。函数说明在OpenCV中提供了比较方便的函数cv2.morphologyEx()来直接实现图像的黑帽运算与礼帽运算。当将op参数设置为cv2.MORPH_BLACKHAT和cv2.MORPH_TOPHAT时,可以对图像进行黑帽运算与礼帽运算的操作。黑帽运算效果展示图8-22黑帽运算(b)为对图8-22(a)进行黑帽运算的结果。可以看出,黑帽运算可以将目标内部暗的部分提取出来。礼帽运算效果展示图8-33礼帽运算(b)为对图8-23(a)进行礼帽运算的结果。可以看出,礼帽运算可以将目标边缘部分提取出来。黑帽与礼帽运算建立在开运算与闭运算的基础上。1.黑帽运算:原始图像—闭运算
可以获得比原始图像边缘更加黑暗的边缘部分,或者获得图像内部的小孔。2.礼帽运算:原始图像—图像开运算可以获得图像的噪声信息或者比原始图像边缘更亮的边缘部分。黑帽与礼帽运算---小结Python实现cv2.morphologyEx()来直接实现图像的黑帽运算与礼帽运算。当将op参数设置为openimg=cv.morphologyEx(image,cv.MORPH_OPEN,k)closeimg=cv.morphologyEx(image,cv.MORPH_CLOSE,k)
op参数设置为cv2.MORPH_OPEN:开运算cv2.MORPH_CLOSE时:闭运算cv2.MORPH_BLACKHAT:黑帽运算cv2.MORPH_TOPHAT时:礼帽运算的操作。importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/love.png")#读取一幅图像k=np.ones((10,10),np.uint8)#构建10×10的矩形结构元bhimg=cv.morphologyEx(image,cv.MORPH_BLACKHAT,k)#设置参数,实现图像的黑帽运算cv.imshow("image",image)#显示原始图像cv.imshow("bhimg",bhimg)#显示黑帽运算图像cv.waitKey()cv.destroyAllWindows()a为原始图像,b为对a进行黑帽运算的结果。可以看出,黑帽运算可以将图像内部和边缘中比原始图像暗的部分提取出来。【例
9】
用cv2.morphologyEx()函数实现图像的礼帽运算importcv2ascvimportcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/love.png")
#读取一幅图像k=np.ones((10,10),np.uint8)#构建10×10的矩形结构元bhimg=cv.morphologyEx(image,cv.MORPH_TOPHAT,k)#设置参数,实现图像的礼帽运算cv.imshow("image",image)#显示原始图像cv.imshow("bhimg",bhimg)#显示礼帽运算图像cv.waitKey()cv.destroyAllWindows()a为原始图像,b为对a进行礼帽运算的结果。可以看出,礼帽运算可以将图像内部和边缘中比原始图像亮的部分提取出来。8.7图像细化细化技术:把一个平面区域简化成图的结构形状表示法。骨架:一种细化结构,它是目标的重要拓扑描述,具有非常广泛的应用。在图像识别或数据压缩时,经常用细化结构,例如,在识别字符之前,往往要先对字符作细化处理,求出字符的细化结构。8.5图像细化细化:目的是将图像的骨架提取出来的同时,保持图像细小部分的连通性,特别是在文字识别,地质识别,工业零件识别或图像理解中,先对被处理的图像进行细化有助于突出形状特点和减少冗余信息量。细化细化技术:把一个平面区域简化成图的结构形状表示法。骨架:一种细化结构,它是目标的重要拓扑描述,具有非常广泛的应用。在图像识别或数据压缩时,经常用细化结构,例如,在识别字符之前,往往要先对字符作细化处理,求出字符的细化结构。骨架抽取细化过程:求一图像骨架的过程。骨架:重要拓扑描述,指骨骼部分。长方形骨架:长方向上的中轴线;正方形骨架:中心点;圆骨架:圆心;直线骨架:自身;孤立点骨架:自身。细化细化细化算法:采取逐次去除边界的方法来进行的,不能破坏图像的连通性。在细化一幅图像X时应满足两个条件:第一,在细化的过程中,X应该有规律地缩小;第二,在X逐步缩小的过程中,应当使X的连通性质保持不变。细化实际应用:通常选择一组结构元素对,不断在这些结构对中循环,如果所得结果不再变化,则终止迭代过程,随着迭代的进行,集合也不断细化。结构对的选择:仅受结构元素不相交的限制。事实上,每一个Bi(i=1,2,…,N)都可以是相同的结构对,即在不断重复的迭代细化过程使用同一个结构对。。细化设置一个5*5的邻域S模板;S模板中各个位置上的取值取决于模板所对应图像中不同位置的像素,如果S模板某一个位置上所对应的像素值为白,模板上该位置赋为0,否则赋为1。细化s[0][0]s[0][1]s[0][2]s[0][3]s[0][4]s[1][0]s[1][1]s[1][2]s[1][3]s[1][4]s[2][0]s[2][1]s[2][2]s[2][3]s[2][4]s[3][0]s[3][1]s[3][2]s[3][3]s[3][4]s[4][0]s[4][1]s[4][2]s[4][3]s[4][4]N(s[2][2])表示以s[2][2]为中心的3×3邻域内目标像素(即黑点)的个数。取其中的3×3邻域以s[2][2]为中心点,则T(s[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年路面清洁装备合作协议书
- 如何制定品牌宣传计划
- 2025年优良动植物新品种项目合作计划书
- 班主任与学科教师协作计划
- 2025年钴粉系列合作协议书
- 2025年中国页岩气行业市场现状及投资态势分析报告(智研咨询)
- 2025年气体掺混设备合作协议书
- 2025年动叶可调轴流电站用风机项目发展计划
- 2025年基础软件设计服务项目建议书
- 新产品发布指南与市场推广策略
- 人教三年级数学下册表格式全册
- QC课题提高检查井周边压实
- 应征公民体格检查表(征兵)
- ACL磁致伸缩液位计说明书
- 优秀教研组评比制度及实施细则
- 慈善祖师—太乙救苦天尊经文选集拼音版
- 3建筑工程规划放线、验线多测合一成果报告书
- JJF 1752-2019全自动封闭型发光免疫分析仪校准规范(高清版)
- GB 1886.300-2018 食品安全国家标准 食品添加剂 离子交换树脂(高清版)
- 尾矿库安全技术规程释义
- 如何写数学新授课教学设计
评论
0/150
提交评论