opencv---灰度图像与彩色图像遍历

灰度图单通道实现:
for (int i = 0; i < srcImg.rows; i++)
    {
        uchar *srcData = srcImg.ptr<uchar>(i);
        for (int j = 0; j < srcImg.cols; j++)
        {
            dstImg.at<uchar>(i, j) = srcData[j] * k + b;
        }
    }
 
彩色图的实现只需拓展到三通道即可:
for (int i = 0; i < RowsNum; i++)
    {
        for (int j = 0; j < ColsNum; j++)
        {
            //c为遍历图像的三个通道
            for (int c = 0; c < 3; c++)
            {
                //使用at操作符,防止越界
                dstImg.at<Vec3b>(i, j)[c] = saturate_cast<uchar>
                    (k* (srcImg.at<Vec3b>(i, j)[c]) + b);
 
            }
        }
    }

猜你喜欢

转载自www.cnblogs.com/lovebay/p/12450342.html