将(先前RGB转换为)灰度MAT转换回RGB

时间:2015-12-16 09:41:17

标签: java android opencv image-processing

我希望使用直方图均衡化将android中的摄像头捕获图像进行均衡。对于此我将MAT转换为位图,将MAT转换为灰度,在灰度矩阵上执行equalizeHist。 (代码工作正常,直到这里)然后我希望图像回RGB。我可以执行任何方法来获得RGB中的均衡矩阵? 这是代码

public Bitmap processing(Bitmap newImage) {
 Mat rgb = new Mat (newImage.getHeight(), 
newImage.getWidth(), CvType.CV_8U, new Scalar(4));
Mat gry = new Mat   (newImage.getHeight(),newImage.getWidth(),
CvType.CV_8U, new Scalar(4));
              Utils.bitmapToMat(newImage, rgb);
              Imgproc.cvtColor(rgb, gry, Imgproc.COLOR_RGB2GRAY);
              //Imgproc.equalizeHist(gry, gry);
              Imgproc.cvtColor(gry, rgb, Imgproc.COLOR_GRAY2RGBA);
              Utils.matToBitmap(rgb, newImage);
            return newImage;
          }

1 个答案:

答案 0 :(得分:1)

你可以split,做一些治疗和merge颜色通道。

请注意,结果可能看起来很奇怪。可能你会尝试将RGB转换为其他颜色模型(如HSL),均衡亮度(此处L)通道并转换回RGB