Настройте контраст цветных изображений

Этот пример показывает вам, как изменить контраст в цветных изображениях с помощью блока Histogram Equalization.

  1. Используйте следующий код, чтобы читать в индексируемом изображении RGB, shadow.tif, и преобразуйте его в изображение RGB. Модель, предоставленная выше уже, включает этот код в file > Model Properties > Model Properties > InitFcn, и выполняет его до симуляции.

    [X map] = imread('shadow.tif');
    shadow = ind2rgb(X,map);
  2. Создайте новую модель Simulink® и добавьте в нее блоки, показанные в следующей таблице.

    Блок

    Библиотека

    Количество

    Отобразите из рабочей области

    Computer Vision Toolbox™> Источники

    1

    Преобразование цветового пространства

    Computer Vision Toolbox> Преобразования

    2

    Эквализация гистограммы

    Computer Vision Toolbox> Analysis & Enhancement

    1

    Video Viewer

    Computer Vision Toolbox> Приемники

    2

    Постоянный

    Simulink> Источники

    1

    Разделиться

    Simulink> Математические операции

    1

    Продукт

    Simulink> Математические операции

    1

  3. Поместите блоки, перечисленные в таблице выше в вашу новую модель.

  4. Используйте блок Image From Workspace, чтобы импортировать изображение RGB из рабочей области MATLAB® в модель Simulink. Установите параметры блоков можно следующим образом:

    • Value = shadow

    • Image signal = Separate color signals

  5. Используйте блок Color Space Conversion, чтобы разделить luma информацию от информации о цвете. Установите параметры блоков можно следующим образом:

    • Conversion = sR'G'B' to L*a*b*

    • Image signal = Separate color signals

    Поскольку область значений L* значения между 0 и 100, необходимо нормировать их, чтобы быть между нулем и один, прежде чем вы передадите их блоку Histogram Equalization, который ожидает вход с плавающей точкой в этой области значений.

  6. Используйте блок Constant, чтобы задать коэффициент нормализации. Установите параметр Constant value на 100.

  7. Используйте блок Divide, чтобы нормировать L* значения, чтобы быть между 0 и 1. Примите параметры по умолчанию.

  8. Используйте блок Histogram Equalization, чтобы изменить контраст в изображении. Этот блок улучшает контраст изображений путем преобразования luma значений в цветное изображение так, чтобы гистограмма выходного изображения приблизительно совпадала с заданной гистограммой. Примите параметры по умолчанию.

  9. Используйте блок Product, чтобы сократить значения, чтобы быть между 0 к 100 область значений. Примите параметры по умолчанию.

  10. Используйте блок the Color Space Conversion1, чтобы преобразовать значения назад в sR'G'B' цветовое пространство. Установите параметры блоков можно следующим образом:

    • Conversion = L*a*b* to sR'G'B'

    • Image signal = Separate color signals

  11. Используйте блоки Video Viewer, чтобы просмотреть исходные и модифицированные изображения. Для каждого блока, установленного параметр Image signal на Separate color signals в меню файла.

  12. Соедините блоки как показано в следующем рисунке.

  13. Установите параметры конфигурации. Откройте диалоговое окно Configuration путем выбора Model Configuration Parameters из меню Simulation. Установите параметры можно следующим образом:

    • Панель Solver, Stop time = 0

    • Панель Solver, Type = Fixed-step

    • Панель Solver, Solver = Discrete (no continuous states)

  14. Запустите модель.

    Как показано в следующем рисунке модель отображает оригинальное изображение в окне Video Viewer1.

    Когда следующий рисунок показывает, модель отображает расширенное контрастное изображение в окне Video Viewer.

В этом примере вы использовали блок the Histogram Equalization, чтобы преобразовать значения в цветное изображение так, чтобы гистограмма выходного изображения приблизительно совпадала с универсальной гистограммой. Для получения дополнительной информации смотрите страницу с описанием Histogram Equalization.