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