1
int main () {    

    Mat A = Mat::ones(100, 100, CV_8U)*3;
    cout << A.at<int>(0,0) << endl;

    return 0;
}

出力は非常に大きな数です::50529027

誰か助けてもらえますか?C++コード

4

1 に答える 1

2
you're casting to the wrong type in A.at<int>() // should be uchar instead of int

so, A.at<int>(0,0) sees 0x03030303, which is, in fact 50529027.

Mat A = Mat::ones(100, 100, CV_8U)*3;
cout << int(A.at<uchar>(0,0)) << endl;

(A.at()の周りのキャストは、charの代わりにcoutを使用して数値を表示するためのものです)

于 2013-02-13T12:22:36.197 に答える