OpenCv를 사용하여 LK Optical Flow 방식으로 작업하고 있습니다. 내 코드를 실행할 때 다음 오류가 발생합니다. 여기Mat.Depth() Opencv
Assertion failed (ncorners >= 0 && corners.depth() == CV_32F) in cornerSubPix, file /tmp/buildd/ros-hydro-opencv2-2.4.9-2precise-20140819-1745/modules/imgproc/src/cornersubpix.cpp, line 257 terminate called after throwing an instance of 'cv::Exception' what(): /tmp/buildd/ros-hydro-opencv2-2.4.9-2precise-20140819-1745/modules/imgproc/src/cornersubpix.cpp:257: error: (-215) ncorners >= 0 && corners.depth() == CV_32F in function cornerSubPix
내 코드 내가 받고있어 오류에 대한 인터넷에서 확인
vector<Point2f> cornersA;
cornersA.reserve(maxCorners);
vector<Point2f> cornersB;
cornersB.reserve(maxCorners);
goodFeaturesToTrack(imgA,cornersA,maxCorners,qualityLevel,minDistance,cv::Mat(),blockSize,0,k);
cornerSubPix(imgA, cornersA, Size(win_size, win_size), Size(-1, -1),
TermCriteria(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 20, 0.03));
// Call Lucas Kanade algorithm
의 일부입니다. 주로 Point2f 대신 Point2d를 정의하기 때문입니다. 나는 그 이상을 찾을 수 없었다. 나는이 지역을 처음 다. 여러분이 제가이 문제를 해결하도록 도울 수 있다면 정말 감사 할 것입니다. 고마워.
Point2f를 사용하는 것처럼 보이는 부분은 어설 션의 절반 부분입니다. ncorners가> = 0 인지도 확인해야합니다. 나는 n 코너가'cornersA'를 언급한다고 가정하고 이것은 비어 있습니다 (어떤 특징도 발견되지 않았습니까?). 'cornerSubPix'를 호출하기 전에'cornersA.size()'를 검사하십시오. – Thomas