【发布时间】:2021-05-30 11:34:27
【问题描述】:
对于大学项目,我必须识别车牌中的字符。我必须使用 python 3 来执行此操作。我不允许使用 OCR 函数或使用使用深度学习或神经网络的函数。我已经达到了能够从车牌中分割字符并将它们转换为统一格式的地步。这里有几个分段字符的例子。
分段字符的格式非常依赖于输入。但是,我可以使用 opencv 轻松地将其转换为统一尺寸。此外,我有一组模板字符和数字,可以用来预测它是什么字符/数字。
因此,我需要一个度量来表示分割字符和参考图像之间的相似性。这样,我可以说具有最高相似度分数的参考图像与分割的字符匹配。我尝试了以下方法来计算相似度。
对于这些操作,我已确保参考字符和分段字符具有相同的尺寸。
- 按位异或运算符
- 反转参考字符并逐像素比较它们。如果一个像素匹配,则增加相似度分数,如果一个像素不匹配,则减少相似度分数。
- 使用“imagehash”对分段字符和参考字符进行散列。从而比较哈希值并查看哪些哈希值最相似。
这些方法都不能成功地为我提供所有角色的准确预测。大多数字符通常都能被正确预测。但是,该程序始终混淆 8-B、D-0、7-Z、P-R 等字符。
有人知道如何预测分段字符吗? IE。定义更好的相似度分数。
编辑:不幸的是,此分配不允许使用 cv2.matchTemplate 和 cv2.matchShapes...
【问题讨论】:
-
查看模板匹配docs.opencv.org/4.1.1/df/dfb/… 但如果模板和字符以不同方式旋转或缩放,则这样做不起作用。也许你想要形状匹配。见docs.opencv.org/4.1.1/d3/dc0/…
标签: python-3.x image-processing character detection image-recognition