Puede alguien por favor, muéstrame cómo usar el algoritmo RANSAC para seleccionar la característica común de puntos en dos imágenes que tienen una cierta porción de superposición? El problema surgió a partir de la característica de base de la imagen de costura.
Algoritmo RANSAC
Algoritmo RANSAC

Tu pregunta es demasiado vaga. ¿Qué entiende usted por la superposición de las esquinas ?
Gracias por decírmelo. He modificado la pregunta.

OriginalEl autor view | 2011-01-11

1 Comentario

  1. 21

    He implementado una imagen stitcher un par de años atrás. El artículo en RANSAC en la Wikipedia describe el general algortihm bien.

    Cuando el uso de RANSAC para la función de imagen basada en la coincidencia, lo que se desea es encontrar la transformación que mejor se transforma en la primera imagen a la segunda imagen. Este sería el modelo que se describe en el artículo de la wikipedia.

    Si ya tiene su cuenta para ambas imágenes y han encontrado que cuenta en la primera imagen que mejor coincide con que cuenta en la segunda imagen, RANSAC se usaría algo como esto.

    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 image2 a image1, que es exactamente lo que usted desea cuando costura.

    OriginalEl autor erik

Dejar respuesta

Please enter your comment!
Please enter your name here