1. 程式人生 > >opencv Mat讀取影象元素時出現越界錯誤

opencv Mat讀取影象元素時出現越界錯誤

opencv  Mat讀取影象元素時出現越界錯誤:

今天開發系統,遇到了一個問題,

Mat img = imread(path, IMREAD_GRAYSCALE);

灰度化影象後,對影象進行了儲存,其實IMREAD_GRAYSCALE是一個巨集定義,值為0,

我想要遍歷影象中的每一個畫素,很自然想到at函式

img.at<int>(i, j),但是總是提示陣列越界,找不到原因。。。。。

後來發現img.at<uchar>(i, j)不報錯,但是不出資料

最後列印了一下cout << "len of bits" << sizeof(int) << endl; 發現uchar是1位的,而int是4位的,

於是(int)img.at<uchar>(i, j) 強制轉換,搞定。