将图像转换为位图后,不显示图像

时间:2016-06-09 20:18:27

标签: java android opencv bitmap mat

当我尝试将Mat图像转换为Bitmap时,图像不会显示在我的设备中,相反,当我使用Bitmap.Config.RGB_565时,显示的图像为黑色。 这是我的代码:

Mat src = new Mat(bmp.getHeight(), bmp.getWidth(), CvType.CV_8UC1);
        imgToProcess = Utils.bitmapToMat(bmp, src);

        Bitmap bmpOut = Bitmap.createBitmap(imgToProcess.cols(), imgToProcess.rows(), Bitmap.Config.ARGB_8888);
        Utils.matToBitmap(imgToProcess, bmpOut);
        imv.setImageBitmap(bmpOut);
        rotateImage(bmpOut);

1 个答案:

答案 0 :(得分:0)

众所周知,matToBitmap是错误的。作为解决方法,尝试在转换为位图之前将图像转换为不同的颜色空间:

Imgproc.cvtColor(imgToProcess, result, Imgproc. COLOR_GRAY2BGRA);
bmp = Bitmap.createBitmap(result.cols(), result.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(result, bmp);

请参阅相关问题Correct way to convert between Bitmap and Mat in OpenCV on Android?