图像的对数变换:
通过灰度变换函数,调整输入低质图像的灰度值范围。将图像的低灰度值部分扩展,高灰度值部分压缩。借此强调图像低灰度部分,达到增强图像的目的。
该法用于图像增强的原理:
显示器无法显示大范围灰度值时,许多灰度细节会被丢失掉,
对数变换可将其动态范围变换到一个合适的区间,就可以显示更多细节。
下面先介绍冈萨雷斯《数字图像处理》中设计的方法,我认为对图像的灰度提高的过于明显。
对数变换公式:S=c log(1+r) , c为常数。
f = imread('lena.png');
G=mat2gray(log(1+double(f)));
% matlab中数值一般采用double型(64位)存储和运算。mat2gray对图像灰度进行归一化处理
subplot(1,2,1);
imshow(f);
xlabel(' a). 原始图像');
subplot(1,2,2);
imshow(I2,[]); % 自动调整数据的范围以便于显示
xlabel(' b). 对数变换');
end
运行结果:
下面介绍另一种方法,参考:[数字图像处理]灰度变换
对数变换公式:, c为常数,
v越大,灰度提高越明显,r为灰度归一化后的输入图像。
f = imread('lena.png');
v=10;
r=mat2gray(double(I));
S=log(1+v*r)/(log(v+1));
subplot(1,2,1);
imshow(I);
xlabel('a). 原始图像');
subplot(1,2,2);
imshow(S,[]);
xlabel('b). 对数变换');
end
运行结果:
这个感觉比较自然一点。