我创建了一个从图像中提取RGB通道的函数,以计算图片的平均颜色。
我想要这样的结果:
图像A:红色层:25%,绿色层:40%,蓝色层:35%。
我在Android中使用Opencv,并且有一个可以拆分图层的功能,但是,如何计算???
Mat mRgb = m;
List<Mat> lRgb = new ArrayList<Mat>(3);
List<Mat> red = new ArrayList<Mat>(3);
List<Mat> green = new ArrayList<Mat>(3);
List<Mat> blue = new ArrayList<Mat>(3);
Mat mRed = new Mat();
Mat mGreen = new Mat();
Mat mBlue = new Mat();
//Split the RGB channels
Core.split(mRgb, lRgb);
//Apply Mat
Mat mR = lRgb.get(0);
Mat mG = Mat.zeros(m.rows(), m.cols(), CvType.CV_8UC1);
Mat mB = Mat.zeros(m.rows(), m.cols(), CvType.CV_8UC1);
red.add(mR);
red.add(mG);
red.add(mB);
Core.merge(red, mRed); // Return return red matrix
//Apply Mat
mR = Mat.zeros(m.rows(), m.cols(), CvType.CV_8UC1);
mG = lRgb.get(1);
mB = Mat.zeros(m.rows(), m.cols(), CvType.CV_8UC1);
green.add(mR);
green.add(mG);
green.add(mB);
Core.merge(green, mGreen); //Return green matrix
//Apply Mat
mR = Mat.zeros(m.rows(), m.cols(), CvType.CV_8UC1);
mG = Mat.zeros(m.rows(), m.cols(), CvType.CV_8UC1);
mB = lRgb.get(2);
blue.add(mR);
blue.add(mG);
blue.add(mB);
Core.merge(blue, mBlue); //Return blue matrix
你能帮我解决这些问题吗?