扑克牌中的模板匹配

Template Matching in Playing Cards

我正在尝试拍摄扑克牌的图像并使用某种形式的模板匹配提取有关它们的信息。一开始,我一直在使用高斯模糊、灰度转换,然后进行阈值处理来创建二值化图像,它们在将卡片隔离为图像中唯一真实的细节方面非常有效:

http://imgur.com/a/y1H7F

但是在进行下一步之前(希望使用 OpenCV 的模板匹配的东西)我在两件事上苦苦挣扎:首先,这些图像在模板匹配之前是否需要更多处理?例如,我是否需要考虑卡片的大小和方向?快速说明:我打算使用的模板是带有等级和花色的卡片的一角(在上面的 link 中)。我从概念上理解,您可以通过找到具有内角的四个角来 select 整个区域,但我对如何实现它一无所知。其次:是否有最适合此类工作的特定模板匹配算法?我宁愿在模板匹配之前做一些更多的处理,而不是对同一图像的多种类型进行蛮力匹配(旋转和缩放以解决每张照片中的差异)。

所以总结一下:我是否需要在匹配之前对比例和方向做更多的处理(如果需要,建议的算法?),哪种模板匹配算法是解决这个问题的最佳方法?

我认为理想的解决方案是找到整张卡片并形成单独的图像,在其中对其进行缩放和定位以进行模板匹配,然后使用匹配算法,但我不确定这是否可行!非常感谢任何帮助。

如果您正在处理一组特定的卡片,那么您需要做的(假设卡片不重叠)就是找到卡片的轮廓 (http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html),映射逆透视变换得到一张直的卡片图像,然后使用你的模板匹配。

但是,如果您想对牌组变化更加稳健,您可能还需要检测数字/字母/花色形状的内部轮廓,并识别它们以对牌进行分类。