【发布时间】:2018-09-08 14:56:22
【问题描述】:
我需要对背景清晰的单个字符的图像执行 OCR。这是针对自主无人机学生竞赛的,因此一切都需要自动进行,并且不能在飞行中手动调整过程。然而,该字符将在一个已知的集合中(可能是大写字母数字)。对于上下文,我从任意方向的图像开始:
然后我会自动确定角度、裁剪并在通过 OCR 运行图像之前对其进行预处理。我无法事先自动计算的一件事(因为它实际上是 OCR 过程的一部分)是剩下的 4 个方向(见下文)中的哪一个是正确的。 这是我的问题的关键 - 是否可以设置 OCR,使其将旋转到 90、180 或 270 度的 A(或任何字符)视为 A,而不是认为它是其他东西,例如V?据我所知,Tesseract 中似乎有 OSD 功能,但我无法让它们与单个字符一起使用。
https://i.stack.imgur.com/TlaOr.png https://i.stack.imgur.com/ET9hr.png https://i.stack.imgur.com/maD0E.png https://i.stack.imgur.com/b4mth.png
目前,我正在使用 PyTesseract 访问 Tesseract OCR 安装。
ocrText = pytesseract.image_to_string(imgD, config='-psm 6')
另外,即使以正确的方向呈现清晰的图像,我也一直无法保证系统的总体准确性——任何关于此的提示也会很有用。例如,这就是我使用 PSM 6 而不是 PSM 10 的原因——它似乎提供了更好的准确性,即使 10 专门用于单个字符。
任何帮助将不胜感激
谢谢!
【问题讨论】:
标签: python image-processing python-imaging-library ocr tesseract