ultrasound_metrics.metrics.utils
================================

.. py:module:: ultrasound_metrics.metrics.utils

.. autoapi-nested-parse::

   Utility functions for ultrasound metrics calculations.

   Helper functions for dimension handling, indexing, and interpolation used by various metrics.



Functions
---------

.. autoapisummary::

   ultrasound_metrics.metrics.utils.calculate_linear_interpolation
   ultrasound_metrics.metrics.utils.find_max_idx_within_expected_target_radius
   ultrasound_metrics.metrics.utils.get_subscript_idx_of_target_max_within_roi
   ultrasound_metrics.metrics.utils.reduce_image_to_1D_at_point
   ultrasound_metrics.metrics.utils.reduce_image_to_only_measurement_dimensions
   ultrasound_metrics.metrics.utils.reduce_max_idx_to_only_measurement_dimensions
   ultrasound_metrics.metrics.utils.reorder_measured_dims_into_original_shape
   ultrasound_metrics.metrics.utils.set_default_measurement_dims


Module Contents
---------------

.. py:function:: calculate_linear_interpolation(a: float, b: float, a_idx: int, b_idx: int, interp_val: float) -> float

   Calculate linear interpolation between two points.

   :param a: Value at first point.
   :param b: Value at second point.
   :param a_idx: Index of first point.
   :param b_idx: Index of second point.
   :param interp_val: Value to interpolate to.

   :returns: Interpolated index value.
   :rtype: float


.. py:function:: find_max_idx_within_expected_target_radius(img: numpy.typing.NDArray[numpy.floating], img_max_idx: tuple[int, Ellipsis], radius: int) -> tuple[int, Ellipsis]

   Find maximum index within expected target radius.

   :param img: Input image array.
   :param img_max_idx: Initial maximum index.
   :param radius: Search radius around the initial maximum.

   :returns: Index of maximum value within the specified radius.
   :rtype: tuple


.. py:function:: get_subscript_idx_of_target_max_within_roi(img: numpy.typing.NDArray[numpy.floating], roi_indices: numpy.typing.NDArray[numpy.integer]) -> tuple[int, Ellipsis]

   Get subscript index of maximum value within ROI.

   :param img: Input image array.
   :param roi_indices: Indices defining the region of interest.

   :returns: Subscript index of the maximum value within the ROI.
   :rtype: tuple


.. py:function:: reduce_image_to_1D_at_point(img: numpy.typing.NDArray[numpy.floating], point: tuple[int, Ellipsis], keep_dim: int) -> numpy.typing.NDArray[numpy.floating]

   Reduce image to 1D at specified point.

   :param img: Input image array.
   :param point: Point coordinates to extract.
   :param keep_dim: Dimension to keep (others will be sliced at the point).

   :returns: 1D array extracted from the image at the specified point.
   :rtype: ndarray


.. py:function:: reduce_image_to_only_measurement_dimensions(img: numpy.typing.NDArray[numpy.floating], measurement_dimensions: numpy.typing.NDArray[numpy.integer], img_max_idx: tuple[int, Ellipsis]) -> numpy.typing.NDArray[numpy.floating]

   Reduce image to only specified measurement dimensions.

   :param img: Input image array.
   :param measurement_dimensions: Dimensions to keep in the output.
   :param img_max_idx: Index of maximum value in the image.

   :returns: Image reduced to measurement dimensions only.
   :rtype: ndarray


.. py:function:: reduce_max_idx_to_only_measurement_dimensions(img_max_idx: numpy.typing.NDArray[numpy.integer], dims_to_measure: numpy.typing.NDArray[numpy.integer]) -> tuple[int, Ellipsis]

   Reduce maximum index to only measurement dimensions.

   :param img_max_idx: Index of maximum value in the image.
   :param dims_to_measure: Dimensions to keep.

   :returns: Maximum index reduced to measurement dimensions only.
   :rtype: tuple


.. py:function:: reorder_measured_dims_into_original_shape(sll_of_measured_dims: numpy.typing.NDArray[numpy.floating], n_dim_of_input_image: int, measurement_dimensions: numpy.typing.NDArray[numpy.integer]) -> list[Optional[float]]

   Reorder measured dimensions into original image shape.

   :param sll_of_measured_dims: Measured values for each dimension.
   :param n_dim_of_input_image: Number of dimensions in the original image.
   :param measurement_dimensions: Dimensions that were measured.

   :returns: List of measured values reordered to match original image dimensions.
   :rtype: list


.. py:function:: set_default_measurement_dims(img_shape: tuple[int, Ellipsis]) -> numpy.typing.NDArray[numpy.integer]

   Set default measurement dimensions based on image shape.

   :param img_shape: Shape of the input image.

   :returns: Array of valid measurement dimensions.
   :rtype: ndarray


