我有一张图片,我需要从该图片中提取文字。 我需要提取的文本来自指定的坐标位置。说吧 坐标= [ymin:ymax,xmin:xmax]。 我尝试使用此坐标创建新图像并提取文本。但是由于新图像的质量低,因此精度非常低。 因此,现在我正在研究如何在不创建新图像的情况下以坐标值提取文本。 我正在使用OpenCv读取图像,并使用pytesseract提取文本。
import cv2
import pytesseract
import os
from PIL import Image
import sys
import numpy as np
# import textacy
config = ('-l eng --oem 2 --psm 1')
image = cv2.imread('C:/DocumentProcessing/IMAGE/2 (8).jpg')
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
cv2.imwrite('gray.jpg',gray)
_,thresh = cv2.threshold(gray,150,255,cv2.THRESH_BINARY_INV) # threshold
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3))
dilated = cv2.dilate(thresh,kernel,iterations = 30)
_,contours, hierarchy = cv2.findContours(dilated,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)
my_list = []
for contour in contours:
[x,y,w,h] = cv2.boundingRect(contour)
cv2.rectangle(image,(x,y),(x+w,y+h),(127.5,0,255),1)
new_image = image[y:y+h, x:x+w]
cv2.imwrite(f"contoured-{y}-{x}.jpg", new_image)
result = pytesseract.image_to_string(new_image,config=config)
Tesseract 4.0.0 pytesseract 0.3.0 OpenCv 3.4.3
答案 0 :(得分:0)
您可以使用OPENCV绘制坐标,然后使用tesseract提取每个部分