将 OpenCV mat 转换为 Android 位图

Ank*_*Ank 2 java android opencv bitmap

我正在尝试将 OpenCV mat 转换为 android 位图,但这给了我带有蓝色色调的图像(黄色变成蓝色)!即使我没有对图像进行任何处理!我不知道为什么会发生这种情况。下面是一些相关代码:

File file = new File(imgDecodableString);
image = Imgcodecs.imread(file.getAbsolutePath(),Imgcodecs.CV_LOAD_IMAGE_COLOR);
resultBitmap = Bitmap.createBitmap(image.cols(),  image.rows(),Bitmap.Config.ARGB_8888);;
Utils.matToBitmap(image, resultBitmap);
Bitmap mResult = resultBitmap;
ImageView imgView = (ImageView) findViewById(R.id.imgView);
imgView.setImageBitmap(mResult);
//imgView.setImageBitmap(BitmapFactory.decodeFile(imgDecodableString));
Run Code Online (Sandbox Code Playgroud)

我是 Android 应用程序开发的新手,所以我可能会错过一些简单的东西。感谢帮助!

编辑:

我正在上传图片以供参考。

原图

我得到的图像

小智 5

根据给定的建议,我制作了一个将 Mat 转换为 Bitmap 的函数。这个功能完美运行。!

private static Bitmap convertMatToBitMap(Mat input){
    Bitmap bmp = null;
    Mat rgb = new Mat();
    Imgproc.cvtColor(input, rgb, Imgproc.COLOR_BGR2RGB);

    try {
        bmp = Bitmap.createBitmap(rgb.cols(), rgb.rows(), Bitmap.Config.ARGB_8888);
        Utils.matToBitmap(rgb, bmp);
    }
    catch (CvException e){
        Log.d("Exception",e.getMessage());
    }
    return bmp;
}
Run Code Online (Sandbox Code Playgroud)