【高光谱图像的去噪算法】通过全变异最小化对受激拉曼光谱图像进行去噪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

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

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

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章


💥1 概述

文献来源:

 摘要:

高速相干拉曼散射成像通过可视化目标分子或细胞内细胞器的时空动力学,为揭示细胞机制开辟了一条新途径。通过以MHz调制频率从激光器中提取信号,电流激发拉曼散射(SRS)显微镜已经达到了散粒噪声限制的检测灵敏度。SRS显微镜中基于激光的本振不仅可以产生高水平的信号,还可以产生较大的散粒噪声,从而降低图像质量和光谱保真度。在这里,我们展示了一种去噪算法,该算法通过总变异最小化来消除空间和光谱域中的噪声。对于稀释的二甲基亚砜溶液,SRS光谱图像的信噪比提高了57倍,对于生物组织,SRS光谱图像的信噪比提高了15倍。最初埋藏在噪声中的目标分子的弱拉曼峰被解开。将去噪算法与多变量曲线分辨率相结合,可以区分秀丽隐杆线虫中富含蛋白质的细胞器的脂肪储存。总之,我们的方法在没有帧平均的情况下显着提高了检测灵敏度,这对于体内光谱成像非常有用。

关键词:

成像处理 无标记显微镜 非线性显微镜 拉曼光谱

原文摘要:

High-speed coherent Raman scattering imaging is opening a new avenue to unveiling the cellular machinery by visualizing the spatio-temporal dynamics of target molecules or intracellular organelles. By extracting signals from the laser at MHz modulation frequency, current stimulated Raman scattering (SRS) microscopy has reached shot noise limited detection sensitivity. The laser-based local oscillator in SRS microscopy not only generates high levels of signal, but also delivers a large shot noise which degrades image quality and spectral fidelity. Here, we demonstrate a denoising algorithm that removes the noise in both spatial and spectral domains by total variation minimization. The signal-to-noise ratio of SRS spectroscopic images was improved by up to 57 times for diluted dimethyl sulfoxide solutions and by 15 times for biological tissues. Weak Raman peaks of target molecules originally buried in the noise were unraveled. Coupling the denoising algorithm with multivariate curve resolution allowed discrimination of fat stores from protein-rich organelles in C. elegans . Together, our method significantly improved detection sensitivity without frame averaging, which can be useful for in vivo spectroscopic imaging.

关键词:

Imaging processing Label-free microscopy Non-linear microscopy Raman spectroscopy

📚2 运行结果

 主函数代码:

clear all
close all
clc

addpath(genpath('./spectral_tv/'));

sel_exp     = 2;  % select an experiment (1 or 2)

% Set the number of rows, columns and frames.
M           = 128;
N           = 128;
K           = 50;

% Load a hyperspectral image (DMSO100%)
file_name   = '../data/DMSO100%.tif';
hyper_true  = read_hyperdata(file_name, M, N, K);
[rows, cols, frames] = size(hyper_true);

% Add noise in the hyperspectral image
if sel_exp==1
    tmp        = read_hyperdata('../data/DMSO10%.tif', M, N, K);
    sigma_true = estimate_noise_level(tmp);
elseif sel_exp==2
    sigma_true = 0.005:0.005:(0.005*frames);
end
hyper_noisy = zeros(rows, cols, frames);
for i=1:frames
    hyper_noisy(:,:,i) = hyper_true(:,:,i) + sigma_true(i)*randn(rows, cols);
end


% Spectral Total Variation
opts.beta   = [1 1 0.1];
runtime     = tic;
out_stv     = spectral_tv(hyper_noisy, opts);
runtime_stv = toc(runtime);
sigma_est   = out_stv.sigma;
psnr_stv    = psnr(hyper_true, out_stv.f);


% Original Total Variation
mu          = 1;
opts.w      = mean(out_stv.w(:));
opts.beta   = [1 1 0.1];
runtime     = tic;
out_tv      = deconvtvl2(hyper_noisy, 1, mu, opts);
runtime_tv  = toc(runtime);
psnr_tv     = psnr(hyper_true, out_tv.f);


