#include<opencv2\opencv.hpp> #include<highgui.h> using namespace cv; int main(int argc, char** argv) { Mat in_img = imread("D:/vcprojects/images/123.jpg"); Mat out_img; in_img.copyTo(out_img); int channels = in_img.channels(); int rows = in_img.rows; int cols = in_img.cols * channels; if (in_img.isContinuous()) { cols *= rows; rows = 1; } uchar* p1; uchar* p2; for (int row = 0; row < rows; row++) { p1 = in_img.ptr<uchar>(row); // 获取像素指针 p2 = out_img.ptr<uchar>(row); for (int col = 0; col < cols; col++) { *p2 = 255 - *p1; // 取反 p2++; p1++; } } imshow("in_img", in_img); imshow("out_img", out_img); waitKey(0); return 0; }