int row = img.rows;
int step = img.step;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < step; j++)
{
img.at<uchar>(i, j) = 255 - img.at<uchar>(i, j);
}
}
或者:
int row = img.rows;
int col = img.cols;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
img.at<Vec3b>(i, j)[0] = 255 - img.at<Vec3b>(i, j)[0];
img.at<Vec3b>(i, j)[1] = 255 - img.at<Vec3b>(i, j)[1];
img.at<Vec3b>(i, j)[2] = 255 - img.at<Vec3b>(i, j)[2];
}
}
int row = img.rows;
int step = img.step;
uchar * pImg = img.data;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < step; j++)
{
pImg[j] = 255 - pImg[j];
}
pImg += img.step;
}
或者:
int row = img.rows;
int step = img.step;
uchar * pImg = NULL;
for ( int i = 0; i < row; i++)
{
pImg = img.ptr< uchar>(i);
for ( int j = 0; j < step; j++)
{
pImg[ j] = 255 - pImg[j];
}
}
pImg[j] = saturate_cast<uchar>(255 - pImg[j]);
原文:http://blog.csdn.net/grafx/article/details/18629165