Frage

Kann jemand bitte zeigen Sie mir, wie RANSAC Algorithmus verwenden gemeinsam Punkte in zwei Bildern zu wählen, die einen bestimmten Teil der Überlappung haben? Das Problem kam aus merkmalsbasierte Stitching aus.
alt text alt text

War es hilfreich?

Lösung

implementiert ich ein Bild Stitcher ein paar Jahre zurück. Der Artikel über RANSAC auf Wikipedia beschreibt die allgemeine algortihm gut.

Wenn für merkmalsbasierte Bildanpassung mit RANSAC, was Sie wollen, ist die, die am besten Transformationen des ersten Bildes mit dem zweiten Bild umwandeln zu finden. Dies wäre das Modell in dem Wikipedia-Artikel beschrieben.

Wenn Sie bereits Ihre Funktionen für beiden Bilder bekommen und gefunden haben, welche im ersten Bild kennzeichnet beste Spiele, die im zweiten Bild kennzeichnet, würde RANSAC verwendet werden, so etwas wie diese.

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

Das Endergebnis ist der, der am besten TRANFORMS die Punkte in image2 zu image1 verwandeln, was exacly ist das, was Sie wollen, wenn Nähen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top