【图像处理】直方图灰度级变换,伽马变换,直方图均衡化,多次均衡化有无变化结果,matlab实现

本文详细介绍了图像直方图的概念,探讨了灰度级变换中的伽马变换,以及直方图均衡化的过程和局限性,还提及了适应性和对比度限制的改进方法。通过代码示例展示了如何实现伽马变换和直方图均衡化,以及它们对图像效果的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 图像直方图灰度级变换

        图像直方图,就是图像中各个灰度级出现的频率分布图,可以通过对其改变实现图像整体or局部的亮度、对比度调节,从而实现改善人眼的图片信息接收(tips:不会增加图片本身的信息量哦,甚至会削减一部分图片信息)

        于此同时,我们在学习了“GLT”这一概念,即"Gray Level Transformation" ,就是简单而有效的图像增强技术——灰度级变换

        而灰度级变换函数可以有多种形式,包括线性变换、对数变换、伽马变换等,每种变换都有其特定的应用场景和效果,如何选择取决于原始图像的特性以及期望达到的图像增强效果。

        下面就伽马变换和均衡化进行简要展示。

1.1 伽马变换

伽马变换也叫幂律变换,使直方图在某些区域拉伸而在其他区域压缩,同时改变图像的对比度。

γ = 0.7 时:

γ = 0.3 时:

(原图如下)

为了方便更改图片和γ值,将这一变换打包成函数

实现以上功能的代码如下:

I = imread('1.jpg');
gamma = 0.1;    %%调节gamma值
I_gamma_rescaled = gammaTransform(I, gamma);

%imwrite(I_gamma_rescaled, './2.jpg');

histogram_original = calculateHistogram(rgb2gray(I));
histogram_gamma = calculateHistogram(I_gamma_rescaled);

subplot(2,2,1);
imshow(rgb2gray(I));
title('Original Image');

%显示原图及直方图
subplot(2,2,1);
imshow(rgb2gray(I));
title('原图');

subplot(2,2,2);
bar(0:255, histogram_original);
title('原图直方图');
xlabel('灰度级');
ylabel('频次');

subplot(2,2,3);
imshow(I_gamma_rescaled);
% imwrite(I_gamma_rescaled, 'D:/DIP LESSON/exp_1/2.png');
title('伽马变换后图片');

subplot(2,2,4);
bar(0:255, histogram_gamma);
title('伽马变换
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值