首页 > 解决方案 > 在opencv android java中删除Mat的alpha通道

问题描述

我正在使用 Utils.bitmapToMat() 从位图中加载一个 Mat。这将产生一个具有 4 个通道的矩阵。如何获得具有 3 个通道的矩阵,并且简单地删除了 alpha 通道?

换句话说,我想要 android 上 opencv java 中 mat[:,:,0:3] 的 python 等价物。

标签: javaandroidopencv

解决方案


假设 alpha 通道是最后一个颜色通道(BGRA 或 RGBA 颜色格式),您可以使用Imgproc.cvtColorwithImgproc.COLOR_BGRA2BGR参数:

// Creating the empty destination matrix
Mat dst_mat = new Mat();

// Converting the image from BGRA to BGR and saving it in the dst_mat matrix
Imgproc.cvtColor(mat, dst_mat, Imgproc.COLOR_BGRA2BGR);

笔记:

  • 我没有测试代码,但根据文档示例,代码应该可以工作。

推荐阅读