ImFusion C++ SDK 4.5.0
Ultrasound Image Formation Plugin

The USImageFormation Plugin provides algorithms, stream interfaces and data structures for the acquisition, recording and processing of ultrasound data in low level use cases. More...

Collaboration diagram for Ultrasound Image Formation Plugin:

Detailed Description

The USImageFormation Plugin provides algorithms, stream interfaces and data structures for the acquisition, recording and processing of ultrasound data in low level use cases.

Introduction

The US Image Formation Plugin is an extension to the ImFusion SDK designed to facilitate working with low-level ultrasound systems. It provides tools and functionalities for:

  • Acquisition Control: Programming acquisition sequences of ultrasound systems with low-level programming capabilities and low-level data access.
  • Acquisition: Acquisition of per-element raw channel data.
  • Raw Data Access: Access and process raw channel data for advanced signal processing and research purposes.
  • Real-Time Processing: Perform live processing of ultrasound data up to final B-Mode images for immediate feedback and visualization.
  • Offline Processing: Load and process recorded data (from any stage) for post-acquisition studies.
  • Access to intermediate data: Perform bespoke processing within the normal pipeline, or to create additional outputs.

Usage

The functionality of the USImageFormation Plugin is accessible in the ImFusion Suite, the C++ SDK, and the Python API.

ImFusion Suite

The USImageFormation Plugin is integrated into the ImFusion Suite, allowing users to access its features through the graphical user interface. See the User documentation.

C++ SDK

Using the C++ SDK, the USImageFormation Plugin can be used to create custom applications for ultrasound data acquisition, processing, and visualization. The implementation of bespoke processing can be done through the Plugin system, see for the Stream example plugin https://github.com/ImFusionGmbH/public-demos/tree/release/StreamExamples

Using the plugin functionality in another application:

SimulatedChannelDataStream inputStream;
// <configure the input stream>
StreamRecorderAlgorithm recorder({&inputStream});
inputStream.start();
recorder.start();
recorder.stop();
inputStream.stop();
// Access the recorded data
auto rfChannelData = recorder.takeOutput().extractFirstImage();
// Process the RF channel data using the USImageFormation Plugin
ChannelDataFilterAlgorithm filter(rfChannelData);
filter.compute();
auto filtered = filter.takeOutput().extractFirstImage();
IqDemodulationAlgorithm iqDemod(filtered);
iqDemod.compute();
auto iqdemod = iqDemod.takeOutput().extractFirstImage();
BeamformingAlgorithm beamforming(iqdemod);
beamforming.compute();
auto beamformed = beamforming.takeOutput().extractFirstImage();
EnvelopeDetectionAlgorithm envelopeAlg(beamformed);
envelopeAlg.setReferenceAmplitude(100000.0);
envelopeAlg.setDynamicRange(45.0);
envelopeAlg.compute();
auto envelope = envelopeAlg.takeOutput().extractFirstImage();
USExp::ScanConversion2 scanConversion(envelope);
scanConversion.compute();
auto scanconverted = scanConversion.takeOutput().extractFirstImage();
T sleep_for(T... args)

Python

The USImageFormation Plugin can be used in Python together with the ImFusion Python API. It can be used to process recorded ultrasound data, or to configure and control an input stream, record sequences from it, and then the data. Live visualization of the data is not currently supported from Python.

See the Python SDK documentation for more details on how to use the USImageFormation Plugin in Python.

Topics

 Utilities
 Utility functions for the ultrasound image formation plugin.
 Concept: ChannelData
 The ChannelData concept in the USImageFormationPlugin represents any 3D image, 3D+t data (recorded sequence in a SharedImageSet), or 3D image stream that includes the appropriate ImFusion::DataComponents.

Classes

class  ImFusion::US::AcquisitionSequence
 Collection of frame acquisition parametrizations that form a sequence. More...
class  ImFusion::US::AcquisitionSequenceWidget
 Widget to configure a AcquisitionSequence, intended to be used in other controllers. More...
class  ImFusion::US::BeamformingAlgorithm
 Algorithm to perform beamforming (and optionally coherent compounding) on RF or IQ ultrasound channel data. More...
class  ImFusion::US::BeamformingRois
 DataComponent that describes the spatial regions of interest (ROIs) for beamforming for each pulse-echo event. More...
class  ImFusion::US::ChannelDataFilterAlgorithm
 Algorithm to filter RF channel data in the fast time domain. More...
class  ImFusion::US::ChannelDataLayout
 Layout of ultrasound channel data in a 3D image. More...
class  ImFusion::US::ChannelDataRemappingAlgorithm
 Algorithm to remap the order of channels in channel data to simple muxed order (channel# = element % num channels). More...
class  ImFusion::US::GPU::IqDemodulation
 Perform IQ demodulation on an image, performed in CUDA. More...
class  ImFusion::US::GPU::MapChannelsAndTranspose
 Changes the order of channels in input channel data to match those of the given target frameAcquisition and normalizes the channel data layout. More...
class  ImFusion::US::EnvelopeDetectionAlgorithm
 Algorithm that performs envelope detection and (optionally) log compression on an ultrasound image given in pre-scan form. More...
struct  ImFusion::US::FrameParameters
 Properties for high-level parametrization of a frame acquisition. More...
class  ImFusion::US::FrameAcquisition
 Metadata and programming for the sequence of pulse echo events of one frame, e.g. More...
class  ImFusion::US::FrameAcquisitionWidget
 Widget to configure a FrameAcquisition, intended to be used mainly through the AcquisitionSequenceWidget. More...
class  ImFusion::US::IqDemodulation
 Perform IQ demodulation on an image. More...
class  ImFusion::US::IqDemodulationAlgorithm
 Algorithm that performs IQ demodulation in the fast-time axis of ultrasound channel data or y-axis of general RF data. More...
class  ImFusion::US::LogCompressionAlgorithm
 Algorithm that applies ultrasound-style log compression to scalar amplitude or complex IQ images. More...
class  ImFusion::US::PulseEchoEvent
 Describes one ultrasound pulse echo event. More...
class  ImFusion::US::SimulatedChannelDataStream
 Testing / debugging algorithm, that creates a stream of channel data, containing the echo of one or more point scatterers. More...
class  ImFusion::US::StreamScanConversionAlgorithm
 Shortcut Algorithm to instantiate a SequentialImageProcessor for US::ScanConversion2 on an image stream. More...
class  ImFusion::US::Transducer
 Low level transducer information, used for programming US firings and channel data processing. More...

Enumerations

enum class  ImFusion::US::WavefrontShape { Focused = 0 , PlaneWave = 1 , DivergingWave = 2 }
 Shape of an emitted wavefront. More...

Enumeration Type Documentation

◆ WavefrontShape

enum class ImFusion::US::WavefrontShape
strong

#include <ImFusion/USImgFormation/WavefrontShape.h>

Shape of an emitted wavefront.

Used in sequence programming and beamforming.

Search Tab / S to search, Esc to close