我是这个论坛的新手,希望你能耐心等待我。 我即将编写我自己的视觉系统,它只跟踪一种特征(引脚),总是在我检测到的物体的方向上遇到麻烦。 我确实从特征向量获得了方向,但仅在+ -90度的范围内。见下文。
http://i.stack.imgur.com/KHx1h.jpg
如果有帮助的话,我正在使用OpenCV 2.4.9和visual studio 2012。
我使用findContours函数来获取X和Y. PCA analasys获得方向(theta)。 我尝试过其他星座(SIFT,SURF,模板匹配),但这种方法似乎能给出最好的结果。
这只是一个布尔运算符的问题,如果我得到一个信号,我可以手动翻转方向。
用于跟踪的二进制图像如下所示,是否有任何方法可以提取图片中的“帽子”功能并将其用作信号?
http://i.stack.imgur.com/9y4XX.jpg
BR
纳斯
答案 0 :(得分:0)
在找到轮廓之前,您可能需要应用某种阈值。因为您拥有的轴是数据点差异最大的轴。我建议使用带有微调参数的canny。
答案 1 :(得分:0)
供进一步参考..
我通过模板匹配解决了它,这是作弊,我知道
模板在由PCA分析计算的角度中旋转(由其中心包裹/保持),然后将匹配值存储在临时变量中。我使用相同的模板进行另一场比赛,但旋转180度并比较匹配值
作为参考,模板图片必须相对于相机旋转进行角度校准(我通过滑块进行)。它是一个静态值,仅取决于模板创建时的旋转。换句话说......
Wrapaffline_angle = Calibrated_angle + PCA角度
该过程的图片如下所示:
http://i.stack.imgur.com/r6RD8.jpg
Calibration_angle旨在最大化两场比赛之间的差异。