Quelqu'un peut-il me montrer comment utiliser l'algorithme RANSAC pour sélectionner des points caractéristiques communs dans deux images qui ont une certaine partie de chevauchement? Le problème est survenu à partir de l'assemblage d'images basé sur les fonctions.
Algorithme RANSAC
Répondre
I mis en œuvre une image piqueuse quelques années. L'article sur RANSAC sur Wikipedia décrit bien l'algoritmo général. Lorsque vous utilisez RANSAC pour la correspondance d'images basée sur les fonctions, vous souhaitez rechercher la transformation qui transforme le mieux la première image en seconde image. Ce serait le modèle décrit dans l'article wikipedia.
Si vous avez déjà obtenu vos caractéristiques pour les deux images et que vous avez trouvé les caractéristiques de la première image qui correspondent le mieux aux caractéristiques de la deuxième image, RANSAC serait quelque chose comme ça.
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
Le résultat final est la transformation qui correspond le mieux TRANFORMS les points image2 à image1, qui est exacly ce que vous voulez lors de la couture.
- 1. Ransac je suis raccord spline
- 2. MLESAC isntead de RANSAC avec OpenCV
- 3. Générer deux nombres aléatoires pour l'échantillonnage RANSAC
- 4. Matrice de fonds utilisant Surf avec Ransac dans Matlab
- 5. Raccord RANSAC line3d par segments de ligne 3D
- 6. algorithme de graphique, algorithme d'approximation
- 7. Obtenir les 5 points utilisés par RANSAC dans findHomography (OpenCV pour Android)
- 8. Algorithme Bully
- 9. Algorithme d'antialiasing?
- 10. Algorithme MIN_HEAPIFY
- 11. Algorithme d'empaquetage
- 12. Algorithme Captcha
- 13. Algorithme Horner
- 14. Algorithme d'intersection
- 15. complexité algorithme
- 16. Optimizing algorithme
- 17. algorithme flashsort
- 18. Algorithme d'élagage
- 19. Algorithme d'évaluation
- 20. Algorithme Domize
- 21. complexité algorithme
- 22. Découlant algorithme
- 23. Algorithme optimal
- 24. Algorithme RadixSort
- 25. Difficultés à convertir un algorithme récursif en un algorithme itératif
- 26. Algorithme de placement d'images multiples - Algorithme de collage
- 27. Découvrir un algorithme fonctionnel à partir d'un algorithme mutable
- 28. meilleur algorithme pour l'échange?
- 29. Algorithme de raccourcissement d'URL
- 30. Big O algorithme analyse
Votre question est trop vague. Que voulez-vous dire par des coins qui se chevauchent? – koan
Merci d'avoir signalé cela. J'ai modifié la question. – view