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

В этом примере показано, как сгенерировать HDL-код из проекта MATLAB ®, который совершенствует изображение с помощью гистограммы эквализации.

Алгоритм

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

I = imread('pout.tif');
J = histeq(I);
subplot(2,2,1);
imshow( I );
subplot(2,2,2);
imhist(I)
subplot(2,2,3);
imshow( J );
subplot(2,2,4);
imhist(J)

MATLAB- Проекта

design_name = 'mlhdlc_heq';
testbench_name = 'mlhdlc_heq_tb';

Рассмотрим проект MATLAB

type(design_name);
type(testbench_name);

Моделируйте проект

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

mlhdlc_heq_tb

Setup для примера

Выполнение следующих линий копирует необходимые файлы во временную папку

mlhdlc_demo_dir = fullfile(matlabroot, 'toolbox', 'hdlcoder', 'hdlcoderdemos', 'matlabhdlcoderdemos');
mlhdlc_temp_dir = [tempdir 'mlhdlc_heq'];

% create a temporary folder and copy the MATLAB files
cd(tempdir);
[~, ~, ~] = rmdir(mlhdlc_temp_dir, 's');
mkdir(mlhdlc_temp_dir);
cd(mlhdlc_temp_dir);

% copy files to the temp dir
copyfile(fullfile(mlhdlc_demo_dir, [design_name,'.m*']), mlhdlc_temp_dir);
copyfile(fullfile(mlhdlc_demo_dir, [testbench_name,'.m*']), mlhdlc_temp_dir);
copyfile(fullfile(mlhdlc_demo_dir, 'mlhdlc_img_peppers.png'), mlhdlc_temp_dir);

Создайте новый HDL Coder™ проект

coder -hdlcoder -new mlhdlc_heq_prj

Затем добавьте файл 'mlhdlc _ heq.m' к проекту в качестве функции MATLAB и 'mlhdlc _ heq _ tb.m' в качестве испытательного стенда MATLAB.

Более полное руководство по созданию и заполнению проектов MATLAB HDL Coder см. в разделе «Начало работы с MATLAB в HDL».

Запуск преобразования с фиксированной точкой и генерации HDL-кода

Запустите HDL Advisor и щелкните правой нажатие кнопки по шагу 'Генерация Кода' и выберите опцию 'Run to selected task', чтобы запустить все шаги от начала до генерации HDL-кода.

Исследуйте сгенерированный HDL-код, нажав на гиперссылки в Генерацию кода Журнала окне.

Очистка сгенерированных файлов

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

mlhdlc_demo_dir = fullfile(matlabroot, 'toolbox', 'hdlcoder', 'hdlcoderdemos', 'matlabhdlcoderdemos');
mlhdlc_temp_dir = [tempdir 'mlhdlc_heq'];
clear mex;
cd (mlhdlc_demo_dir);
rmdir(mlhdlc_temp_dir, 's');