如何使用 Tesseract 提高 OCR 质量?
How to improve OCR quality using Tesseract?
我正在使用 opencv 从桌面应用程序屏幕截图中提取图像矩阵,并使用 tesseract 读取裁剪后的图像。例如,如果您参考下面的图片,Tesseract 提取 "Relationship" 图像为 R'e'auunshwp,成员为 Mamba!
对于tesseract,附加图像的质量是否太低?我可以做些什么来改善它?
更新
我使用以下代码调整图像大小,提高了 OCR 质量。但是,如何计算 300DPI,然后如何确保图像的纵横比在比例下保持不变?
Mat resizedMat = new Mat();
Size sz = new Size(mat.rows()*10,mat.cols()*10);
Imgproc.resize(mat,resizedMat,sz);
分辨率太低。尝试重新缩放到 300DPI。
我终于用这段代码解决了它,使用 OpenCV -
Mat resizedMat = new Mat();
double width = mat.cols();
double height = mat.rows();
double aspect = width / height;
Size sz = new Size(width * aspect * 2, height * aspect * 2);
Imgproc.resize(mat, resizedMat, sz);
正如 nguyenq 所说,您应该重新缩放图像,因为 tesseract 难以扫描低质量图像。
我已经为另一个人回答过类似的问题,你也应该尝试这样做。将图像大小增加 200-400%,如果这没有帮助,请进行一些模糊处理,然后设置阈值。
我正在使用 opencv 从桌面应用程序屏幕截图中提取图像矩阵,并使用 tesseract 读取裁剪后的图像。例如,如果您参考下面的图片,Tesseract 提取 "Relationship" 图像为 R'e'auunshwp,成员为 Mamba!
对于tesseract,附加图像的质量是否太低?我可以做些什么来改善它?
更新
我使用以下代码调整图像大小,提高了 OCR 质量。但是,如何计算 300DPI,然后如何确保图像的纵横比在比例下保持不变?
Mat resizedMat = new Mat();
Size sz = new Size(mat.rows()*10,mat.cols()*10);
Imgproc.resize(mat,resizedMat,sz);
分辨率太低。尝试重新缩放到 300DPI。
我终于用这段代码解决了它,使用 OpenCV -
Mat resizedMat = new Mat();
double width = mat.cols();
double height = mat.rows();
double aspect = width / height;
Size sz = new Size(width * aspect * 2, height * aspect * 2);
Imgproc.resize(mat, resizedMat, sz);
正如 nguyenq 所说,您应该重新缩放图像,因为 tesseract 难以扫描低质量图像。
我已经为另一个人回答过类似的问题