当我尝试将Mat图像转换为位图时,图像不会显示在我的设备中,相反,当我使用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);
matToBitmap已知有bug。解决方法是,在转换为位图之前,请尝试将图像转换为不同的色彩空间:
Imgproc.cvtColor(imgToProcess, result, Imgproc. COLOR_GRAY2BGRA);
bmp = Bitmap.createBitmap(result.cols(), result.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(result, bmp);
请参阅相关问题在Android上的OpenCV中在位图和垫子之间转换的正确方法?