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

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

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

Эта модель примера предоставляет аппаратно совместимый алгоритм. Можно реализовать этот алгоритм на плате с помощью Xilinx™ Zynq™ исходного проекта. См. раздел «Повышение четкости изображения оборудованием на основе Zynq» (Пакет поддержки Vision HDL Toolbox для оборудования на основе Xilinx Zynq).

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

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

Система NoiseRemovalAndImageSharpeningHDL.slx показана ниже.

Следующая схема показывает структуру подсистемы Full-Frame Behavioral Model, которая состоит из основанных на кадрах Median Filter и 2-D конечная импульсная характеристика. Как упоминалось ранее, медианный фильтр удаляет шум, и 2-D конечная импульсная характеристика сконфигурирован, чтобы заточить изображение.

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

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

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

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

Следующий рисунок показывает подсистему Image Source.

Блок Image Source импортирует полутоновое изображение, затем использует блок MATLAB function с именем Blur и Add Noise, чтобы размыть изображение и ввести соляно-перцовый шум. Функция IMFILTER использует среднее ядро 3 на 3, чтобы размыть изображение. Шум от соли и перца вводится путем вызова команды IMNOISE (I, 'salt & pepper', D), где D - плотность шума, заданная как отношение объединенного количества пикселей соли и перца к общему количеству пикселей в изображении. Это значение плотности задается постоянным блоком Noise Density, и оно должно быть между 0 и 1. Подсистема Image Source выводит матрицу 2-D полного изображения.

Система координат к пикселям: Создание пиксельного потока

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

HDL-

Модели Pixel-Stream

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

Основываясь на коэффициентах фильтра, блок Image Filter может использоваться, чтобы размыть, заточить или обнаружить ребра восстановленного изображения после медианной фильтрации. В этом примере Image Filter сконфигурирован, чтобы заточить изображение. Дополнительные сведения см. на странице с описанием по блокам Image Filter.

Пиксели в кадр: преобразование пиксельного потока назад в полную систему координат

Блок Pixels To Frame преобразует поток пикселей в полную систему координат, используя сигналы синхронизации. Значение поля «Количество компонентов» и поля «Формат видео» параметра «Пиксели в кадр» устанавливается равным 1 и 240p, соответственно, чтобы соответствовать формату источника видео.

Проверка проекта обработки пиксельных потоков

Подсистема Верификации, как показано ниже, сверяет результаты из HDL-модели пиксельного потока с поведенческой моделью полного кадра.

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

Сгенерируйте HDL-код и проверьте его поведение

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

Чтобы сгенерировать HDL-код, используйте следующую команду:

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

Чтобы сгенерировать испытательный стенд, используйте следующую команду:

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