Source code for usseg.main

"""
Main script for running the file organisation and segmentation.

This script can be used to segment ultrasound images and generate an output.html file containing the segmented output.

**Usage:**

python usseg.main.py root_dir

where `root_dir` is the root directory containing the ultrasound images to be segmented.

**Example:**

To segment all of the ultrasound images in the directory `E:/us-data-anon`, you would run the following command:

python usseg.main.py E:/us-data-anon

This will generate an output.html file in the current directory containing the segmented output for all of the ultrasound images in the `E:/us-data-anon` directory.

**Configuration options:**

The script can be configured using the `config.toml` file. The `config.toml` file should be placed in the same directory as the script.

The only configuration option currently supported is the `root_dir` key. The `root_dir` key specifies the root directory containing the ultrasound images to be segmented.

**Known issues and limitations:**

The script is currently under development and may contain bugs.

"""

#/usr/bin/env python3

# Python imports
import os
import sys
import cProfile
import pstats
import io
from pstats import SortKey

# Module imports
import toml

# Local imports
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.append(BASE_DIR)
import usseg

[docs]def prof(fn, *args, **kwargs): pr = cProfile.Profile() pr.enable() rtn_val = fn(*args, **kwargs) pr.disable() s = io.StringIO() sortby = SortKey.CUMULATIVE ps = pstats.Stats(pr, stream=s).sort_stats(sortby) ps.print_stats() with open(f"{fn.__name__}.log", "w+") as f: f.write(s.getvalue()) return rtn_val
[docs]def main(root_dir): """Main function that performs all of the segmentation on a root directory""" # Checks and sets up the tesseract environment usseg.setup_tesseract() # Gets a list of likely ultrasound images from root dir and saves them to a pickle file. filenames = prof(usseg.get_likely_us, root_dir) # Segments and digitises the pre-selected ultrasound images. #filenames = "Path/to/a/single/test/file.JPG" prof(usseg.segment, filenames) # Generates an output.html of the segmented output prof(usseg.generate_html_from_pkl)
if __name__ == "__main__": root_dir = toml.load("config.toml")["root_dir"] #root_dir = "Path/to/a/folder/of/images" main(root_dir)