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

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);
coder -hdlcoder -new mlhdlc_heq_prj
Затем добавьте файл «mlhdlc _ heq.m» в проект в качестве функции MATLAB и «mlhdlc _ heq _ tb.m» в качестве испытательного стенда MATLAB.
Для получения более полного руководства по созданию и заполнению проектов кодера MATLAB HDL см. раздел Начало работы с MATLAB в Workflow-процессе 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');