【用于OCT体积的散斑噪声降低】光学相干层析成像自适应复合散斑降噪滤波器研究(Matlab代码实现)

2023-12-05

???????????????? 欢迎来到本博客 ❤️❤️????????

????博主优势: ???????????? 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️ 座右铭: 行百里者,半于九十。

???????????? 本文目录如下: ????????????

目录

????1 概述

????2 运行结果

????3 参考文献

????4 Matlab代码、数据、文章


????1 概述

文献来源:

摘要
意义:散斑噪声限制了光学相干断层扫描(OCT)图像的诊断能力,导致对比度降低,组织微结构形态的评估不够准确。

目的:我们提出了一种用于OCT体积的散斑噪声降低方法,利用自适应噪声小波阈值处理与应用于连续位置获取的几帧图像的小波合成方法的优势。该方法利用了散斑统计的小波表示,从噪声体积的均匀样本或区域中正确计算出来。

方法:首先,提出的方法在三种不同的临床皮肤科OCT体积和三种不同的OCT设置上,与不同的最先进方法进行了定量比较。该方法还被应用于一个公共的视网膜光谱域OCT数据集,以展示其适用于不同成像模式。

结果:基于四种不同的指标,结果表明,所提出的方法在抑制噪声和保留结构信息方面,表现出了最佳性能。

结论:所提出的OCT去噪技术有潜力适应不同的图像OCT设置和噪声环境,并在临床诊断前基于视觉评估改善图像质量。

1.介绍
光学相干断层扫描(OCT)是一种光学成像技术,允许以微米分辨率和最多两毫米深度实时观察体内组织的横截面图像。OCT广泛应用于各种生物医学和临床领域,如眼科学(作为诊断和监测疾病进展的常规无创工具)和心脏病学(作为冠状动脉介入期间的导管成像系统)。在皮肤科学中,OCT已被用于研究各种皮肤疾病。OCT在皮肤科中最重要的应用是评估非黑色素性皮肤癌,如基底细胞癌(BCC),并减少对诊断活检的需求。

由于OCT使用空间相干照明,其图像受到散斑现象的影响,散斑现象既是噪声的来源,也是信息的载体。散斑携带信号信息是入射光子的背向散射的结果,而散斑噪声是由来自多个方向的多个反射光子之间的随机干涉引起的。散斑噪声使OCT图像呈现颗粒状外观,降低了信噪比(SNR),限制了其解释的准确性。散斑的特性受到尺度表示、光学设置和生物组织的散射特性的影响。

详细讲解见第4部分。

???? 2 运行结果

主函数代码:

clear all;
close all;

% add all the subfolders to the path
addpath(genpath(pwd));

% step 1
% load the ROIS
% load the noiseRef
% load the volume

rois = load('./conf/volume_rois_1_1.mat');
noise = load('./conf/noiseRef_volumes_1X.mat');
volume_raw = loadstack('./testdata/volume_1_1.tif','uint16');

% step 2
% apply the method
paramK=1;
addmean='no';
numlevels = 4;
sizelimit = 2.^numlevels;
sizeVol = size(volume_raw);
size_1 = floor(sizeVol(1)/sizelimit)*sizelimit;
size_2 = floor(sizeVol(2)/sizelimit)*sizelimit;
imageVol = volume_raw(1:size_1,1:size_2,:);

% Add the mean as the last frame
if strcmp(addmean,'yes')
imageVol(:,:,size(imageVol,3)+1) = mean(imageVol,3);
end

result_wcan = wcan(imageVol,noise.noiseRef,'k', paramK, 'maxLevel', numlevels, 'basis','haar');


% step 3
% get the metrics and plot the results
metrics = getmetrics( 'WCAN', imageVol(1:size(result_wcan,1),1:size(result_wcan,2),1), result_wcan, rois.ROINOISE, rois.ROISCNR );
disp(strcat('Improvement metrics- SNR: ',sprintf('%.2f',metrics.SNR),'dB, CNR: ',sprintf('%.2f',metrics.CNR),', ENL:',sprintf('%.2f',metrics.ENL)));

% save the result
imwrite(result_wcan,'../results/result_test_wcan.png')

????3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

