Opencv Mat除了奇怪的行为

时间:2015-09-10 11:28:04

标签: opencv matrix casting

为什么这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);
}

0 个答案:

没有答案