Угловое обнаружение

Вычислите угловую метрическую матрицу и найдите углы в изображениях

Библиотека

Analysis & Enhancement

visionanalysis

Описание

Блок Corner Detection находит углы в изображении с помощью детектирования углов методом Харриса (Harris & Stephens), минимальное собственное значение (Shi & Tomasi), или локальное сравнение интенсивности (Функции от Ускоренного Теста Сегмента, FAST Rosten & Drummond) метод. Блок находит углы в изображении на основе пикселей, которые имеют самые большие угловые метрические значения.

Для самых точных результатов используйте Минимальный Метод Собственного значения. Для самого быстрого вычисления используйте Локальное Сравнение Интенсивности. Для компромисса между точностью и вычислением, используйте Метод детектирования углов методом Харриса.

Описание порта

ПортОписаниеПоддерживаемые типы данных

I

Матрица значений интенсивности

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка

  • 8-, 16-, и 32-битное целое число со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

Местоположение

M-by-2 матрица [x y] координаты, который представляет местоположения углов. M представляет количество углов и меньше чем или равен параметру Maximum number of corners

32-битное беззнаковое целое

Количество

Скалярное значение, которое представляет количество обнаруженных углов

32-битное беззнаковое целое

Метрика

Матрица угловых метрических значений, которая одного размера как входное изображение

То же самое, когда я портирую

Минимальный метод собственного значения

Этот метод является более в вычислительном отношении дорогим, чем алгоритм детектирования углов методом Харриса, потому что это непосредственно вычисляет собственные значения суммы матрицы различия в квадрате, M.

Сумма матрицы различия в квадрате, M, задана можно следующим образом:

M=[ACCB]

Предыдущее уравнение основано на следующих значениях:

A=(Ix)2wB=(Iy)2wC=(IxIy)2w

где Ix и Iy градиенты входного изображения, меня, в направлении X и Y, соответственно. символ обозначает операцию свертки.

Используйте параметр Coefficients for separable smoothing filter, чтобы задать вектор коэффициентов фильтра. Блок умножает этот вектор коэффициентов транспонировать, чтобы создать матрицу коэффициентов фильтра, w.

Блок вычисляет меньшее собственное значение суммы матрицы различия в квадрате. Это минимальное собственное значение соответствует угловой метрической матрице.

Метод детектирования углов методом Харриса

Метод детектирования углов методом Харриса избегает явного вычисления собственных значений суммы матрицы различий в квадрате путем решения для следующей угловой метрической матрицы, R:

R=ABC2k(A+B)2

A, B, C заданы в предыдущем разделе, Минимальном Методе Собственного значения.

Переменная k соответствует фактору чувствительности. Можно задать его значение с помощью параметра Sensitivity factor (0<k<0.25). Чем меньший значение k, тем более вероятно случается так, что алгоритм может обнаружить острые углы.

Используйте параметр Coefficients for separable smoothing filter, чтобы задать вектор коэффициентов фильтра. Блок умножает этот вектор коэффициентов транспонировать, чтобы создать матрицу коэффициентов фильтра, w.

Локальное сравнение интенсивности

Этот метод решает, что пиксель является возможным углом, если это имеет или, N непрерывные допустимые яркие окружающие пиксели или непрерывные темные окружающие пиксели N. Определение значения N обсуждено позже в этом разделе. Следующий раздел объясняет, как блок находит эти окружающие пиксели.

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

Ip и Ij интенсивность пикселей p и j, соответственно. Пиксель j является допустимым ярким окружающим пикселем если IjIpT. Точно так же пиксель j является допустимым темным окружающим пикселем если IpIjT. В этих уравнениях T является значением, которое вы задали для параметра Intensity comparison threshold.

Блок повторяет этот процесс, чтобы определить, имеет ли блок непрерывные допустимые окружающие пиксели N. Значение N связано со значением, которое вы задаете для Maximum angle to be considered a corner (in degrees), как показано в следующей таблице.

Количество допустимых окружающих пикселей, NУгол (степени)
1522.5
1445
1367.5
1290
11112.5
10135
9157.5

После того, как блок решает, что пиксель является возможным углом, это вычисляет свою угловую метрику использование следующего уравнения:

R=max (j:IjIp+T|IpIj|T,j:IjIpT|IpIj|T,)

