首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高OCR识别能力?

如何提高OCR识别能力?
EN

Stack Overflow用户
提问于 2019-11-28 20:23:25
回答 3查看 447关注 0票数 3

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

在结果中我得到了这个:

代码语言:javascript
复制
RMACWI O
12X60
VPFZZOOIK
IADA50527
PORTES

我正在使用这些变量

代码语言:javascript
复制
ocr.SetVariable("tessedit_pageseg_mode", 10);
ocr.SetVariable("tessedit_char_whitelist", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/-,.€"); 

有没有提高认知度的方法?

后来我对图像进行了二值化,但结果是最糟糕的!

结果是:

代码语言:javascript
复制
RMACW1 0
TZXW
VPFZZDWK
IADASDEU
PORTES
EN

回答 3

Stack Overflow用户

发布于 2019-12-04 22:45:28

您可以对图像进行预处理,但将OCR引擎更改为Google cloud vision可以节省大量时间。当我运行你的图像时,它完美地检测到了文本:

代码语言:javascript
复制
RMAC6010
12X60
VPF3200/K
IADA50527
PORTES
Documentos refer
Enc. Cli EC19/041

设置Google cloud有点麻烦,但他们的AI API是世界上最好的。你可以测试你的镜像here。他们有所有主要语言的客户端库。

Google Cloud Vision Quick-start

OCR w/ gcloud documentation

票数 2
EN

Stack Overflow用户

发布于 2019-11-28 23:34:39

裁剪、阈值和调整图像大小可能会有所帮助。Tesseract最适合白色背景上的黑色文本。有关更多信息,请查看this站点。

票数 0
EN

Stack Overflow用户

发布于 2019-12-03 10:22:39

您可以对二进制图像应用轻微的高斯模糊。这将有助于平滑图像。结果如下:

来自OCR的结果

代码语言:javascript
复制
RMAC6010

12X60

VPF3200/K
\ADA50527

PORTES
Documentos refe:
Ene. Cli EC 19/041

我用Python OpenCV + Pytesseract实现了它,但是您也可以将同样的策略应用到C#中

代码语言:javascript
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59088832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档