exponenta event banner

Удаление шума и заточка изображения

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

Объект вне фокуса приводит к размытому изображению. Мертвые или застрявшие пиксели на камере или видеосенсоре, или тепловые шумы от аппаратных компонентов, вносят свой вклад в шум изображения. В этом примере внешний модуль реализован с использованием двух блоков фильтра потока пикселей из Toolbox™ Vision HDL. Медианный фильтр удаляет шум, а фильтр изображения точит изображение. Пример сравнивает результаты потока пикселей с результатами, полученными блоками полных кадров из Toolbox™ системы компьютерного зрения.

В этом примере модели представлен аппаратно совместимый алгоритм. Вы можете осуществить этот алгоритм на правлении, использующем справочный дизайн Xilinx™ Zynq™. См. раздел Резкость изображения с аппаратным обеспечением на основе Zynq (пакет поддержки панели инструментов Vision HDL для аппаратного обеспечения на основе Xilinx Zynq).

Структура примера

Блоки Computer Vision Toolbox работают на всем кадре одновременно. Блоки панели инструментов Vision HDL работают на потоке пиксельных данных по одному пикселю за раз. Блоки преобразования в Vision HDL Toolbox, Frame To Pixels и Pixels To Frame позволяют моделировать потоковые пиксельные конструкции наряду с полнокадровыми конструкциями.

Ниже показана система NoaseCharpeningHDL.slx.

Следующая диаграмма показывает структуру подсистемы Модели поведения Полной Структуры, которая состоит из основанного на структуре Среднего Фильтра и 2-го Фильтра ЕЛИ. Как упомянуто прежде, средний фильтр демонтирует шумовой и 2-й Фильтр ЕЛИ, настроен, чтобы обострить изображение.

Подсистема Pixel-Stream HDL Model содержит реализацию потоковой передачи медианного фильтра и фильтра 2-D FIR, как показано на диаграмме ниже. Можно создать код HDL из подсистемы Pixel-Stream HDL Model.

Подсистема верификации сравнивает результаты обработки полных кадров с результатами обработки потока пикселей.

Один кадр размытого и шумного исходного видео, его дешумизированная версия после медианной фильтрации и заточенный выходной сигнал после 2-D FIR-фильтрации показаны слева направо на диаграмме ниже.

Источник изображения

На следующем рисунке показана подсистема источника изображения.

Блок «Источник изображения» импортирует изображение в градациях серого, затем использует функциональный блок MATLAB с именами «Размытие» и «Добавить шум» для размытия изображения и введения шума соли и перца. Функция IMFILTER использует ядро усреднения 3 на 3 для размытия изображения. Шум соли и перца вводится путем вызова команды IMNOISE (I, «соль и перец», D), где D - плотность шума, определяемая как отношение объединенного числа пикселей соли и перца к общему количеству пикселей на изображении. Это значение плотности задается блоком постоянной плотности шума и должно находиться в диапазоне от 0 до 1. Подсистема «Источник изображения» выводит матрицу 2-D полного изображения.

От кадра до пикселей: создание потока пикселей

Блок «От кадра до пикселей» преобразует полный кадр изображения в поток пикселей. Для ввода изображения в градациях серого в поле Number of components установлено значение 1, а в поле Video format установлено значение 240p, соответствующее значению источника видео. Время выборки источника видео определяется произведением суммарных пикселей на строку и суммарных строк видео в блоке «от кадра до пикселей». Дополнительные сведения см. на странице ссылок блока «От кадра до пикселов».

Модель HDL пиксельного потока

Блок «Средний фильтр» используется для удаления шума от соли и перца. Дополнительные сведения см. на странице ссылок блока «Медианный фильтр».

На основе коэффициентов фильтра можно использовать блок «Фильтр изображения» для размытия, резкости или обнаружения краев восстановленного изображения после медианной фильтрации. В этом примере фильтр изображений настроен для резкости изображения. Дополнительные сведения см. на странице ссылок на блоки фильтра изображений.

Пиксели в кадр: преобразование пиксельного потока обратно в полный кадр

Блок Pixels To Frame преобразует поток пикселей в полный кадр, используя сигналы синхронизации. Поле Number of components и поле Video format поля Pixels To Frame установлены на 1 и 240p соответственно, чтобы соответствовать формату источника видео.

Проверка конструкции обработки пиксельного потока

Подсистема проверки, как показано ниже, проверяет результаты модели HDL пиксельного потока на соответствие модели поведения с полным кадром.

Отношение пикового сигнала к шуму (PSNR) вычисляется между опорным изображением и обработанным потоком изображением. В идеале отношение должно быть inf, указывая, что выходное изображение из модели поведения полного кадра соответствует изображению, сгенерированному из модели HDL Pixel-Stream.

Создание кода HDL и проверка его поведения

Для проверки и генерации кода HDL, на который ссылается этот пример, необходимо иметь лицензию HDL Coder™.

Для создания кода HDL используется следующая команда:

makehdl('NoiseRemovalAndImageSharpeningHDL/Pixel-Stream HDL Model');

Для создания стенда выполните следующую команду:

makehdltb('NoiseRemovalAndImageSharpeningHDL/Pixel-Stream HDL Model');