更改常数Mat opencv的值

时间:2019-04-28 16:36:01

标签: c++ opencv

我想在opencv的常量Mat中添加180。 由于我无法更改常数值,因此我想将其保存到临时Mat中,然后将其添加180。 但是,当我尝试打印输出值时,会得到负面结果。

如果我将temp加180并打印出来,则会得到不希望的输出,它是负数。

如果将dir加180,我将得到正确的值和正数。

我将错误的值分配给temp吗?

Mat y(const Mat &image, const Mat &dir) {

  image.copyTo(non_max_sup);
  Mat temp ( dir.size(), CV_32F, Scalar(0));
   dir.copyTo(temp);
  for ( int x = 0; x < dir.rows; x++) {

    for (int y = 0; y < dir.cols; y++) {


        if(dir.at<int>(x,y)<0){

        temp.at<int>(x,y)=  (dir.at<int>(x,y));



            temp.at<int>(x,y)=temp.at<int>(x,y)+180;

            std::cout<<temp.at<float>(x,y)<<std::endl; //wrong numbers
            //std::cout<<dir.at<float>(x,y)+180<<std::endl; correct numbers

        }

}
}


}

0 个答案:

没有答案