exponenta event banner

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

В этом примере показано, как создать код 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

Настройка для примера

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

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 см. раздел Начало работы с MATLAB в Workflow-процессе HDL.

Выполнение преобразования с фиксированной точкой и создание кода HDL

Запустите HDL Advisor и щелкните правой кнопкой мыши на шаге «Code Generation» и выберите опцию «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');