无法使用 pytesseract.image_to_string 识别单词
Not able to recognize word using pytesseract.image_to_string
我有一张带有旋转文字的图片。我正在获取此文本的位置并对其进行裁剪,然后旋转此文本。到此为止,我可以看到我的文字完美显示。但是现在如果我将这个旋转的文本发送到 'pytesseract.image_to_string',它就无法识别文本。这是代码。
croped = orig[y:y+h, x:x+w].copy()
cv2.imshow('cropped ',croped)
text_img = cv2.cvtColor(croped, cv2.COLOR_BGR2GRAY)
text_img_nt = cv2.bitwise_not(text_img)
cv2.imshow('text img not ',text_img_nt)
thresh = cv2.threshold(text_img_nt, 0, 255,cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]
coords = np.column_stack(np.where(thresh > 0))
angle = cv2.minAreaRect(coords)[-1]
if angle < -45:
angle = -(90 + angle)
else:
angle = -angle
(h, w) = text_img_nt.shape[:2]
center = (w // 2, h // 2)
M = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated = cv2.warpAffine(text_img_nt, M, (w, h),flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE)
cv2.imshow('rotated',rotated)
cv2.waitKey(100000)
config='-l eng --oem 1 --psm 3'
textRecognized = pytesseract.image_to_string(rotated, config = config, lang ='eng')
print(textRecognized)
Cropped Image
Rotated Image
已识别文本:“Ol Ey”
我的代码有问题吗?任何帮助将不胜感激。
我试过你旋转的图像,我在这里唯一做的就是反转照片,我设法得到一致的结果。
rotated = cv2.bitwise_not(rotated)
我有一张带有旋转文字的图片。我正在获取此文本的位置并对其进行裁剪,然后旋转此文本。到此为止,我可以看到我的文字完美显示。但是现在如果我将这个旋转的文本发送到 'pytesseract.image_to_string',它就无法识别文本。这是代码。
croped = orig[y:y+h, x:x+w].copy()
cv2.imshow('cropped ',croped)
text_img = cv2.cvtColor(croped, cv2.COLOR_BGR2GRAY)
text_img_nt = cv2.bitwise_not(text_img)
cv2.imshow('text img not ',text_img_nt)
thresh = cv2.threshold(text_img_nt, 0, 255,cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]
coords = np.column_stack(np.where(thresh > 0))
angle = cv2.minAreaRect(coords)[-1]
if angle < -45:
angle = -(90 + angle)
else:
angle = -angle
(h, w) = text_img_nt.shape[:2]
center = (w // 2, h // 2)
M = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated = cv2.warpAffine(text_img_nt, M, (w, h),flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE)
cv2.imshow('rotated',rotated)
cv2.waitKey(100000)
config='-l eng --oem 1 --psm 3'
textRecognized = pytesseract.image_to_string(rotated, config = config, lang ='eng')
print(textRecognized)
Cropped Image Rotated Image
已识别文本:“Ol Ey”
我的代码有问题吗?任何帮助将不胜感激。
我试过你旋转的图像,我在这里唯一做的就是反转照片,我设法得到一致的结果。
rotated = cv2.bitwise_not(rotated)