1 简介

Fluorescence diffuse optical tomography (fDOT) is a noninvasive imaging technique that makes it possible to quantify the spatial distribution of fluorescent tracers in small animals. fDOT image reconstruction is commonly performed by means of iterative methods such as the algebraic reconstruction technique (ART). The useful results yielded by more advanced l1-regularized techniques for signal recovery and image reconstruction, together with the recent publication of Split Bregman (SB) procedure, led us to propose a new approach to the fDOT inverse problem, namely, ART-SB. This method alternates a cost-efficient reconstruction step (ART iteration) with a denoising filtering step based on minimization of total variation of the image using the SB method, which can be solved efficiently and quickly. We applied this method to simulated and experimental fDOT data and found that ART-SB provides substantial benefits over conventional ART.​

2 部分代码

% Demo_ART_SB_Reconstruction.m% % Demo for a novel iterative reconstruction method that alternates a% computationally efficient linear solver (ART) with a fast denoising step% based on the Split Bregman formulation and that is used to reconstruct% fluorescence diffuse optical tomography data, as in the paper J% Chamorro-Servent, J F P J Abascal, J Aguirre, S Arridge, T Correia, J% Ripoll, M Desco, J J Vaquero. Use of Split Bregman denoising for% iterative reconstruction in fluorescence diffuse optical tomography. J% Biomed Opt, 18(7):076016, 2013. http://dx.doi.org/10.1117/1.JBO.18.7.076016       % % This work proposes to combine computationally efficient solver and% denoising steps with the potential to handle large scale problems in a% fast an efficient manner. Here we combine Algebraic Reconstruction% Technique (ART) and Split Bregman denoising but these methods can be% substituted by the method of choice. %% Our particular choices are explained as follows: %    ART has been widely used in tomography to handle large data sets, as% it can work with one data point (projection) at a time. % %    The Split Bregman formulation allows to solve the total variation% denoising problem in a fast and computationally efficient way. At each% iteration the solution is given by analytical formulas. A linear system  % can be solved in the Fourier domain, keeping the size of the problem (the% Hessian) equal to the number of voxels in the image, or by using% Gauss-Seidel method, which exploits the block diagonal structure of the% Hessian. %% In this demo we solve the image reconstruction problem of fuorescence% diffuse optical tomography but it can be applied to other imaging% modalities. %% % If you use this code, please cite Chamorro-Servent et al. Use of Split% Bregman denoising for iterative reconstruction in fluorescence diffuse% optical tomography. J Biomed Opt, 18(7):076016, 2013.% http://dx.doi.org/10.1117/1.JBO.18.7.076016        %% Judit Chamorro-Servent, Juan FPJ Abascal, Juan Aguirre% Departamento de Bioingenieria e Ingenieria Aeroespacial% Universidad Carlos III de Madrid, Madrid, Spain% juchamser@gmail.com, juanabascal78@gmail.com, desco@hggm.es % READ SIMULATED DATA % Load data, Jacobian matrix and target imageload('DataRed','data','JacMatrix','uTarget');%% Replace the previous line by the following for a larger matrix size% load('Data','data','JacMatrix','uTarget');% but it requires to download data set from the following link: % https://www.dropbox.com/s/461ub2ps0ur8uvd/Data.mat?dl=0% Actually the reduced Jacobian matrix (from DataRed), 700x4000, has been% obtained from a larger matrix (from Data), 6561x4000, by random selection% of rows, providing similar results!  [nr nc]     = size(JacMatrix);% Display target image in the discretized domainN           = [20 20 10];   x           = linspace(-10,10,N(1));y           = linspace(-10,10,N(2));z           = linspace(0,10,N(3));[X,Y,Z]     = meshgrid(x,y,z);% Uncomment below to get a plot of all slices% h           = Plot2DMapsGridSolution(reshape(uTarget,N),X,Y,Z,3); colorbar;rand('seed',0);% Add Gaussian noisedata       = data + 0.01*max(data)*randn(length(data),1);% Randomized index of Jacobian rows for ART reconstruction% indRand     = randperm(length(data));% indRand     = 1:nr; % Uncomment to remove randomized index% -------------------------------------------------------------------------% ART%% It requires selecting few parameters: %    numIterART = number of iterations. The more iterations the better fit% of the data (in this case it converges in 30 iterations) %    relaxParam = relaxation parameter (between 0 and 1). Choose 0.1 to% remove noise and 0.9 to get a closer fit of the datanumIterART  = 30;   % relaxParam  = 0.1;u0          = zeros(nc,1);fprintf('Solving ART reconstruction ... (it takes around 1 s)\n');tic; % uART = ARTReconstruction(JacMatrix,data,relaxParam,numIterART,u0); % The following version runs 3-4 times faster; must try with larger% matrices to assess the differenceuART = ARTReconstruction_Fast(JacMatrix,data,relaxParam,numIterART,u0); tocuART     = reshape(uART,N);%  h = Plot2DMapsGridSolution(uART,X,Y,Z,3); colorbar;       % -------------------------------------------------------------------------% ART-SB  %% It requres selecting the following paramters for ART and Split Bregman % denoising:   %    ART (see previous section). Here we provide high relaxation for a% better fit of the data, as noise will be removed in the denoising step) %%    SPLIT BREGMAN DENOISING:% Split Bregman parameters (mu, lambda, alpha) allow to tune the algorithm% if needed but it is generally quite robust and selecting all parameters% to 1 (or as suggested in the paper) works fine. Then, the only parameters% that need to be chosen are the number of iterations %%    mu     = weight of the fidelity term. (Generally 0.1 to 1 works fine;%    see the paper for more details). The larger the more weight to the%    noisy image%    lamdba = weight of the functionals that impose TV constraints. The% larger the higher the regularization. (Usually chosen larger than mu and% any value around 1 works fine) %    alpha  = the weight of the functional that imposes TV sparsity% (L1-norm). No need to tune this parameter, value 1 should work%    nInner = Number of inner iterations that impose TV constraints. The% higher the number of iterations the more is imposed the TV constraint%    nOuter = Number of outer iterations that impose data fidelity% constraint. Choose this larger than 1 (2 works fine), as TV may provide% an output image with lower constrast and the Bregman iteration can% correct for that. numIter     = 30;numIterART  = 10;      relaxParam  = 0.9;uARTSB      = zeros(N);mu          = 0.3;lambda      = 2*mu;alpha       = 1;nInner      = 5;nOuter      = 2; % indRand = randperm(length(data));fprintf('Solving ART-SB reconstruction ... (it takes around 12 s)\n');h = waitbar(0,'Solving ART-SB reconstruction') ;ticfor it = 1:numIter    % ART reconstruction step: Iterative linear solver    sol = ARTReconstruction_Fast(JacMatrix,data,relaxParam,numIterART,uARTSB(:));     %sol = ARTReconstruction(JacMatrix,data,relaxParam,numIterART,uARTSB(:));     solGrid     = reshape(sol,N);       % SB denoising step    uARTSB      = TV_SB_denoising_3D(solGrid,mu,lambda,alpha,nInner,nOuter);        % Uncomment below to do 2D slice-by-slice smoothing instead. It takes    % similar time but it could be parallelized, which can be faster in some    % applications for large scale problems (now SB denoising takes less    % than a second), by changing the for to a parfor loop  %     for iz = 1:N(3)%         uARTSB(:,:,iz) = TV_SB_denoising_2D(solGrid(:,:,iz),mu,lambda,nInner,nOuter);%     end    % Compute solution error norm    err(it) = norm(uARTSB(:)-uTarget(:))/norm(uTarget(:));        waitbar(it/numIter);end % ittocclose(h);% Display resultsfigure; plot(err); ylabel('Solution error'); xlabel('Number of iterations');title('Convergence of ART-SB');% Target imagePlot2DMapsGridSolution(reshape(uTarget,N),X,Y,Z,3); set(gcf,'name','TARGET','numbertitle','off'); colormap gray;% Reconstructed images0Plot2DMapsGridSolution(uART,X,Y,Z,3); set(gcf,'name','ART reconstruction','numbertitle','off') colormap gray;Plot2DMapsGridSolution(uARTSB,X,Y,Z,3); set(gcf,'name','ART-SB reconstruction','numbertitle','off') colormap gray;  % -------------------------------------------------------------------------    %

