opencv - 使用 opencv 和 tesseract (java) 识别 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
图片有什么问题?
解决方案
我有一个两步解决方案
当您应用于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 找不到所需的解决方案,则需要应用图像处理。