Matlab 图像增强(对数变换)
图像的对数变换:
将图像的低灰度值部分扩展,高灰度值部分压缩。借此强调图像低灰度部分。
该法用于图像增强的原理:
显示器无法显示大范围灰度值时,许多灰度细节会被丢失掉,
对数变换可将其动态范围变换到一个合适的区间,就可以显示更多细节。
对数变换公式:S=c log(1+r) , c为常数。
对代码中调用函数等知识点不熟悉可查看:基础知识点
采用对数变换对图像进行增强,代码实现:
%主函数
function Logtransformation()
f = imread(\'lena.png\');
I=im2double(f); % matlab中数值一般采用double型(64位)存储和运算。
I2=log_transform(I); %使用对数变换函数
subplot(1,2,1);
imshow(f);
xlabel(\' a). Original Image\');
subplot(1,2,2);
imshow(I2,[]); % 自动调整数据的范围以便于显示
xlabel(\' b). Log Transformation\');
end
%自定义对数变换函数
function A = log_transform(I)
[m,n]=size(I);
a=I;
for i=1:m
for j=1:n
a(i,j)=log(I(i,j)+1);
end
end
A=a;
end
运行结果: