В этом примере показано, как улучшить контрастность цветного изображения с помощью блока Histogram Equalization.
Откройте модель Simulink ®.
modelname = 'ex_blkHistEqColor.slx';
open_system(modelname)
Модель использует коллбэк функции инициализации InitFcn
для инициализации параметров входа. Как сконфигурировать InitFcn
на вкладке Моделирование (Modeling) щелкните Настройки модели (Model Settings) и выберите Свойства модели (Model Properties). В диалоговом окне Свойства модели щелкните вкладку Коллбэки и выберите InitFcn
из списка.
The InitFcn
этой модели выполняет следующий код, чтобы считать индексированное изображение и преобразовать его в изображение RGB.
[X,map] = imread('shadow.tif');
shadow = ind2rgb(X,map);
Эта модель читает входное изображение из рабочей области, используя блок Image From Workspace с этими параметрами блоков:
Значение: shadow
Сигнал изображения: Separate color signals
Модель извлекает информацию яркости из цветового изображения путем преобразования ее из цветового пространства RGB в цветовое пространство L * a * b *, используя блок Color Space Conversion с этими параметрами:
Преобразование: sR'G'B' to L*a*b*
Сигнал изображения: Separate color signals
Значения параметра яркости L*
область значений от 0 до 100. Блок Histogram Equalization ожидает входных значений с плавающей точкой в области значений от [0, 1]. Модель нормализует значения яркости изображения с помощью блока Constant с набором параметров Constant value, чтобы 100
и блок Divide с параметрами по умолчанию.
Чтобы улучшить контрастность изображения, модель использует блок Histogram Equalization с параметрами по умолчанию. Блок преобразует нормированные значения яркости в вход цветном изображении таким образом, чтобы гистограмма выходного изображения была приблизительно равномерной.
Модель использует блок Product с параметрами по умолчанию и существующим блоком Constant, чтобы масштабировать яркость выравниваемого гистограммой выходного изображения в области значений от 0 до 100. Затем модель преобразует выходное изображение из цветового пространства L * a * b * в цветовое пространство RGB с помощью блока Color Space Conversion с этими параметрами:
Преобразование: L*a*b* to sR'G'B'
Сигнал изображения: Separate color signals
Запустите модель и проверьте изменение контраста между входным изображением и выходным изображением. Для сравнения, модель отображает вход изображение и выходное изображение с помощью блоков Video Viewer. Параметр Image signal каждого блока Video Viewer установлен в Separate Color Signals
.
sim(modelname);