【高光谱图像的去噪算法】通过全变异最小化对受激拉曼光谱图像进行去噪研究(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代码、数据、文章

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python二维数组的坑:vis = [[0]*m] * n

先来看,vis [[0]*m] * n, vis2 [[0]*m for _ in range(n)]有什么区别? 这两行代码都是用来创建二维列表(或矩阵),但它们之间有一个关键的区别在于列表的复制方式。 vis [[0]*m] * n: 这种方…

SQL-每日一题【1193. 每月交易 I】

题目 Table: Transactions 编写一个 sql 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。 以 任意顺序 返回结果表。 查询结果格式如下所示。 示例 1: 解题思路 1.题目要求我们查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数…

工作方法论—马斯克的任务分解法

总结:动手做一个工作之前,请先对它进行任务,然后高效执行每一个原子操作 德雷克公式: 如果大家对德雷克公式有些陌生,我们再来看一个 IT 人怎样用任务分解的思路解决问题。 我们都知道埃隆马斯克(Elon Mu…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--搭建Vue 前端工程[一]

文章目录 SSM--搭建Vue 前端工程--项目基础界面实现功能01-搭建Vue 前端工程需求分析/图解代码实现搭建Vue 前端工程下载node.js LTS 并安装: node.js 的npm创建Vue 项目使用idea 打开ssm_vue 项目, 并配置项目启动 Vue3 项目目录结构梳理Vue3 项目结构介绍 配置Vue 服务端口El…

Python(六十六)字典生成式

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

CI/CD—Docker初入门学习

1 docker 了解 1 Docker 简介 Docker 是基于 Go 语言的开源应用容器虚拟化技术。Docker的主要目标是build、ship and run any app,anywhere,即通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的一次封装、到处运…

获取SQL语句表名,判断DDL类型

1.在maven中引入jsqlparser依赖 <!--sql语句解析--><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>4.4</version></dependency>2.解析SQL语句具体代码 此代码解析…

Redis 安装以及配置隧道连接

目录 1.CentOS 1. 安装Redis 2. Redis 启动和停⽌ 3. 操作Redis 2.Ubuntu 1. 安装Redis 2. Redis 启动/停⽌ 3. 操作 Redis 3.开启隧道 3.1 Xshell 配置隧道 3.2 windTerm 配置隧道 3.3 FinalShell配置隧道 4.可视化客户端连接 Another Redis Desktop Manager 1.Cen…

【Spring Cloud一】微服务基本知识

系列文章目录 微服务基本知识 系列文章目录前言一、系统架构的演变1.1单体架构1.2分层架构1.3分布式架构1.4微服务架构1.5分布式、SOA、微服务的异同点 二、CAP原则三、RESTfulRESTful的核心概念&#xff1a; 四、共识算法 前言 在实际项目开发过程中&#xff0c;目前负责开发…

《向量数据库指南》——怎么做VectorDBBench能发展成为ClickBench一样的行业标准?

目录 设计目标 真实负载模拟 广泛采用 持续更新和维护 社区支持和参与 VectorDBBench要像ClickBench一样成为行业标准,需要从多个方面进行改进和完善。以下是一些可行的方法: 设计目标 VectorDBBench应该具有灵活、可扩展的模块化架构,支持多种向量数据库系统,以及自定…

【Jmeter】 Report Dashboard 生成html图形测试报告

目录 背景 生成图形报告的方式 1、直接使用一个已存在的 CSV文件生成 2、负载测试完成后自动生成 使用示例 报告内容详情 测试报告摘要图 响应时间随时间变化曲线 活跃线程随时间变化曲线 I/O&#xff08;Bytes&#xff09;随时间变化曲线(忽略事务控制器示例结果) …

将程序打包成单一一个可执行文件

最近做了一个界面交互渲染的小项目&#xff0c;项目主要的功能是通过TCP接收数据然后在界面中渲染出对应的状态。由于用户的最大需求是炫酷&#xff0c;于是为了方便实现特殊的交互逻辑&#xff0c;我选择用freeglut自行实现了界面的交互和渲染&#xff0c;又用OpenCV做了部分图…

[openCV]基于拟合中线的智能车巡线方案V1

import cv2 as cv import os import numpy as np# 遍历文件夹函数 def getFileList(dir, Filelist, extNone):"""获取文件夹及其子文件夹中文件列表输入 dir&#xff1a;文件夹根目录输入 ext: 扩展名返回&#xff1a; 文件路径列表"""newDir d…

hcip的mgre和ospf实验

题目 拓扑图 一、配置环回和IP地址 R1 < Huawei>sy Enter system view, return user view with CtrlZ. [Huawei]sysname r1 [r1]int g0/0/1 [r1-GigabitEthernet0/0/1]ip add 64.1.1.1 24 Aug 4 2023 18:56:07-08:00 r1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol…

DNS部署与安全详解(上)

文章目录 一、DNS二、域名组成1. 域名组成概述2. 域名组成 三、监听端口四、DNS解析种类1. 按照查询方式分类&#xff1a;2. 按照查询内容分类&#xff1a; 五、DNS服务器搭建过程1. 先确保服务器的IP地址是固定的2. 安装DNS软件 一、DNS DNS全称Domain Name Service&#xff0…

人工智能安全-3-噪声数据处理

0 提纲 噪声相关概述噪声处理的理论与方法基于数据清洗的噪声过滤主动式过滤噪声鲁棒模型1 噪声相关概述 噪声类型: 属性噪声:样本中某个属性的值存在噪声标签噪声:样本归属类别关于噪声分布的假设:均匀分布、高斯分布、泊松分布等。 标签噪声的产生原因: (1)特定类别…

【GEMM预备工作】行主序和列主序矩阵的内存中的连续性,解决理解问题

在内存存储中&#xff0c;默认矩阵是按照行优先储存的&#xff0c;即矩阵的每一列在内存中是连续的。行优先矩阵储存中行数据是不连续的。 而对于列主序的矩阵&#xff0c;是按照列优先储存的&#xff0c;即矩阵的每一行在内存中是连续的。列优先矩阵储存中列数据是不连续的&am…

ReentrantLock锁并发环境线程安全读写ArrayList,Kotlin

ReentrantLock锁并发环境线程安全读写ArrayList&#xff0c;Kotlin import kotlinx.coroutines.* import java.util.concurrent.locks.ReentrantLock import kotlin.collections.ArrayList/*** 假设这样一种场景&#xff1a;在多线程的并发环境中&#xff0c;不同的线程/协程对…

python在函数中更改外部变量值

目录 前言 列表、字典&#xff08;可变对象&#xff09; 元组&#xff08;不可变对象&#xff09; 全局变量 前言 今天在写LeetCode题时&#xff0c;发现一个问题我并没有掌握&#xff0c;那就是如何在Python的函数中更改变量值&#xff08;包括列表&#xff0c;字典&…

使用自适应去噪在线顺序极限学习机预测飞机发动机剩余使用寿命(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…