java – 什么是CvMatchShapes返回?

我有这两个图像.

和…

我将它们制作成灰度图像,然后将这两个图像传递给cvMatchImageslike

Double someValue = cvMatchShapes(grayImage, grayImage2, CV_CONTOURS_MATCH_I2, 0);
    System.out.println(someValue);

sysout打印的值为1.465496453484283.这个值代表什么?我如何使用它来匹配其他图像,以及如何拒绝那些不匹配的图像?

最佳答案 值表示两个对象的差异,它表示两个形状之间的Hu矩特征距离.它越小,两个对象就越相似.

可以使用阈值来执行匹配:如果输出值小于阈值,则两个对象匹配,或者两个对象不同.

至于如何选择一个门槛,这取决于.

您可以使用某些实例来训练阈值.

我强烈建议您将图像中的对象标准化为相似的大小.这样可以提高准确性

点赞