2012-01-22 16 views
10

Funkcja OpenCV findhomography() wyszukuje transformację homograficzną pomiędzy dopasowanymi punktami dwóch obrazów. (Patrz Definition)OpenCV: parametr zaufania RANSAC do znalezienia homografii

Aby znaleźć pasujące podzbiory punktów, można użyć RANSAC.

tu jest haczyk: w przeciwieństwie do innych funkcji w OpenCV, które wykorzystują RANSAC (np findfundamentalMat (Patrz Definition)) parametr RANSAC dla zaufanianie może zostać zmienione. Tylko próg reprojection można przekazać jako argument.

Zajrzałem do źródła OpenCV, a dla findhomography() pewność została zakodowana na 0,995.

Dla moich celów muszę to zwiększyć. Czy istnieje sposób, aby to zrobić bez zmiany wartości w samym źródle OpenCV?

Czy istnieje powód, dla którego to powinno być na stałe?

PS: Dodałem zmianę request under Ticket 1557 dla następnej subwersji.

Odpowiedz

5

Powodem do narzucenia jest to, że dla większości użytkowników jest to bardzo dobry wybór.

Być może pierwszy człowiek poczuł potrzebę czegoś więcej. Ale właśnie dlatego OpenCV jest otwarty - weź kod, zmodyfikuj go, ułóż poprawkę i zaproponuj go zespołowi programistów OpenCV - cokolwiek chcesz.

Czy jesteś pewien, że tego właśnie potrzebujesz? Zwykle bardziej rygorystyczny próg reproj może zrobić lewę. Jeśli masz problemy, mogą być gdzieś indziej - niektóre źle dobrane punkty, zbyt duży pasujący błąd przy dopasowywaniu punktów, itp.

+1

Masz rację: mógłbym to zmienić sam i wziąć udział w rozwoju. W rzeczywistości to właśnie zrobiłem w mojej lokalnej działalności wywrotowej i działa dobrze. – user834985

5

Cóż, nie jesteś pierwszy, który musi zmienić zmienne lub funkcje kodowane w OpenCV. W rzeczywistości zmieniamy wiele funkcji OpenCV, aby uczynić je szybszymi i wydajniejszymi w telefonach komórkowych. Jeśli chcesz zmienić RANSAC, wystarczy utworzyć kopię klasie z inną nazwą

class CvModelEstimator2 
{ 

} 

w kodzie i zmodyfikować go samodzielnie, jak trzeba. Możesz także zmienić maxnumber iteracji dla RANSAC, ustawienie domyślne jest bardzo wysokie i sprawia, że ​​aplikacja jest naprawdę wolna.

Powiązane problemy