Lam*_*ade 6 python image-processing pytesser
有关将这些图像转换为文本的建议吗?我正在使用pytesseract,除了这个以外,它在大多数情况下都能很好地工作.理想情况下,我会完全阅读这些数字.最糟糕的情况我可以尝试使用PIL来确定'/'左边的数字是否为零.从左边开始,然后找到第一个白色像素
from PIL import Image
from pytesseract import image_to_string
myText = image_to_string(Image.open("tmp/test.jpg"),config='-psm 10')
myText = image_to_string(Image.open("tmp/test.jpg"))
Run Code Online (Sandbox Code Playgroud)
中间的斜线导致问题.我也尝试使用PIL的'.paste'在图像周围添加大量额外的黑色.我可能会尝试其他一些PIL技巧,但除非必须,否则我宁愿不去那条路.
我尝试使用config =' - psm 10',但我的8'有时会以":"和其他时间的随机字符出现.而且我的0都没有成功.
参考:pytesseract不适用于-psm 10的一位数图像
_____________EDIT_______________ 其他样本:
所以我正在做一些似乎现在正在工作的巫术转换.但看起来很容易出错:
def ConvertPPTextToReadableNumbers(text):
text = RemoveNonASCIICharacters(text)
text = text.replace("I]", "0")
text = text.replace("|]", "0")
text = text.replace("l]", "0")
text = text.replace("B", "8")
text = text.replace("D", "0")
text = text.replace("S", "5")
text = text.replace(".I'", "/")
text = text.replace(".I", "/")
text = text.replace("I'", "/")
text = text.replace("J", "/")
return text
Run Code Online (Sandbox Code Playgroud)
最终产生:
ConvertPPTextToReadableNumbers return text = 18/20
ConvertPPTextToReadableNumbers return text = 0/5
ConvertPPTextToReadableNumbers return text = 10/10
ConvertPPTextToReadableNumbers return text = 20/20
Run Code Online (Sandbox Code Playgroud)
小智 5
一般来说,大多数 OCR 工具(如 Tesseract)都经过调整,可以处理印刷文本的高分辨率扫描。它们在低分辨率或像素化图像上表现不佳。
这里有两种可能的方法:
如果图像的字体、背景和布局是完全可预测的,则根本不需要 Tesseract;这只会让事情变得更加复杂。建立一个代表您需要识别的每个字符的图像库,并检查图像的某些部分是否等于参考图像。
如果这不是一个选项,或者看起来太难,您可以使用hq*x 算法之一来放大像素化图像。添加的细节可能足以让 Tesseract 可靠地识别字符。
| 归档时间: |
|
| 查看次数: |
11389 次 |
| 最近记录: |