算法 RGB 到灰色滞后

Algorithm RGB to Gray Lagging

正在尝试实现将图片从RGB转换为Gray的转换方法。 当我使用我的方法并在 ImageView 中显示渲染时,它非常滞后,当我使用 OpenCV 库中的 cvtColor 函数时,它就像一个魅力。 任何人都可以向我解释问题出在哪里吗? 这是我的方法:

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 的评论,这是针对那些将看到 post 的人的解决方案:

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);
}