OCR扑克牌

2024-04-28 08:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我决定做一个有趣的项目,我想把一张扑克牌的图像作为输入,并返回它的排名和西装。我想我只需要看看左上角,因为那里有所有的信息。它应该是强大的-如果我有一个钻石王牌的大图像,我应该能够将它从20%到200%的任何地方,仍然得到正确的答案。

第一个问题-有没有什么已经写出来了?如果是这样的话,我会找些别的东西给OCR,这样我就不会重复这些工作了。

第二-做这个最好的方法是什么?神经网络?一些手工编码的东西?有人能指点一下吗?(0xCAAF9452不是可接受的答案)。


Tags: 项目方法答案图像信息编码地方神经网络
3条回答

我不认为有什么东西已经为你所要完成的而写(至少是开源和Python)。

至于你的第二个问题,这取决于你想识别什么。如果输入可以来自不同的来源,例如不同品牌、不同风格的扑克牌,那么您可能应该使用基于机器学习的算法(例如神经网络或支持向量机),以便学习如何识别未知输入。但是,如果输入在形状或样式上始终相同,那么一个简单的图像比较算法就足够了(例如,将左上角切片的像素与每个列组的像素进行比较)。

如果你决定使用基于机器学习的算法,我也认为你不需要非常复杂的特征,因为套装和等级在形状或样式上没有太大的变化,你应该只使用左上角的像素作为特征。

这里有一个玩具OCR示例,您可能会发现它很有趣。使用的lib(LibSVM)也有一个Python版本,我已经使用过了,并且发现使用起来非常简单。

希望有帮助。

考虑到有限的样本量(4套西装,13个不同的值),我会尝试将西装的参考图像和值与新的输入图像匹配。首先找到输入套装/值的边界框(包围所有非白色像素的最小框),缩放参考图片以匹配该边界框的大小,并通过像素绝对差找到最佳“匹配”。图片的颜色(即红色或黑色)将使这更容易。

就我个人而言,我会选择机器学习的方式。

相关问题 更多 >