目录
一、实验目的
二、实验原理
三、实验内容(附代码)
四、实验结果及分析
五、实验小结
一、实验目的
1.了解图像增强的意义和目的
2.掌握各种图像增强的基本原理和方法
3.使用MATLAB实现图像增强
二、实验原理
图像增强方法从增强的作用域出发可分为空间域和频率域。
亮度变换是基于图像的空间域处理,亮度变换函数对图像的像素进行操作。亮度变换函数通常写为
,其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。
(1)函数imadjust 用于对灰度级图像进行灰度变换
一般语法格式为g=imadjust(f,[low_in,high_in],[low_out,high_out],gamma) 该函数将图像f中的灰度值映射为图像g 中的新值,即 low_in 至 high_in 之间的值映射到 low_out 至 high_out 之间的值。对于函数imadjust,除了 f 和 gamma ,其所有输入值被限定在0和1之间。如下图(图1)所示,参数 gamma 指定从图像f中的灰度值映射生成图像 g 的曲线的形状。
图 1 gamma变换曲线
(2)对数变换
对数变换通过表达式 实现。gamma 曲线的形状是可变的,但是对数函数的形状固定。如下图(图2)所示,对数变换的一项主要应用是压缩动态范围。
图 2 对数函数变换
三、实验内容(附代码)
(1)gamma变换:a.设置gamma值为确定值(0.2),读取并显示灰度图像,创建一个与原始图像大小相同的全零矩阵,通过for循环遍历图像的每个像素并将其像素值进行gamma曲线变换后存入矩阵,再将矩阵转为灰度图像并显示经过gamma变换后的图像。b.使用工具箱中imadjust函数进行gamma变换;对比两种处理方法结果的差异。
(2)对数变换:设置对数变换参数v为确定值(6.6),将图像转换为双精度浮点数并归一化到[0,1]范围。对归一化后的图像进行对数变换后显示图像。
实验代码:
gamma=0.2;
img2=imread('C:\Users\Desktop\灰度图片.jpg');
subplot(2,2,1);
imshow(img2);
title('原始图像');
img2=double(img2);
[row,col]=size(img2);
new_img=zeros(row,col);
for i=1:row
for j=1:col
new_img(i,j)=img2(i,j).^gamma;
end
end
new_img=mat2gray(new_img);
subplot(2,2,2);
imshow(new_img);
title('对像素进行gamma变换');
%测试与imadjust比较
g=imadjust(B,[ ],[ ],0.2);
subplot(2,2,3);
imshow(g);
title('使用gamma函数变换')
%对数函数
v=6.6;
r=mat2gray(double(B));
S=log(1+v*r)/(log(v+1));
subplot(2,2,4);
imshow(S);
title('对数变换图像')
四、实验结果及分析
图 3 实验结果1 (gamma<1)
图 4 实验结果2 (gamma>1)
图 5 实验结果3_对数变换
实验分析:
如图3右图所示,基于for循环对像素进行gamma变换和使用gamma函数变换的结果相同。图3中gamma变换的值为0.2(0.2<1),可以发现处理后的图像变亮,灰度值被映射加权至较高的输出值。图4中,gamma=10,可以发现处理后的图像变暗,灰度值被映射加权至较低的输出值。图5中对数变换的图像同样是变亮,因为对数变换函数的形状与gamma<1的伽马曲线形状相似,但是图像的动态范围被压缩。
五、实验小结
图像增强是一种改善图像视觉效果的技术。本次实验我们着重实现了gamma曲线变换和对数变换。灰度变换增强是一种点运算,可以使图像动态范围增大,扩展图像对比度,使图像变清晰,在实际应用中需要根据具体需求选择合适的图像增强方法。