方式1.采用at函数获取像素值
for (int i = 0; i < img.rows; i++)
{
for (int j = 0; j < img.cols; j++)
{
img.at<uchar>(i, j) = 255 - img.at<uchar>(i, j);
}
}
方式2.采用.data指针获取像素
uchar * pImg = img.data;
for (int i = 0; i < img.rows; i++)
{
for (int j = 0; j < img.step; j++)
{
pImg[j] = 255 - pImg[j];
}
pImg += img.step;
}
方式3.采用.ptr指针获取像素
uchar * pImg = NULL;
cout << "ptr time:";
clock_t start = clock();
for (int i = 0; i < src.rows; i++)
{
pImg = img.ptr<uchar>(i);
for (int j = 0; j < img.step; j++)
{
pImg[j] = 255 - pImg[j];
}
}
相同条件下,Debug下遍历图像所用时间