3 仿真结果

4 参考文献

[1]马敏, 王涛, 范广永. 基于分割Bregman迭代的内-外置电极电容层析成像[J]. 科学技术与工程, 2018, 018(032):212-216.

[2] Chamorro-Servent J ,  Abascal J F ,  Aguirre J , et al. Use of Split Bregman denoising for iterative reconstruction in fluorescence diffuse optical tomography[J]. Journal of Biomedical Optics, 2013, 18.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【图像重建】基于布雷格曼迭代(bregman alteration)算法集合ART算法实现CT图像重建附matlab代码相关推荐

  1. 【图像重建】基于matlab布雷格曼迭代算法集合ART算法CT图像重建【含Matlab源码 1905期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像重建]基于matlab布雷格曼迭代算法集合ART算法CT图像重建[含Matlab源码 1905期] 获取代码方式2: 通过订阅紫极神光 ...

  2. 【BP预测】基于猫群算法优化BP神经网络实现数据预测附matlab代码

    1 简介 由于影响岩爆因素的复杂性,以及岩爆的极强灾害性.本文通过选择影响岩爆程度的四项物理力学指标,最后运算组合以后变成三项输入因子.应用BP神经网络对16组国内外岩爆实际工程案例进行训练,得到最优 ...

  3. 【回归预测-BP预测】基于灰狼算法优化BP神经网络实现数据回归预测附matlab代码

    1 内容介绍 Mirjalili 等在 2014 年 提 出 了 灰 狼 优 化 ( Grey Wolf Optimizer,GWO) 算法,是一种新型群智能优化算法,通过模拟自然界中灰狼寻找.包围和 ...

  4. 【预测模型-ELM分类】基于鲸鱼算法优化核极限学习机实现数据分类附matlab代码

    1 内容介绍 极限学习机(extreme learning machine,ELM)作为一种新兴的机器学习方法,已经成为了一个热门的研究方向. ELM 随机确定单隐含层网络的输入权值和隐含层节点偏置, ...

  5. 【回归预测-FNN预测】基于蝙蝠算法优化前馈网络实现数据回归预测附Matlab代码

    1 内容介绍 强大的非线性映射能力使得人工神经网络越来越多地应用于数值预测.工程控制中,但神经网络在学习过程中,不可避免的存在着全局搜索能力差.容易跳入局部最优等不足,因而用神经网络技术预测的数据并不 ...

  6. 【布局优化】基于改进粒子群算法实现充电桩选址优化问题附matlab代码

    1 简介 当前世界环境污染和能源危机问题凸显,电动汽车以零排放和低耗能的优势得到各国的大力关注和支持.以电动汽车为代表新能源汽车产业,成为国家七大战略性新兴产业之一.电动汽车具有良好的发展前景,市场规 ...

  7. 【滤波跟踪】基于Huber函数和最大相关熵的抗差滤波算法实现GNSS导航定位粗差处理附matlab代码

    1 内容介绍 雷达系统中跟踪滤波器的设计通常依赖于线性高斯系统.一旦系统为非线性且受到非高斯噪声干扰时,雷达跟踪性能便出现严重恶化.为了提高目标在非线性非高斯环境下跟踪的精度,将最大相关熵扩展卡尔曼滤 ...

  8. 【优化求解】基于精英反向学习带扰动因子的混沌蚁狮算法(EOPCALO)求解单目标优化问题附matlab代码

    1 简介 针对蚁狮算法易陷入局部最优.收敛速度慢的缺点,本文提出了基于精英反向学习带扰动因子的混沌蚁狮算法.该算法首先通过对蚂蚁的随机游走公式引入扰动因子,有效提高了寻优精度,避免算法陷入局部最优,有 ...

  9. 【ELM预测】基于鲸鱼算法优化极限学习机实现数据回归预测附matlab代码

    1 简介 为判断中国是否能够实现2030年碳排放强度下降60%-65%的承诺,以及碳排放总量是否能够在2030年达到峰值,论文构建了一个基于鲸鱼优化算法改进的极限学习机模型,对2019-2040年的碳 ...

