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() 周围的演员只是用 cout 而不是 char 显示一个数字)

于 2013-02-13T12:22:36.197 回答