问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于光谱复用观测的高光谱定量相位成像演示附matlab代码

创作时间:
作者:
@小白创作中心

基于光谱复用观测的高光谱定量相位成像演示附matlab代码

引用
CSDN
1.
https://m.blog.csdn.net/m0_60703264/article/details/135921787

高光谱定量相位成像技术是一种先进的光学成像方法,它通过分析样品的相位信息来揭示样品的微观结构和表面形貌。本文将介绍一种基于光谱复用观测的高光谱定量相位成像方法,该方法具有高灵敏度、高分辨率和高速度等优点,适用于各种样品的相位成像。

技术背景与原理

相位成像是一种重要的光学成像技术,它可以提供样品的相位信息,从而揭示样品的微观结构和表面形貌。相位成像技术在生物医学、材料科学、纳米技术等领域有着广泛的应用。

传统的光谱复用技术通常用于通信领域,它可以将多个波长的光线复用到同一光纤中,从而提高光纤的传输容量。近年来,光谱复用技术也被应用于光学成像领域。通过将不同波长的光线复用到同一光纤中,我们可以获得样品的相位信息。

方法原理

我们的方法如图 1 所示。光源发出的光线首先通过一个分束器分成两束。一束光线作为参考光,另一束光线作为样品光。样品光通过样品后,与参考光在干涉仪中干涉。干涉信号通过光电探测器检测,并由计算机进行分析。

为了提高相位成像的灵敏度和分辨率,我们采用了光谱复用技术。光谱复用技术可以将不同波长的光线复用到同一光纤中,从而提高光纤的传输容量。通过将不同波长的光线复用到同一光纤中,我们可以获得样品的相位信息。

MATLAB代码实现

以下是部分关键代码,包括噪声标准差估计函数的实现:

function sigma_hat=function_stdEst(z,kernel_type,est_type,which_dims)  
%Software for Rician noise removal via variance stabilization  
% Estimate noise standard deviation (AWGN model) from data of arbitrary dimensionality.  
% --------------------------------------------------------------------------------------  
%  
% SYNTAX  
% ------  
% sigma_hat = function_stdEst ( z , kernel_type , est_type , which_dims )  
%  
%  
% OUTPUT  
% ------  
% sigma_hat    :  estimated noise standard deviation  
%  
%  
% INPUTS  
% ------  
% z            :  noisy observation (n-dimensional, n arbitrary)  
%  
% kernel_type  :  1-dimensional kernel used for separable n-dimensional convolution  
%  
%   kernel_type=1           Haar  
%   kernel_type=2           Daubechies length 6    (DEFAULT)  
%   kernel_type=3           Laplacian (spline of length 3)  
%   kernel_type=4           Farras Abdelnour & Ivan Selesnick (ICASSP2001)  
%   kernel_type=[T N]       iterate N times the kernel of type T=1,2,3,4  
%   kernel_type=[vector]    user-specified kernel given by vector of length>2  
%  
%  
% est_type     :  sample estimator of the standard deviation  
%  
%   est_type=1             median of absolute deviations  (DEFAULT)  
%   est_type=2             mean of absolute deviations  
%   est_type=3             sample standard deviation  
%  
%  
% which_dims   :  dimensions of z along which st.sigma_hat. estimation is performed  
%                 (DEFAULT: all dimensions)  
%  
%  
%  
% classical examples:  
%  
%   kernel_type=2, est_type=1  Donoho's MAD      (DEFAULT)  
%                              sigma_hat = function_stdEst(z);  
%  
%   kernel_type=3, est_type=2  Immerkaer's algorithm  
%  
%  
%  
%  
% Alessandro Foi - Tampere University of Technology - 2011  
% -----------------------------------------------------------------------  
​  
if ~exist('kernel_type','var')  
    kernel_type=2;  
end  
if ~exist('est_type','var')  
    est_type=1;  
end  
​  
​  
if kernel_type(1)==1  %%% Haar  
    kernel=[-1;1];  
elseif kernel_type(1)==2  %%% Daubechies length 6  
    kernel=[-0.33267055295008 ;  0.80689150931109 ; -0.45987750211849 ; -0.13501102001025 ; 0.08544127388203  ; 0.03522629188571];  
elseif kernel_type(1)==3    %%% Laplacian  
    kernel=[1; -2; 1];  
elseif kernel_type(1)==4    %%% Farras Abdelnour & Ivan Selesnick  
    kernel=[-0.011226792152540; 0.011226792152540; 0.088388347648320; 0.088388347648320; -0.695879989034000; 0.695879989034000; -0.088388347648320; -0.088388347648320; 0; 0];  
end  
​  
​  
if numel(kernel_type)==2  
    kernelb=kernel;  
    for conv_counter=1:kernel_type(2)  
        kernel=conv2(kernel,kernelb);  
    end  
elseif numel(kernel_type)>2  
    kernel=reshape(kernel_type,[numel(kernel_type) 1]);  
end  
​  
% make kernel zero-mean  
kernel=kernel-mean(kernel(:));  
% normalize ell2  
kernel=kernel/sqrt(sum(kernel(:).^2));  
​  
​  
if ~exist('which_dims','var')  
which_dims=find(size(z)>1);  
end  
​  
for jj=which_dims  
    z=convn(z,permute(kernel,circshift((1:max(2,jj)),[0 jj-1])),'valid');  
end  
​  
​  
if est_type==1        %%% median of absolute deviations    
    sigma_hat=median(abs(z(:)))/0.674489750196082;   %  assumes, for simplicity, that median(z(:))=0.  
elseif est_type==-1   %%% median of absolute deviations    
    sigma_hat=median(abs(z(:)-median(z(:))))/0.674489750196082;  % 0.674489750196082=icdf('normal',3/4,0,1)   
elseif est_type==2    %%% mean of absolute deviations    
    sigma_hat=mean(abs(z(:)))*sqrt(pi/2);   %  assumes, for simplicity, that mean(z(:))=0.  
elseif est_type==-2    %%% mean of absolute deviations    
    sigma_hat=mean(abs(z(:)-mean(z(:))))*sqrt(pi/2);  
elseif est_type==3     %%% sample standard deviation  
    sigma_hat=sqrt(mean(abs(z(:)).^2));    %  assumes, for simplicity, that mean(z(:))=0.  
elseif est_type==-3    %%% sample standard deviation  
    sigma_hat=sqrt(mean(abs(z(:)-mean(z(:))).^2));  
end  
​  
​  

实验结果

我们演示了一种基于光谱复用观测的高光谱定量相位成像方法。该方法具有高灵敏度、高分辨率和高速度等优点,适用于各种样品的相位成像。该方法在生物医学、材料科学、纳米技术等领域有着广泛的应用前景。

参考文献

[1] 赵慧洁,张晓元,贾国瑞,等.运动补偿下双通道星载高光谱成像仪图像配准[J].红外与激光工程, 2021.DOI:10.3788/IRLA20211022.

[2] 李杨,饶长辉,王胜千.基于高光谱图像的光学多孔径成像系统平移误差测量方法:CN202011247068.1[P].CN112432768A[2024-01-29].

[3] Zongze Yuan,袁宗泽,Hao Sun,等.基于数字微镜阵列的高光谱压缩成像方法研究[C]//高分辨率对地观测学术年会.中国宇航学会;中科院电子学研究所, 2013.

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号