몇 가지 포인트 : http://www.youtube.com/watch?feature=player_embedded&v=MIYt1yNwoZU광학 플로우 :이 같은 것을 할 노력하고있어
내가 올바른 방법에있어, 그것을 코딩 2 시간 동안 잘 작동합니다. 내가 OpenCV의 2.4을 사용하고 있는데 몇 가지 옵션이 주변에있다
.. here 참조 :하지만 몇 가지 질문이 있습니다. 어느 것이 최고인가? 자동 감지 기능이있는 lucas kanade? 아니면 간단한 글로벌 오리엔테이션이면 충분할까요? 또는 심지어 칼만 필터? 지금은 밀도가 높은 farneback의 알고리즘을 사용하고 있으며 첫 번째 (더 간단한) 옵션이라고 생각하지만 아마도 가장 좋은 옵션은 아닙니다.
이미지에 옵티컬 플로우를 계산 한 후 (하드 플로우이므로 옵티컬 플로 계산을 위해 2 배로 축소됨) 벡터의 평균을 취합니다. 정상 평균, 그들 모두를 합계하고 벡터의 숫자에서 나눈. 그래서 flow mat에 중첩 된 for 루프가있다. 더 좋은 방법?
Point2f average_motion(0,0); float n=1; for(int y = 0; y < flow.rows; y += step) for(int x = 0; x < flow.cols; x += step) { const Point2f& fxy = flow.at<Point2f>(y, x); if(abs(fxy.x) > threshold || abs(fxy.y) > threshold) { average_motion += fxy; n++; } } average_motion *= 1/n; average_motion *= 1/n; cout << average_motion << endl;
나는의 구형하지만 왼쪽/오른쪽 움직임을 이동하고있어 대신 위/아래 작품 정말 좋은, 조금 이상한 것 같다! 누군가 왜 나를 설명 할 수 있니?
번역은 괜찮지 만 회전하는 데 걸리는 시간이 길어집니다. 평균 벡터를 얻으면 어떻게 학위를 얻을 수 있습니까? X 축 벡터 사이의 각도로 시도했지만 좋은 작동하지 않습니다. 약간의 암시?
는 이제 OpenCV의 드로잉 API를 사용하여 물건을 그리기 해요하지만 2.4에서 또한 OpenGL을 지원하지 .. 좋은해야합니다,하지만 난 그것에 대한 예를 찾을 수 없습니다 ..
참조 =? 아마도 [estimateRigidTransform] (http://opencv.willowgarage.com/documentation/cpp/structural_analysis_and_shape_descriptors.html)? – Hammer