如何解决用opencv和tesseractjava识别carattere
我正在尝试检测图片中的文字
使用代码:
MatOfByte mob=new MatOfByte();
Imgcodecs.imencode(".png",src,mob);
byte bb[]=mob.toArray();
BufferedImage bi=ImageIO.read(new ByteArrayInputStream(bb));
String text = tesseract.doOCR(bi);
但是 Tesseract 发现 6,52.
看起来很干净,我不明白 ocr
怎么会失败。
我使用的是 eng
语言:
tesseract.setLanguage("eng");
opencv 4.51 版
tess4j-3.4.8
图片有什么问题?
解决方法
我有一个两步解决方案
-
- 将 psm 模式设置为 6
当您将 adaptive-threshold
应用于图像时:
现在当您阅读图像时:
€1,52
代码:
import cv2
from pytesseract import image_to_string
img = cv2.imread("s6lVY.png")
gry = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
thr = cv2.adaptiveThreshold(gry,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,21,21)
txt = image_to_string(thr,config="--psm 6")
print(txt)
如果使用 pytesseract 无法找到所需的解决方案,则需要应用图像处理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。