k-Wave丨光声成像仿真丨基础篇:下载安装及简易操作(一)

相信打开此篇博客的你,是在光声成像领域,或即将在此领域闪闪发光的同好。

此篇博客是本人所做第一篇学习笔记,记录自己的学习历程,也供大家参考与交流。

有兴趣的同好可以加企鹅群交流:937503xxx(有意向的同好评论或私聊加群,新群,目前群内仅3人),任何科研相关问题都可以在群内交流,平常一起聊聊天、分享日常也是没问题的,欢迎~

一、k-Wave介绍及下载

1.k-Wave是什么?

2.k-Wave的下载(MATLAB)

二、二维仿真示例

1.二维仿真示例程序

2.二维仿真的缺陷

3.官方示例学习途径


 一、k-Wave介绍及下载

1.k-Wave是什么?

官方定义:

k-Wave is an open source acoustics toolbox for MATLAB and C++ developed by Bradley Treeby and Ben Cox (University College London) and Jiri Jaros (Brno University of Technology). The software is designed for time domain acoustic and ultrasound simulations in complex and tissue-realistic media. The simulation functions are based on the k-space pseudospectral method and are both fast and easy to use.

粗略翻译:

k-Wave是由Bradley Treeby和Ben Cox(伦敦大学学院)以及Jiri Jaros(布尔诺理工大学)开发的MATLAB和c++开源声学工具箱。该软件是专为时域声学超声模拟在复杂和组织现实的媒体。该仿真函数基于k空间伪谱方法,具有快速、易用的特点。

注:本文主要是介绍在MATLAB(2012以后的版本)中k-Wave的下载与使用。

2.k-Wave的下载(MATLAB)

进入官网:http://www.k-wave.org/

(1) 注册一个账号,只需要填必要的信息就可以了 

 

(2) 登录,选择MATLAB条目下的压缩包进行下载(如图)。

可以选择将压缩包放在MATLAB的文件夹内,比如我在D:\Matlab\toolbox下新建一个名为k-Wave的文件夹,并把压缩包剪切进去,最后解压缩(如图)。

ps.toolbox的目录下都是MATLAB中的小工具,放在这里显得有条理一点0.o

当然也可以选择将压缩包解压到其他文件夹,并省去(3)(4)步骤,只需要在程序前面加一句类似的语句即可:

addpath('D:\k-Wave')

(3) 在MATLAB中添加刚刚新建的k-Wave路径

打开MATLAB,选择【主页】上的【设置路径】。

选择【添加并包含子文件夹】,找到刚刚解压缩的文件夹,打开看到如下图五个文件夹的子目录,然后【选择文件夹】。

可以看到如下几个文件夹被添加了进来,选择【保存】,然后【关闭】即可。 

(4) 检查一下,打开【主页】中的【帮助】,可以看到k-Wave,点进去可以查看一些官方示例。

二、二维仿真示例

下载完成后第一件事:当时是迫不及待的想试一手,奈何纯新手一枚,不会敲程序,这里借鉴了知乎博主:Adi Deng 的文章。

1.二维仿真示例程序

(1) 一般是按照:定义网格 kgrid=,定义介质medium=,定义声源source=,定义传感器sensor=,仿真kspaceFirstOrder2D 的顺序来书写程序。

直接新建脚本,复制代码,运行代码。ps.不懂没有关系,先复制后运行试试,我也不懂0.q


% 1.定义网格kgrid
Nx = 128; % x(行)方向的网格点数
Ny = 256; % y(列)方向上的网格点数
dx = 50e-6; % x方向格点间距[m]
dy = 50e-6; % y方向格点间距[m]
kgrid = makeGrid(Nx, dx, Ny, dy);

% 2.定义介质medium
medium.sound_speed = 1500*ones(Nx, Ny); % [m/s]
medium.sound_speed(1:50, :) = 1800; % [m/s]
medium.density = 1040; % [kg/m^3]

% 3.定义声源source
disc_x_pos = 75; % [grid points]
disc_y_pos = 120; % [grid points]
disc_radius = 8; % [grid points]
disc_mag = 3; % [Pa]
source.p0 = disc_mag*makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);

% 4.定义传感器sensor
sensor_radius = 2.5e-3; % [m]
num_sensor_points = 50; % 50个传感器元素
sensor.mask = makeCartCircle(sensor_radius, num_sensor_points);

% 5.仿真 kspaceFirstOrder2D
sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor);

% 定义sensor,可以用矩阵定义,如下为一张600*600的格点
% 如下三行代码比较方便定义线性阵元,阵元顺序按照x的位置依次排列
sensor_mask = zeros(600,600)
sensor_mask(1:10:600,10) = 1;
sensor.mask = sensor_mask;

% 如果是环形可以如下定义,阵元顺序按照sensor_No依次排列
% sensor_mask = zeros(600,600)
% sensor_mask(1:10:600,10) = 1;
% sensor.mask = sensor_mask;

(2) 可以看到如下图程序运行成功的样子,是一副动图。

2.二维仿真的缺陷

二维仿真的波形可能存在异常,不是正常的N型信号,这时候需要使用三维仿真。

三维仿真,定义三维格点,然后使用如下函数(把2D换成了3D)。

sensor_data = kspaceFirstOrder3D(kgrid, medium, source, sensor);

ps.三维仿真的配置及使用仍在学习中,配置比较复杂,后续会考虑继续更新。

3.官方示例学习途径

(1) 可以在MATLAB【主页】-【帮助】中查看并学习官方示例,但都是英文,十分头大。

(2) 所以可以打开官方示例的网页版:MATLAB Documentation - k-Wave MATLAB Toolbox

推荐使用Edge及Goolge浏览器,这样可以在网页空白处【右键】-【翻译为中文】,方便阅读。

参考博客及文章:

Matlab如何安装k-Wave_matlab k-wave工具箱安装_BFrost的博客-CSDN博客

k-wave的使用 - 知乎 (zhihu.com)

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 34
    评论
深度光声成像是一种将光声技术与医学影像学相结合的成像方法,可以在高分辨率下获得组织结构和功能信息。对回波数据进行深度光声成像的过程可以概括为以下几个步骤: 1. 激光器:使用高能量密度的激光器产生短脉冲激光,激光波长通常在700-1300纳米范围内。 2. 光声探头:将激光束聚焦在样品上,照射后样品吸收激光能量,产生局部温度变化,进而导致局部压力变化,形成声波信号。这些声波信号被光声探头接收,并转换为电信号。 3. 数据采集:将光声探头接收到的电信号进行放大、滤波和数字化处理,得到回波数据。回波数据包含了样品内部的声学信息,可以用于后续的成像处理。 4. 成像处理:利用回波数据进行成像处理,可以获得高分辨率的深度光声图像。成像处理过程包括信号预处理、图像重建和图像后处理等步骤。其中,图像重建是将回波数据转换为二维或三维图像的过程,通常采用反演算法实现。图像后处理包括去噪、增强和分割等步骤,可以进一步提高图像质量和准确性。 5. 图像分析:根据深度光声图像进行定量和定性分析,可以获得组织结构和功能信息。常见的分析方法包括图像分割、纹理分析、血流分析和功能成像等。 通过对回波数据进行深度光声成像,可以实现非侵入式、高分辨率、高对比度的组织成像,具有广泛的应用前景,在医学诊断、生物学研究、材料科学等领域都有重要的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值