viqa.utils.normalize_data

viqa.utils.normalize_data(img: ndarray | ImageArray, data_range_output: Tuple[int, int], data_range_input: Tuple[int, int] | None = None, automatic_data_range: bool = True) ndarray | ImageArray[source]

Normalize an image to a given data range.

Parameters:
  • img (np.ndarray or ImageArray) – Input image.

  • data_range_output (Tuple[int]) – Data range of the returned data.

  • data_range_input (Tuple[int], default=None) – Data range of the input data. Needs to be set if automatic_data_range is False.

  • automatic_data_range (bool, default=True) – Automatically determine the input data range.

Returns:

img_arr – Input image normalized to data_range.

Return type:

np.ndarray or ImageArray

Raises:

ValueError – If data type is not supported. If data_range is not supported. If automatic_data_range is False and data_range_input is not set.

Warns:

RuntimeWarning – If data is already normalized.

Notes

Currently only 8 bit int (0-255), 16 bit int (0-65535) and 32 bit float (0-1) data ranges are supported.

Examples

>>> import numpy as np
>>> from viqa import normalize_data
>>> img = np.random.rand(128, 128)
>>> img_norm = normalize_data(
>>>             img,
>>>             data_range_output=(0, 255),
>>>             automatic_data_range=True,
>>> )
>>> np.max(img_norm)
255