opencv 矩阵的加减乘除运算
void QuickDemo::operators_demo(Mat& image)
{
Mat dst = Mat::zeros(image.size(), image.type());
Mat m = Mat::zeros(image.size(), image.type());
m = Scalar(50, 50, 50);
//加减乘除四则运算
//multiply(image, m, dst);
//add(image, m, dst);
//devide(image, m, dst);
//subtract(image, m, dst);
//矩阵加法函数的代码
int w = image.cols;
int h = image.rows;
int dims = image.channels();
for (int rows = 0; rows < h; rows++) {
for (int cols = 0; cols < w; cols++) {
Vec3b p1 = image.at<Vec3b>(rows, cols);
Vec3b p2 = m.at<Vec3b>(rows, cols);
dst.at<Vec3b>(rows, cols)[0] = saturate_cast<uchar>(p1[0] + p2[0]);
dst.at<Vec3b>(rows, cols)[1] = saturate_cast<uchar>(p1[1] + p2[1]);
dst.at<Vec3b>(rows, cols)[2] = saturate_cast<uchar>(p1[2] + p2[2]);
}
}
imshow("加法操作", dst);
}
//加减乘除四则运算
//multiply(image, m, dst);
//add(image, m, dst);
//devide(image, m, dst);
//subtract(image, m, dst);
//saturate_cast函数在opencv中有重要作用。