【发布时间】:2016-07-02 05:49:16
【问题描述】:
我有一组非常小的图片(w:70-100 ; h:12-20),如下图:
在这些图像中,只有组成员的昵称。我想从简单的图像中读取文本,它们都有一个背景,只有昵称不同。那么,我对这张图片做了什么:
我正在使用下面的代码从第二张图片中获取文本:
tesseract::TessBaseAPI ocr;
ocr.Init(NULL, "eng");
PIX* pix = pixRead("D:\\image.png");
ocr.SetImage(pix);
std::string result = ocr.GetUTF8Text();
我有两个问题:
-
ocr.GetUTF8Text();工作缓慢:650-750 毫秒。图像很小,为什么它仍然可以工作这么长时间? - 从上面的图像中,我得到的结果如下:“iwillkillsm”、“iwillkillsel”等。该图像很简单,我相信 tesseract 大师能够以 100% 的准确率识别它。
我应该如何处理图像/代码,或者我应该阅读(以及在哪里)关于 tesseract-ocr(关于文本速度和质量识别的内容)来解决这些问题?
【问题讨论】:
-
我在 tesseract 上获得了最好的运气,因为我可以大大增加图像的尺寸。
-
@nlloyd 增加维度后,我有一些更好的结果(速度和准确性),谢谢!但我不得不问:这样可以吗,调整大小后我的图像中有一些灰色或几乎黑色的像素?这种情况是否有助于 tesseract?
-
对我来说似乎没问题。在将图像喂给 tesseract 之前,我总是把它们放大;但是,在您开始获得更差的结果之前,您可以使它们变得多大是有限度的 :)
-
我继续发布并作为答案发布,因为它对您有所帮助。