-
Matlab编程遇到灵异事件。可重复性的灵异事件。
2009-03-12
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://goldengrape.blogbus.com/logs/36607682.html
这事不能只吓唬我一个人,大家都要分享一下。以下现象在Matlab 7.0 for Mac上实现:
clear all
close all
%清除工作区,关闭所有图片窗口,注意,我已经清除了工作区了!所有的变量默认值都应该是空
near=imread(’I1.tif’);
far=imread(’I2.tif’);
near=rgb2gray(near);
far=rgb2gray(far);
imagepic=far;
%读取两个图片文件,转换成黑白,交给一个变量imagepic,注意变量名是imagepic,不是image
[lens_sizex,lens_sizey]=size(near);
D=zeros(lens_sizex,lens_sizey);
% 建立一个尺寸与读取图形大小一样的0矩阵
centerx=floor(lens_sizex/2)+1;
centery=floor(lens_sizey/2)+1;
D(centerx,centery)=1;
% 取0矩阵的中心点=1
R=bwdist(D);
% 以欧氏距离返回各点到1点的距离,也就是说(x,y)点的值=半径,相当于直角坐标系转换成极坐标系。
for DefocusInDiopters=2;
% 这个for循环在Matlab中是允许的,相当于for i=2 to 2.
PARAMS3=6;
c4=(1/(4sqrt(3)))DefocusInDiopters*((PARAMS3/2000)^2);
wavefront=c4sqrt(3)((2)R.R+(-1)*R.^0);
% Zernike函数的转换,没啥特殊,把第四项离焦的像差计算出来
pupilfunc=exp(-i2pi/0.550.*wavefront);
Hamp=fft2(pupilfunc);
Hint=(Hamp .* conj(Hamp));
PSF = real(fftshift(Hint));
%计算离焦产生的点扩散函数
wnr1 = deconvwnr(image,PSF);
%用图像处理工具箱之中的维纳滤波复原,试图使用离焦的点扩散函数复原图像
%注意!!这里拼写错误,应该使用imagepic,而写成了image,image应该是没有定义的!!!
figure;imshow(wnr1);
%显示图像
end
显然程序报错:
============
http://goldengrape.org/2009/03/ghost_in_matlab/
随机文章:
《风声》的漏洞 2009-10-13免费不免票 2009-10-13正确的打车方法 2009-10-07更新对贷款的认识 2009-09-19《第九区》,星际交往,不是奴役,就是被奴役 2009-09-13
收藏到:Del.icio.us











