我正在使用cv :: imread來加載圖像並使用該圖像執行一些處理,但我不知道爲什麼我無法讀取返回的Mat的值來自imread函數。 我用Mat.at方法:無法訪問從OpenCV函數返回的Mat的值
Mat iplimage = imread("Photo.jpg",1); //input
for(int i=0;i<iplimage.rows;i++){
for(int j=0;j<iplimage.cols;j++){
cout<<(int)iplimage.at<int>(i,j)<<" ";
}
cout<<endl;
}
但它出現了一個錯誤:
OpenCV Error: Assertion failed (dims <= 2 && data && (unsigned)i0 < (unsigned)size.p[0] && (unsigned)(i1*DataType<_Tp>::channels) < (unsigned)(size.p[1]*channels()) && ((((Sizeof(size_t)<<28)|0x8442211) >> ((DataType<_Tp>::depth) & ((1 << 3) -1))*4) & 15) == elemSize1()) is unknown function, file: "c:\opencv2.2\include\opencv2\core\mat.hpp", line 517
但是,如果使用直接訪問方式,它是確定的:
Mat iplimage = imread("Photo.jpg",1); //input
for(int i=0;i<iplimage.rows;i++){
for(int j=0;j<iplimage.cols;j++){
cout<<(int)iplimage.data[i*iplimage.cols + j]<<" ";
}
cout<<endl;
}
誰能告訴我如何使用Mat.at方法訪問上面的Mat? 感謝您的幫助!
我不想用CV ::拆分功能,因爲我需要獲得灰度圖像。如果拆分它,那麼我需要手動轉換成灰色圖像。我認爲如果我使用OpenCV函數進行這類工作,效果會更好。而且,我也試圖與imread(「Photo.jpg」,0),但同樣的問題依然發生。你能幫我解決這個問題??? –
我正在使用0pencv2.2,問題的原因是什麼? –