将OpenCV Mat转换为Android位图

安克

我正在尝试将OpenCV垫转换为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));

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

编辑:

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

原始图片

我得到的图像

成功

疑似问题在于RGB颜色约定,Android遵循RGB颜色约定,但OpenCV遵循BGR颜色约定,您可以使用进行更正Imgproc.cvtColor(mat, Imgproc.COLOR_BGR2RGBA),然后再在中显示ImageView

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章