一、概述
案例:使用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; }