通过与保存的轮廓进行比较来检测轮廓的最佳功能是什么? 现在我在桌面上有以下内容,并将使用其中一些比率(初步结果很好): - 封闭区域圈 边界矩形区域 - 宽度超过宽度的矩形 - 周长(弧长) -convex船体多边形区域(使用多边形区域公式)
哪些将在不同形状之间最明显,并且在比较时将是最准确的(比率A-比率B <阈值)所以我不会浪费所有的计算能力? ps:也应该使用缩放和旋转
答案 0 :(得分:0)
OpenCV中有module shape
,其中包含两个形状比较器:ShapeContextDistanceExtractor
和HausdorffDistanceExtractor
。两者都只需要两个轮廓作为参数,并返回单个数字(某些空间中这些轮廓之间的距离),您可以将其视为衡量不相似性。
更简单的方法是尝试cv::matchShapes()
:此函数为每个轮廓计算两个不变Hu moments的向量,然后根据这些向量计算它们的不相似性。