Типы данных с фиксированной точкой

Следующая схема показывает типы данных, используемые в блоке Corner Detection для сигналов фиксированной точки. Эти схемы применяются к детектированию углов методом Харриса и минимальным методам собственного значения только.

Следующая таблица обобщает переменные, используемые в предыдущих схемах.

Имя переменнойОпределение
IN_DTТип входных данных
MEM_DTТип данных оперативной памяти
OUT_DTМетрический тип выходных данных
COEF_DTСодействующий тип данных

Параметры

Method

Задайте метод, чтобы использовать, чтобы найти угловые значения. Вашим выбором является Harris corner detection (Harris & Stephens), Minimum eigenvalue (Shi & Tomasi) и Local intensity comparison (Rosten & Drummond).

Sensitivity factor (0<k<0.25)

Задайте фактор чувствительности, k. Чем меньший значение k, тем более вероятно алгоритм должен обнаружить острые углы. Этот параметр видим, если вы устанавливаете параметр Method на Harris corner detection (Harris & Stephens). Этот параметр является настраиваемым.

Coefficients for separable smoothing filter

Задайте вектор коэффициентов фильтра для фильтра сглаживания. Этот параметр видим, если вы устанавливаете параметр Method на Harris corner detection (Harris & Stephens) или Minimum eigenvalue (Shi & Tomasi).

Intensity comparison threshold

Укажите, что пороговое значение раньше находило допустимые окружающие пиксели. Этот параметр видим, если вы устанавливаете параметр Method на Local intensity comparison (Rosten & Drummond). Этот параметр является настраиваемым.

Maximum angle to be considered a corner (in degrees)

Задайте максимальный угловой угол. Этот параметр видим, если вы устанавливаете параметр Method на Local intensity comparison (Rosten & Drummond). Этот параметр является настраиваемым для Симуляции только.

Output

Задайте блок вывод. Вашим выбором является Corner location, Corner location and metric matrix и Metric matrix. Блок выводит угловые местоположения в M-by-2 матрица [x y] координаты, где M представляет количество углов. Блок выводит угловое метрическое значение в матрице, тот же размер как входное изображение.

Когда вы устанавливаете этот параметр на Corner location или Corner location and metric matrix, Maximum number of corners, Minimum metric value that indicates a corner, и параметры Neighborhood size (suppress region around detected corners) появляются на блоке.

Чтобы определить итоговые угловые значения, блок следует за этим процессом:

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

  2. Проверьте, что метрическое значение больше, чем или равно значению, которое вы задали для параметра Minimum metric value that indicates a corner.

  3. Подавите область за углом значение размером, заданным в параметре Neighborhood size (suppress region around detected corners).

Блок повторяет этот процесс, пока это не находит все углы в изображении, или это находит количество углов, которые вы задали в параметре Maximum number of corners.

Угловые метрические значения, вычисленные Minimum eigenvalue и методами Local intensity comparison, являются всегда неотрицательными. Угловые метрические значения, вычисленные методом Harris corner detection, могут быть отрицательными.

Maximum number of corners

Введите максимальный номер углов, которые вы хотите, чтобы блок нашел. Этот параметр видим, если вы устанавливаете параметр Output на Corner location или Corner location and metric matrix.

Minimum metric value that indicates a corner

Задайте минимальное угловое метрическое значение. Этот параметр видим, если вы устанавливаете параметр Output на Corner location или Corner location and metric matrix. Этот параметр является настраиваемым.

Neighborhood size (suppress region around detected corners)

Задайте размер окружения за углом метрическое значение по который нули блока значения. Введите двухэлементный вектор положительных нечетных целых чисел, [r c]. Здесь, r является количеством строк в окружении, и c является количеством столбцов. Этот параметр видим, если вы устанавливаете параметр Output на Corner location или Corner location and metric matrix.

Rounding mode

Выберите округляющийся режим для операций фиксированной точки.

Overflow mode

Выберите режим переполнения для операций фиксированной точки.

Coefficients

