Коррекция гистограммы

Этот пример показывает, как использовать блок библиотеки Vision HDL Toolbox Histogram, чтобы реализовать коррекцию гистограммы.

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

Введение

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

  • Видео Раздел делит большое изображение в четыре неперекрывающихся маленьких изображения для параллельного вычисления гистограммы.

  • HDLHistogram вычисляет накопленную гистограмму изображения.

  • Коррекция применяет компенсируемую гистограмму к оригинальному изображению и генерирует контрастное улучшенное изображение.

Видео раздел

Существуют варианты использования, где гистограмма вычисляется по целому изображению, или по небольшим разделам представления видимых областей изображения. Вычислительная гистограмма большого изображения является трудоемкой. Видео компонент раздела в этом примере делит большое изображение на четыре неперекрывающихся маленьких изображения. Гистограмма вычисляется по четырем маленьким изображениям одновременно. Каждый входной кадр разделен в четыре 120 160 маленькими изображениями. Каждое маленькое изображение соединяется с блоком Frame To Pixels, чтобы сгенерировать пиксельные потоки и соответствующие управляющие сигналы.

HDLHistogram

Подсистема HDLHistogram оптимизирована для генерации HDL-кода. Гистограмма пиксельных потоков вычисляется с помощью блока библиотеки Vision HDL Toolbox Histogram. Поскольку входное изображение является шкалой полутонов с типом данных uint8, входные пиксели сгруппированы в 256 интервалов. Модель читает расчетные интервалы гистограммы последовательно, если блок утверждает сигнал readRdy. Значения интервала отправляются за совокупным вычислением гистограммы. После того, как все 256 значений интервала читаются, модель утверждает binReset, чтобы сбросить все интервалы, чтобы обнулить. Собранная гистограмма каждого маленького изображения затем добавляется вместе, чтобы вычислить накопленную гистограмму большого изображения.

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

Коррекция

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

Генерация HDL-кода

HDL-код, сгенерированный от Гистограммы, синтезировался с помощью Xilinx ISE на Virtex6 (XC6VLX240T-1FFG1156) FPGA, и схема запустилась на уровне приблизительно 190 МГц, который достаточен, чтобы обработать данные в режиме реального времени.

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

Можно использовать команды

makehdl('HistogramEqualizationHDL/HDLHistogram')

или

makehdltb('HistogramEqualizationHDL/HDLHistogram')

сгенерировать HDL-код и испытательный стенд для подсистемы HDLHistogram. Примечание: генерация Испытательного стенда занимает много времени из-за большого размера данных. Рассмотрите сокращение времени симуляции прежде, чем сгенерировать испытательный стенд.