在openCV中使用float显示所有正值,但使用char将同时显示正值和负值
我在openCV中有一个矩阵,定义为在openCV中使用float显示所有正值,但使用char将同时显示正值和负值,opencv,Opencv,我在openCV中有一个矩阵,定义为 Mat X=Mat::zeros(300,300,CV_32F); 我有另一个矩阵Y,也是同样的形式,但包含正值和负值。我只想要正值,所以我使用abs(Y)并将其存储在X中 X=abs(Y); 现在,使用 cout<<X.at<float>(i,j); coutX.at(i,j)不合法。如果您运行dbug构建,您甚至会得到后一个异常。at不是类型转换,而是数据的字节解释。所以你把一个浮点数分开,并把它当作4个单字符值来使用。 c
Mat X=Mat::zeros(300,300,CV_32F);
我有另一个矩阵Y,也是同样的形式,但包含正值和负值。我只想要正值,所以我使用abs(Y)并将其存储在X中
X=abs(Y);
现在,使用
cout<<X.at<float>(i,j);
coutX.at(i,j)如果您的Mat是CV_32F,则代码>不合法。如果您运行dbug构建,您甚至会得到后一个异常。at
不是类型转换,而是数据的字节解释。所以你把一个浮点数分开,并把它当作4个单字符值来使用。
cout<<(int)X.at<char>(i,j);