brain_deer.tools.roi_measurement

ROI and Measurement Tools for BrainDeer 🧠🦌

Comprehensive tools for: - ROI drawing (sphere, box, polygon, freehand) - Measurements (distance, angle, volume, area) - ROI statistics and export - Interactive visualization

@author: BrainDeer Team

Classes

ROIType

Types of ROI available.

MeasurementType

Types of measurements available.

ROI

Region of Interest data structure.

Measurement

Measurement data structure.

ROIManager

Manages ROIs and measurements.

ROIStatistics

Calculate statistics for ROIs.

MeasurementCalculator

Calculate various measurements.

ROIMeasurementWidget

Interactive widget for ROI drawing and measurements.

Module Contents

class brain_deer.tools.roi_measurement.ROIType(*args, **kwds)

Bases: enum.Enum

Types of ROI available.

class brain_deer.tools.roi_measurement.MeasurementType(*args, **kwds)

Bases: enum.Enum

Types of measurements available.

class brain_deer.tools.roi_measurement.ROI

Region of Interest data structure.

to_dict() → dict

Convert ROI to dictionary for export.

class brain_deer.tools.roi_measurement.Measurement

Measurement data structure.

to_dict() → dict

Convert measurement to dictionary for export.

class brain_deer.tools.roi_measurement.ROIManager

Manages ROIs and measurements.

add_roi(roi: ROI) → str

Add an ROI and return its ID.

add_measurement(measurement: Measurement) → str

Add a measurement and return its ID.

remove_roi(roi_id: str)

Remove an ROI.

remove_measurement(measurement_id: str)

Remove a measurement.

get_roi(roi_id: str) → ROI | None

Get an ROI by ID.

get_measurement(measurement_id: str) → Measurement | None

Get a measurement by ID.

get_all_rois() → list[ROI]

Get all ROIs.

get_all_measurements() → list[Measurement]

Get all measurements.

clear_all()

Clear all ROIs and measurements.

export_to_file(filepath: str)

Export all ROIs and measurements to JSON file.

import_from_file(filepath: str)

Import ROIs and measurements from JSON file.

class brain_deer.tools.roi_measurement.ROIStatistics

Calculate statistics for ROIs.

static calculate_sphere_roi_stats(center: tuple[float, float, float], radius: float, volume_data: numpy.ndarray, voxel_sizes: tuple[float, float, float] = (1.0, 1.0, 1.0)) → dict

Calculate statistics for a spherical ROI.

static calculate_box_roi_stats(corner1: tuple[float, float, float], corner2: tuple[float, float, float], volume_data: numpy.ndarray, voxel_sizes: tuple[float, float, float] = (1.0, 1.0, 1.0)) → dict

Calculate statistics for a box ROI.

class brain_deer.tools.roi_measurement.MeasurementCalculator

Calculate various measurements.

static calculate_distance(point1: tuple[float, float, float], point2: tuple[float, float, float], voxel_sizes: tuple[float, float, float] = (1.0, 1.0, 1.0)) → float

Calculate Euclidean distance between two points in mm.

static calculate_angle(point1: tuple[float, float, float], vertex: tuple[float, float, float], point2: tuple[float, float, float]) → float

Calculate angle between three points in degrees.

static calculate_polygon_area(points: list[tuple[float, float]], voxel_sizes: tuple[float, float] = (1.0, 1.0)) → float

Calculate area of a 2D polygon using shoelace formula.

class brain_deer.tools.roi_measurement.ROIMeasurementWidget(api, parent=None)

Bases: PyQt5.QtWidgets.QWidget

Interactive widget for ROI drawing and measurements.

create_sphere_roi(center: tuple[float, float, float])

Create a spherical ROI.

create_box_roi(corner1: tuple[float, float, float], corner2: tuple[float, float, float])

Create a box ROI.

create_distance_measurement(point1: tuple[float, float, float], point2: tuple[float, float, float])

Create a distance measurement.