Template Matching

Найдите шаблон в изображении

  • Библиотека:
  • Computer Vision Toolbox/Анализ и совершенствование

  • Template Matching block

Описание

Блок Template Matching находит лучшее соответствие шаблона в вход изображении. Блок вычисляет соответствие значений метрики путем переноса шаблона на необходимую область или все изображение, а затем находит лучшее расположение соответствия.

Блок выходы либо метрические значения соответствия, либо однонаправленные (x, y) координаты наилучшего соответствия шаблона. Опционально блок может выводить N -by - N матрицу значений метрики соответствия с центром вокруг наилучшего расположения соответствия.

Порты

Вход

расширить все

Введите изображение для использования с шаблоном. Блок не заполняет входные данные. Поэтому он может вычислять только значения для метрик соответствия между входом изображением и шаблоном, где шаблон расположен так, что он полностью падает на вход изображение. Набор всех таких положений шаблона называется действительной областью входного изображения. Размер допустимой области является различием между размерами входных и шаблонных изображений плюс единица.

sizevalid = sizeinput - sizetemplate + 1(1)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Шаблон, заданный как M -by- N матрица

Блок Template Matching не заполняет входные данные. Поэтому он может вычислять только значения для метрик соответствия между входом изображением и шаблоном, где шаблон расположен так, что он полностью падает на вход изображение. Набор всех таких положений шаблона называется действительной областью входного изображения. Размер допустимой области является различием между размерами входных и шаблонных изображений плюс единица.

sizevalid = sizeinput - sizetemplate + 1(2)

Типы данных: single | double | uint8 | Boolean | fixed point

Необходимая область вектор в формате (x, y, width, height), где (x, y) являются координатами на основе одного для верхнего левого угла области. Блок выводит индекс местоположения наилучшего соответствия относительно верхней части левого угла входа изображения.

Типы данных: single | double | uint8 | Boolean | fixed point

Выход

расширить все

Матрица совпадающих метрических значений. Матрица метрик соответствия всегда реализует одношаговую исчерпывающую итерацию окна. Поэтому блок вычисляет значения метрики в каждом пикселе.

Зависимости

Когда вы устанавливаете параметр Output равным Metric matrixблок выводит допустимый размер изображения.

Типы данных: single | double | uint8 | Boolean | fixed point

Лучший шаблон совпадает с одноуровневыми (x, y) координатами. В режиме обработки ROI блок обрабатывает изображение вокруг информация только для чтения как расширение субрегиона информация только для чтения. Поэтому вычисляет лучшие местоположения соответствия, верные фактическим контурам информация только для чтения. Блок выводит лучшие координаты соответствия относительно верхнего левого угла изображения. Одноуровневые координаты [x y] местоположения соответствуют центру шаблона. Следующая таблица показывает, как блок выводит центральные координаты для нечетных и четных шаблонов:

Нечетное количество пикселей в шаблонеЧетное количество пикселей в шаблоне

Типы данных: uint32

Метрические значения в районе лучшего соответствия, возвращенные как N -by- N матрица. N, указанный в маске, должен быть нечетным числом. Когда вы выбираете Best match location, чтобы вернуть матрицу метрик в окрестности вокруг лучшего соответствия, исчерпывающий цикл вычисляет все метрические значения для окрестности N -by N. Этот выход особенно полезен для выполнения согласования шаблона с точностью субпикселей.

Типы данных: single | double | uint8 | Boolean | fixed point

Позволяет отслеживать допустимую соседнюю область. Матрица соседства метрических значений действительна внутри информация только для чтения. Блок устанавливает выход NValid следующим образом:

  • 1 - Район, содержащий лучший матч, полностью находится внутри необходимой области.

  • 0 - Район, содержащий лучшее совпадение, полностью или частично находится за пределами необходимой области.

Зависимости

Этот порт появляется, когда вы включаете параметр Output NxN matrix of metric values around best match.

Типы данных: Boolean

Позволяет отслеживать допустимую необходимую область. Если информация только для чтения находится частично вне допустимого изображения, блок обрабатывает только пересечение информация только для чтения и допустимого изображения. Блок устанавливает выход ROIValid следующим образом:

  • 1 - информация только для чтения находится полностью внутри действительной части входного изображения.

  • 0 - информация только для чтения находится полностью или частично вне допустимой части входного изображения.

