灰度变换 | 您所在的位置:网站首页 › 图像处理对数变换 › 灰度变换 |
分类:对数变换属于灰度变换中的非线性变换。 作用: 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);
|
CopyRight 2018-2019 实验室设备网 版权所有 |