关于超声和光声中的延迟求和算法的详细说明 Detail description of DAS algorithm

article/2025/5/18 4:59:18

关于超声和光声中的延迟求和算法的详细说明 Detail description of DAS algorithm

  • 背景 background
    • 存在问题(个人思考)
    • 算法说明及代码示例

背景 background

In LED-base Photoacoustic imaging,DAS algorithm was always used for the image reconstruction. This note is about illustrate the details of DAS algorithm.
LED-based Photoacoustic imaging technology often use a linear probe, generally they have 128 elements in this probe,when the exciting light incident to the samples, if there is an absorb in the sample then it will generate the ultrasound signals and all the 128 elements will detected this signal, but due to the different distance between this absorb to every element, it will have a time-delay in each channel, the small distance will get the signal early and the large distance will get it later.
Therefore if you wanna build the image, you need to know the signal amplitude in every pixel, and each pixel was detected by 128-channels, so you need to sum all the 128-channel’s value together to get the right amplitude of every-pixel.

在LED光声中最基本的图像重建算法就是延迟求和算法DAS,通常我们都会使用128陈元的线性探头。当激励光源照射进成像样品之后,如果样品中存在一个吸收体,那么这个吸收体产生的光声信号会被这128个阵元都检测到,但由于每个阵元到这个吸收体的距离不一样,因此导致每个通道监测到的信号有不同的时间延迟,离吸收体近的阵元将会早一点的接收到超声信号,离得远点的就会晚一点接收到这个信号,但是这个信号就是这个吸收体的,只是在接收的时间上有一定的差异,因此为了正确得到这个吸收体产生的光声信号的幅值应该将这128个阵元监测的信号加起来。

存在问题(个人思考)

There is a condition on this algorithm,because if you just based on the distance difference to determine where is the absorb it will make some confuse problems, we all know that the incident light is scattered as a ball in the tissue, consequently,the generated signal can not existed on a plane, it should positioned as a ball, but in generally we assume all the signal was on a plane, then use the DAS algorithm to build the image.

有一个问题就是入射光进入组织以后会散射向各个方向,因此我们接收到的信号不应该只是来自一个平面上的,而应该是一个立体范围内的,但是为了方便计算成像,我们假设用线阵探头进行光声成像的时候接收到的光声信号来自与一个平面即我们通常所说的B-scan,B-plane.而这种线阵探头之所以成像速度快就是其可以一次就完成一个B-scan,不像Photoacoustic microscopy 需要先扫描A-line 然后组成B-plane.
假设所有的吸收体都来自这个B-plane 以后我们就可以根据这个B-plane每个像素距离每个阵元的距离来判断信号的延迟时间,然后根据每个通道接收到信号的时间差异提取出每个通道处信号的具体位置进行叠加,即可以重建出图像。

算法说明及代码示例

DAS延迟和算法,不难从字面理解,计算延迟+数据求和。

(1)延迟时间:通过计算从目标点P到传感器接收单元的距离,再根据传输介质的速度,以及超声传感器阵列的采集频率,求光声信号从目标点到信号接收所需要的时间,由此定位出所收集的数据点在传感器接收数据集中的位置,找到目标点在某个传感器单元所对应的时间的接收信号。

(2)数据求和:在确定了传感器阵列中每个单元所对应的接收时间及对应的信号强度,将数据全部提前进行求和,即为该目标点的信号强度。

根据这个方法,可以求出图像中每个像素所对应的所有阵列信号之和,由此得到整个图像区域的强度信息。
参考:参考来源
这个参考中的图像表述的不够清楚:手画图方便大家理解

Linear B-mode 计算成像原理示意图

  1. 首先计算延迟时间
    要计算延迟时间就得知道每个像素到每个阵元的距离,因为可以由距离得到信号的飞行时间。那么根据两点间的距离公式,第(i,j)个像素到第(N,0)个阵元之间的距离可以表示为(以图象上边的中心和线性探头的中心为原点)N为阵元数量:
    我们现在设成像大小为M x M,每个阵元之间的距离为Pitch_size, 每个像素大小为dx,dy

