首先,我不得不说我是计算机视觉领域的新手,我目前面临一个问题,我试图用 opencv(Java Wrapper)解决但没有成功。
基本上,我有一张由相机拍摄的模型中的零件图片(不同的角度、分辨率、旋转......),我需要找到该零件在模型中的位置。
示例图片:
模型图片:
所以一个问题是:我应该从哪里开始/我应该使用哪种算法?
我的第一次尝试是使用 SURF 作为检测器、描述符和 BF 作为匹配器的关键点匹配。它适用于大约 10 个图像中的 2 个。我使用默认参数并尝试了其他检测器,但没有任何改进。(也许是参数正确的问题。但是如何找出正确的参数并结合正确的算法呢?...)两个例子:
我的第二次尝试是使用颜色来区分模型中的某些元素,并将结构与模型本身进行比较(除了模型的图片,我还有模型的 xml 表示形式..)。现在我从图像中提取了红色,手动调整了 h,s,v 值以获得大约 4 张图片的最佳检测,其他图片则失败。
两个例子:
我还尝试使用边缘检测(canny、gray、with histogramm Equalization)来检测几何结构。对于我可以想象的某些结果,它会起作用,但是对其他图片使用相同的精明参数“失败”。两个例子:
正如我所说,我不熟悉计算机视觉,只是尝试了一些算法。我面临的问题是,我不知道哪种算法和技术组合是最好的,以及我应该使用哪些参数。手动测试似乎是不可能的。
提前致谢
杰莫拉