调整彩色图像的对比度
这个例子向您展示了如何使用直方图均衡化块修改彩色图像的对比度。
使用下面的代码读入索引RGB图像,
shadow.tif
,并将其转换为RGB图像。上面提供的模型中已经包含了此代码文件
>模型属性
>模型属性
>InitFcn
,并在模拟之前执行。[X map] = imread('shadow.tif');shadow = ind2rgb(X,map);
创建一个新的Simulin万博1manbetxk®建模,并将下表中所示的块添加到其中。
块
图书馆
数量
图片来自工作空间
计算机视觉系统工具箱™>源代码
1
色彩空间转换
计算机视觉系统工具箱>转换
2
直方图均衡化
计算机视觉系统工具箱>分析与增强
1
视频查看器
计算机视觉系统工具箱>水槽
2
常数
万博1manbetxSimulink >源代码
1
分
万博1manbetxSimulink >数学运算
1
产品
万博1manbetxSimulink >数学运算
1
将上表中列出的块放入新模型中。
使用图片来自工作空间块从MATLAB中导入RGB图像®将工作空间导入Simulink模型。万博1manbetx设置block参数如下:
价值=
影子
图像信号=
单独的颜色信号
使用色彩空间转换块将亮度信息与颜色信息分开。设置block参数如下:
转换=
从' g ' b '升到L*a*b*
图像信号=
单独的颜色信号
因为L*值的范围在
0
而且One hundred.
,在将它们传递给直方图均衡化块之前,必须将它们归一化到0到1之间,直方图均衡化块期望在此范围内输入浮点数。使用常数块来定义一个归一化因子。设置恒定值参数
One hundred.
.使用分块来规范化介于之间的L*值
0
而且1
.接受默认参数。使用直方图均衡化块来修改图像中的对比度。该块通过转换彩色图像中的亮度值来增强图像的对比度,以便输出图像的直方图大致匹配指定的直方图。接受默认参数。
使用产品块将值缩放回
0
来One hundred.
的范围内。接受默认参数。使用颜色空间转换1块将值转换回sR' g ' b '颜色空间。设置block参数如下:
转换=
L*a*b*到sR' g ' b '
图像信号=
单独的颜色信号
使用视频查看器块查看原始和修改后的图像。对于每个块,设置图像信号参数
单独的颜色信号
从文件菜单。按下图所示连接砌块。
设置配置参数。单击,打开“配置”对话框型号配置参数从模拟菜单。参数设置如下:
解算器窗格中,停止时间=
0
解算器窗格中,类型=
固定步
解算器窗格中,解算器=
离散(无连续状态)
运行模型。
如下图所示,模型在Video Viewer1窗口中显示原始图像。
如图所示,模型显示增强对比度图像在视频查看器窗口。
在本例中,您使用了直方图均衡化块转换彩色图像中的值,以便输出图像的直方图近似地匹配均匀直方图。有关更多信息,请参见直方图均衡化参考页面。