我将图像加载到垫子:
Mat Mask = cvLoadImage(filename);
它是 3744 X 5616 RGB 图像。在下一步中,我将其转换为灰度。
cvtColor(Mask,Mask,CV_BGR2GRAY);
在此之后,我将其标准化以稍后使用完整的灰度:
normalize(Mask,Mask,0,255,NORM_MINMAX,CV_8U);
现在我需要特定的灰度值并在某些值上出现错误:
for(int i=0;i<(Picture.rows);i++)
{
for(int j=0;j<(Picture.cols);j++)
{
Vec3b masked = Mask.at<Vec3b>(i,j);
//some stuff
}
}
我在某些像素上收到以下错误:
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()) in unknown function, file c:\opencv\build\include\opencv2\core\mat.hpp, line 537
谁能告诉我我做错了什么?奇怪的是它只出现在某些像素值上
编辑:附加信息:如果我将蒙版加载为灰度,一切正常。但是当我使用 cvtColor() 或 Mat Mask = imread(filename,CV_LOAD_IMAGE_GRAYSCALE); 在图像上出现错误。很奇怪...