두 이미지 간의 아핀 변환을 계산할 때 opencv를 사용하고 있습니다. A와 B라고 가정 해 봅시다. A부터 B까지 추정하고 싶습니다. RANSAC을 구현해야합니다. 가능한 가장 좋은 평가. 지금까지 RANSAC에 대한 내 프레임 워크 (두 이미지와 해당 이미지의 키포인트가 이미 있다고 가정) :opencv warpAffine의 이상 값 테스트 번호
1 : 임의의 3 개의 일치 항목을 선택하고 A와 B의 일치 지점을 getAffineTransform ;
2 : warpAffine 함수를 사용하여 A에서 포인트를 왜곡하고 결과를 B.의 포인트와 비교하여 이상 치를 얻습니다. e;
3 : 샘플의 크기가 3 포인트 (getAffineTransform은 변환을 찾기 위해 3 포인트가 필요함)를 고려할 때 아웃 사이더 비율이 e 인 경우, RANSAC를 실행해야하는 횟수를 찾을 수 있습니다. 좋은 추정을 발견 할 확률, N 회;
4 : 가장 작은 이상치 비율로 변환을 유지하면서 1 및 2 단계를 반복합니다.
기본 아이디어는 괜찮은 것 같지만 실행에 문제가 있습니다. 구체적으로 2 단계입니다. 문제는 특정 아웃 라이어 수를 테스트 할 수 있는지 잘 모르겠습니다. warpAffine을 사용하여 A와 B의 점을 매핑하는 방법에 대해 생각했지만 실제로는 기능이 작동하지 않을 것이라고 확신합니다. 점의 매트 (M은 매트이며 M은 점의 수와 각각 좌표를 x 및 y 좌표로 표시)를 맵핑하려는 포인트 세트 대신 Image로 설정하십시오. 어떻게해야합니까?
저는 opencv 2.4.2를 C++과 함께 사용하고 있습니다.