亮度变换是指图像在空域上的点运算,通常包括图像增强、亮度/对比度、GAMMA值调节、直方图调整等等。下面给出两个例子说明如何改变图像的亮度、对比度以及如何进行图像的GAMMA值调节。
亮度变换的原理可以参考MATLAB中的函数 imadjust.m,下面给出一个例子说明如何进行亮度变换的。
在MATLAB窗口中键入:
>> imadjdemo;
进行亮度变换演示。调整“Intensity Transform”窗口中的曲线,可以对图像进行亮度变换,这里调整的参数是 gamma =1, X-方向是 [0,0.5],Y-方向是[0.5,1],得到的结果如下:
中的亮度变换演示 Imadjdemo.m
在MATLAB中也可以用imadjust 来得到同样结果,我们先看看函数imadjust的说明,给出的英文已经翻译过来:
>>help imadjust
>> IMADJUST 调整图像的亮度值.
J = IMADJUST(I,[LOW_IN HIGH_IN],[LOW_OUT HIGH_OUT],GAMMA) 将图像I 的亮度值映射到新的图像J中,使得在 LOW_IN 和 HIGH_IN 之间(即X-方向)的值映射到 LOW_OUT 和 HIGH_OUT (即Y-方向)之间。小于 LOW_IN 以及大于 HIGH_IN 的值被裁剪调。GAMMA 表示曲线的形状,该曲线描述I和J之间的关系。如果 GAMMA 小于1, 则映射的权重趋向更亮的输出,如果GAMMA 大于1,则映射趋向更暗的输出。如果省略GAMMA,则默认值为 1。
注意:如果 HIGH_OUT < LOW_OUT,则图像输出反转,即通常所说的负片。但是 LOW_IN 必须小于 HIGH_IN。
实际上图像的亮度和对比度调节就是一种亮度变换,可以直接调整 [LOW_IN, HIGH_IN] 和 [LOW_OUT, HIGH_OUT] 的数值来改变亮度以及对比度。这里不再叙述了,读者可以自行测试。
&n
亮度变换的原理可以参考MATLAB中的函数 imadjust.m,下面给出一个例子说明如何进行亮度变换的。
在MATLAB窗口中键入:
>> imadjdemo;
进行亮度变换演示。调整“Intensity Transform”窗口中的曲线,可以对图像进行亮度变换,这里调整的参数是 gamma =1, X-方向是 [0,0.5],Y-方向是[0.5,1],得到的结果如下:
中的亮度变换演示 Imadjdemo.m
在MATLAB中也可以用imadjust 来得到同样结果,我们先看看函数imadjust的说明,给出的英文已经翻译过来:
>>help imadjust
>> IMADJUST 调整图像的亮度值.
J = IMADJUST(I,[LOW_IN HIGH_IN],[LOW_OUT HIGH_OUT],GAMMA) 将图像I 的亮度值映射到新的图像J中,使得在 LOW_IN 和 HIGH_IN 之间(即X-方向)的值映射到 LOW_OUT 和 HIGH_OUT (即Y-方向)之间。小于 LOW_IN 以及大于 HIGH_IN 的值被裁剪调。GAMMA 表示曲线的形状,该曲线描述I和J之间的关系。如果 GAMMA 小于1, 则映射的权重趋向更亮的输出,如果GAMMA 大于1,则映射趋向更暗的输出。如果省略GAMMA,则默认值为 1。
注意:如果 HIGH_OUT < LOW_OUT,则图像输出反转,即通常所说的负片。但是 LOW_IN 必须小于 HIGH_IN。
实际上图像的亮度和对比度调节就是一种亮度变换,可以直接调整 [LOW_IN, HIGH_IN] 和 [LOW_OUT, HIGH_OUT] 的数值来改变亮度以及对比度。这里不再叙述了,读者可以自行测试。
&n

本文介绍了如何在OpenCV中实现图像的亮度变换,包括原理和MATLAB中的`imadjust`函数示例。通过调整参数`[LOW_IN, HIGH_IN]`和`[LOW_OUT, HIGH_OUT]`,可以改变图像的亮度和对比度。提供的C++代码展示了如何在OpenCV中应用亮度变换函数。"
112181731,10295491,Arduino内核安装教程:支持更多处理器与开发板,"['Arduino开发', '单片机编程', '嵌入式系统', 'Arduino内核', 'STM32开发', 'ESP8266开发']

1674

被折叠的 条评论
为什么被折叠?



