对数变换表达式:
g = c*log(1 + f) c是常数,f是浮点数。
其主要应用是压缩动态范围。如傅里叶频谱的取值范围是[0, 106]或更高。将其以线性缩放到8比特显示器时,频谱中低灰度的可见细节容易丢失。通过对数计算,106可以降到14左右[ln(106) = 13.8]
为了压缩值出现在完整的显示范围,对8比特来说,使用
gs = im2unit8(mat2gray(g));
其中:mat2gray(g)会将值限定在[0, 1]范围内,im2unit8则限定在[0, 255]。
function f = Log_Transformation()
%0至10^6间的傅里叶频谱
f = imread('Fig0205(a).tif');
imshow(f);
g = im2uint8(mat2gray(log(1 +double(f))));
figure
imshow(g);