使用 Scalar 函数进行加减乘除
dst = image + Scalar(50, 50, 50);imshow("加法运算",dst);dst = image - Scalar(50, 50, 50);imshow("加法运算",dst);dst = image / Scalar(2, 2, 2);imshow("除法法运算", dst);Mat m = Mat::zeros(image.size(),image.type());m = Scalar(2,2,2);multiply(image,m,dst);imshow("乘法运算", dst);
底层代码分解
int w = image.cols;int h = image.rows;int dims = image.channels();m = Scalar(50,50,50);for (int row = 0; row < h; row++){for (int cols = 0; cols < w; cols++){Vec3b p1 = image.at<Vec3b>(row, cols);Vec3b p2 = image.at<Vec3b>(row, cols);image.at<Vec3b>(row, cols)[0] = saturate_cast<uchar>(p1[0]+p2[0]);image.at<Vec3b>(row, cols)[1] = saturate_cast<uchar>(p1[1] + p2[1]);image.at<Vec3b>(row, cols)[2] = saturate_cast<uchar>(p1[2] + p2[2]);}}使用OpenCV 自带函数 //add(image,m,dst);//subtract(image, m, dst);//multiply(image, m, dst);cpp