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

В этом примере показано, как улучшить контрастность цветного изображения с помощью блока 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);