【功能】膨胀是对白色部分(高亮部分)而言的,膨胀就是图像中的高亮部分进行膨胀,“领域扩张”,效果图拥有比原图更大的高亮区域。
膨胀是结构元素反射的平移与处理的图像的交集不为空。(结构元素B 与 图像 A 中所覆盖的区域的交集)
膨胀是求出局部最大值的操作,核心b与图形卷积,也就是计算核心b复盖的区域的各像素点的最大值,将该最大值代入当前b复盖的像素点。
【原型】void cv :3360 dilate (inputarraysrc,OutputArray dst,InputArray kernel,Point anchor,int iterations, 调用int border type constscalarbordervalue (//morphop函数,将标识符设置为morph _ dilatemorphop (morph _ dilate,src,dst,kernel,kernel 函数的第一个值是MOPRH_DILATE参数1:InputArray类型的src,它输入图像并填充Mat类对象。
参数2 :输出阵列类型的dst或目标图像必须与输入图像具有相同的大小和类型。
参数3 :输入阵列类型kernel,膨胀操作的核。 如果为NULL,则表示使用注册点位于中心3x3的核心。 参数4 :点类型的锚点、锚点位置和缺省值(-1,-1),表示锚点位于中心。
参数5 :输入类型的iterations。 重复使用dilate ()函数的次数。 默认值为1。
参数6 :输入类型的borderType。 用于估计图像外部像素的边界图案,具有默认值BORDER_DEFAULT。
参数7:const Scalar类型的borderValue,边界为常数时的边界值一般不管理。
【实例】# include opencv2/opencv.HPP # include opencv2/highgui/highgui _ c.h # includeiostreamusingnamespacecv; intmain(intargc,char** argv ) matimage=im read (d : (study (picture (a.jpg ) ) ); //指定内核矩阵、形状和大小为15*15的矩形矩阵=getstructuringelement (morph _ rect,size (15,15 ) ); Mat dstImage; //扩展图像的output是第二个参数,第一个参数是原始图像,第三个参数是内核矩阵dilate(image,dstImage,element ); imshow([原图]腐蚀操作)、image ); imshow([效果图]腐蚀操作)、dstImage ); 维客(0; 返回0; }
结果: