Multiplexed SI

Multiplexed structured illumination (under construction)

Three related papers: 
Kaikai Guo, Shaowei Jiang, and Guoan Zheng, "Multilayer fluorescence imaging on a single-pixel detector," Biomedical Optics Express, 7, 7, 2425 (2016).
Siyuan Dong, Kaikai Guo, Shaowei Jiang, and Guoan Zheng*, "Recovering higher dimensional image data using multiplexed structured illumination," Optics Express, 23, 23, 30393 (2015).
Siyuan Dong, Pariksheet Nanda, Kaikai Guo, and Guoan Zheng*, “High-resolution fluorescence imaging via pattern-illuminated Fourier ptychography,” Optics Express, 22 (17), 20856-20870 (2014).

Multiplexed structured illuminaton 
under construction; will update the demo code soon
Source code is provided in the Chapter 4 in this book: "Fourier Ptychographic Imaging: a MATLAB Tutorial", IOP Press, May 2016 (purchase here for $32).  


Lensless multilayer fluorescence imaging on a single-pixel detector
under construction; will upload the demo code soon

%% Lensless single-pixel simulation code 
% generate one image
clear;close all;clc;
img1=double(imread('cameraman.tif'));
img=imresize(img1,[29,29]);
figure;imshow(abs(img),[],'InitialMagnification',1000);
figure;imshow(log(1+abs(fftshift(fft2(img)))),[],'InitialMagnification',1000);
%% generate a seq of speckle patterns 
clear illp;
for i=1:1000
    illp(:,:,i)=double((imnoise(0.1*ones(size(img,1),size(img,2)),'speckle',10)));
end 
figure;imshow(illp(:,:,i),[],'InitialMagnification',1000)
%% generate raw 1D single-pixel measurments
clear imlowseq
for i=1:size(illp,3)
imlowseq(:,:,i)=img.*illp(:,:,i);% no filtering here
rawpixel(i)=sum(sum(imlowseq(:,:,i)));
end;
figure;plot(rawpixel);title('1D measurement')
%% recovery using the 1D single-pixel measurment
close all;clc
him=ones(size(img,1),size(img,2));
for j=1:20
    for loopnum=1:15
        for i=1:size(illp,3)
        temp_im=him.*illp(:,:,i);
        temp_im1=temp_im;    
        temp_im = temp_im - mean(mean(temp_im)) + rawpixel(i)/numel(temp_im); % central pixel updating
        him=abs(him+(illp(:,:,i)).*(temp_im-temp_im1)./(max(max(illp(:,:,i)))).^2);
        end;
    end;
    figure;imshow(abs(him),[],'InitialMagnification',1000);title('Recovered him');pause(0.1);
end


Comments