2017-02-16 66 views
0

我正在使用opencv在Python中制作的学校项目,我有两个部分的问题。opencv在盒子中选择一个对象的最佳方式是什么?

我有6张照片的对象(one of each side)a box filled with the same object之一。照片的质量很差,但我的下一次测试将会拍出更好的照片。我的目标是在框中找到最容易到达的对象(为了抓住它)。我意识到特征和轮廓检测的不同算法,并且我尝试了其中的一些与上面的照片,但我不知道哪种方法会给我最大的可能性来找到最容易到达的对象。

现在来看第二部分。当我找到一个对象时,我想在图片中找到它的位置,我不知道如何利用特征或轮廓检测的结果来获取对象像素中的位置。

这是我第一篇关于堆栈溢出的文章,以及我的第一个使用opencv的项目,如果问题不清楚,我还不清楚,而且我还在自己做一些测试,但是我指望已经做了类似的程序员这个。

+0

您的第一个问题尝试** SIFT ** –

+0

获得SIFT功能执行**匹配** –

+0

感谢您的回答,我现在无法测试它,但我会做。我只是有一个简单的问题,是不是我有一个盒子充满了同一个对象的问题? SIFT会不会识别每个物体? – bachinblack

回答

0

正如Rick M在评论中所建议的那样,我尝试了使用ORB关键点检测的解决方案。

我执行ORB关键点检测对于您使用THIS DOCUMENT给出的图像。

这里是我得到什么:

enter image description here

enter image description here

有获得关键点的其他方法。访问THIS PAGE更多(SIFT,SURF,BRIEF等)

然后我进行功能使用THIS DOCUMENT匹配

enter image description here

正如你可以看到我的比赛进行了仅仅5关键点。这些关键点中的3个似乎正确匹配。我没有匹配所有的关键点,否则就不清楚了。如果你有更好的图像质量,大部分的比赛都是正确的。

对于这种情况我用蛮力匹配。所提及的文件提供了FLANN匹配技术的详细信息。

+0

感谢您的回答,您说得对,如果我尝试使用质量更好的图像和所有关键点,我可能能够找到最好的对象。 – bachinblack

相关问题