Выберите, как задать размер слова и дробную длину коэффициентов:

  • Когда вы выбираете Same word length as input, размер слова содействующего соответствия тот из входа к блоку. В этом режиме дробная длина коэффициентов автоматически установлена в двоичную точку, только масштабирующуюся, который предоставляет вам лучшую точность, возможную, учитывая значение и размер слова коэффициентов.

  • Когда вы выбираете Specify word length, можно ввести размер слова коэффициентов в битах. Блок автоматически устанавливает дробную длину давать вам лучшую точность.

  • Когда вы выбираете Binary point scaling, можно ввести размер слова и дробную длину коэффициентов в битах.

  • Когда вы выбираете Slope and bias scaling, можно ввести размер слова в битах и наклоне коэффициентов. Смещение всех сигналов в программном обеспечении Computer Vision Toolbox™ 0.

Product output

Как показано в следующей фигуре, вывод множителя помещается в тип выходных данных продукта и масштабирование.

Используйте этот параметр, чтобы задать, как назвать продукт выходным словом и дробными длинами.

  • Когда вы выбираете Same as input, эти характеристики совпадают с теми из входа к блоку.

  • Когда вы выбираете Binary point scaling, можно ввести размер слова и дробную длину продукта вывод в битах.

  • Когда вы выбираете Slope and bias scaling, можно ввести размер слова в битах и наклоне продукта вывод. Смещение всех сигналов в программном обеспечении Computer Vision Toolbox 0.

Accumulator

Как показано в следующей фигуре, входные параметры к аккумулятору брошены к типу данных аккумулятора. Вывод сумматора остается в типе данных аккумулятора, когда каждый элемент входа добавляется к нему.

Используйте этот параметр, чтобы задать, как определять это слово аккумулятора и дробные длины:

  • Когда вы выбираете Same as input, эти характеристики совпадают с теми из входа.

  • Когда вы выбираете Binary point scaling, можно ввести размер слова и дробную длину аккумулятора в битах.

  • Когда вы выбираете Slope and bias scaling, можно ввести размер слова в битах и наклоне аккумулятора. Смещение всех сигналов в программном обеспечении Computer Vision Toolbox 0.

Memory

Выберите, как задать размер слова памяти и дробную длину:

  • Когда вы выбираете Same as input, эти характеристики совпадают с теми из входа к блоку.

  • Когда вы выбираете Binary point scaling, можно ввести размер слова и дробная продолжительность вывода в битах.

  • Когда вы выбираете Slope and bias scaling, можно ввести размер слова в битах и наклоне вывода. Этот блок требует наклона степени двойки и смещения 0.

Metric output

Выберите, как задать метрический выходной размер слова и дробную длину:

  • Когда вы выбираете Same as accumulator, эти характеристики совпадают с теми из аккумулятора.

  • Когда вы выбираете Same as input, эти характеристики совпадают с теми из входа к блоку.

  • Когда вы выбираете Binary point scaling, можно ввести размер слова и дробная продолжительность вывода в битах.

  • Когда вы выбираете Slope and bias scaling, можно ввести размер слова в битах и наклоне вывода. Этот блок требует наклона степени двойки и смещения 0.

Lock data type settings against change by the fixed-point tools

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на маске блока. Для получения дополнительной информации смотрите fxptdlg, страницу с описанием на Fixed-Point Tool в документации Simulink®.

Ссылки

[1] К. Харрис и М. Стивенс. “Объединенный Детектор Угла и Ребра”. Продолжения 4-й Конференции по Видению Alvey. Август 1988, стр 147-151.

[2] Цз. Ши и К. Томэзи. “Хорошие Функции, чтобы Отследить”. Продолжения Конференции по IEEE по Компьютерному зрению и Распознаванию образов. Июнь 1994, стр 593–600.

[3] Э. Ростен и Т. Драммонд. “Плавя Точки и Строки для Высокопроизводительного Отслеживания”. Продолжения Международной конференции IEEE по вопросам Издания 2 Компьютерного зрения (октябрь 2005): стр 1508–1511.

Смотрите также

Найдите локальные максимумы

Программное обеспечение Computer Vision Toolbox

Оцените геометрическое преобразование

Программное обеспечение Computer Vision Toolbox

matchFeatures

Программное обеспечение Computer Vision Toolbox

extractFeatures

Программное обеспечение Computer Vision Toolbox

detectSURFFeatures

Программное обеспечение Computer Vision Toolbox

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

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

Представленный в R2007b