exponenta event banner

Повышение контрастности цветного изображения с помощью выравнивания гистограммы

В этом примере показано, как повысить контрастность цветного изображения с помощью блока «Выравнивание гистограммы».

Пример модели

Откройте модель Simulink ®.

modelname = 'ex_blkHistEqColor.slx';
open_system(modelname)

Инициализация параметров

Модель использует функцию инициализации обратного вызова InitFcn для инициализации входных параметров. Конфигурирование InitFcnна вкладке Моделирование (Modeling) щелкните Параметры модели (Model Settings) и выберите Свойства модели (Model Properties). В диалоговом окне Свойства модели (Model Properties) щелкните вкладку Обратные вызовы (Callbacks) и выберите InitFcn из списка.

InitFcn этой модели выполняет следующий код для чтения индексированного изображения и преобразования его в изображение RGB.

[X,map] = imread('shadow.tif');
shadow = ind2rgb(X,map);

Эта модель считывает входное изображение из рабочей области с помощью блока «Изображение из рабочей области» со следующими параметрами блока:

  • Значение: shadow

  • Сигнал изображения: Separate color signals

Повышение контрастности изображения

Модель извлекает информацию о яркости из цветового изображения, преобразуя его из цветового пространства RGB в цветовое пространство L * a * b *, используя блок преобразования цветового пространства со следующими параметрами:

  • Преобразование: sR'G'B' to L*a*b*

  • Сигнал изображения: Separate color signals

Значения параметра яркости L* диапазон от 0 до 100. Блок выравнивания гистограммы ожидает входные значения с плавающей запятой в диапазоне от [0, 1]. Модель нормализует значения яркости изображения с помощью блока Constant, для параметра Constant установлено значение 100 и блок «Разделить» с параметрами по умолчанию.

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

Модель использует блок Product с параметрами по умолчанию и существующий блок Constant для масштабирования яркости выходного изображения, выровненного по гистограмме, в диапазоне от 0 до 100. Затем модель преобразует выходное изображение из цветового пространства L * a * b * в цветовое пространство RGB с помощью блока преобразования цветового пространства со следующими параметрами:

  • Преобразование: L*a*b* to sR'G'B'

  • Сигнал изображения: Separate color signals

Моделирование и просмотр результатов

Запустите модель и проверьте изменение контраста от входного изображения к выходному изображению. Для сравнения модель отображает входное изображение и выходное изображение с помощью блоков Video Viewer. Параметр Image signal каждого блока Video Viewer имеет значение Separate Color Signals .

sim(modelname);