Этот пример показывает вам, как изменить контраст в цветных изображениях с помощью блока Histogram Equalization.
Используйте следующий код, чтобы читать в индексируемом изображении RGB, shadow.tif
, и преобразуйте его в изображение RGB. Модель, предоставленная выше уже, включает этот код в file
> Model Properties
> Model Properties
> InitFcn
, и выполняет его до симуляции.
[X map] = imread('shadow.tif'); shadow = ind2rgb(X,map);
Создайте новую модель 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 |
Поместите блоки, перечисленные в таблице выше в вашу новую модель.
Используйте блок Image From Workspace, чтобы импортировать изображение RGB из рабочей области MATLAB® в модель Simulink. Установите параметры блоков можно следующим образом:
Value = shadow
Image signal = Separate color signals
Используйте блок Color Space Conversion, чтобы разделить luma информацию от информации о цвете. Установите параметры блоков можно следующим образом:
Conversion = sR'G'B' to L*a*b*
Image signal = Separate color signals
Поскольку область значений L* значения между 0
и 100
, необходимо нормировать их, чтобы быть между нулем и один, прежде чем вы передадите их блоку Histogram Equalization, который ожидает вход с плавающей точкой в этой области значений.
Используйте блок Constant, чтобы задать коэффициент нормализации. Установите параметр Constant value на 100
.
Используйте блок Divide, чтобы нормировать L* значения, чтобы быть между 0
и 1
. Примите параметры по умолчанию.
Используйте блок Histogram Equalization, чтобы изменить контраст в изображении. Этот блок улучшает контраст изображений путем преобразования luma значений в цветное изображение так, чтобы гистограмма выходного изображения приблизительно совпадала с заданной гистограммой. Примите параметры по умолчанию.
Используйте блок Product, чтобы сократить значения, чтобы быть между 0
к 100
область значений. Примите параметры по умолчанию.
Используйте блок the Color Space Conversion1, чтобы преобразовать значения назад в sR'G'B' цветовое пространство. Установите параметры блоков можно следующим образом:
Conversion = L*a*b* to sR'G'B'
Image signal = Separate color signals
Используйте блоки Video Viewer, чтобы просмотреть исходные и модифицированные изображения. Для каждого блока, установленного параметр Image signal на Separate Color Signals
в меню File.
Соедините блоки как показано в следующем рисунке.
Установите параметры конфигурации. Откройте диалоговое окно Configuration Parameters от вкладки Modeling путем выбора Model Settings> Model Settings. Установите параметры можно следующим образом:
Панель Solver, Stop time = 0
Панель Solver, Type = Fixed-step
Панель Solver, Solver = Discrete (no continuous states)
Запустите модель.
Как показано в следующем рисунке модель отображает оригинальное изображение в окне Video Viewer1.
Когда следующий рисунок показывает, модель отображает расширенное контрастное изображение в окне Video Viewer.
В этом примере вы использовали блок the Histogram Equalization, чтобы преобразовать значения в цветное изображение так, чтобы гистограмма выходного изображения приблизительно совпадала с универсальной гистограммой. Для получения дополнительной информации смотрите страницу с описанием Histogram Equalization.