计算鬼成像又叫关联成像,其系统架构如图所示。首先,激光器发出的激光通过光束扩展器(BE),然后通过旋转磨砂玻璃形成随机波动光斑,然后光斑到达空间光调制器(SML)。空间光调制器对激光光斑进行相位或幅度调制,形成可用于鬼影成像的激光散斑I_i(x,y),然后将得到的激光散斑照射到目标物体上。通过目标物体的光被无空间分辨率的桶形探测器收集,记录其总光强B_i。
假设目标物体的透射系数矩阵为T(x,y),大小为pxp,激光散斑形成的测量矩阵为,则其大小为M xN, N = pxp。
在获得我们选择的每一行的光强$\Phi$的过程中,将其重塑为传输到物体的p xp投影模式I_i(x, y),然后桶检测器可以测量并记录相应的强度值B_i。
结合方程上面两个公式,可以重构出目标物体的相关信息。重构可由公式给出:
上式中,M个样本的个数,为集合均值,。上式属于传统的计算鬼影成像重建方法,需要大量重复采样,但恢复效果仍不理想。随着压缩感知技术和神经网络的出现,传统的重建方法逐渐被其他智能优化算法所取代(后面更新)。
首先下面我们来看看重构效果。重构效果与采样次数的关系。
由测量结果可以知道在传统计算鬼成像当中,直接利用散斑和桶探测器的光强值来完成相关性重构得到的重构效果是非常差的,即使在较高采样率下重构的图像效果依然是非常不理想的。
传统计算鬼成像的计算代码如下:
image=imread("b6.bmp");
image1=double(rgb2gray(image));
[m,n]=size(image1);
T=zeros(m,n);
S_3h=zeros(m,n);
B=0;
h=4096;%测量次数
A1=randn(h,m*n);%测量矩阵
for j1=1:h
Phi=reshape(A1(j1,:),64,64);
T=T+Phi;
BO=sum(sum(Phi.*image1));
B=B+BO;
S_3=(BO)*Phi;
S_3h=S_3h+S_3;
end
T_AV=T/h;
B_AV=B/h;
TB_av=S_3h/h;
gi=TB_av-T_AV*B_AV;
imshow(gi,[]);title('重构图像');