【用于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代码实现) 的相关文章

  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • 在 MATLAB 中绘图后恢复轴

    从文本文件绘制多种方法的输出后 未显示轴的右侧和上侧 我需要拥有它们并将它们加粗 就像当前的轴一样 绘制的数据来自存储每种方法数据的文件 每个数据文件都是一个 256x2 文件 包含 0 1 之间的值 第一列是精度 第二列是召回率 figu
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • 在 Matlab 中保存 Kinect 深度图像?

    通过使用 Kinect 我可以获得深度图像 其中每个深度图像像素存储相机和物体之间的距离 以毫米为单位 现在我想保存它们以便以后使用 最好的推荐是什么 我正在考虑将深度图像保存为图像 jpg png等 然而 该值通常是从50毫米到10000
  • Deploytool for MATLAB R2013b 不起作用,发生了什么变化?

    多年来我一直在使用集成deploytool为我的同事创建易于分发的 exe 文件 我几天前安装了R2013b 但无法使用deploytool不再了 尝试打包时的日志文件给出了以下内容 ant
  • 帮助我理解FFT函数(Matlab)

    1 除了负频率之外 FFT 函数提供的最小频率是多少 是零吗 2 如果它为零 我们如何在对数刻度上绘制零 3 结果总是对称的 或者只是看起来是对称的 4 如果我使用abs fft y 来比较2个信号 我是否会失去一些准确性 1 除了负频率之
  • 轴标注问题

    通过运行我编写的以下 matlab 函数 可以互换图中的 x 轴和 y 轴 谁能告诉我问题出在哪里或者帮我解决它吗 预先感谢您的任何帮助 function axislabeling n x 1 1 n y 1 1 n z zeros n n
  • 在矩阵中找到叉的最快方法

    定义 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 图 如果我使用print or saveas命令我不知何故失去了颜色 绘图符号再次变暗 背景变为白色 points rand 100 3 plot3 points 1 points 2 p
  • MATLAB问题:在图块中引用变量的值[重复]

    这个问题在这里已经有答案了 可能的重复 matlab 绘图标题中的变量 https stackoverflow com questions 5629458 matlab variable in plot title 我想在图中引用 m 文件
  • 计算给出数组中最小标准差的子集

    让我们有一个大小的向量N 例如 x rand N 1 我想计算长度子集的最小标准差K在向量中 When N and K很小 很容易找到最好的子集 因为我可以使用nchoosek N K 枚举所有可能的子集 但是当值N and K比我们说的要
  • 使用网络计算机进行 Matlab 并行处理

    我熟悉matlabpool and parfor用法 但我仍然需要加快计算速度 我的 1GB 网络中有一台功能更强大的计算机 两台计算机都有 R2010b 并且具有相同的代码和路径 使用两台计算机进行并行计算的最简单方法是什么 我今天使用的
  • 使用正常数据直方图与直接公式进行熵估计(matlab)

    假设我们已经绘制了n 10000标准正态分布的样本 现在我想使用直方图计算其熵来计算概率 1 计算概率 例如使用matlab p x hist samples binnumbers area x 2 x 1 sum p p p area b
  • MATLAB;具有 2+ 个/分割图例的饼图 R2017b

    我正在创建一个饼图 理想情况下希望图例水平显示在顶部和 或底部 然而 在几乎所有情况下 这是不可能的 因为图例超出了数字 因此 我理想情况下希望将图例分成两个 或更多 子图例并单独放置它们 我知道这不是 MATLAB 中的内置功能 我使用的
  • 在matlab中融合2个以上的图像

    在 MATLAB 中 如何融合两个以上的图像 例如 我想要做什么imfuse但对于超过 2 个图像 使用两张图像 这是我的代码 A imread file1 jpg B imread file2 jpg C imfuse A B blend
  • Python 中 Matlab 'fscanf' 的等价物是什么?

    Matlab函数fscanf 似乎很强大 python 或numpy 中是否有相同的等效项 具体来说 我想从文件中读取矩阵 但我不想迭代每一行来读取矩阵 类似的东西 来自 matlab 用于读取 2D 1000x1000 矩阵 matrix
  • 如何从列中创建对称矩阵?

    例如 我想转动以下列 90 175 600 650 655 660 代入矩阵 90 175 600 650 655 660 175 600 650 655 660 655 600 650 655 660 655 650 650 655 66
  • 可以避免迭代元胞数组时的“s{1} 烦恼”吗?

    The s 1 标题的 烦恼 指的是下面的 for 块中的第一行 for s some cell array s s 1 unpeel the enclosing cell do stuff with s end This s s 1 业务
  • Python 中的 eig(a,b) 给出错误“需要 1 个位置参数,但给出了 2 个”

    根据https docs scipy org doc numpy 1 15 0 user numpy for matlab users html https docs scipy org doc numpy 1 15 0 user nump
  • 如何在 MATLAB 中为 4 个子图创建一个通用图例?

    如何在 MATLAB 中为 4 个子图创建一个通用图例 如下所示 又快又脏 hSub subplot 3 1 1 plot 1 1 1 1 1 1 1 1 hLegend legend hello i am legend subplot 3

随机推荐