资源简介
这是一篇关于大气湍流退化图像复原的硕士论文,我用matlab对该论文中阐述的方法进行了仿真
代码片段和文件信息
clear all;close all;
Image_Input=imread(‘1.bmp‘);
dims=ndims(Image_Input); %获取矩阵的维数
if dims==3
Image_Gray=rgb2gray(Image_Input);
elseif dims~=2
return;
end
[hw]=size(Image_Gray);
xr=8;
xl=8;
yt=8;
yb=8;
width=w-xr-xl;
height=h-yt-yb;
Image_Cut=imcrop(Image_Gray[xrytwidth-1height-1]); % 切除黑边
figure(1);
imshow(Image_Cut[]);
[RowColumn]=size(Image_Cut);
Image_FFT=fftshift(fft2(Image_Cut));
if rem(Row2)==0
for u=-Row/2:Row/2-1
if rem(Column2)==0
for v=-Column/2:Column/2-1
H(u+Row/2+1v+Column/2+1)=exp(-0.001*(u^2+v^2)^(5/6));
end
else
for v=-(Column-1)/2:(Column-1)/2
H(u+Row/2+1v+(Column-1)/2+1)=exp(-0.001*(u^2+v^2)^(5/6));
end
end
end
else
for u=-(Row-1)/2:(Row-1)/2
if rem(Column2)==0
for v=-Column/2:Column/2-1
H(u+(Row-1)/2+1v+Column/2+1)=exp(-0.001*(u^2+v^2)^(5/6));
end
else
for v=-(Column-1)/2:(Column-1)/2
H(u+(Row-1)/2+1v+(Column-1)/2+1)=exp(-0.001*(u^2+v^2)^(5/6));
end
end
end
end
Degeneration=Image_FFT.*H;
I=ifft2(ifftshift(Degeneration));
Image_Deg=0.5*(abs(real(I))+real(I));
Image_Deg=uint8(Image_Deg);
figure(2);
imshow(Image_Deg[]);
Image_fft=fftshift(fft2(Image_Deg)); %傅里叶变换平移
Image_abs=abs(Image_fft); %求频谱
Image_norm=Image_abs/max(max(Image_abs)); %频谱归一化
Image_ln=log10(Image_norm); %对数缩放处理
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Image_array=Image_ln(fix(Row/2)1:end); %获取水平中心处平频谱
% if rem(Column2)==0 %使用中心零点对称坐标显示
% X=-fix(Column/2)+1:1:fix(Column/2);
% else
% X=-fix(Column/2):1:fix(Column/2);
% end
% figure(3);
% plot(XImage_array);
% xlabel(‘离散频率‘)
% ylabel(‘傅里叶频率归一化后取自然对数‘);
% Datablur=Image_array(fix(Column/2):end);
% figure(4);
% semilogx(Datablur‘b:*‘);
% xlabel(‘离散频率的自然对数‘);
% ylabel(‘傅里叶频率归一化后取自然对数‘);
% hold on;
% X_half=fix(Column/2):Column;
% count=size(X_half);
% k=1:count(2);
% p=polyfit(log10(k)Datablur1);
% line=polyval(plog10(k));
% semilogx(line‘r:*‘);
% hold off;
if rem(Row2)~=0 %获取水平中心处平频谱
Image_array=Image_ln((Row+1)/21:end);
else
Image_array=(Image_ln(Row/21:end)+Image_ln(Row/2+11:end))/2;
end
if rem(Column2)==0 %使用中心零点对称坐标显示
Data_X=-Column/2:Column/2-1;
else
Data_X=-(Column-1)/2:(Column-1)/2;
end
figure(3);
plot(Data_XImage_array);
xlabel(‘离散频率‘)
ylabel(‘傅里叶频率归一化后取自然对数‘);
if rem(Column2)==0
Data_Y=Image_array(Column/2+1:end);
else
Data_Y=Image_array((Column+1)/2:end);
end
figure(4);
semilogx(Data_Y‘b:*‘);
xlabel(‘离散频率的自然对数‘);
ylabel(‘傅里叶频率归一化后取自然对数‘);
hold on;
if rem(Column2)==0
k=1:Column/2;
else
k=1:(Column+1)/2;
end
p=polyfit(log10(k)Da
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3253854 2012-04-19 23:14 仿真代码\1.bmp
文件 265231 2012-04-24 16:05 仿真代码\10.bmp
文件 814356 2012-05-02 22:52 仿真代码\11.bmp
文件 786488 2012-05-02 22:53 仿真代码\12.bmp
文件 559160 2012-05-02 22:53 仿真代码\13.bmp
文件 536856 2012-05-02 22:54 仿真代码\14.bmp
文件 3253856 2012-05-02 22:56 仿真代码\15.bmp
文件 2233400 2012-05-02 22:56 仿真代码\16.bmp
文件 2143352 2012-05-02 22:56 仿真代码\17.bmp
文件 3145784 2012-05-02 22:56 仿真代码\18.bmp
文件 1189246 2011-06-30 23:41 仿真代码\19.bmp
文件 2307126 2012-04-19 23:17 仿真代码\2.bmp
文件 1244214 2011-06-30 20:05 仿真代码\20.bmp
文件 1118626 2012-04-19 23:24 仿真代码\3.bmp
文件 2098230 2012-04-24 15:26 仿真代码\4.bmp
文件 2098230 2012-04-24 15:58 仿真代码\5.bmp
文件 3145782 2012-04-24 15:59 仿真代码\6.bmp
文件 2233398 2012-04-24 15:59 仿真代码\7.bmp
文件 2359350 2012-04-24 16:03 仿真代码\8.bmp
文件 2143350 2012-04-24 16:03 仿真代码\9.bmp
文件 8368 2012-05-31 17:36 仿真代码\blur_deblur.m
文件 1519 2012-05-03 01:45 仿真代码\clear_image.m
文件 7577 2012-05-31 17:27 仿真代码\deblur.asv
文件 7401 2012-05-31 17:34 仿真代码\deblur.m
文件 3478377 2012-03-31 16:37 仿真代码\论文.pdf
目录 0 2013-04-01 16:43 仿真代码
----------- --------- ---------- ----- ----
40433131 26
- 上一篇:大话数据结构.mobi
- 下一篇:ica工具箱matlab
评论
共有 条评论