[英]Algorithm RGB to Gray Lagging
尝试实现将图片从RGB转换为灰度的转换方法。 当我使用我的方法并在ImageView中显示渲染时,它会滞后很多,而当我使用cvtColor函数(来自OpenCV库的函数)时,它就像一个魅力。 谁能解释我的问题在哪里? 这是我的方法:
public void RGBToGray(Mat m){
for(int i = 0; i < m.rows(); i++){
for(int j = 0; j < m.cols(); j++){
double[] pix = m.get(i, j);
pix[0] = pix[1] = pix[2] = (0.21)*pix[0]+(0.72)*pix[1]+(0.07)*pix[2];
m.put(i, j, pix);
}
}
}
这是根据Dan Masek评论将看到帖子的人员的解决方案:
public static void RGBToGray2(Mat m){
ArrayList<Mat> sousMatrices = new ArrayList<Mat>();
Core.split(m, sousMatrices);
Mat result = new Mat();
Core.addWeighted(sousMatrices.get(0), 0.21, sousMatrices.get(1), 0.72, 0, result);
Core.addWeighted(sousMatrices.get(2), 0.07, result, 1 ,0 , result);
sousMatrices.set(0,result);
sousMatrices.set(1,result);
sousMatrices.set(2,result);
Core.merge(sousMatrices, m);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.