% Print PSNRs between true and denoised images.
fprintf('Method: spectral tv, \t psnr: %6.4f, \t runtime: %6.4f\n', psnr_stv, runtime_stv);
fprintf('Method: original tv, \t psnr: %6.4f, \t runtime: %6.4f\n', psnr_tv, runtime_tv);

% Plot the true and estimeated noise level.
if sel_exp==1 || sel_exp==2
    figure;
    plot(sigma_true, 'LineWidth', 2, 'Color', 'g');
    hold on;
    plot(sigma_est, 'LineWidth', 2, 'Color', 'r');
    hold off;
    xlabel('frame');
    ylabel('noise standard deviation');
    legend('True', 'Estimated', 'Location', 'best');
end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1] Chien-Sheng Liao, Joon Hee Choi, Delong Zhang, Stanley H. Chan and Ji-Xin Cheng, "Denoising Stimulated Raman Spectroscopic Images by Total Variation Minimization," Journal of Physical Chemistry C, Jul. 2015.

🌈4 Matlab代码、数据、文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/46727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx防盗链

防盗链介绍 通过二次访问,请求头中带有referer,的方式不允许访问静态资源。 我们只希望用户通过反向代理服务器才可以拿到我们的静态资源,不希望别的服务器通过二次请求拿到我们的静态资源。 盗链是指在自己的页面上展示一些并不在自己服务…

Programming abstractions in C阅读笔记:p123-p126

《Programming Abstractions In C》学习第50天,p123-p126,总结如下: 一、技术总结 1.notaion 这也是一个在计算机相关书籍中出现的词,但有时却不是那么好理解,因为它可以指代很多对象,这里做一个记录。示…

badgerdb里面的事务

事务的ACID A 原子性(Atomicity) 多步骤操作,只能是两种状态,要么所有的步骤都成功执行,要么所有的步骤都不执行,举例说明就是小明向小红转账30元的场景,拆分成两个步骤,步骤1&#…

【Windows系统编程】06.HotFixHook与进程通信(详解HotFixHook)