d = s q r t ( (( i − N / 2 ) ∗ d x − ( C h a n n e l i − N / 2 ) ∗ P i t c h s i z e ) 2 + ( j ∗ d y − 0 ) 2 ) d = sqrt (((i-N/2)*dx-(Channel_i - N/2)*Pitch_size)^2+(j*dy - 0)^2) d=sqrt(((iN/2dx(ChanneliN/2)Pitchsize2+(jdy0)2)
飞行时间就是用计算出来的距离处理声音传播的速度。
为了确定在每个通道中采集到的到底是一维信号的哪一个点还需要乘以采样频率,采样频率就代表每秒钟产生了多少个数据点,因此有 Vs是声速,fs是探头的采样频率。
t i m e = ( d / V s ) ∗ f s time = (d/Vs)*fs time=(d/Vs)fs

%% 参数定义
%%% 定义图像信息
X = 550; Y = 550;	% 定义图像大小
dx = 0.1e-3;        % 定义图像像素尺寸,单位:m
dy = 0.1e-3;        % 定义图像像素尺寸,单位:m
IM = zeros(X,Y);    % 定义一个背景图像% 定义换能器信息
N = 128;            % 超声换能器阵列单元数量
fs = 80e6;          % 数据的采集频率,单位:Hz
dt = 1/fs;          % 数据的采集时间分辨率,单位:s
pitch = 0.3e-3;     % 阵列单元间隔,单位:m% 传播介质信息
vs = 1.43e3;         % 介质声速,单位:m/s%% DAS图像重构
%%for i=1:Xfor j=1:Yfor channel_i = 1:N% 计算目标点到传感器的距离,基于两点距离公式,探头与图像中间对齐(为保证中间较强信号保留)d = sqrt(((i-X/2)*dx-(channel_i-N/2)*pitch)^2+(j*dy-0)^2); % 计算传输需要的时间(延迟时间)time = floor(d/vs*fs)+1; % 在像素位置对所有阵元的数据叠加处理IM(i,j) = IM(i,j) + sensor_data(channel_i,time);endend
end% 根据实际需要进行图像变换
IM=IM'; % 图像反转

相关解释:

(1)有关图像参数设置,可以以现有数据为参考;

(2)探头参数的定义,以实际情况为准;

(3)注意sensor data中通道和时间的行列分布;

(4)可能存在数据叠加时,报错超出数组范围的情况。起初,所采用的解决办法是调整传感器采集频率。传感器实际采集频率为80M Hz,由于超出数据,程序中使用的是75M Hz。后来,改了图像的大小,从600改到了500,感觉比较合适。整体只需要把图像的大小和像素大小控制在比较合适的范围即可。最后,在叠加语句前加了判定语句,如果时间超过时间检测大小,就不执行叠加;时间在采集范围内则叠加。

修改后的叠加程序:

 if time<=size(sensor_data,2)% 在像素位置对所有阵元的数据叠加处理IM(i,j) = IM(i,j) + sensor_data(channel_i,time);end

重点参考:https://zhuanlan.zhihu.com/p/606874661


http://chatgpt.dhexx.cn/article/3xL2mMsN.shtml

相关文章

前置微小信号放大器在光声技术的血管识别研究中的应用

实验名称&#xff1a;前置微小信号放大器在光声技术的血管识别研究中的应用 研究方向&#xff1a;生物识别技术 测试目的&#xff1a; 利用MATLAB对光声血管进行识别&#xff1a;1、对光声血管图库的图像进行预处理包括归一化、二值化、平滑、细化和毛刺修剪得到细化图像&#…

光学分辨率光声显微镜中基于深度学习的运动校正算法

在这项研究中&#xff0c;我们提出了一种基于深度学习的方法来校正光学分辨率光声显微镜 (OR-PAM) 中的运动伪影。该方法是一种卷积神经网络&#xff0c;它从具有运动伪影的输入原始数据建立端到端映射&#xff0c;以输出校正后的图像。首先&#xff0c;我们进行了仿真研究&…

双光子成像和近红外二区荧光共聚焦成像/树状大分子CT/MRI双模态成像造影剂/锰螯合物磁共振成像(MRI)

双光子成像和近红外二区荧光共聚焦成像/树状大分子CT/MRI双模态成像造影剂/锰螯合物磁共振成像(MRI) 我们使用 PTD 纳米颗粒实现了透过老鼠头骨脑血管的三维高分辨(分辨率 25.4 微米),高信号/背景比例( 22.3 dB)成像. 其成像深度高达 1001 微米. 该脑血管光声成像效果比较近报道…

材料参数分段恒定的定量光声层析成像(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思…

近红外硅量子点波长500nm左右|锗量子点GeQDs.光热效果性能优异,可用于光热成像治疗光声成像,载药

近红外硅量子点波长500nm左右 硅量子点由于具有优异的发光特性,能够应用于光电器件和生物成像等领域。本征硅量子点的性质显著依赖于其尺寸大小和表面状况。同时,作为半导体材料,掺杂是调控硅量子点性质的另一个维度。通过掺杂研究人员可以对硅量子点的光学、电学、磁学等性能…

AD采集卡用于光声成像

光声成像是一种新的成像方式&#xff0c;它继承了光成像和声成像的优点&#xff0c;能够有效的进行生物组织结构和功能成像&#xff0c;为研究生物组织的形态结构&#xff0c;生理特征&#xff0c;病理特征&#xff0c;代谢功能等提供了重要的手段&#xff0c;特别适合于癌症的…

2022-2028年中国光声成像系统行业市场调研分析及发展规模预测报告

本研究报告数据主要采用国家统计数据&#xff0c;海关总署&#xff0c;问卷调查数据&#xff0c;商务部采集数据等数据库。其中宏观经济数据主要来自国家统计局&#xff0c;部分行业统计数据主要来自国家统计局及市场调研数据&#xff0c;企业数据主要来自于国统计局规模企业统…

光声断层成像的傅里叶变换图像重建算法

快速傅里叶变换光声断层图像重建 前言 光声成像的基本原理是利用短脉宽的脉冲激光器激发组织中的吸收体产生光声信号&#xff0c;再结合相应的图像重建算法例如MIP&#xff0c;FBP和FFT&#xff08;最大值投影算法&#xff0c;滤波反投影重建算法&#xff0c;傅里叶变换&#…

光声成像

文章目录 1.光声成像简介2.光声成像分类3.图像重建算法4.光声成像系统三个典型问题5.挑战 光声成像之前的成像方式对比 X射线成像&#xff1a; 优点&#xff1a;能对骨头和硬组织进行深度成像&#xff0c;有着很强的对比度和极高的分辨率 缺点&#xff1a;对软组织成像很差&…

Python 爬取网页信息并保存到本地爬虫爬取网页第一步【简单易懂,注释超级全,代码可以直接运行】

Python 爬取网页信息并保存到本地【简单易懂&#xff0c;代码可以直接运行】 功能&#xff1a;给出一个关键词&#xff0c;根据关键词爬取程序&#xff0c;这是爬虫爬取网页的第一步 步骤&#xff1a; 1.确定url 2.确定请求头 3.发送请求 4.写入文件 确定请求头是其中的关键一…

Python爬取网页的所有内外链

用Python爬虫&#xff0c;爬取网页的所有内外链 项目介绍代码大纲 网站详情代码详情队列内链外链请求头 完整代码爬取结果 项目介绍 采用广度优先搜索方法获取一个网站上的所有外链。 首先&#xff0c;我们进入一个网页&#xff0c;获取网页的所有内链和外链&#xff0c;再分别…

python学习笔记(三)---python爬取网页指定内容

python学习笔记&#xff08;三&#xff09;—python爬取网页指定内容 1、利用正则匹配爬取指定内容&#xff0c;例如标题 正则表达式&#xff1a; <title>(.*?)</title> req urllib.request.Request(urlurl,headersheaders) content urllib.request.urlopen(re…

python 批量爬取网页pdf_python爬取网页内容转换为PDF文件

如何利用Python抓取PDF中的某些内容 你的问题事实上包含几部分&#xff1a; 将 PDF 转化为纯文本格式 抽取其中部分内容 格式化写入到 excel 中 转换 PDF 有很多库可以完成&#xff0c;如下是通过 pdfminer 的示例&#xff1a; from cStringIO import StringIO from pdfminer.p…

python爬取网站实例,Python爬取网页简单示例

准备材料 一&#xff1a;使用到的Python第三方库是requests 和 BeautifulSoup 二&#xff1a;选择要爬取的网页 我选择了豆瓣小组里的一个帖子回复(是微博或者微信的签名&#xff0c;个人感觉比较有意思) 地址是&#xff1a;https://www.douban.com/group/topic/80125952/ 三&a…

使用Python爬取网页中的表格保存到word

经常遇到的是爬取网页写入表格中&#xff0c;保存为csv格式、txt格式。最近接到一个任务&#xff0c;复制网页中文字和表格保存到word中&#xff0c;不仅有文字&#xff0c;还有表格。一看有100多页&#xff0c;要是一页一页的复制&#xff0c;要干到什么年月啊。 经过一番搜索…

python爬取网页表格数据并写入到excel

python爬取网页表格数据并写入到excel 获取银行网页中外汇数据&#xff1a; http://fx.cmbchina.com/Hq/History.aspx?nbr%e7%be%8e%e5%85%83&startdate2009-01-01&enddate2021-10-22&page1 代码如下&#xff1a; import datetime import reimport openpyxl …

Python 爬取网页标签内数据

1、先看运行效果&#xff0c;左边为运行后的结果&#xff0c;右边为爬取的网页内容 2、先展示代码 import requests from lxml import etree#爬取的网址 url https://sh.fang.anjuke.com/?fromnavigation #请求头 header{"user-agent": "Mozilla/5.0 (Window…

Python爬取网页文本内容

# -*- coding: utf-8 -*- from bs4 import BeautifulSoupdef second_pro(text):last_sen []while 1:last_sen.append(text.split(",")[-1])other_list text.split(",")[:-1]# 特定位置超长&#xff0c;需要处理if len(other_list) 1:last_sen.append(ot…

python爬取网页时,编码出错问题

在使用python进行爬取问题时&#xff0c;容易出现编码错误的情况&#xff0c;如&#xff1a; UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xb9’ in position 61513: illegal multibyte sequence 程序代码: headers {"User-Agent":"Mozi…

python爬取网页图片详解

文章目录 什么是爬虫爬取网页图片实现步骤第一步&#xff1a;打开所操作的网站&#xff08;任意一个网站&#xff09;第二步&#xff1a;通过python访问这个网站第三步&#xff1a;点击F12查询相关信息第四步&#xff1a;爬取图片&#xff0c;下载到本地第五步&#xff1a;显示…