Вопрос

Кто-нибудь может показать мне, как использовать алгоритм RANSAC, чтобы выбрать общие точки объектов на двух изображениях, которые имеют определенную часть перекрытия? Проблема вышел из сшивания изображений на основе функций.
alt text alt text

Это было полезно?

Решение

Я реализовал сгон с изображением пару лет назад. Статья о RANSAC на Википедии хорошо описывает общий алгортихм.

При использовании RANSAC для создания изображений на основе функций, что вы хотите, чтобы найти преобразование, которое лучше всего преобразует первое изображение на второе изображение. Это будет модель, описанная в статье Википедии.

Если вы уже получили свои функции для обоих изображений, и обнаружили, какие функции в первом изображении лучше всего подходят, какие функции во втором изображении RANSAC будут использоваться что-то вроде этого.

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

Конечный результат - это преобразование, которое лучшие трансформы точек в Image2 к Image1, что является исправным то, что вы хотите при сшивании.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top