形状比较方法:矩与现代算法
在计算机视觉领域,比较两个形状是一个常见的任务。本文将介绍一些经典和现代的形状比较方法,包括轮廓矩、中心矩、Hu不变矩以及基于形状上下文和Hausdorff距离的方法。
1. 轮廓矩的计算
1.1 轮廓矩的定义
比较两个轮廓最简单的方法之一是计算轮廓矩,它代表了轮廓、图像或点集的某些高级特征。矩的数值定义如下公式:
矩$m_{p,q}$定义为对象中所有像素的总和,其中点$(x, y)$处的像素值乘以因子$x^p y^q$。对于$m_{00}$矩,如果图像是二值图像(即每个像素为0或1),则$m_{00}$就是图像中非零像素的面积;对于轮廓,结果是轮廓的长度;对于点集,它是点的数量。经过思考可以发现,对于同一个二值图像,$m_{10}$和$m_{01}$矩除以$m_{00}$矩,分别是对象上的平均$x$和$y$值。
1.2 使用 cv::moments() 计算矩
在OpenCV中,可以使用 cv::moments() 函数计算这些矩:
cv::Moments cv::moments( // Return structure contains moments
cv::InputArray points, // 2-dimensional points or an "image"
bool binaryImage = false // false='interpret image value
超级会员免费看
订阅专栏 解锁全文
2172

被折叠的 条评论
为什么被折叠?



