我正在使用 cv::imread 加载图像并对该图像进行一些处理,但我不知道为什么我无法从 imread 函数中读取返回的 Mat 的值。我使用了 Mat.at 方法:
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 错误:断言失败 ( 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()) 是未知函数,文件:“c:\opencv2.2\include\opencv2\core\mat.hpp”,第 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?谢谢你的帮助!