gpt4 book ai didi

c++ - 提高 tesseract ocr 结果的质量

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:12:43 30 4
gpt4 key购买 nike

我正在使用 JNI 开发适用于 Android 的 OCR 应用程序,并使用 OpenCV 和 Tesseract 在 C++ 下开发代码。它将用于从应用拍摄的照片中读取带有字母数字 ID 的徽章。

我开发了一个处理图像预处理的代码,以获得如下所示的“可读图像”:

enter image description here

我使用 tesseract 编写了以下函数来“读取”图像:

char* read_text(Mat input_image)
{
tesseract::TessBaseAPI text_recognizer;
text_recognizer.Init("/usr/share/tesseract-ocr/tessdata", "eng", tesseract::OEM_TESSERACT_ONLY);
text_recognizer.SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
text_recognizer.SetImage((uchar*)input_image.data, input_image.cols, input_image.rows, input_image.channels(), input_image.step1());
text_recognizer.Recognize(NULL);
return text_recognizer.GetUTF8Text();
}

预期的结果是“KQ 978 A3705”,但我得到的是“KO 978 H375”。

我采纳了 https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality 中关于提高图像质量的所有建议。此外,从 https://github.com/tesseract-ocr/docs 阅读文档,我尝试使用多边形对图像进行近似以获得“更好”的特征。我使用的图像是这样的:

enter image description here

有了这张图片,我得到了“KO 978 A3705”。结果明显好于上一个,但还不够好。

我认为我传递给 tesseract 的经过处理的图像足以获得良好的结果,但我不明白。我不知道还能做什么,所以我问你的想法,以解决这个问题。我需要一个准确的结果,我想我可以用我得到的处理后的图像得到它。请出主意! =)

最佳答案

我注意到通过一些扩张,结果 ORC 结果得到了惊人的改善!对我来说,这是解决方案

关于c++ - 提高 tesseract ocr 结果的质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38332059/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com