0
비교적 작은 (288 x 360) 트래픽 비디오에서 옵티컬 플로우를 사용하고 있는데 문제가 있습니다. 프레임의 일부 지점에서 광학 흐름 벡터를 얻을 수 없습니다.opencv 옵티컬 플로우가 대부분의 벡터를 감지하지 못합니다.
vector<Point2f> features1;
vector<Point2f> features2;
int number_of_features = 2000;
goodFeaturesToTrack(frame1, features1 ,number_of_features,0.01,0.01);
하고 : 이 이미지
goodFeaturesToTrack()이 추천
기능 "추적하기 좋은 기능"으로서 검출 된 점을 보여준다 당신은 많은 포인트가 뒤에서 발견되었지만 내가 사용할 때를 본다
,calcOpticalFlowPyrLK()
이런 광류 벡터 얻을 :
TermCriteria optical_flow_termination_criteria= TermCriteria(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 10, .001);
calcOpticalFlowPyrLK(
frame1, frame2, features1, features2,
optical_flow_found_feature,optical_flow_feature_error,
Size(21,21),5,optical_flow_termination_criteria
);
단지 화상 취입과 앞의 지점을 반환
하지만 모든 비디오의 벡터가 필요합니다. 그렇다면 어떻게 뒤에서 벡터를 얻을 수 있습니까?
편집 :
내가 잘못하고있는 것은 작은 벡터를 필터링하는 것이 었습니다.
'calcOpticalFlowPyrLK'와 벡터 그리기 사이의 단계를 보여줄 수 있습니까? –
고마워요! 문제는 바로 한 줄의 필터 였고 기능을 사용하는 데 문제가 있다는 사실을 고집했습니다. 대답을 추가하면 올바른 것으로 표시됩니다. –