Найти (x, y) подпиксельные координаты максимума, используя дискретную квадратичную интерполяцию - PullRequest
3 голосов
/ 10 апреля 2019

Мне нужно найти субпиксель (x,y) координаты максимального значения при заданном наборе дискретных точек.
В моем случае я запускаю cv::matchTemplate функцию, которая перемещает окно модели вдоль изображения и возвращает значение оценкидля каждой позиции пикселя.
Результатом является изображение с оценкой для каждой позиции и местоположением (x0, y0) с максимальным значением, например, эти значения вокруг найденного максимального значения:

      x_1    x0     x1
y_1 |0.91 | 0.89 | 0.90|
y0  |0.92 | 0.99 | 0.89|
y1  |0.95 | 0.95 | 0.90|

Iхотел бы использовать квадратичную интерполяцию, чтобы найти координаты точек субпикселя интерполированного максимального значения, используя только ближайшие соседи.
В 1d случае я использую эту формулу (предполагая, что x0 является источником):

interpolated_x = (x_1-x1)/(2.*(x_1-2.*x0+x1));

Например:

  x_1    x0     x1
|0.92 | 0.99 | 0.89|

вы получаете interpolated_x = -0.08823, что немного справа от x0.

Есть ли какой-нибудь код C ++ для 2dслучай

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...