【问题标题】:What is CvMatchShapes returning?CvMatchShapes 会返回什么?
【发布时间】:2012-04-07 09:26:59
【问题描述】:

我有这两张图片。

还有...

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

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

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

【问题讨论】:

    标签: java c++ image-processing opencv javacv


    【解决方案1】:

    该值表示两个对象的差异程度,它表示两个形状之间的Hu矩特征距离。它越小,两个对象越相似。 可以使用阈值来执行这样的匹配:如果输出值小于阈值,则两个对象匹配,或者两个对象不同。 至于如何选择阈值,则取决于 。 您可以使用一些实例来训练阈值。 我强烈建议您将图像中的对象标准化为相似大小。这将提高准确性

    【讨论】:

    • 所以返回的值是翻译的一个因素?
    • 如果这些图像大小相同,将返回什么值? 0?
    • 可以这么说,但它是两个物体的特征之间的距离,这个距离可能是欧几里得距离或者类似的东西
    • 如果输入的图片相同,则返回0,表示绝对相似,即相同
    • 有趣的是,为什么 OpenCV 文档甚至错过了对 cvMatchShapes 函数及其返回值的简短描述。
    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 2015-07-10
    • 2013-06-05
    • 2014-05-23
    • 2010-09-17
    • 2015-08-18
    • 2020-01-07
    • 2011-10-23
    相关资源
    最近更新 更多