Czy ktokolwiek może mi pokazać, jak użyć algorytmu RANSAC do wybrania wspólnych punktów charakterystycznych na dwóch obrazach, które mają pewną część nakładania? Problem wyszedł ze zszywania obrazów opartego na funkcjach.
Algorytm RANSAC
11
A
Odpowiedz
20
I wdrożone zszywarkę obrazu kilka lat wstecz. Artykuł na temat RANSAC na Wikipedii opisuje ogólną studnię algortihm.
Podczas korzystania z funkcji RANSAC do porównywania obrazów opartych na elementach, należy znaleźć transformację, która najlepiej przekształci pierwszy obraz w drugi obraz. Byłby to model opisany w artykule wikipedia.
Jeśli masz już swoje funkcje dla obu obrazów i znalazłeś, które funkcje na pierwszym obrazie najlepiej pasują do funkcji na drugim obrazie, RANSAC będzie używany w podobny sposób.
The input to the algorithm is:
n - the number of random points to pick every iteration in order to create the transform. I chose n = 3 in my implementation.
k - the number of iterations to run
t - the threshold for the square distance for a point to be considered as a match
d - the number of points that need to be matched for the transform to be valid
image1_points and image2_points - two arrays of the same size with points. Assumes that image1_points[x] is best mapped to image2_points[x] accodring to the computed features.
best_model = null
best_error = Inf
for i = 0:k
rand_indices = n random integers from 0:num_points
base_points = image1_points[rand_indices]
input_points = image2_points[rand_indices]
maybe_model = find best transform from input_points -> base_points
consensus_set = 0
total_error = 0
for i = 0:num_points
error = square distance of the difference between image2_points[i] transformed by maybe_model and image1_points[i]
if error < t
consensus_set += 1
total_error += error
if consensus_set > d && total_error < best_error
best_model = maybe_model
best_error = total_error
Efektem końcowym jest transformacji, która najlepiej konwertuje punkty w Image2 do Image1, który jest exacly co chcesz podczas szycia.
Powiązane problemy
- 1. Ransac do dopasowywania splajnu
- 2. Regresja wieloczynnikowa RANSAC
- 3. OpenCV: parametr zaufania RANSAC do znalezienia homografii
- 4. Jak zastosować RANSAC w dopasowywaniu wyników SURF, SIFT i ORB
- 5. algorytm skyline
- 6. Algorytm sterty
- 7. Algorytm Lucene'a
- 8. wyszukiwania algorytm
- 9. Algorytm strunowy
- 10. algorytm podłańcuchowy
- 11. Algorytm Facemash
- 12. Algorytm redystrybucji
- 13. Algorytm Minimax
- 14. Algorytm dopasowania
- 15. Algorytm logarytmiczny
- 16. Binary GCD Algorytm vs. Algorytm Euklidesa na nowoczesnych komputerach
- 17. Algorytm grupowania filtrów cenowych
- 18. Algorytm rozpoznawania akordów?
- 19. Maksymalny niezależny algorytm setu
- 20. Algorytm podobieństwa tekstu:
- 21. Wykres (wykres) Algorytm
- 22. Algorytm logarytmiczny dyskretny
- 23. Algorytm zrozumienia znaczenia
- 24. Algorytm alokacji rezerwacji
- 25. Algorytm: Planowanie podróży
- 26. Algorytm nieprzywiązywania funkcji przywracania
- 27. UTWÓRZ ALGORYTM = UNDEFINED DEFINER
- 28. Algorytm Dijkstry: zużycie pamięci
- 29. wydajny algorytm zamiast zapętlenie
- 30. K-means ++ algorytm
Twoje pytanie jest zbyt nieprecyzyjne. Co masz na myśli przez nakładające się narożniki? – koan
Dzięki za wskazanie tego. Zmodyfikowałem pytanie. – view