Image を Mat にロードしました:
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); を使用すると 画像にエラーが表示されます。非常に奇妙な...