• Поиск сдвига одного изображения относительно другого?

    @AlexSku
    не буду отвечать из-за модератора
    Пример из MatLab'а
    Ответ написан
    Комментировать
  • Поиск сдвига одного изображения относительно другого?

    @D3Nd3R
    Если необходимо вычислить только сдвиг, то используйте phaseCorrelate. Если необходимо вычислить поворот и сдвиг, то алгоритм действия такой:
    1. если изображения прямоугольные, то вырезаем квадрат по меньшей стороне. Затем умножаем на окно Ханна (createHanningWindow);
    2. вычисляем дпф;
    3. вычисляем логарифм амплитудных спектров;
    4. переводим получившиеся изображения в полярную систему координат; https://www.youtube.com/watch?v=JZRSDDzTwts&ab_cha...
    5. используя phaseCorrelate получаем оценку поворота (сдвиг по OY, если память не изменяет);
    6. поворачиваем исходное изображения;
    7. с помощью phaseCorrelate находим сдвиг;
    Ответ написан
    Комментировать
  • Поиск сдвига одного изображения относительно другого?

    @nirvimel
    Про OpenCV не подскажу, но я бы написал это вручную. Идея простая: Задаем функцию которая проверяет истинность (точнее обратное ей значение, типа "ложность") гипотезы что второе изображение является первым изображением, сдвинутым по осям ровно на значения X, Y. Эта функция рассчитывается (например) как сумма квадратов разностей значений соответствующих пикселов первого изображения и второго, сдвинутого на -X, -Y. Имея такую функцию дальше просто находим ее минимум методом градиентного спуска (начальные значения X=0, Y=0), полученные X, Y и будут рассчитанными значениями смещения второго изображения от первого.
    С поворотом все аналогично, только добавляется еще одна одна переменная - градус поворота. Но функция проверки гипотезы становится значительно тяжелее в вычислительном плане: на каждый пиксел пойдет минимум одна тригонометрическая функция (относительно тяжелая для CPU), плюс этим обламывается SIMD оптимизация, которая дает многократное ускорение для первого варианта без поворота.
    Ответ написан
    1 комментарий