Podczas korzystania z funkcji OpenCV findHomography
w celu oszacowania homografii między dwoma zestawami punktów, z różnych obrazów, czasami otrzymasz złą homografię z powodu wartości odstających w twoich punktach wejściowych, nawet jeśli używasz RANSAC lub LMEDS.Jak rozpoznać, czy macierz homograficzna jest akceptowalna, czy nie?
// opencv java example:
Mat H = Calib3d.findHomography(src_points, dst_points, Calib3d.RANSAC, 10);
Jak ustalić, czy uzyskana macierz homologii 3x3 jest akceptowalna, czy nie?
Szukałem odpowiedzi na to tutaj w Stackoverflow oraz w Google i nie mogłem go znaleźć.
znalazłem ten artykuł, ale to jest trochę tajemniczy do mnie:
"The geometric error for homographies"
Zobacz pytanie http://stackoverflow.com/questions/10972438/detecting-garbage-homographies-fromhomography-in-opencv/10981249#10981249 –
jeśli ruch aparatu jest ograniczony, możesz spróbować rozłożyć homografię i skala testowa, parametry rotacji i/lub translacji dla wartości drastycznych. Inna metoda: Jeśli wiesz (lub przyjmujesz ograniczenia), że duże części obrazów powinny się nakładać, możesz obliczyć nakładanie po wypaczeniu i zdecydować, czy może to być oczywiście fałszywa homografia. Inne metody: jeśli używasz RANSAC możesz zdecydować z liczby inlier (i/lub stosunek inlier/total) czy homografia powinna zostać odrzucona) – Micka
@Micka dzięki za twoją pomoc, już używałem RANSAC, ruch kamery jest Nie ograniczałem się i szukałem metod odrzucania homografii (głównie matematycznych) przed pójściem na cięższe obliczenia, takie jak stosowanie homografii i sprawdzanie nakładania się. –