我写了一个简单的python代码来从image获取文本。这里的大多数文本是北印度语,但我只关心图像“ 5485 5000 8000”中的12位数字。 这是我写的代码:
import cv2
import pytesseract
img = cv2.imread('Aadhar-Card.jpg',0)
text = pytesseract.image_to_data(img,lang='eng', config='--psm 13 --oem 3 -c tessedit_char_whitelist=0123456789')
print(text)
h, w = img.shape
boxes = pytesseract.image_to_boxes(img)
for b in boxes.splitlines():
b = b.split(' ')
img1 = cv2.rectangle(img, (int(b[1]), h - int(b[2])), (int(b[3]), h - int(b[4])), (0, 255, 0), 2)
cv2.imshow('img', img)
cv2.waitKey(0)
这是output。 因此,数字是唯一被跳过的东西。有什么办法可以解决这个问题?
答案 0 :(得分:0)
您可以先裁剪感兴趣的部分(数字区域),然后实施OCR。
import cv2
import pytesseract
img = cv2.imread('Aadhar-Card.jpg',0)
crop_img = img[173:173+30, 117:117+150]
strNum = pytesseract.image_to_string(crop_img, config='--psm 13 --oem 3 -c tessedit_char_whitelist=0123456789')
print(strNum)
cv2.imshow("cropped", crop_img)
cv2.waitKey(0)