Алгоритмы совмещения изображений
ОГЛАВЛЕНИЕ
В статье рассматриваются алгоритмы совмещения изображений - процесс сопоставления одного изображения под названием шаблон с другим изображением.
• Скачать двоичные файлы - 1.38 Мб
• Скачать исходники - 81.68 Кб
Введение
Совмещение изображений – процесс сопоставления одного изображения под названием шаблон (обозначаемый как T) с другим изображением I (смотрите рисунок выше). У совмещения изображений много применений, типа отслеживания объектов на видео, анализа движения и многих других задач машинного зрения.
В 1981 Брюс Д. Лукас и Такео Канаде предложили новый метод, использовавший данные о градиенте интенсивности изображения для поиска лучшего совпадения между шаблоном T и другим изображением I. Предложенный алгоритм широко применяется в области машинного зрения в течение последних 20 лет и имеет много изменений и расширений. В их число входит алгоритм, предложенный Симоном Бейкером, Фрэнком Деллаертом и Иэном Мэтьюсом. Их алгоритм гораздо эффективней вычислительно, чем исходный алгоритм Лукаса-Канаде.
В серии статей Лукас-Канаде 20 лет спустя: объединяющая основа Бейкер и Мэтьюс пытаются классифицировать алгоритмы совмещения изображений и разделить их на две категории: поступательные и обратные, в зависимости от роли шаблона T. Также они классифицируют алгоритмы как аддитивные или композиционные, в зависимости от того, обновляется ли деформация путем добавления увеличения параметров или путем составления матриц преобразований. По данной классификации алгоритм Лукаса-Канаде должен называться поступательным аддитивным алгоритмом, а алгоритм Бейкера-Деллаерта-Мэтьюса должен называться обратным композиционным алгоритмом.
В этой статье реализуются два указанных алгоритма на языке C с использованием бесплатной библиотеки машинного зрения Intel OpenCV как основы для реализации. Также будет проведено сравнение этих двух алгоритмов для выяснения, какой из них быстрее.
Зачем нужна эта статья? Она дает хорошее понимание алгоритмов совмещения изображений. Есть много статей с уймой информации о совмещении изображений. Большинство из них предназначено для опытных читателей, а не для начинающих. Среди этих статей есть несколько таких, которые описывают сложные вещи просто. Но в них не хватало примеров кода для испытания. Итак, остальные две задачи этой статьи – относительно простое объяснение принципов работы совмещения изображений и предоставление примеров исходного кода.
Кому будет интересно прочитать статью? Если вы помните математику из университетской программы, знаете C или C++, заинтересованы в том, чтобы узнать, как отслеживать объект на видео, и запаслись терпением, то можете прочитать статью.