数字图像处理中对数变换与Gamma变换

1.对数变换

图像的对数变换主要的作用是压缩动态范围,原因是对数曲线在像素值较低的区域斜率大,在像素值较高的区域斜率较小,所以图像经过对数变换后,较暗区域的对比度将有所提升,所以就可以增强图像的暗部细节。

在这里插入图片描述

其中, c c c是一个常数, f f f是浮点数。对数变换可以将图像的低灰度值部分扩展,显示出低灰度部分更多的细节,将其高灰度值部分压缩,减少高灰度值部分的细节,从而达到图像偏暗的图像增强的目的,其逆变换可以强调高灰度。底数越大,对低灰度部分的强调就越强,对高灰度部分的压缩也就越强。相反的,如果想强调高灰度部分,则用反对数函数就可以了。

在这里插入图片描述

MATLAB代码实现:

f=imread('lowlight_2.jpg');
g=im2uint8(mat2gray(log(1+double(f)))); %灰度变化
%画图
subplot(1,2,1),imshow(f);title('原图');
subplot(1,2,2),imshow(g);title('对数变换后的图像');

为了使压缩的值出现在显示的完整范围,使用函数mat2gray会将值限定再[0,1]范围内,使用函数im2uint8会将值限定在[0,225]范围内,把图像转化为uint8类。
请添加图片描述
可以看出,图像对低灰度值部分扩展,增强了低灰度部分,显示出低灰度部分更多的细节。

2.伽马变换

伽马变换主要用于图像的校正,将漂白的图片或者是过黑的图片,进行修正。伽马变换也常常用于显示屏的校正,这是一个非常常用的变换。与对数变换相似,Gamma变换属于非线性操作,非线性变换的主要目的是通过灰度值映射增强目标域数据分布,达到对比度增强的目的。Gamma变换可以根据参数变换的更加灵活,其灰度变换函数定义如下:
在这里插入图片描述
请添加图片描述
MATLAB代码利用Gamma函数实现:

f = imread('office_1.jpg');
g1=imadjust(f,[],[],1);
g2=imadjust(f,[],[],0.3);
g3=imadjust(f,[],[],2);
subplot(2,2,1),imshow(f);title('原图');
subplot(2,2,2),imshow(g1);title('gamma=1');
subplot(2,2,3),imshow(g2);title('gamma=0.3');
subplot(2,2,4),imshow(g3);title('gamma=2');

请添加图片描述

g a m m a = 1 gamma = 1 gamma=1 的时候,输出值等于输入值,只会有原图的显示效果
g a m m a > 1 gamma >1 gamma>1 的时候,低灰度区域的动态值变小,高灰度区域的动态值变大,降低了低灰度区域图像的对比度,提高了高灰度值区域图像的对比度, 图像整体变暗。
g a m m a < 1 gamma <1 gamma<1 的时候,低灰度区域的动态值变大,进而图像对比度增强,高灰度值区域,动态值变小,图像整体变亮。

参考链接:

https://blog.csdn.net/m0_56838271/article/details/127462598

  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值