Tools to segment doppler ultrasound signals from scan images.
Project description
Doppler Segmentations
These codes make up the framework for segmenting the doppler ultrasound scans.
Table of Contents
Installation
- To install as a dependency for your project:
pip install usseg
or
poetry add usseg
Development Environment
To install the development environment follow the following steps.
- Clone this repository and change into the directory.
- Install poetry as per the installation instructions.
- Install tesseract as per the intallation instructions.
- Note that the project has only been tested with tesseract version 5.
- Install the package dependencies with:
poetry install
- Enter into the development shell with:
poetry shell
- You are now in the development environment!
- Copy
config_example.toml
toconfig.toml
and change the variables for your local set up (e.g. path to your data etc.). - The main script can now be run in one complete run with
python usseg/main.py
. - If debugging in vscode, ensure the python interpreter is set to the virtual environment created poetry. This path can be found using
poetry env info --path
Ultrasound Segmentation Package
The Ultrasound Segmentation Package facilitates two primary blocks of functionality: text extraction from images and ultrasound image segmentation. Each block consists of a sequence of functions designed to work independently yet contribute collectively to the overall process.
Text Extraction Process
- colour_extract_vectorized: Filters the image to highlight a specific target colour of pixel, preparing it for text extraction.
- Text_from_greyscale: Processes the filtered image to extract text, matching lines to specific target words.
- Metric_check: Performs a common-sense check on the extracted measurements using knowledge of their interdependencies and known physiological limits, ensuring data accuracy.
Image Segmentation Process
- Initial_segmentation: Begins with a coarse segmentation of the waveform.
- Define_end_ROIs: Defines regions adjacent to the coarse segmentation.
- Segment_refinement: Refines the segmentation within the coarse boundaries.
- Search_for_ticks: Identifies ticks in the axes ROIs for accurate scaling.
- Search_for_labels: Locates labels within the axes ROIs for data extraction.
- Plot_Digitized_data: Digitizes the extracted data to plot the waveform.
- Plot_correction: (Optional) Adjusts the time axis based on heart rate data.
- Annotate: Visualizes the segmentation steps on the original image.
Each function in these sequences plays a vital role in the overall process, which aims for accurate data extraction. For more in-depth information about each function, please refer to the detailed descriptions in the here section of this documentation.
Usage Examples
Some introduction to examples...
Processing a Single Image
For processing a single image, the data_from_image
function is imported and provided with PIL and cv2 versions of the image. This could be done through the following code:
# Module imports
import numpy as np
from PIL import Image
# Local imports
from usseg import data_from_image
img_path = "Path/to/a/ultrasound/image.JPG"
PIL_image = Image.open(img_path)
cv2_image = np.array(PIL_image)
df, (xdata, ydata) = data_from_image(PIL_image, cv2_image)
Batch processing images
python usseg/main.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.