ghostimaging.zip

  • PUDN用户
    了解作者
  • matlab
    开发工具
  • 2.5MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 8
    下载次数
  • 2020-12-08 21:47
    上传日期
学习鬼成像原始程序。经验证可以跑通,欢迎交流。
ghostimaging.zip
  • ghostimaging
  • 成像矩阵.bmp
    6MB
  • g2.fig
    148.2KB
  • 第一幅散斑.bmp
    3.6KB
  • GI.bmp
    3.6KB
  • 所有散斑场的叠加平均.bmp
    3.6KB
  • ghostimaging.m
    3.8KB
  • GI2.bmp
    3.6KB
  • obj.bmp
    3.6KB
内容介绍
%基本参数; close all;clear;clc lamda=532e-9; z=10; %远场。 D=5e-3; %光源尺寸 deltax=lamda*z/D; %散斑尺寸1.1mm,适宜成像的物体的细节尺寸3mm %% %构建物面(Dr面)尺寸50mm,步长1mm,步数50。Dt紧贴后物面 %构建点扩散函数矩阵 dx=1e-3; %物面(Dr面)步长 M=50; %物面(Dr面)步数 ds=0.1e-3; %光源面步长 M0=50; %光源面步数 N=M*M; %物面(Dr面)像素数 beta=0.8; %采样率 K=N*beta; %采样数 source=zeros(M0,M0,K); %方形光斑,尺寸5mm,步长0.1mm,步数50,每一个独立子光源振幅在0-1之间随机分布,相位在0-2pi之间随机分布; Lp=lamda*z/ds; %独立子光源尺寸为ds,有效成像周期为53.2mm,成像物体应该小于该尺寸;如果不想看到伪像,Dr面尺寸也应该小于该尺寸。 D1=zeros(M,M0); for m=1:M for n=1:M0 D1(m,n)= exp(1j*(pi/(lamda.*z))*((m-M/2)*dx-(n-M0/2).*ds).^2); end end D2=zeros(M0,M); for m=1:M0 for n=1:M D2(m,n)=exp(1j*(pi/(lamda.*z))*((m-M0/2)*ds-(n-M/2).*dx).^2); end end %% %成像物体:双缝,缝距5mm zero1=zeros(15,50); zero2=zeros(20,22); zero3=zeros(20,4); one=ones(20,1); obj=[zero1;zero2 one zero3 one zero2;zero1]; imwrite(obj,'obj.bmp'); x=reshape(obj,2500,1); %N*1,成像物体 %% %传输过程。 Ir = zeros(M,M,K); %K次采样 for h=1:K source =rand(M0,M0).*exp(1j*2*pi*rand(M0,M0)); %赝热光源振幅分布。 %参考光路 Er_k=D1*source*D2; Ir_k=abs(Er_k).^2; Ir(:,:,h)=Ir_k; end I1=Ir(:,:,1); figure(1); imagesc(I1/max(max(I1))); title('第一幅散斑'); imwrite(I1/max(max(I1)),'第一幅散斑.bmp'); A=reshape(Ir,N,K); %K*N,测量矩阵,编码光场。 A=A'; y=A*x; %K*1,物光路通探测器探测值。 %% %计算过程 %计算GI,GI=<ItIr>-<It><Ir> Y=repmat(y,1,N); IrIt_bar=mean(Y.*A); Ir_bar=mean(A); It_bar=mean(y); GI=IrIt_bar-It_bar*Ir_bar; %1*N GI=GI/max(GI); GI=reshape(GI,M,M); imwrite(GI,'GI.bmp'); %计算散斑场的叠加平均。 Ir_average=mean(A); Ir_average=reshape(Ir_average,M,M); Ir_average=Ir_average/max(max(Ir_average)); imwrite(Ir_average,'所有散斑场的叠加平均.bmp'); %因为散斑场是模拟随机的热光,所以很多幅散斑场叠加起来应该趋向于完全均匀的光场。 figure(5) subplot(121) imshow(Ir_average,[]) title('所有散斑场的叠加平均') %计算g2; g2=<Ir(0)*Ir(i)>/(<Ir(0)>*<Ir(i)>) Ir_0=A(:,round(N/2+M/2)); %为靠近Dr中心的像素点。 Ir_0=repmat(Ir_0,1,N); %K*N g2=mean(Ir_0.*A)./(mean(Ir_0).*mean(A)); %g2=<Ir(0)*Ir(i)>/(<Ir(0)>*<Ir(i)>) g2=reshape(g2,M,M); figure(2); g2fig=mesh(g2); title('g2(模拟50*50个尺寸为0.1mm的独立子光源产生的赝热光场)') saveas(g2fig,'g2.fig'); %% %另一种方法算GI GI2=(A'-ones(N,1)*mean(A'))*y; GI2=GI/max(GI); GI2=reshape(GI,M,M); imwrite(GI2,'GI2.bmp'); figure(3); imshow(GI2); title('GI结果'); %% imagingmatrix=(A'-ones(N,1)*mean(A'))*A; imagingmatrix=imagingmatrix/max(max(imagingmatrix)); imwrite(imagingmatrix,'成像矩阵.bmp'); %整个成像过程可以表述为:GI=imagingmatrix*x figure(4); imshow(imagingmatrix); title('成像矩阵'); %% %计算散斑平均尺寸 disp(strcat('理论散斑平均尺寸为',num2str(deltax*1000),'mm')); g2max=max(max(g2)); g2halfmax=(g2max-1)/2+1; [x0,y0]=find(g2==g2max); gg=g2(x0,:); n=find(gg>=g2halfmax); num=max(n)-min(n)+1; SAS=num*dx*1000; disp(strcat('测量散斑平均尺寸为',num2str(SAS),'mm'));
评论
    相关推荐
    • Holographic-Ghost-Imaging-.rar
      在单像素相机中如何利用量子涨落实现鬼成像全息的文献,很好的文献
    • codesforimageprocessing.rar
      实现简单图像处理,包括256色转灰度图、Hough变换、Walsh变换、中值滤波、二值化变换、亮度增减、傅立叶变换、反色、取对数、取指数、图像平移、图像旋转、图像细化、图像缩放、图像镜像、均值滤波、对比度拉伸、拉普拉斯锐化(边缘检测)、方块编码、梯度锐化、灰度均衡、直方图均衡、离散余弦变换、维纳滤波处理、逆滤波处理、阈值变换、高斯平滑。
    • matlab.rar
      基于MATLAB-GUI图形界面的数字图像处理软件 本系统设计基于GUI图形界面,用matlab语言编写代码,实现功能包括图象的读取、存储、显示、直方图均衡化、阈值化、小波分解、小波重构、加噪、去噪、平滑、锐化、边缘检测、图像分割等
    • OPENCV_SIFT_VC6.rar
      基于OPENCV的SIFT特征提取与匹配算法。包含完整的从图像高斯金字塔、DOG、空间极值点提取、关键点描述、KDtree匹配等关键步骤的全部函数实现,对全面深入理解Lowe的SIFT算法有莫大帮助。程序运行前须安装(1)OpenCV: http://opencvlibrary.sourceforge.net (2)SIFT: http://web.engr.oregonstate.edu/~hess/index.html,并配置其环境参数。
    • MATLAB_code_of_image_processing.rar
      该gui函数基本上包括图像处理里面的最基本处理,相当于一个小型photoshop。比如读取文件,几何变换中的垂直镜像,平移,旋转,缩放;正交变换的DFT,FFT,DCT,DST,DHT,DWashT;灰度处理中的反色,直方图均衡,全局线性变换,分段线性变换,指数非线性变换,对数非线性变换;图像增强里面的加噪声,平滑,锐化,伪彩色增强;图像分割里面的灰度阈值法,Robert,Laplace,sobel,prewitt,canny算子边缘检测法;图像恢复里面的直接逆滤波,维纳滤波;图像编码里面的霍夫曼编码,行程编码等等
    • bianyuan_jiance_bijiao.rar
      用六种算子(分别是gabor、拉普拉斯、priwitt、robert、sobel、wallis),对三种图象进行边缘检测比较,强烈推荐哦,是本人的毕业设计中的关键程序
    • 一维和二维小波变换的VC实现.rar
      小波算法在vc的具体实现.小波算法在图像处理,视频压缩,特征提取等领域有广泛应用,程序以灰度图像为数据分别演示了一维和二维小波变换,希望对大家有所帮助.谢谢!
    • thresold.rar
      基于小波变换阈值去噪的MATLAB源代码(包含小波包去噪程序)
    • HOG.rar
      基于HOG的行人检测,作者的源代码有错误,现代码已经进行了改变,并可以调试通
    • tuxiangzengqiang.rar
      本程序基于Matlab,初步实现图像增强的基本操作,实现 图像明暗度调整, 图像旋转,更改颜色显示方式,直接灰度调整,图像求反,动态范围压缩,显示原始图像直方图,直方图均衡化,滤波增强等功能