2017-12-06 17 views
-1
Mat m1 = Mat(500, 300, CV_64F, Vec3b(255,255,255)); 
    for (int i = 0; i < m1.rows; ++i) 
    for (int j = 0; j < m1.cols; ++j) 
    { 
     Vec3b color=m1.at<Vec3b>(Point(i, j)); 
    } 
imshow("test2", m1); 
waitKey(); 

変数の色は白であるピクセルの色が含まれている必要がありますが、私は、コードを実行したときに私は、私はエラーを取得:OpenCVのエラー:アサーション

OpenCV Error: Assertion failed (((((sizeof(size_t)<<28)|0x8442211) >> ((traits::Depth<_Tp>::value) & ((1 << 3) - 1))*4) & 15) == elemSize1()) in cv::Mat::at, file c:\opencv\build\include\opencv2\core\mat.inl.hpp, line 1118

+0

Mat' 'のデータ・タイプは、' '代わりCV_64F'のCV_8UC3'なければなりません。また、座標は 'Point(i、j)'ではなく 'Point(j、i)'でなければなりません。 – sgarizvi

答えて

0

は、エラーメッセージがあなたを語っているが何知っておく必要があります。あなたは限界を超えました!

試してみてください。

Point(j, i) 

列がxに対応しています。行はyに対応します。

+0

はまだ同じエラーを受け取ります –

+0

私はOpenCVをしばらく使用していません。代わりに 'Mat_'を使ってみてください。また、 'Vec3b色= m1.at (i、j)にしてみてください;' –

+0

のVisual StudioをMat_を認識しないと私はm1.at (J、I)を使用してみました。それは動作しません。 –

関連する問題