¿Alguien puede mostrarme cómo usar el algoritmo RANSAC para seleccionar puntos comunes en dos imágenes que tienen una cierta porción de superposición? El problema surgió de las costuras de imágenes basadas en características.
Algoritmo RANSAC
11
A
Respuesta
20
he implementado una grapadora imagen de un par de años atrás. El artículo sobre RANSAC en Wikipedia describe bien el algortihm general.
Al utilizar RANSAC para la coincidencia de imágenes basada en características, lo que desea es encontrar la transformación que mejor transforme la primera imagen en la segunda. Este sería el modelo descrito en el artículo de wikipedia.
Si ya tiene sus características para ambas imágenes y ha encontrado qué características de la primera imagen coinciden mejor con las características de la segunda imagen, RANSAC se usará de la siguiente manera.
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
El resultado final es la transformación que mejor tranforms los puntos en imagen2 a image1, que es lo que quiere exacly al coser.
Cuestiones relacionadas
- 1. Ransac para ajuste de spline
- 2. OpenCV: parámetro de confianza RANSAC para encontrar una homografía
- 3. Programación algoritmo
- 4. Algoritmo Minimax
- 5. Algoritmo SLAM
- 6. Algoritmo de conexión de componentes electrónicos algoritmo de conexión
- 7. Algoritmo de descifrado AES
- 8. Algoritmo de popularidad
- 9. popularidad Algoritmo - SQL/Django
- 10. ¿Es este algoritmo lineal?
- 11. El Conde Boceto Algoritmo
- 12. Graph algoritmo del colorante
- 13. Algoritmo Floodfill en Android
- 14. Algoritmo de ordenamiento natural
- 15. Reducir Integer fracciones Algoritmo
- 16. complejidad del algoritmo
- 17. algoritmo de horizonte
- 18. Algoritmo para datos coincidentes
- 19. algoritmo de agrupamiento 3D
- 20. Algoritmo Bresenham en Javascript
- 21. Algoritmo de ayuda necesaria
- 22. algoritmo de búsqueda
- 23. algoritmo de combinaciones
- 24. Google Maps algoritmo
- 25. HTML Dif/Patch Algoritmo
- 26. mochila algoritmo de variación
- 27. Sistema Experto algoritmo
- 28. algoritmo de matriz oblicua
- 29. algoritmo sigmoide Fast
- 30. pregunta algoritmo Tricky
Su pregunta es demasiado vaga. ¿Qué quieres decir con la superposición de las esquinas? – koan
Gracias por señalar eso. Modifiqué la pregunta. – view