使用OpenCV从图像中提取数字

3
我有这样的图片,我想从中提取数字。 enter image description here enter image description here 我一直在使用OpenCV,并对模板匹配特别感兴趣。但是由于该技术不能考虑任何图像缩放和旋转,因此我正在寻找能够至少考虑缩放的技术。
请提供任何建议或帮助。所有操作均在实时进行。
附:图像质量无法改善,摄像机的性能就是这样。

您可以调整/旋转模板/图像,然后再次运行模板匹配,以处理不同的比例和旋转。 - fferen
建议已收到。我还想澄清一件事,我通过预先拥有数字模板来进行此过程。然后,当图像出现时,我开始与预定义的ROI匹配。整个过程是否良好?还能改进吗? - user1420463
是的,只要你确定 ROI 包含数字即可。而且由于样本看起来是不同颜色的,请确保也考虑到这一点。 - fferen
我正在将所有内容转换为二进制图像,因此颜色也会被考虑在内。另外,如果图像中的字体发生变化,我就必须相应地更改我的模板,难道不是吗?这是唯一的出路吗? - user1420463
2个回答

2

0

要在不使用SIFT或SURF的情况下检测这些数字,也可以基于K最近邻算法创建分类器。您可以生成.pbm文件数据库,并使用c++ OCR库将它们加载到分类器中,该库可以在此处找到。

步骤如下:

1:找到一种使用cvFindContours从图像中提取数字的方法

2:将这些图像存储为png文件,使用cvSaveImage将它们转换为二进制pbm文件

3:对.pbm文件进行编号,并将它们存储在每个数字的独立文件夹中

4:使用上述库加载.pbm文件

5:实时使用函数ocr::classify来获取它们所属的类别(例如哪个数字)的图像。


我一定会尝试并在几天内报告结果。我确实看了一下KNN,但现在会更深入地研究它。 - user1420463
我在Contour Matching中找到了适合我们应用的东西。在对图像进行预处理后,我一直在研究模板匹配。 - user1420463

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接