Зависимости

Этот порт появляется, когда вы включаете параметр Output flag indicating if ROI is valid.

Типы данных: Boolean

Параметры

расширить все

Main Tab

Выберите метрику соответствия как один из:

  • Sum of absolute differences (SAD)

  • Sum of squared differences (SSD)

  • Maximum absolute difference (MaxAD)

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

Выберите тип выхода как один из следующих:

  • Match metric - Вывод метрической матрицы соответствия. Эта опция добавляет к блоку Metric выходной порт.

  • Best match location - Вывод координат [x, y] для местоположения наилучшего соответствия. Эта опция добавляет к блоку Loc выходной порт. Это также делает доступными Search method, Output NxN matrix of metric values around best match и Enable ROI processing параметры.

    Параметр Output на панели Типы данных появляется, когда вы устанавливаете параметр Output на Main tab Metric matrix или если установить значение Best match location и вы включаете параметр Output NxN matrix of metric values around best match.

Укажите метод поиска следующим образом Exhaustive или Three-step. The Exhaustive способ поиска является вычислительно интенсивным, потому что он ищет в каждом пиксельном местоположении изображения. Однако этот метод обеспечивает более точный результат.

The Three-step метод поиска является быстрым поиском, который использует подход соседства в зависимости от поиска в каждом пикселе. Поиск начинается с размера шага, равного или чуть больше половины максимального диапазона поиска, и затем выполняет следующие шаги:

  1. Блок сравнивает девять точек поиска на каждом шаге. На контуре области поиска расположены центральная точка и восемь точек поиска.

  2. Блок уменьшает размер шага на единицу после каждого шага, заканчивая поиск размером шага в один пиксель.

  3. На каждом новом шаге блок перемещает центр поиска к самой подходящей точке, полученной из предыдущего шага. Синие круги номер один на рисунке ниже представляют поиск с начальным размером шага три. Зеленые круги номер два представляют следующий поиск с размером шага два, с центром вокруг лучшего соответствия, найденного из предыдущего поиска. Наконец, три оранжевых круга представляют окончательный поиск с размером шага один, с центром вокруг предыдущего лучшего матча.

Зависимости

Этот параметр появляется, когда вы устанавливаете параметр Output равным Best match location.

Позволяет добавить порты NMetric и NValid.

Зависимости

Этот параметр появляется, когда вы устанавливаете параметр Output равным Best match location.

Размер выходной матрицы. Это значение определяет размер выходной матрицы N -by N с центром вокруг лучшего индекса местоположения. N должно быть нечетным числом.

Зависимости

Этот параметр появляется, когда вы включаете параметр Output NxN matrix of metric values around best match.

Включите обработку информация только для чтения.

Зависимости

  • Этот параметр появляется, когда вы устанавливаете параметр Output равным Best match location.

  • Когда вы включаете этот параметр, блок добавляет ROI входной порт, и появляется параметр Output flag indicating if ROI is valid.

Включить добавление порта ROIValid.

Зависимости

Этот параметр появляется, когда вы включаете параметр Enable ROI processing.

Data Types Tab

Для получения дополнительной информации о параметрах блоков с фиксированной точкой смотрите Задать атрибуты с фиксированной точкой для блоков.

Характеристики блоков

Типы данных

Boolean | double | fixed point | integer | single

Многомерные сигналы

no

Сигналы переменного размера

yes

Алгоритмы

расширить все

Ссылки

[1] Koga T., et. Ал. Компенсированное движением межкадровое кодирование для видеоконференций. В рамках Национальной телекоммуникационной конференции. Ноябрь 1981, G5.3.1-5, Новый Орлеан, ЛА.

[2] Zakai M., «Общие критерии расстояния» Транзакция IEEE по теории информации, стр. 94-95, январь 1964.

[3] Yu, J., J. Amores, N. Sebe, Q. Tian, «A New Study on Distance Metrics as Simility Measurement» IEEE International Conference on Multimedia and Expo, 2006.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.

Преобразование с фиксированной точкой
Разрабатывайте и моделируйте системы с фиксированной точкой с помощью Fixed-Point Designer™.

Введенный в R2009b