当我想在分割HSV图像后扫描H通道并打印其像素值时遇到问题。问题是输出不是数字而是杂乱的代码。
以下是我的代码(使用Opencv ):
Mat hsv;
cvtColor(saveImage,hsv,CV_BGR2HSV);// convert BRG to HSV
vector<cv::Mat> v_channel;
split(hsv,v_channel); //split into three channels
if (v_channel[0].data==0) //channel[0] is Hue
{
cout<<"Error getting the Hue***********"<<endl;
}
for (int i=0;i<hue.rows;i++) //scan through Hue
{
for (int j=0;j<hue.cols;j++)
{
cout<<v_channel[0].at<uchar>(i,j)<<endl;
}
}
希望有人能提供帮助。非常感谢!
答案 0 :(得分:4)
数据存储为字节,即字符,输出将字符解释为字符,并尝试打印符号。简单地说它们是整数
cout<< (int) v_channel[0].at<uchar>(i,j)<<endl;