首页 > 编程知识 正文

opencv 轮廓,dynainfo函数漂移吗

时间:2023-05-05 04:58:03 阅读:172475 作者:890

OPenCV版本: 4.4

IDE:VS2017

功能说明概要:使用指定的核元素使图像膨胀。 图像膨胀的过程类似于卷积的过程。 原始图像矩阵a和结构元素b、b在a矩阵上依次移动,每个位置b所覆盖元素的最大值替换b中心位置的值,即定位点,完成整个膨胀过程。

注意所谓腐蚀和膨胀的对象是对图像中的白色元素说的。 看图像中的物体反而可以理解。

算法通俗理解:膨胀算法将图像放大一圈,向图像中的对象边界添加像素。 其运算过程为使用33的结构要素,扫描二值图像的各像素,在结构要素和其上覆盖的二值图像上进行and运算。 如果全部为0,则结构图像的该像素为0,否则为1。 其结果,二值图像变大一圈。

函数使用指定的内核元素膨胀源图像。 内核具有可定义的锚点,称为内核中心点。 在膨胀操作期间,将获取内核覆盖区域的最大像素值而不是锚点像素,最大值由以下公式获取:

DST(x,y )=max ) x,y) :元素(x,y0 src (xx,y) (textTT{dst},y ) ) ) max_ ) max )

函数支持就地模式,膨胀操作可以多次重复使用,对于多通道图像,每个通道都独立处理。

函数原型: cv _ exports _ wvoiddilate (inputarraysrc,OutputArray dst,InputArray kernel,pointanchor=point(-1,-1), input array kernel int border type=border _ constant,constscalarbordervalue=morphologydefaultbordervalue (输入参数描述参数src 通道数量是任意的,但深度值必须为以下值之一:

CV_8U、CV_16U、CV_16S、CV_32F or CV_64F。

参数dst是与源图像相同大小和类型的输出图像。

参数kernel膨胀核元素。 如果elemenat=Mat ()是3 x 3矩形核元素,则可以使用getStructuringElement创建核。

参数anchor元素中锚点的位置。 缺省值为(-1,-1)。 这意味着锚点位于元素的中心。

参数iterations膨胀的重复次数。

参数borderType像素外推方法。 请参见#BorderTypes。 不支持BORDER_WRAP。

参数borderValue固定边时的边值。

参考: erode,morphologyEx,getStructuringElement

源代码示例# include iostream # include opencv2/opencv.HPP int main ({ cv :3360 matimage=cv 33603360 im read (d : () main std:endl; cv :3360等待密钥(0; 返回0; }cv:Mat imageDst; //定制核cv :3360 matelement=cv : getstructuringelement (cv :3360 morph _ rect,cv : size (8,8 ) ) ) cv:imshow (“原图”、image ); cv:3360dilate(image,imageDst,element ); cv:imshow (“膨胀”,imageDst ); cv :3360等待密钥(0; }执行结果:

背景(白色)膨胀,果汁杯的图像和水果的图像缩小了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。