[][src]Function opencv::core::normalize

pub fn normalize(
    src: &dyn ToInputArray,
    dst: &mut dyn ToInputOutputArray,
    alpha: f64,
    beta: f64,
    norm_type: i32,
    dtype: i32,
    mask: &dyn ToInputArray
) -> Result<()>

Normalizes the norm or value range of an array.

The function cv::normalize normalizes scale and shift the input array elements so that block formula (where p=Inf, 1 or 2) when normType=NORM_INF, NORM_L1, or NORM_L2, respectively; or so that block formula

when normType=NORM_MINMAX (for dense arrays only). The optional mask specifies a sub-array to be normalized. This means that the norm or min-n-max are calculated over the sub-array, and then this sub-array is modified to be normalized. If you want to only use the mask to calculate the norm or min-max but modify the whole array, you can use norm and Mat::convertTo.

In case of sparse matrices, only the non-zero values are analyzed and transformed. Because of this, the range transformation for sparse matrices is not allowed since it can shift the zero level.

Possible usage with some positive example data:

This example is not tested
vector<double> positiveData = { 2.0, 8.0, 10.0 };
vector<double> normalizedData_l1, normalizedData_l2, normalizedData_inf, normalizedData_minmax;

// Norm to probability (total count)
// sum(numbers) = 20.0
// 2.0      0.1     (2.0/20.0)
// 8.0      0.4     (8.0/20.0)
// 10.0     0.5     (10.0/20.0)
normalize(positiveData, normalizedData_l1, 1.0, 0.0, NORM_L1);

// Norm to unit vector: ||positiveData|| = 1.0
// 2.0      0.15
// 8.0      0.62
// 10.0     0.77
normalize(positiveData, normalizedData_l2, 1.0, 0.0, NORM_L2);

// Norm to max element
// 2.0      0.2     (2.0/10.0)
// 8.0      0.8     (8.0/10.0)
// 10.0     1.0     (10.0/10.0)
normalize(positiveData, normalizedData_inf, 1.0, 0.0, NORM_INF);

// Norm to range [0.0;1.0]
// 2.0      0.0     (shift to left border)
// 8.0      0.75    (6.0/8.0)
// 10.0     1.0     (shift to right border)
normalize(positiveData, normalizedData_minmax, 1.0, 0.0, NORM_MINMAX);

Parameters

  • src: input array.
  • dst: output array of the same size as src .
  • alpha: norm value to normalize to or the lower range boundary in case of the range normalization.
  • beta: upper range boundary in case of the range normalization; it is not used for the norm normalization.
  • norm_type: normalization type (see cv::NormTypes).
  • dtype: when negative, the output array has the same type as src; otherwise, it has the same number of channels as src and the depth =CV_MAT_DEPTH(dtype).
  • mask: optional operation mask.

See also

norm, Mat::convertTo, SparseMat::convertTo

C++ default parameters

  • alpha: 1
  • beta: 0
  • norm_type: NORM_L2
  • dtype: -1
  • mask: noArray()