cv.norm - MATLAB File Help
cv.norm

Calculates absolute array norm, absolute difference norm, or relative difference norm

nrm = cv.norm(src1)
nrm = cv.norm(src1, src2)
nrm = cv.norm(..., 'OptionName', optionValue, ...)

Input

Output

Options

In the first variant (when there is no src2), the function cv.norm calculates the absolute norm of src1. The type of norm to calculate is specified using NormType:

       { ||src1||_Linf   = max(abs(src1(:)))     , if NormType='Inf'
norm = { ||src1||_L1     = sum(abs(src1(:)))     , if NormType='L1'
       { ||src1||_L2     = sqrt(sum(src1(:).^2)) , if NormType='L2'
       { (||src1||_L2)^2 = sum(src1(:).^2)       , if NormType='L2Sqr'

In the second variant, the function calculates the absolute difference norm or the relative difference norm of arrays src1 and src2. The type of norm to calculate is specified using NormType:

       { ||src1 - src2||_Linf   = max(abs(src1(:) - src2(:)))       , if NormType='Inf'
norm = { ||src1 - src2||_L1     = sum(abs(src1(:) - src2(:)))       , if NormType='L1'
       { ||src1 - src2||_L2     = sqrt(sum((src1(:) - src2(:)).^2)) , if NormType='L2'
       { (||src1 - src2||_L2)^2 = sum((src1(:) - src2(:)).^2)       , if NormType='L2Sqr'

or:

       { ||src1 - src2||_Linf / ||src2||_Linf , if NormType='Inf'   && Relative=True
norm = { ||src1 - src2||_L1 / ||src2||_L1     , if NormType='L1'    && Relative=True
       { ||src1 - src2||_L2 / ||src2||_L2     , if NormType='L2'    && Relative=True
       { (||src1 - src2||_L2 / ||src2||_L2)^2 , if NormType='L2Sqr' && Relative=True

As example for one array consider the function r(x) = [x; 1-x], x in [-1;1]. The L1, L2 and Linf norm for the sample value r(-1) = [-1; 2] is calculated as follows:

||r(-1)||_L1   = abs(-1) + abs(2) = 3
||r(-1)||_L2   = sqrt((-1)^2 + (2)^2) = sqrt(5)
||r(-1)||_Linf = max(abs(-1), abs(2)) = 2

and for r(0.5) = [0.5; 0.5] the calculation is:

||r(0.5)||_L1   = |0.5| + |0.5| = 1
||r(0.5)||_L2   = sqrt((0.5)^2 + (0.5)^2) = sqrt(0.5)
||r(0.5)||_Linf = max(abs(0.5), abs(0.5)) = 0.5

The following graphic shows all values for the three norm functions ||r(x)||_L1, ||r(x)||_L2 and ||r(x)||_Linf. It is notable that the L1 norm forms the upper and the Linf norm forms the lower border for the example function r(x).

image

When the Mask parameter is specified and it is not empty, the norm is calculated only over the region specified by the mask.

Multi-channel input arrays are treated as single-channel arrays, that is, the results for all channels are combined.

Hamming norms can only be calculated with uint8 depth arrays.

See also