上一讲讲到的InlineHook,每次Hook的时候,都要读写两次内存(先Hook,再还原)这种Hook方式,性能比较低,今天我们讲的这种Hook方式,可以说是InlineHook的升级版本 HotFix(热…

数据对齐(结构体对齐、类成员对齐、动态内存对齐/指针对齐、函数参数对齐、SIMD对齐)

数据对齐 数据对齐是一种计算机内存管理技术,确保数据存储在内存中的特定地址上,以提高访问效率和性能。 不同的数据类型(如整数、浮点数、指针等)在内存中的存储位置通常需要满足特定的边界要求,即数据的起始地址是其…

公众号11周年,终于向公域流量打开了大门

是的,在这篇文章要发布之前,看了下日期,才惊觉明天就是公众号11周年了。 时间真的过得飞快,总觉得10周年刚过不久。 已经11年的公众号,或许少了很多关注,或许很多目光也被视频号夺去了。 但让人欣喜的是…

前馈神经网络dropout实例

直接看代码。 (一)手动实现 import torch import torch.nn as nn import numpy as np import torchvision import torchvision.transforms as transforms import matplotlib.pyplot as plt#下载MNIST手写数据集 mnist_train torchvision.datasets.MN…

基于开源模型搭建实时人脸识别系统(四):人脸质量

续人脸识别实战之基于开源模型搭建实时人脸识别系统(三):人脸关键点、对齐模型概览与模型选型_CodingInCV的博客-CSDN博客 不论对于静态的人脸识别还是动态的人脸识别,我们都会面临一个问题,就是输入的人脸图像的质量可…

使用 OpenTelemetry 构建可观测性 04 - 收集器

在之前的博文中,我们讨论了如何使用 SDK 和链路追踪生产者来导出进程中的遥测数据。尽管有多种类型的导出器可供选择,但其中一个常见的目标是将数据导出到 OpenTelemetry Collector。本篇文章将深入探讨收集器以及如何使用它。 选 OTel Collector 还是…

Spring中的依赖注入(Dependency Injection)有哪些不同的方式?可以举例说明吗?

Spring中的依赖注入(Dependency Injection)有哪些不同的方式?可以举例说明吗? 构造方法注入 使用构造函数进行DI注入 public class MyClass {private MyDependency myDependency;public MyClass(MyDependency myDependency) {t…

Eduma主题 - 线上教育WordPress主题/网站

Eduma主题 – 线上教育WordPress主题是为教育网站、LMS、培训中心、课程中心、学院、大学、学校、幼儿园而制作的。基于我们使用以前的主题eLearning WP构建WordPress LMS的经验,Education WP是下一代,也是围绕WordPress最好的教育主题之一,它…

C++编码规范解读

规范 C文件名和类名保持一致 好处:代码整体结构清晰、明了。java里强制如此。 类型命名采用大驼峰 比如:UrlEncoder FileParser 优先使用 头文件中的基本类型 如: 有符号类型 无符号类型 描述 int8_t uint8_t 宽度恰为8的有/无符号整…

C++并发多线程--std::async创建异步任务是否创建线程

1--std::async创建异步任务 std::async 创建一个异步任务,其不一定会创建一个新线程去执行该任务; 使用 std::launch::deferred 时,异步任务不会创建一个新线程; 使用 std::launch::async 时,操作系统会强制创建一个新…

一个炫酷的头像悬停效果 2

基于上次翻译的 🔥🔥一个炫酷的头像悬停效果 收获了不少同学的喜欢,原作者近期进行了优化升级。本文将升级后的核心实现过程进行梳理讲解,如果没看过第一期的推荐先看看第一期的实现过程。升级后的效果如下图所示。 gif动画效果如…

Baklib是比语雀、Notion、石墨文档更好用的在线知识库管理工具

在当今信息爆炸的时代,如何高效地管理和利用知识成为了每个人都面临的问题。在线知识库管理工具应运而生,帮助用户整理、存储和共享知识。在这篇文章中,我将介绍一个更好用的在线知识库管理工具——Baklib,并探讨它相对于其他知识…

变上限积分求导

y ∫ 0 x t f ( t 2 − x 2 ) d t y \int _0^x t f( t^2 - x^2)dt y∫0x​tf(t2−x2)dt 设 t 2 − x 2 u , 那么 t u x 2 , d t d u 2 u x 2 , 并且当 t x 时 u 0 , 当 t 0 时, u − x 2 设 t^2 - x^2 u,那么t \sqrt{ux^2},dt \frac{du}{2\s…

Spring系列篇--关于IOC【控制反转】的详解

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Spring的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.什么是Spring 二.Spring的特点 三.什…

【O2O领域】Axure外卖订餐骑手端APP原型图,外卖众包配送原型设计图

作品概况 页面数量:共 110 页 兼容软件:Axure RP 9/10,不支持低版本 应用领域:外卖配送、生鲜配送 作品申明:页面内容仅用于功能演示,无实际功能 作品特色 本品为外卖订餐骑手端APP原型设计图&#x…

Datawhale Django 后端开发入门 Task05 DefaultRouter、自定义函数

一、DefaultRouter是Django REST framework中提供的一个路由器类,用于自动生成URL路由。路由器是将URL与视图函数或视图集关联起来的一种机制。Django REST framework的路由器通过简单的配置可以自动生成标准的URL路由,从而减少了手动编写URL路由的工作量…

Redis Lua脚本执行原理和语法示例

Redis Lua脚本语法示例 文章目录 Redis Lua脚本语法示例0. 前言参考资料 1. Redis 执行Lua脚本原理1.1. 对Redis源码中嵌入Lua解释器的简要解析:1.2. Redis Lua 脚本缓存机制 2. Redis Lua脚本示例1.1. 场景示例1. 请求限流2. 原子性地从一个list移动元素到另一个li…