数字图像处理与机器视觉-2-图像灰度变换(1)


上一篇文章忘记介绍灰度直方图了,灰度直方图就是将RGB图像转成灰度图后,统计灰度图中各灰度级出现的次数或频率,可用于图像分割和图像灰度变换;

常见的灰度变换上一篇介绍过线性变换,即O = Fa * I + Fb;

继续学习图像灰度变换之: 灰度对数变换

t = c log(s + 1)


这种变换可以增强一幅图中较暗部分的细节,从而可以用来扩展被压缩的告知图像中的较暗像素。一般傅里叶频谱动态范围可宽达0~1000000,直接显示,图像设备的动态范围不能满足要求,从而丢失大量暗部细节,在使用对数变换之后 ,被合理地非线性压缩,可以清晰显示。

由曲线可以看出,横轴值较小时,纵轴值变化很大;横轴值较小时,纵轴值变化趋于平缓;所以暗部的细节区分度变大,可以保留暗部细节。

最终MATLAB实验结果结果如下图所示


建议了解下傅里叶变换,在高等数学中有专门讲到傅里叶变换,用于信号处理等方面; 傅里叶变换在图像处理中的应用,这篇博文将大概应用类型介绍了一下,我是参照它来学习的,还附有MATLAB代码,实践起来比较方便:




伽马变换

伽马变换,也叫指数变换或者幂次变换;
表达式一般为y = (x +esp)^γ;

x,y的取值范围为[0,1],说esp是补偿系数,但是感觉esp应该是不大于1的,因为esp如果大于1的话,当x为1时,x + esp 的25次方肯定大于1了。具体多少应该有其他规定;

不过在网上有一部分介绍是把esp补偿系数省掉了;

下图为伽马变换的曲线图:



MATLAB里面有对应gamma变换的处理函数, imadjust,用法为:

J = imadjust(I,[low_in high_in],[low_out,high_out],gamma);

比较好懂,将输入图像在low_in到high_in的值映射到lou_out到high_out区间上,所以自然就将[low_in high_in]区间外的值过滤掉了。

gamma指定了映射关系上的权重,gamma < 1的话映射被加权至更高的输出值;反之,加权至更低的输出值;具体效果如“伽马变换的曲线图”所示。

MATLAB效果图如下:



代码:
I = imread('test1_gray.png');
subplot(1,3,3);
J = imadjust(I,[],[],1.5);
imshow(J);
title('gamma 1.5');

顺便了解下图像处理届的女神+标准测试照片 lena,标准文件 点此下载,处理效果感觉还不如我天朝美女:


根据前面 伽马变换的曲线图,不同的gamma,其曲线在不同区间曲率变化规律不同,gamma < 1时,较暗区域的细节会更加明显,gamma > 1时,较亮区域的细节会更加明显。

同时还比较了直方图:



书上总结说是:伽马变换不是线性变换,不仅可以改变图像的对比度,还能够增强细节,改善整体效果。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值