
img=imread('D:\我的文档\桌面\10096009_0762641.JPG')
subplot(121),imshow(img)
%将RGB分量转换成HSI,具体见:http://zhidao.baidu.com/question/320254032.html
img_hsi=rgb2hsi(img)
%--------------------------------------------------------------------------
%ln和DFT处理过程
% img_s=fftshift(fft2(log(img_hsi(:,:,2))))
img_s=log(img_hsi(:,:,2))
img_s=img_hsi(:,:,2)
%H 巴特沃斯高通滤波器处理过程
f=double(img_s)
g=fft2(f)
g=fftshift(g)
[M,N]=size(g)
nn=5% 2-grade Butterworth highpass filter
d0=15% 15,30,80其中以15为例
m=fix(M/2)n=fix(N/2)
for i=1:M
for j=1:N
d=sqrt((i-m)^2+(j-n)^2)
h=1/(1+0.414*(d/d0)^(2*nn))% filter transform function
%h=1./(1+(d./d0).^(2*n))
%h=exp(-(d.^2)./(2*(d0^2)))
result(i,j)=(1-h)*g(i,j)
end
end
result=ifftshift(result)
J1=ifft2(result)
img_s2=uint8(real(J1))
%--------------------------------------------------------------------------
% img_i=fftshift(fft2(log(img_hsi(:,:,3))))
img_i=log(img_hsi(:,:,3))
img_i=img_hsi(:,:,3)
%高斯滤波器
%将S分量的二维不连续Frourier变换的零频率成分移到频谱的中心
s=fftshift(fft2(img_i))
[M,N]=size(s)%分别返回s的行数到M中,列数到N中
n=2 %对n赋初值
%GLPF滤波,d0=5,15,30(程序中以d0=30为例)
d0=30 %初始化d0
n1=floor(M/2)n2=floor(N/2)
for i=1:M
for j=1:N
d=sqrt((i-n1)^2+(j-n2)^2)%点(i,j)到傅立叶变换中心的距离
h=1*exp(-1/2*(d^2/d0^2)) %GLPF滤波函数
s(i,j)=h*s(i,j) %GLPF滤波后的频域表示
end
end
img_i2=ifft2(ifftshift(s))img_i2=exp(img_i2)img_i2=uint8(real(img_i2))
%--------------------------------------------------------------------------
newImg(:,:,1)=img(:,:,1)newImg(:,:,2)=img_s2newImg(:,:,3)=img_i2
subplot(122),imshow(newImg)
1.去官网下载cuda cudnn matconvnet。都很容易下到。我的MATLAB 版本是2014a,其他是 cuda v7.5,cudnn v5.1,以及matconvnet-1.0-beta22
2.将下好的matconvnet-1.0-beta22 重命名为 MatConvNet ,cudnn 解压后文件重命名为 cudnn-v5.1
3.打开MATLAB,首先更改路径,改到 MatConvNet 文件夹下。在命令行窗口输入 mex -setup ,根据提示来关联VS。
4.接着输入 vl_compilenn
5.接着输入 run matlab/vl_setupnn
6.此时可以用 vl_testnn 测试,由于下载文件较大,也可跳过此步。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)