Python 3.x tesseract输出与输入图像不同

Python 3.x tesseract输出与输入图像不同,python-3.x,opencv,tesseract,Python 3.x,Opencv,Tesseract,我正在使用tesseract和Pyteseract(在python中)对裁剪的图像执行ocr。其中一幅裁剪图像的日期格式为dd/mm/yyyy。我得到的输出文本是dd、/mm、/yyyy。这背后的原因是什么?如何提高ocr质量 我已经对裁剪后的图像做了一些预处理,包括填充、形态变换(kernel=eliple) 输出文本:18/05/1997 预期文本:1997年5月18日如果您使用的是tesseract 4.x,请从以下位置使用TrainedData: 如果您使用的是tesseract

我正在使用tesseract和Pyteseract(在python中)对裁剪的图像执行ocr。其中一幅裁剪图像的日期格式为
dd/mm/yyyy
。我得到的输出文本是
dd、/mm、/yyyy
。这背后的原因是什么?如何提高ocr质量

我已经对裁剪后的图像做了一些预处理,包括填充、形态变换(kernel=eliple)


输出文本:18/05/1997

预期文本:1997年5月18日

如果您使用的是tesseract 4.x,请从以下位置使用TrainedData:


如果您使用的是tesseract 4.x,请从以下位置使用trainneddata:


它不被认为是三个字符串吗:“18”、“/05”、“/1997”?你的配置是什么?你试过改变吗?没有,它被认为是“18,/05,/1997”。我已经试过psm-0和6,我不认为psm会对此产生影响,因为它是一个裁剪过的imageconfig is-oem 2-psm 0。我也尝试过-oem 2 psm 6我会尝试使用--psm 8(将图像视为一个单词)它只将at视为一个单词,因为输出只有一个字符串它不被识别为三个字符串:“18”、“/05”、“/1997”?你的配置是什么?你试过改变吗?没有,它被认为是“18,/05,/1997”。我已经试过psm-0和6,我不认为psm会对此产生影响,因为它是一个裁剪过的imageconfig is-oem 2-psm 0。我也尝试过-oem 2 psm 6我会尝试使用--psm 8(将图像视为一个单词)它只将at视为一个单词,因为输出只有一个字符串
gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
kernel1 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))
close = cv2.morphologyEx(gray,cv2.MORPH_CLOSE,kernel1)
div = np.float32(gray)/(close)
res = np.uint8(cv2.normalize(div,div,0,255,cv2.NORM_MINMAX))
text = pytesseract.image_to_string(res, lang='eng', config=config)
$ tesseract z9Rut.png - --dpi 300
18/05/1981