灰度变换——对数变换

分类:对数变换属于灰度变换中的非线性变换。
作用:
1.对数变换实现了图像灰度扩展和压缩的功能。可以从对数曲线看出,它扩展低灰度值而压缩高灰度值。
2.用于显示傅里叶变换的频谱图。在进行傅立叶变换时,得到的频谱的动态范围较大,频谱值的范围通常为[0,10^6],甚至更高。这样范围的值,显示器是无法完整的显示如此大范围的灰度值的,因而许多灰度细节会被丢失掉。而将得到的频谱值进行对数变换,可以将其动态范围变换到一个合适区间,这样就能够显示更多的细节。

s = c log ⁡ ( 1 + r )

matlab实现:
可以直接通过定义图像矩阵得到,也可以逐像素点经对数函数得到新的响应。
代码:

clear
%对数变换
I=imread('1.jpg');
I=rgb2gray(I);
I=im2double(I);
[m,n]=size(I);
T=1.1*log(I+1.1);
K=zeros(m,n);
for i=1:m
    for j=1:n
        K(i,j)=log(I(i,j)+1);
    end
end
subplot(331)
imshow(I);
subplot(332)
imshow(T,[]);
subplot(333)
imshow(K,[]);

%频域
F1=abs(fftshift(fft2(I)));
% F2=abs(fftshift(fft2(T)));
F2=log(F1+1);
F3=abs(fftshift(fft2(K)));
subplot(334)
imshow(F1,[]);
subplot(335)
imshow(F2,[]);
subplot(336)
imshow(F3,[]);

%直方图

[counts,x]=imhist(I,32);
counts=counts/m/n;
subplot(337)
stem(x,counts);
[counts,x]=imhist(T,32);
counts=counts/m/n;
subplot(338)
stem(x,counts);
[counts,x]=imhist(K,32);
counts=counts/m/n;
subplot(339)
stem(x,counts);

这里写图片描述
可以看到,
1.经过对数变换,第二列相对第一列原图,灰度更为集中在中间灰度范围:原因是低灰度更亮,高灰度变暗。这也可以从直方图看到。
2.第二列傅里叶变换的频谱图是对原图傅里叶频谱图的对数变换,可以看到,经过对数变换,能够显示更多的图像信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值