繁体   English   中英

如何使二值图像更清晰以提高 tesseract image_to_text 的准确性?

[英]How to make binary image more clearly to improve accuracy tesseract image_to_text?

我有这样的图像:

在此处输入图像描述

然后我转换为二进制图像,然后将其放大,将返回如下结果: 在此处输入图像描述

但是字符之间仍然存在一些相关的内容,并且当我调用tesseract.image_to_text() function 时会导致错误的结果。 结果是BO09804 ,无论如何要分离图像中的每个字符或应用一些过滤器?

这是我的代码:

    src = cv.imread(cv.samples.findFile('path/to/image.jpg'))
    src = image_resize(src, height=128, inter=cv.INTER_CUBIC)
    gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
    rect, binary = cv.threshold(gray , 180, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
    kernel = np.ones((5, 5), np.uint8)
    dilated = cv.dilate(binary, kernel, iterations=1)
    cv.imshow('dilated', dilated)
    cv.waitKey(0)
    

我已经完成了一些 opencv 代码来尽可能多地过滤您的图像。 但当然,如果你能找到更好的分辨率图像会好得多。

import cv2 
import numpy as np 
import pytesseract 
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract"

image = cv2.imread("import tesseract.png",0)
image = cv2.GaussianBlur(image,(3,3),-1,-1)
_,thre = cv2.threshold(image,140,255,cv2.THRESH_BINARY,cv2.THRESH_OTSU)
contors , _ = cv2.findContours(thre,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
contors = sorted(contors,key= lambda b:cv2.contourArea(b),reverse=False)
mask = np.zeros_like(thre)
contors = [c for c in contors if cv2.contourArea(c)>100]
cv2.drawContours(mask,contors[:-1],-1,[255],-1)

# creating a mask
kerenal = cv2.getStructuringElement(cv2.MORPH_RECT,(1,20))
morpg = cv2.dilate(mask,kerenal,iterations=1)

_,thre = cv2.threshold(image,190,255,cv2.THRESH_BINARY_INV,cv2.THRESH_OTSU)
# applying mask to thre image
img = cv2.bitwise_and(morpg,thre)
# add eroding to increase the space between characters 
kerenal = cv2.getStructuringElement(cv2.MORPH_RECT,(2,1))
morpg = cv2.erode(img,kerenal,iterations=1)

扩张后的蒙版图像

在此处输入图像描述

bitwise_and 之后的图像

在此处输入图像描述

过滤后的图像附在下面

在此处输入图像描述

正方体结果是

text = pytesseract.image_to_string(morpg).split("\n")[0]

结果是:'B009864'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM