从Mat转换为Bitmap,保持分辨率不变

时间:2015-10-17 06:24:56

标签: android opencv tesseract

我正在使用tess-two(Tesseract的android端口)进行OCR。我正在使用OpenCV转换为灰度并应用自适应阈值。结果非常好。问题在于解决方案。当我将Mat转换为位图时,文件大小从315 kb降至12kb。 Tesseract的结果输出是垃圾。有没有办法在使用Utils.matToBitmap()时保持图像的分辨率完好无损。如果不可能,那么解决方法会有所帮助。这是我的代码:

    Mat tmp = Imgcodecs.imread(filePath, Imgcodecs.CV_LOAD_IMAGE_COLOR);
    Mat source = new Mat(tmp.rows(), tmp.cols(), tmp.type());
    Imgproc.cvtColor(tmp, source, Imgproc.COLOR_RGB2GRAY);

    //Adaptive Threshold
    Imgproc.GaussianBlur(source, source, new Size(3, 3), 0);
    Imgproc.adaptiveThreshold(source, source, 255, Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C,
            Imgproc.THRESH_BINARY, 15, 4);

    Utils.matToBitmap(source, bitmap);

0 个答案:

没有答案