ultrasound_metrics.metrics.cnr
==============================

.. py:module:: ultrasound_metrics.metrics.cnr

.. autoapi-nested-parse::

   Contrast-to-Noise Ratio (CNR) metric for ultrasound image quality assessment.



Functions
---------

.. autoapisummary::

   ultrasound_metrics.metrics.cnr.compute_cnr
   ultrasound_metrics.metrics.cnr.get_agg_func


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

.. py:function:: compute_cnr(values_signal: ultrasound_metrics._utils.array_api.ArrayAPIObj, values_noise: ultrasound_metrics._utils.array_api.ArrayAPIObj, fun_signal: str = 'MEAN', fun_noise: str = 'MEAN', *, use_signal_variance: bool = True, use_noise_variance: bool = True) -> float

   Compute the contrast-to-noise ratio (CNR) between two regions.

   The CNR is commonly used in medical ultrasound to assess image quality [1]_.
   The CNR is computed as [2]_:

   .. math::

       CNR = \frac{|\mu_i - \mu_o|}{\sqrt{\sigma_i^2 + \sigma_o^2}}

   where:

   .. math::

       \mu_i = E\{|s_i|^2\}

       \mu_o = E\{|s_o|^2\}

       \sigma_i^2 = E\{(|s_i|^2 - \mu_i)^2\}

       \sigma_o^2 = E\{(|s_o|^2 - \mu_o)^2\}

   with :math:`s_i` and :math:`s_o` representing the signal values inside and outside
   the region of interest, respectively.

   :param values_signal: Pixel values from the signal region (e.g., inside a lesion).
   :param values_noise: Pixel values from the noise/background region (e.g., outside a lesion).
   :param fun_signal: Aggregation function for the signal region ("MEAN" or "MEDIAN").
   :param fun_noise: Aggregation function for the noise region ("MEAN" or "MEDIAN").
   :param use_signal_variance: Whether to include signal variance in the denominator.
   :param use_noise_variance: Whether to include noise variance in the denominator.

   :returns: The contrast-to-noise ratio.
   :rtype: float

   .. rubric:: References

   .. [1] Patterson, M. S., & Foster, F. S. (1983). The improvement and quantitative
          assessment of B-mode images produced by an annular array/cone hybrid.
          Ultrasonic Imaging, 5(3), 195-213.
   .. [2] A. Rodriguez-Molares, O. M. Hoel Rindal, J. D'hooge, S. -E. Måsøy, A. Austeng
          and H. Torp, "The Generalized Contrast-to-Noise Ratio," 2018 IEEE International
          Ultrasonics Symposium (IUS), Kobe, Japan, 2018, pp. 1-4,
          doi: 10.1109/ULTSYM.2018.8580101.


.. py:function:: get_agg_func(xp: ultrasound_metrics._utils.array_api.ArrayAPIObj, name: str) -> Callable[[ultrasound_metrics._utils.array_api.ArrayAPIObj], ultrasound_metrics._utils.array_api.ArrayAPIObj]

   Get backend-agnostic aggregation function.

   :param xp: Array API namespace.
   :param name: Name of aggregation function ('MEAN' or 'MEDIAN').

   :returns: Aggregation function.
   :rtype: callable