最新文章

  1. 【嵌入式开发】C语言 内存分配 地址 指针 数组 参数 实例解析
  2. json写入数据库或生成excel
  3. mysql、oracle在Linux和Windows下的简单自动备份
  4. Github Pages部署个人博客(Hexo篇)
  5. Spring MVC-学习笔记(4)数据绑定流程
  6. Maven的安装与配置(详细版)
  7. 如何把windowsXP系统主题成Windows7风格windowsxp主题包
  8. java中数字转换汉语中人民币的大写
  9. URP——后期处理特效——通道混合器Channel Mixer
  10. 停车场web项目(内含有数据库)
  11. phpmywind目录结构
  12. 强收红包漫天要价偷转黑车……滴滴网约车被指太任性
  13. 再见 Wordpress!这个开源建站神器有点吊
  14. java8 函数式编程
  15. buuctf-N1Book[第六章 CTF之PWN章]
  16. Mac/Windows使用DBeaver+jdbc驱动连接KingbaseES人大金仓数据库
  17. 【工具推荐】图像界的魔术师 ImageMagick
  18. 【Mysql数据库 第2章】MySQL数据库基本操作-DML
  19. 基于FCM算法优化的图像分割研究(附源代码)
  20. Python 海龟绘制正方形和风轮

热门文章

  1. Java版支付宝手机网站支付
  2. POJ 1411 Calling Extraterrestrial Intelligence Again G++ 易超时
  3. JAVA计算机毕业设计租房管理系统Mybatis+系统+数据库+调试部署
  4. Buuctf -web wp汇总(一)
  5. Echarts实现区级地图
  6. Android 输入法增加语言
  7. 串行、并行、并发,别再傻傻分不清了!
  8. 急!急!急!如何申请公网ip
  9. ERP 数据流脚本框架 Samsara v2.0 脚本规范 (修订稿)
  10. word合并邮件无法发送html,Word邮件合并批量发送带附件的邮件