This package contains MATLAB scripts that use the Radon transform to find the wave speed and trajectory from spatiotemporal particle motion data. This code was developed for processing ultrasound shear wave elasticity imaging data (SWE/SWEI). The Radon transform calculates the line integral of 2D data over all possible trajectories, and the slope of the trajectory that maximizes the Radon transform is the group speed of the wavefront.
Features of this package:
- Adjustable speed range and resolution
- Normalized Radon transform accounts for trajectory length and gives a strength metric equal to the average data along the trajectory
- Apply arbitrary masks to input data, with helper scripts to make various masks, including hand-drawn masks
Refer to the example scripts to see how this package is used:
Example 1: Basic usage
Example 2: Find speeds of peak and trough in particle velocity data
Example 3: Hand-drawn masks
Example 4: Detect multiple waves with trajectory masking
- Load and pre-process your spatiotemporal particle motion data
- Create a data struct with
MakeDataStruct - Use
CalcThetato generate a speed search range - Use
NormRadonto perform the normalized Radon transform, with optional masking (see notes) - Use
FindRadonPeaksto find the transform's peak - Use
CalcTrajectoryto calculate the wave speed and trajectory.- (optional)
CalcResolutionestimates the resolution for the output speed
- (optional)
- Visualize results with
PlotRadon
MakeDataStructrequires three quantities: a 2D array of spatiotemporal data and the corresponding vectors for spatial and temporal coordinates.- Common pre-processing steps (not required): filtering, resampling, differentiating in time, cropping, normalizing in time at each spatial location, etc.
CalcThetamay be passed a specific list of discrete wave speeds to search. By default, it constructs a logarithmically-spaced speed range.NormRadonmay be passed a mask to apply it to the input data. This package contains the following helper scripts to generate useful masks:MaskManual: the user manually circles the desired wave and the drawing is used as a mask. This is particularly useful for data with multiple waves or to avoid artifacts.MaskTrajectoryuses the inverse Radon transform to mask out a specified trajectoryMaskSpeedcreates a speed-based mask to isolate data faster or slower than a specified speed
If you find this package useful, please consider citing the proceedings paper:
@inproceedings{jin2022open,
title={An Open-Source Radon-Transform Shear Wave Speed Estimator with Masking Functionality to Isolate Different Shear-Wave Modes},
author={Jin, Felix Q and Knight, Anna E and Paley, Courtney Trutna and Pietrosimone, Laura S and Hobson-Webb, Lisa D and Nightingale, Kathryn R and Palmeri, Mark L},
booktitle={2022 IEEE International Ultrasonics Symposium (IUS)},
pages={1--4},
year={2022},
organization={IEEE}
}





