正如你在图片中看到的,我在正确识别这类单词时遇到了困难

在结果中我得到了这个:
RMACWI O
12X60
VPFZZOOIK
IADA50527
PORTES我正在使用这些变量
ocr.SetVariable("tessedit_pageseg_mode", 10);
ocr.SetVariable("tessedit_char_whitelist", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/-,.€"); 有没有提高认知度的方法?
后来我对图像进行了二值化,但结果是最糟糕的!

结果是:
RMACW1 0
TZXW
VPFZZDWK
IADASDEU
PORTES发布于 2019-12-04 22:45:28
您可以对图像进行预处理,但将OCR引擎更改为Google cloud vision可以节省大量时间。当我运行你的图像时,它完美地检测到了文本:
RMAC6010
12X60
VPF3200/K
IADA50527
PORTES
Documentos refer
Enc. Cli EC19/041设置Google cloud有点麻烦,但他们的AI API是世界上最好的。你可以测试你的镜像here。他们有所有主要语言的客户端库。
发布于 2019-11-28 23:34:39
裁剪、阈值和调整图像大小可能会有所帮助。Tesseract最适合白色背景上的黑色文本。有关更多信息,请查看this站点。
发布于 2019-12-03 10:22:39
您可以对二进制图像应用轻微的高斯模糊。这将有助于平滑图像。结果如下:

来自OCR的结果
RMAC6010
12X60
VPF3200/K
\ADA50527
PORTES
Documentos refe:
Ene. Cli EC 19/041我用Python OpenCV + Pytesseract实现了它,但是您也可以将同样的策略应用到C#中
import cv2
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
# Load image and Otsu's Threshold to get a binary image
image = cv2.imread('1.jpg', 0)
thresh = cv2.threshold(image, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
# Gaussian blur and then perform OCR
thresh = cv2.GaussianBlur(thresh, (3,3), 0)
data = pytesseract.image_to_string(thresh, lang='eng', config='--psm 6')
print(data)
cv2.imshow('thresh', thresh)
cv2.waitKey()https://stackoverflow.com/questions/59088832
复制相似问题