Детектор ребра

Найдите ребра объектов в полутоновом пиксельном потоке

  • Библиотека:
  • Vision HDL Toolbox / Analysis & Enhancement

Описание

Блок Edge Detector находит ребра в полутоновом пиксельном потоке при помощи Sobel, Прюитта или метода Робертса. Блок применяет операцию свертки к входным пикселям с производными матрицами приближения, чтобы найти градиент пиксельного значения вдоль двух ортогональных направлений. Это затем сравнивает сумму квадратов градиентов к квадрату настраиваемого порога, чтобы определить, представляют ли градиенты ребро.

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

Порты

Этот блок использует пиксельный интерфейс потоковой передачи с шиной для сигналов управления кадром. Этот интерфейс позволяет блоку действовать независимо от размера изображения и формата. Все блоки Vision HDL Toolbox™ используют тот же интерфейс потоковой передачи. Блок принимает и возвращает и скалярное пиксельное значение и шину, содержащую пять управляющих сигналов. Управляющие сигналы указывают на валидность каждого пикселя и его местоположения в кадре. Чтобы преобразовать кадр (пиксельная матрица) в последовательный пиксельный поток и управляющие сигналы, используйте блок Frame To Pixels. Для полного описания интерфейса смотрите Пиксельный Интерфейс Потоковой передачи.

Входной параметр

развернуть все

Один пиксель изображения в пиксельном потоке, заданном как интенсивность представления скалярного значения.

double и типы данных single поддерживаются для симуляции, но не для генерации HDL-кода.

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

Управляющие сигналы, сопровождающие пиксельный поток, заданный как шина pixelcontrol, содержащая пять сигналов. Сигналы описывают валидность пикселя и его местоположения в кадре. Для получения дополнительной информации смотрите Пиксельную Шину управления.

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

Пороговое значение, которое задает ребро, заданное как скаляр. Блок сравнивает квадрат этого значения к сумме квадратов градиентов.

double и типы данных single поддерживаются для симуляции, но не для генерации HDL-кода.

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

Вывод

развернуть все

Пиксельное значение, указывающее, является ли пиксель ребром, возвратилось как бинарный скаляр.

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

Вертикальные и горизонтальные значения градиента.

double и типы данных single поддерживаются для симуляции, но не для генерации HDL-кода.

Зависимости

Эти порты видимы, когда вы устанавливаете Method на Sobel или Prewitt.

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

Ортогональные значения градиента. Эти порты видимы, когда вы устанавливаете Method на Roberts.

double и типы данных single поддерживаются для симуляции, но не для генерации HDL-кода.

Зависимости

Эти порты видимы, когда вы устанавливаете Method на Roberts.

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

Управляющие сигналы, сопровождающие пиксельный поток, возвращенный как шина pixelcontrol, содержащая пять сигналов. Сигналы описывают валидность пикселя и его местоположения в кадре. Для получения дополнительной информации смотрите Пиксельную Шину управления.

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

Параметры

развернуть все

Основной

Когда вы выбираете Sobel или Prewitt, блок вычисляет горизонтальные и вертикальные градиенты, Gv и Gh. Когда вы выбираете Roberts, блок вычисляет ортогональные градиенты, G45 и G135. Для получения дополнительной информации каждого метода, см. Алгоритмы.

Примечание

Если вы выбираете Prewitt, полная точность, внутренний тип данных является большим из-за 1/6 коэффициента. Рассмотрите Output the gradient components выбора, так, чтобы можно было настроить тип данных к меньшему размеру.

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

Необходимо выбрать по крайней мере один из Output the binary image и Output the gradient components.

Когда этот параметр выбран, блок возвращает два значения, представляющие градиенты, вычисленные в двух ортогональных направлениях. Когда вы устанавливаете Method на Sobel или Prewitt, выходные порты, Gv и Gh появляются на блоке. Когда вы устанавливаете Method на Roberts, выходные порты, G45 и G135 появляются на блоке.

Необходимо выбрать по крайней мере один из Output the binary image и Output the gradient components.

Можно установить порог от входного порта или от диалогового окна. Значением по умолчанию является Property. Выбор Input port включает порт Th.

Блок сравнивает квадрат этого значения к сумме квадратов градиентов. Блок бросает это значение к типу данных градиентов.

Зависимости

Эта опция видима, когда вы устанавливаете Source of threshold value на Property.

Размер буфера памяти строки, заданного как целое число.

Выберите степень двойки, которая размещает количество активных пикселей в горизонтальной строке. Если вы задаете значение, которое не является степенью двойки, блок использует следующую самую большую степень двойки. Блок выделяет (N – 1)-by-Line buffer size ячейки памяти, чтобы сохранить пиксели, где N является количеством строк в дифференциальной матрице приближения. Если вы устанавливаете Method на Sobel или Prewitt, то N равняется 3. Если вы устанавливаете Method на Roberts, то N равняется 2.

Типы данных

Режим Rounding для внутренних вычислений фиксированной точки.

Режим переполнения для внутренних вычислений фиксированной точки. По умолчанию значения фиксированной точки повторяются на переполнении.

Тип данных для двух выходных портов градиента. По умолчанию блок автоматически выбирает типы данных полной точности.

Зависимости

Чтобы включить этот параметр, на вкладке Main, выбирают Output the gradient components.

Алгоритмы

развернуть все

Блок Edge Detector предоставляет три метода для обнаружения ребер во входном изображении. Методы используют различные производные матрицы приближения, чтобы найти два ортогональных градиента. Методы Sobel и Prewitt вычисляют градиент в горизонтальных и вертикальных направлениях. Метод Робертса вычисляет градиенты в 45 градусах и 135 градусах. Блок использует те же матрицы в качестве блока Edge Detection в Computer Vision Toolbox™.

МетодНаправление 1Направление 2
Sobel18[101202101]18[121000121]
Prewitt16[101101101]16[111000111]
Робертс12[1001]12[0110]

Примечание

Коэффициенты Prewitt требуют дополнительных битов точности, потому что они не степени двойки. Блок использует 16 битов, чтобы представлять коэффициенты Prewitt. Для 8-битного входа размер по умолчанию градиентов полной точности составляет 27 битов. При использовании метода Prewitt хорошая практика должна уменьшать размер слова, используемый для вычисления градиента. Установите флажок Output the gradient components, и затем на вкладке Data Types, задайте меньший размер слова с помощью Gradient Data Type.

Блок применяет операцию свертки к окружению входного пикселя с производными матрицами, D1 и D2. Это затем сравнивает сумму квадратов градиентов к квадрату порога. Вычисление квадрата порога старается не создавать схему квадратного корня. Блок бросает градиенты к типу, который вы задали на вкладке Data Types. Преобразование типов на квадрате порога совпадает с типом суммы квадратов градиентов.

Блок заполняет ребро изображения с симметричными пиксельными значениями. Смотрите, что Ребро Дополняет.

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

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

Блоки

Системные объекты

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