0

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;
    }
}

誰かが助けてくれることを願っています。どうもありがとう!

4

1 に答える 1

4

データはバイト、つまりcharsとして格納され、出力はcharsをcharsとして解釈し、シンボルを出力しようとします。整数だと言ってください

cout<< (int) v_channel[0].at<uchar>(i,j)<<endl;

于 2012-12-05T13:37:36.150 に答える