Морфологическая эрозия полутоновых пиксельных данных
Блок Grayscale Erosion выполняет морфологическую эрозию на потоке значений интенсивности пикселей. Можно задать окружение или элемент структурирования, до 32×32 пиксели. Для строки, квадрата или прямоугольных элементов структурирования больше чем 8 пикселей шириной, блок использует алгоритм Ван Херка, чтобы найти минимум. Этот алгоритм использует только три компаратора, чтобы найти минимумы всех строк, затем использует дерево сравнения, чтобы найти минимум результатов строки.
Для структурирования элементов меньше чем 8 пикселей шириной, или которые содержат нулевые элементы, блок реализует конвейерное дерево сравнения для каждой строки окружения. Дополнительное дерево сравнения находит минимальное значение результатов строки. Если элемент структурирования содержит нули, что маска от пикселей, алгоритм сохраняет аппаратные ресурсы, не реализовывая компараторы для тех пиксельных местоположений.
Этот блок использует пиксельный интерфейс потоковой передачи с шиной для сигналов управления кадром. Этот интерфейс позволяет блоку действовать независимо от размера изображения и формата. Все блоки Vision HDL Toolbox™ используют тот же интерфейс потоковой передачи. Блок принимает и возвращает и скалярное пиксельное значение и шину, содержащую пять управляющих сигналов. Управляющие сигналы указывают на валидность каждого пикселя и его местоположения в кадре. Чтобы преобразовать кадр (пиксельная матрица) в последовательный пиксельный поток и управляющие сигналы, используйте блок Frame To Pixels. Для полного описания интерфейса смотрите Пиксельный Интерфейс Потоковой передачи.
Порт | Направление | Описание | Тип данных |
---|---|---|---|
pixel | Ввод/вывод | Один пиксель изображения, заданный как скалярное значение. |
|
ctrl | Ввод/вывод | Управляющие сигналы, сопровождающие пиксельный поток, заданный как шина | pixelcontrol |
Пиксельное окружение, заданное как матрица или вектор единиц и нулей.
Блок поддерживает плоские окружения до 32×32 пиксели. Чтобы использовать элемент структурирования, задайте Neighborhood как
. Минимальный размер окружения 2×2 матрица, или 2×1 вектор-столбец. Если окружение является вектором - строкой, это должно быть по крайней мере 8 широкими столбцами и не содержать нули. getnhood(strel(shape))
Значением по умолчанию является ones(3,3)
.
Размер буфера памяти строки, заданного как целое число.
Выберите степень двойки, которая размещает количество активных пикселей в горизонтальной строке. Если вы задаете значение, которое не является степенью двойки, блок использует следующую самую большую степень двойки. Блок выделяет (neighborhood lines – 1)-by-Line buffer size ячейки памяти, чтобы сохранить пиксели. Значение по умолчанию 2048.
Блок заполняет изображение единицами для операции эрозии. Смотрите, что Ребро Дополняет.
Для строки, квадрата или прямоугольных элементов структурирования больше чем 8 пикселей шириной, блок реализует алгоритм Ван Херка. Все пиксели в элементе структурирования должны быть установлены в один. Блок разлагает элемент структурирования на строки и последовательно находит минимум каждой строки с помощью алгоритма Ван Херка. Если размер входного кадра не является кратным пикселей m, память строки также добавляет горизонтальное дополнение в кратное m. Эта реализация использует только 3 общих количества компараторов для всех строк. Затем если существует больше чем одна строка, она вычисляет минимум результатов строки с помощью дерева сравнения. Схема указывает на задержку каждого блока вычисления.
Ядро Ван Херка вычисляет рабочий прямой минимум и движущийся в обратном направлении минимум на каждой строке окружения. Поэтому пиксели в строке должны быть буферизованы, и порядок инвертируется. Буфер добавляет задержку относительно реализации дерева сравнения. Зеркальный Буфер является пинг-понгом RAM пикселей m, где одна память читает значения в обратном порядке, в то время как другой пишет. Ядро использует 3+n-1 компараторы.
Для структурирования элементов, меньших, чем 8 пикселей шириной или тех с одним или несколькими обнуленными пикселями, блок реализует дерево сравнения.
Схема показывает архитектуру операции эрозии. Алгоритм находит минимум каждой строки окружения параллельно. Затем это вычисляет минимум строк с помощью другого дерева сравнения. Схема указывает на задержку каждого блока вычисления.
Для прямоугольного окружения, которое является широкими пикселями m, деревья сравнения первой стадии содержат m – 1 компаратор по log2 (m) такты. Например, для прямоугольного окружения, которое 7 пикселей шириной, дерево сравнения имеет 6 компараторов более чем 3 такта.
Однако, если окружение, которое вы задаете, содержит, обнуляет, сгенерированный HDL исключает компаратор для нулевых местоположений. Конвейерная задержка через дерево сравнения не изменяется. Например, для непрямоугольного окружения со строкой [0 0 1 1 0 0 1]
, дерево сравнения для той строки содержит 2 компаратора и все еще использует 3 такта.
Задержка операции является буферной задержкой строки плюс задержка вычисления ядра. Буферная задержка строки включает дополнение ребра.
Задержка ядра Ван Херка для окружения m ×n пиксели 2m + log2 (n). Блок реализует это ядро для строки, квадрата или прямоугольных элементов структурирования больше чем 8 пикселей шириной, без обнуленных пикселей.
Задержка ядра дерева сравнения для окружения m ×n пиксели является log2 (m) +log2 (n). Блок реализует это ядро для структурирования элементов, меньших, чем 8 пикселей шириной или тех с одним или несколькими обнуленными пикселями.
Горизонтальный интервал гашения пиксельного потокового формата должен быть больше, чем задержка блока. Этот интервал позволяет блоку закончить обрабатывать одну строку, прежде чем это начнет обрабатывать следующее. Если вы используете пользовательский формат видео, установите горизонтальный интервал гашения с помощью Кадра Для Пиксельных параметров блоков. Горизонтальный интервал гашения равен Total pixels per line – Active pixels per line или, эквивалентно, Front porch + Back porch. Стандартные форматы потокового видео используют горизонтальный интервал гашения приблизительно 25% ширины кадра. Этот интервал намного больше, чем фильтры применились к каждому кадру.
Эрозия | Структурируйте к пикселям | Полутоновое расширение | visionhdl.GrayscaleErosion