我正在使用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,问题的原因是什么? –