2016-12-01 57 views
0

我试图制作一个程序,可以拍摄飞镖的图像并读取分数。到目前为止,我可以通过比较一个模型图像获取每个镖的位置,你可以在这里看到:我如何转换图像以匹配OpenCV中的圆形模型

enter image description here

但是这只能如果输入图像几乎是相同的。在另一种情况下,董事会略有不同的视角,所以我想也许我可以转换图像以匹配模型图像,然后执行上面可以看到的过程。

enter image description here

所以我的问题是:我怎样才能改变这最后的图像,以配合OpenCV的模型飞镖的形状和阈看?

+0

也许一个椭圆适合板的轮廓?我想你可以计算透视矫正的参数。因为你不再从顶端看到它们,而是从侧面看,它们对于飞镖寿命没有多大帮助。我不考虑改正视角,而是考虑用它来帮助用户正确定位相机。 –

回答

1

飞镖板基本上是平面的。因此,您可以通过单应性来对想要的转换进行建模。现在,您可以执行简单的特征提取和匹配,如here,或者如果速度不那么重要,则使用基于强度的参数对齐algorithm(更准确)。

但是,正如评论中已经提到的那样,事后不会那么简单。飞镖航班(取决于变形)很可能会覆盖棋盘上与实际比分不吻合的区域。其实,即使有正面看法也很难说。

我假设你必须找到飞镖在你的棋盘上的位置。而且,从某种角度来看,我认为这会更容易一些。也许,您可以在预先检测到差异的区域恰好放置线段。

0

我不认为将图像与使用不同角度拍摄的模型进行比较是一个不错的主意。即使在完全匹配它们之后,也应该有很多细微的差别 - 比如阴影,灯光,色差等。

每当游戏开始时(参考)和提取特征(直线似乎足够好),然后在比赛结束后,捕捉图像,减去参考,并进行斑点分析以找到飞镖。