Обнаружение ребра

Найдите ребра объектов в использовании изображений Sobel, Prewitt, Робертсом или методом Кэнни

Библиотека

Analysis & Enhancement

visionanalysis

Описание

Если для параметра Method вы выбираете Sobel, Prewitt или Roberts, блок Edge Detection находит ребра во входном изображении путем приближения величины градиента изображения. Блок применяет операцию свертки к входной матрице с Sobel, Прюиттом или ядром Робертса. Выходные параметры блока два компонента градиента изображения, которые являются результатом этой операции свертки. Также блок может выполнить операцию пороговой обработки на величинах градиента и вывести двухуровневое изображение, которое является матрицей булевых значений. Если пиксельное значение равняется 1, это - ребро.

Если для параметра Method вы выбираете Canny, блок Edge Detection находит ребра путем поиска локальных максимумов градиента входного изображения. Это вычисляет градиент с помощью производной Гауссова фильтра. Осторожный метод использует два порога, чтобы обнаружить сильные и слабые ребра. Это включает слабые ребра в вывод, только если они соединяются с сильными ребрами. В результате метод более устойчив к шуму, и более вероятно обнаружить истинные слабые ребра.

ПортВвод/выводПоддерживаемые типы данныхПоддерживаемые комплексные числа

I

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

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

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

  • Фиксированная точка (не поддерживаемый для метода Кэнни)

  • 8-, 16-, 32-битное целое число со знаком (не поддерживаемый для метода Кэнни)

  • 8-, 16-, 32-битное беззнаковое целое (не поддерживаемый для метода Кэнни)

Нет

Th

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

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

Нет

Ребро

Матрица, которая представляет двухуровневое изображение

Булевская переменная

Нет

GV

Матрица ответов градиента на вертикальные ребра

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

Нет

Gh

Матрица ответов градиента на горизонтальные ребра

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

Нет

G45

Матрица ответов градиента на ребра в 45 градусах

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

Нет

G135

Матрица ответов градиента на ребра в 135 градусах

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

Нет

Вывод GV, Gh, G45 и портов G135 является совпадающим типом данных, когда вход ко мне портирует. Вход к порту Th должен быть совпадающим типом данных, когда вход ко мне портирует.

Используйте параметр Method, чтобы задать который алгоритм использовать, чтобы найти ребра. Можно выбрать Sobel, Prewitt, Roberts или Canny, чтобы найти ребра с помощью Sobel, Prewitt, Робертса или метода Кэнни.

Sobel, Прюитт и методы Робертса

Используйте параметр Output type, чтобы выбрать формат вывода. Если вы выбираете Binary image, блок выводит Булеву матрицу в Граничном порту. Ненулевые элементы этой матрицы соответствуют краевым пикселям, и нулевые элементы соответствуют фоновым пикселям. Если вы выбираете Gradient components и для параметра Method, вы выбираете Sobel или Prewitt, блок выводит компоненты градиента, которые соответствуют горизонтальным и вертикальным ответам ребра в портах Gh и Gv, соответственно. Если вы выбираете Gradient components и для параметра Method, вы выбираете Roberts, блок выводит компоненты градиента, которые соответствуют 45 и 135 ответам ребра степени в портах G45 и G135, соответственно. Если вы выбираете Binary image and gradient components, блок выходные параметры и двухуровневое изображение и компоненты градиента изображения.

Установите флажок User-defined threshold, чтобы задать пороговые значения или значения. Если вы снимаете этот флажок, блок вычисляет порог для вас.

Используйте параметр Threshold source, чтобы задать, как ввести ваше пороговое значение. Если вы выбираете Specify via dialog, параметр Threshold появляется в диалоговом окне. Введите пороговое значение, которое является в области значений ваших входных данных. Если вы выбираете Input port, используйте входной порт Th, чтобы задать пороговое значение. Это значение должно иметь совпадающий тип данных как входные данные. Величины градиента выше порогового значения соответствуют ребрам.

Блок Edge Detection вычисляет автоматический порог с помощью среднего значения изображения величины градиента в квадрате. Однако можно настроить этот порог с помощью параметра Threshold scale factor (used to automatically calculate threshold value). Блок умножает значение, которое вы вводите с автоматическим пороговым значением, чтобы определить новое пороговое значение.

Установите флажок Edge thinning, чтобы уменьшить толщину ребер в вашем выходном изображении. Эта опция требует дополнительного времени вычислений и ресурсов памяти.

Примечание

Этот блок является самым эффективным с точки зрения использования памяти и время вычислений, когда вы снимаете флажок Edge thinning и используете параметр Threshold, чтобы задать пороговое значение.

Осторожный метод

Установите флажок User-defined threshold, чтобы задать низкие и высокие пороговые значения. Если вы снимаете этот флажок, блок вычисляет пороговые значения для вас.

Используйте параметр Threshold source, чтобы задать, как ввести ваши пороговые значения. Если вы выбираете Specify via dialog, параметр Threshold [low high] появляется в диалоговом окне. Введите пороговые значения. Если значение пикселя в изображении градиента, которое формируется путем свертки к входному изображению с производной Гауссова фильтра, превышает высокий порог, то пиксель соответствует сильному ребру. Любой пиксель, соединенный с сильным ребром и наличием значения, больше, чем низкий порог, соответствует слабому ребру. Если для параметра Threshold source вы выбираете Input port, используйте входной порт Th, чтобы задать двухэлементный вектор пороговых значений. Эти значения должны иметь совпадающий тип данных как входные данные.

