我正在使用从实体模式中裁剪实体并从每个实体中提取文本的代码。但是我的问题是,当我尝试通过tesseract从每个裁剪的实体中获取文本时,在某些情况下,图像很小,无法获取文本。
例如,来自此架构:
我得到这张图片:
但是我从这张图片中得到的文本是下一个:
m_..1 vmcmarzsiv
m_.m.n wacmarassv
um,-man vARcHAR($57
Ingram uacmarzsv
m_m-crmm vmcmarzsfiv
i:Ix_v|§7ln uacmaxznv
i:Ix_w:nnr mewnzm
m_.=u:-g mm 0
um,-mam rmsn us
my vmcmarzsiv
» m_..m. msmuurrzxr
m_.=s wacmarassv
我该如何解决这个问题?
处理小图像作物的一种方法是使用与[Cv2.INTER_CUBIC或cv2.INTER_LANCZOS4之类的技术,使用与cv2.resize()函数不同的插值技术对它们进行上采样。This link提供了具有不同插值标志的示例升频结果。访问this link以获取InterpolationFlags的完整列表。
双三次
插值的样本代码:import cv2
img = cv2.imread("image.png")
upscaled_img = cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)
下面是Tessaract OCR的输出,带有upscaled_img:
? ink_id BIGINT(20) > link_ufd VARCHAR(255) > link_name VARCHAR(255) > link_image VARCHAR(255) > link_target VARCHAR(25) > link_description VARCHAR(255) > link_visible VARCHAR(20) > link_owner BIGINT(20) > link_rating INT(11) > link_updated DATE TIME > link_rel VARCHAR(255) 2 link_notes MEDIUMTEXT > link_rss VARCHAR(255) eee
import cv2
import pytesseract
from PIL import Image
img = Image.open(
"C:/Users/Usuario/Documents/Deteccion de Objetos/recortes/0000010/imagen_1.png")
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
upscaled_img = cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)
result = pytesseract.image_to_string(upscaled_img)
print(result)
这是错误:upscaled_img = cv2.resize(img,无,fx = 2,fy = 2,插值= cv2.INTER_CUBIC)TypeError:参数'%s'的预期Ptr]