我正在实施一个OCR系统。 Tesseract API用于提取。在提取文本之前,使用OpenCV对图像进行预处理。在预处理灰度级下,执行锐化和自适应阈值处理。在图像中提取文本后,将获得以下输出。
预期输出
Let's talk ;-)
获得的输出
" yr _ W??? V. ? _
W fag '7? |g§3:? V
é claw?!
有人知道这个的原因吗? 我把问题编辑为采用不同的路径来实现我的项目。我输入一个图像并使用opnCV来锐化图像。这是输入图像。input image
然后我得到了以下输出。Sharpened output image。当我使用Tesseract Api的锐化图像时,它提供了混合字符。但是,如果我将输入图像提供给Tesseract API,它会正确提取单词。如何删除锐化图像中的阴影区域?
这是我用来锐化输入图像的代码
try {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat source = Imgcodecs.imread("input.jpg",
Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);
Mat destination = new Mat(source.rows(), source.cols(), source.type());
Imgproc.equalizeHist(source, destination);
Imgcodecs.imwrite("sharpen.jpg", destination);
} catch (Exception e) {
System.out.println("error: " + e.getMessage());
}
答案 0 :(得分:1)
嗯,至少应该向我们提供输入图像,这样我们可以更好地看到问题是什么。但是从预期和实际输出中可以看出,您的输入图像非常不适合扫描,因此可能存在一些可能(最常见)的问题:
您应该向我们提供您的输入图片以及处理方式,找到问题要容易得多,如果有可能,请与我们分享。