我使用opencv从桌面应用程序屏幕截图中提取图像矩阵,并使用tesseract读取裁剪后的图像。例如,如果你参考下面的图片,Tesseract将“关系”图像提取为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);
答案 0 :(得分:3)
分辨率太低。尝试重新缩放到300DPI。
答案 1 :(得分:1)
我终于使用此代码解决了它,使用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);
答案 2 :(得分:1)
正如nguyenq所说,你应该重新调整你的图像,因为tesseract很难扫描低质量的图像。
我为另一个人回答了类似问题HERE,你应该尝试做同样的事情。将图像大小增加200-400%,如果这样做没有帮助,请做一些模糊,然后再进行阈值处理。