Блок Edge Detection вычисляет автоматические пороговые значения с помощью приближения количества пикселей изображения неребра и слабых. Введите это приближение для параметра Approximate percentage of weak edge and nonedge pixels (used to automatically calculate threshold values).

Используйте параметр Standard deviation of Gaussian filter, чтобы задать Гауссов фильтр, к производной которого применяют операцию свертки с входным изображением.

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

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

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

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

Параметры

Method

Выберите метод, которым можно выполнить обнаружение ребра. Вашим выбором является Sobel, Prewitt, Roberts или Canny.

Output type

Выберите желаемую форму вывода. Если вы выбираете Binary image, блок выводит матрицу, которая заполнена единицами, которые соответствуют ребрам и нулям, которые соответствуют фону. Если вы выбираете Gradient components и для параметра Method, вы выбираете Sobel или Prewitt, блок выводит компоненты градиента, которые соответствуют горизонтальным и вертикальным ответам ребра. Если вы выбираете Gradient components и для параметра Method, вы выбираете Roberts, блок выводит компоненты градиента, которые соответствуют 45 и 135 ответам ребра степени. Если вы выбираете Binary image and gradient components, блок выходные параметры и двухуровневое изображение и компоненты градиента изображения. Этот параметр видим, если для параметра Method вы выбираете Sobel, Prewitt или Roberts.

User-defined threshold

Если вы устанавливаете этот флажок, можно ввести желаемое пороговое значение. Если вы снимаете этот флажок, блок вычисляет порог для вас. Этот параметр видим, если для параметра Method вы выбираете Sobel, Prewitt или Roberts, и, для параметра Output type, вы выбираете Binary image или Binary image and gradient components. Этот параметр также видим, если для параметра Method вы выбираете Canny.

Threshold source

Если вы выбираете Specify via dialog, введите свое пороговое значение в диалоговое окно. Если вы выбираете Input port, используйте входной порт Th, чтобы задать пороговое значение, которое является совпадающим типом данных как входными данными. Этот параметр видим, если вы устанавливаете флажок User-defined threshold.

Threshold

Введите пороговое значение, которое является в области значений ваших входных данных. Этот параметр видим, если для параметра Method вы выбираете Sobel, Prewitt или Roberts, вы устанавливаете флажок User-defined threshold, и, для параметра Threshold source, вы выбираете Specify via dialog..

Threshold [low high]

Введите низкие и высокие пороговые значения, которые задают слабые и сильные ребра. Этот параметр видим, если для параметра Method вы выбираете Canny. Затем вы устанавливаете флажок User-defined threshold, и, для параметра Threshold source, вы выбираете Specify via dialog. Настраиваемый.

Threshold scale factor (used to automatically calculate threshold value)

Введите множитель, который используется, чтобы настроить вычисление автоматического порога. Этот параметр видим, если для параметра Method вы выбираете Sobel, Prewitt или Roberts, и вы снимаете флажок User-defined threshold. Настраиваемый.

Edge thinning

Установите этот флажок, если вы хотите, чтобы блок выполнил утончение ребра. Эта опция требует дополнительного времени вычислений и ресурсов памяти. Этот параметр видим, если для параметра Method вы выбираете Sobel, Prewitt или Roberts, и для параметра Output type, вы выбираете Binary image или Binary image and gradient components.

Approximate percentage of weak edge and nonedge pixels (used to automatically calculate threshold values)

Введите аппроксимированный процент слабого ребра и пикселей изображения неребра. Блок вычисляет автоматические пороговые значения с помощью этого приближения. Этот параметр видим, если для параметра Method вы выбираете Canny. Настраиваемый.

Standard deviation of Gaussian filter

Введите стандартное отклонение Гауссова фильтра, к производной которого применяют операцию свертки с входным изображением. Этот параметр видим, если для параметра Method вы выбираете Canny.

Rounding mode

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

Overflow mode

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

Product output

Здесь, внутренними коэффициентами является Sobel, Прюитт или маски Робертса. Как изображено в предыдущей фигуре, вывод множителя помещается в тип выходных данных продукта и масштабирование. Используйте этот параметр, чтобы задать, как назвать этот продукт выходным словом и дробными длинами.

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

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

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

Accumulator

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

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

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

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

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

Gradients

Выберите, как задать размер слова и дробная продолжительность выходных параметров портов Gv и Gh. Этот параметр видим, если для параметра Output type вы выбираете Gradient components или Binary image and gradient components:

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

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

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

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

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

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

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

Ссылки

[1] Гонсалес, Рафаэль К. и Ричард Э. Вудс. Цифровая обработка изображений. 2-й редактор Englewood Cliffs, NJ: Prentice Hall, 2002.

[2] Пратт, Цифровая обработка изображений Уильяма К., 2-й редактор Нью-Йорк: John Wiley & Sons, 1991.

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

edge

Image Processing Toolbox™

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

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

Представлено до R2006a