使用OpenCV进行扑克牌检测 - 在移动设备上

时间:2011-07-15 08:06:21

标签: opencv detection playing-cards

我和OpenCV lib的样本一起玩。现在我想自己开始编码。然而,由于图书馆的巨大可能性,我在这里迷失了。

“设置”: 假设一张桌子上有扑克牌。这些卡将被排列成2行,每行的卡数不固定,但最多只有一定数量。卡片的大小和形状都是相同的,但它上面的图片是不同的(但不是太复杂)。 代码应该能够检测每张卡(图片)和卡的行。

问题: 什么是最好的解决方案?哈尔? ...等等。根据运行时间,我根本不知道最快的方法是什么。 奖金问题:如果我想在移动设备上做这些事情还有另一种更快的方法吗?

最好的问候

2 个答案:

答案 0 :(得分:1)

其他人有类似的问题。

简而言之:试试OpenCV SURF 有关详细信息,请参阅this answer

答案 1 :(得分:0)

  • 拍摄渐变图像并应用Hough变换以获得卡片边界。可选择将其与自适应阈值相结合,以便从背景中分割前景。
  • 使用SURF识别卡片上的图片。

对于最佳速度,您可以使用PCA SIFT而不是SURF - 它创建仅基于图像的特征向量,而不是常规SIFT或SURF,它们创建适应描述任何图像的空间的特征向量。在搜索匹配功能时,它会更快。