一、概述
案例:使用opencv加载一张彩色图片,并对这张彩色图片像素取反。
二、展示效果

三、示例代码
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main(int argc, char const *argv[])
{
//读取图片
Mat src = imread("girl.jpg");
//对图片像素取反
Mat imageReverese;
src.copyTo(imageReverese);
//获取图片的宽高
int channels = src.channels();
int rows = src.rows;
int cols = src.cols*channels;
// if(src.isContinuous()){
// cols *= rows;
// rows = 1;
// }
//每个像素点的通道255取反
uchar * p1;
uchar *p2;
for(int row = 0;row<rows;row++){
p1 = src.ptr<uchar>(row);//获取像素指针
p2 = imageReverese.ptr<uchar>(row);
for(int col=0;col<cols;col++){
*p2 = 255-*p1;//取反
p2++;
p1++;
}
}
//创建windows
//namedWindow("src",CV_WINDOW_AUTOSIZE);
//namedWindow("target",CV_WINDOW_AUTOSIZE);
//展示图片
imshow("src",src);
imshow("target",imageReverese);
//关闭
waitKey(0);
//destroyWindow("src");
//destroyWindow("target");
return 0;
}