【发布时间】:2016-04-19 22:20:24
【问题描述】:
我发现 OpenCV 中提供了倒角匹配。我可以看到有一个用于 C++ 的函数chamferMatching(),而且似乎也有一种在 Python 中使用它的方法。但是,我无法找到如何在 Java 中使用此功能。我正在使用 OpenCV 3.1 在 Java 界面哪里可以找到它?那里有吗?
如果没有,我可以用什么代替?我正在尝试识别水果。现在尤其是苹果。我想将预先计算的苹果轮廓与图像中找到的轮廓相匹配(倒角匹配)。在找到一个可能的苹果后,我打算使用分类器来确保颜色和纹理是正确的。
模板匹配似乎是一个糟糕的选择,因为它不适用于识别旋转对象。我想知道我是否可以使用功能描述符。请注意,我并没有尝试识别特定的苹果,而且我不知道特征描述符是否适用于此。
有什么想法吗?
编辑:好的,我决定使用 findContours() 函数来获取图像中的所有轮廓,然后按区域过滤它们并将每个过滤后的轮廓与其他轮廓进行比较,指定为来自训练的模板,使用 matchShapes()。我实现了这个,但它不能正常工作(因为 findContours() 没有检测到苹果轮廓)但我会发布另一个关于这个特定问题的问题。这里我想问一下这种方式听起来是否可行,是否有更好的方法来检测和比较轮廓。
【问题讨论】:
-
我似乎无法在 OpenCV 3.1 的 C++ API 中找到该函数,但如果它可用,我们可以使用 JavaCPP 预设访问它:github.com/bytedeco/javacpp-presets/tree/master/opencv
-
感谢您的链接!不久前我发现它是 JavaCV 的一种方法,它可能根本不在 OpenCV 中。所以我可能不得不使用其他东西......
标签: java opencv image-processing