【发布时间】:2020-01-01 21:13:22
【问题描述】:
我正在尝试使用 python cv2 从图像中提取文本。结果很可悲,我想不出改进代码的方法。 我认为在提取文本之前需要对图像进行处理,但不确定如何处理。
我尝试将其转换为黑白,但没有成功。
import cv2
import os
import pytesseract
from PIL import Image
import time
pytesseract.pytesseract.tesseract_cmd='C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
cam = cv2.VideoCapture(1,cv2.CAP_DSHOW)
cam.set(cv2.CAP_PROP_FRAME_WIDTH, 8000)
cam.set(cv2.CAP_PROP_FRAME_HEIGHT, 6000)
while True:
return_value,image = cam.read()
image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
image = image[127:219, 508:722]
#(thresh, image) = cv2.threshold(image, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
cv2.imwrite('test.jpg',image)
print('Text detected: {}'.format(pytesseract.image_to_string(Image.open('test.jpg'))))
time.sleep(2)
cam.release()
#os.system('del test.jpg')
【问题讨论】:
-
您也可以尝试使用 EasyOCR。就我而言,与只是随机文本的 Tesseract 相比,结果要好得多。目前,无法训练使用 EasyOCR 的自定义模型。
标签: python image opencv image-processing python-tesseract