Matlab 图像增强(对数变换)

图像的对数变换:

通过灰度变换函数,调整输入低质图像的灰度值范围。将图像的低灰度值部分扩展,高灰度值部分压缩。借此强调图像低灰度部分,达到增强图像的目的。

该法用于图像增强的原理:

显示器无法显示大范围灰度值时,许多灰度细节会被丢失掉,

对数变换可将其动态范围变换到一个合适的区间,就可以显示更多细节。

下面先介绍冈萨雷斯《数字图像处理》中设计的方法,我认为对图像的灰度提高的过于明显。

对数变换公式: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

运行结果:

这个感觉比较自然一点。

 

相关推荐
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页