为什么这2行代码不相同?因为有些饱和度?
Mat的类型是CV_8U,bgr是1通道Mat的向量,灰色是一个通道图像。
vector<Mat> bgr;
Mat gray;
1
gray+= (bgr[0]-128)*2;
2
gray= (bgr[0]-128)*2+gray;
以下是复制的最小代码:
void Test()
{
Mat A= Mat::zeros(100,100,CV_8UC1);
A(Rect(20,20,60,60)).setTo(128);
Mat R= Mat::zeros(100,100,CV_8UC1);
randu(R, Scalar::all(0), Scalar::all(255));
//v1
//A+= (R-128)*2;
//v2
A= A+(R-128)*2;
imwrite("A.png", A);
}