我正在尝试使用pytesseract检测价格
然而,我有非常糟糕的结果
我有一个大图像,在不同的位置有几个价格。 这些位置是恒定的,所以我将图像裁剪下来,并将每个区域保存为新图像,然后尝试检测文本
我知道文本只包含0123456789美元
我使用trainyourteseract.com培训了我的新字体
例如,我拍摄了这张照片
将其大小加倍,并设置阈值以获得此结果
通过tesseract运行它并获得8
的输出
任何帮助都将不胜感激
def getnumber(self, img):
grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
thresh, grey = cv2.threshold(grey, 50, 255, cv2.THRESH_BINARY_INV)
filename = "{}.png".format(os.getpid())
cv2.imwrite(filename, grey)
text = pytesseract.image_to_string(Image.open(filename), lang='Droid',
config='--psm 13 --oem 3 -c tessedit_char_whitelist=0123456789.$¢')
os.remove(filename)
return(text)
你在正确的轨道上。在为OCR预处理图像时,您希望得到黑色文本,背景为白色。其思想是放大图像,用大津的阈值得到二值图像,然后进行OCR。我们使用
psm 6
告诉Pytesseract假设一个统一的文本块。查看here了解更多配置选项。这是经过处理的图像:OCR结果:
代码
机器规格:
相关问题 更多 >
编程相关推荐