2017-12-06 1 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 color = m1.at (i, j); ' –

+0

Visual Studio에서 Mat_을 인식하지 못하고 m1.at를 사용하려고 시도했습니다. (j, i); 그리고 작동하지 않습니다. –