???? 4 Matlab代码、数据、文章

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【用于OCT体积的散斑噪声降低】光学相干层析成像自适应复合散斑降噪滤波器研究(Matlab代码实现) 的相关文章

  • 归一化互相关的基础知识

    我正在尝试使用范数校正2 归一化互相关 http en wikipedia org wiki Cross correlation Normalized cross correlation 来自 MATLAB 用于计算发育中胚胎中移动形状的速
  • matlab部署工具到java包javac错误

    我正在尝试将我的程序包装为与 java 一起使用 我首先尝试了一个简单的 hello world 你好世界 m disp 你好世界 我使用了deploytool并选择了java包 当它到达这一行时 执行命令 javac verbose cl
  • 如何为已编译的 MATLAB 创建安装程序并要求用户接受我们的许可条款?

    我正在 MATLAB 中编写程序分发给 Windows 用户 我使用 MATLAB 编译器和 MATLAB r2014a 版本来创建程序 我可以使用 MATLAB 应用程序编译器创建 Windows 安装程序 并且它的工作效果可以接受 但是
  • getappdata 在 MATLAB 中返回空矩阵

    我有一段代码 我在其中使用setappdata然后我使用以下方式调用数据getappdata即使它不为空 它也会返回一个空矩阵 我的一段简化代码如下 function edit1 Callback hObject eventdata han
  • Matlab 图像数据的 hist 函数

    我是 Matlab 新手 我想制作自己的函数 与 imhist 显示图像数据的直方图 完成相同的工作 但我对此完全是新手 我不知道如何做开发这样的功能 我开始做一些东西 但它非常不完整 function output args myhist
  • 以 2 为底的矩阵对数

    Logm 取矩阵对数 并且log2 取矩阵每个元素以 2 为底的对数 我正在尝试计算冯 诺依曼熵 它涉及以 2 为底的矩阵对数 我该怎么做呢 如果将 以 2 为底 的矩阵指数定义为B expm log 2 A 或者如果您类似地通过特征分解直
  • 在matlab中不使用for循环检查数组中的成员资格

    我想简化这段代码 使其无需 for 循环即可工作 for i 1 N for j 1 N if ismember j A PID i i TFP i j PID i i end end end 其中A是一个包含一些标签的矩阵 我之前存储的T
  • Ilnumerics Ilpanel 在 winform 中编译成 dll 并加载到 matlab 时不激活

    我想将 Visual studio 2012 中用 C 编写的 winform 编译为 dll 然后将其加载到 matlab 2013a 中 然后 我想使用 matlab net 接口与 winform 进行交互 侦听其事件并通过一组预定义
  • matlab中更快的插值方法

    我正在使用 interp1 来插值一些数据 temp 4 30 4 rand 365 10 depth 1 10 dz 0 5 define new depth interval bthD min depth dz max depth ne
  • Matlab:3D 堆积条形图

    我正在尝试创建一个 3D 堆积条形图 如这个问题所示 Matlab 中的 3D 堆叠条形图 https stackoverflow com questions 13156133 3d stacked bars in matlab 5D 然而
  • 通过多次合并相同的行向量来构建矩阵

    有没有一个matlab函数可以让我执行以下操作 x 1 2 2 3 然后基于x我想建立矩阵m 1 2 2 3 1 2 2 3 1 2 2 3 1 2 2 3 您正在寻找REPMAT http www mathworks com help t
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • 保存符号方程以供以后使用?

    From here http www mathworks com help releases R2011a toolbox symbolic brvfu8o 1 html brvfxem 1 我正在尝试求解这样的符号方程组 syms x y
  • 轴标注问题

    通过运行我编写的以下 matlab 函数 可以互换图中的 x 轴和 y 轴 谁能告诉我问题出在哪里或者帮我解决它吗 预先感谢您的任何帮助 function axislabeling n x 1 1 n y 1 1 n z zeros n n
  • 2D 网格的纹理贴图

    我有一组点 x y meshgrid 1 N 1 M 在常规二维上定义 N x M网格 我还有另一组要点 u v 这是原始网格的一些变形 即 u v f x y 但是我没有实际的f导致变形 如何将纹理映射到由定义的 变形 网格u v 即 给
  • 考虑预分配速度[重复]

    这个问题在这里已经有答案了 我正在做以下事情 for i 1 m index 0 for j 1 n index index values i j 2 j 1 if j 1 symbol chip chip values index 1 e
  • 在矩阵中找到叉的最快方法

    定义 A i j 1 是十字的中点 如果元素A i 1 j 1A i 1 j 1A i j 1 1A i j 1 1 这些元素和中点一起形成矩阵 A 中的十字 其中 A 至少是一个 3 3 矩阵 并且i j 0 假设上图是 8 8 矩阵 A
  • MATLAB问题:在图块中引用变量的值[重复]

    这个问题在这里已经有答案了 可能的重复 matlab 绘图标题中的变量 https stackoverflow com questions 5629458 matlab variable in plot title 我想在图中引用 m 文件
  • Matlab strcat 不返回字符串?

    imgstr 无法识别 strcat 的输出字符串 homedir C Users images for img 01 bmp 02 bmp 03 bmp imgstr strcat homedir img I imread imgstr

随机推荐