mirror of
https://github.com/opencv/opencv.git
synced 2025-06-09 18:43:05 +08:00
i9482: Improve documentation concerning norm functionality.
Added forkfour Latex command to math js support. Split cv::norm documentation between the cv::norm and its overload, to make things clearer Corrected some typos and cleaned up grammar. Result is clearer documentation for the norms. Work pending...
This commit is contained in:
parent
1caca2112b
commit
b32685c714
@ -6,6 +6,7 @@ MathJax.Hub.Config(
|
|||||||
matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
|
matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
|
||||||
fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
|
fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
|
||||||
forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
|
forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
|
||||||
|
forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
|
||||||
vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
|
vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
|
||||||
vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
|
vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
|
||||||
hdotsfor: ["\\dots", 1],
|
hdotsfor: ["\\dots", 1],
|
||||||
|
@ -28,7 +28,14 @@
|
|||||||
#3 & \mbox{#4}\\
|
#3 & \mbox{#4}\\
|
||||||
#5 & \mbox{#6}\\
|
#5 & \mbox{#6}\\
|
||||||
\end{array} \right.}
|
\end{array} \right.}
|
||||||
|
\newcommand{\forkthree}[8]{
|
||||||
|
\left\{
|
||||||
|
\begin{array}{l l}
|
||||||
|
#1 & \mbox{#2}\\
|
||||||
|
#3 & \mbox{#4}\\
|
||||||
|
#5 & \mbox{#6}\\
|
||||||
|
#7 & \mbox{#8}\\
|
||||||
|
\end{array} \right.}
|
||||||
\newcommand{\vecthree}[3]{
|
\newcommand{\vecthree}[3]{
|
||||||
\begin{bmatrix}
|
\begin{bmatrix}
|
||||||
#1\\
|
#1\\
|
||||||
|
@ -640,34 +640,44 @@ Scalar_ 's.
|
|||||||
CV_EXPORTS_W void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev,
|
CV_EXPORTS_W void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev,
|
||||||
InputArray mask=noArray());
|
InputArray mask=noArray());
|
||||||
|
|
||||||
/** @brief Calculates an absolute array norm, an absolute difference norm, or a
|
/** @brief Calculates an absolute array norm.
|
||||||
relative difference norm.
|
|
||||||
|
|
||||||
The function cv::norm calculates an absolute norm of src1 (when there is no
|
This version of cv::norm calculates the absolute norm of src1. The type of norm to calculate is specified using cv::NormTypes.
|
||||||
src2 ):
|
|
||||||
|
|
||||||
\f[norm = \forkthree{\|\texttt{src1}\|_{L_{\infty}} = \max _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM_INF}\) }
|
\f[norm = \forkfour{\|\texttt{src1}\|_{L_{\infty}} = \max _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM_INF}\) }
|
||||||
{ \| \texttt{src1} \| _{L_1} = \sum _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM_L1}\) }
|
{ \| \texttt{src1} \| _{L_1} = \sum _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM_L1}\) }
|
||||||
{ \| \texttt{src1} \| _{L_2} = \sqrt{\sum_I \texttt{src1}(I)^2} }{if \(\texttt{normType} = \texttt{NORM_L2}\) }\f]
|
{ \| \texttt{src1} \| _{L_2} = \sqrt{\sum_I \texttt{src1}(I)^2} }{if \(\texttt{normType} = \texttt{NORM_L2}\) }
|
||||||
|
{ \| \texttt{src1} \| _{L_2} ^{2} = \sum_I \texttt{src1}(I)^2} {if \(\texttt{normType} = \texttt{NORM_L2SQR}\)}\f]
|
||||||
|
|
||||||
|
If normType is not specified, NORM_L2 is used.
|
||||||
|
|
||||||
or an absolute or relative difference norm if src2 is there:
|
or an absolute or relative difference norm if src2 is there:
|
||||||
|
|
||||||
\f[norm = \forkthree{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} = \max _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM_INF}\) }
|
|
||||||
{ \| \texttt{src1} - \texttt{src2} \| _{L_1} = \sum _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM_L1}\) }
|
|
||||||
{ \| \texttt{src1} - \texttt{src2} \| _{L_2} = \sqrt{\sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2} }{if \(\texttt{normType} = \texttt{NORM_L2}\) }\f]
|
|
||||||
|
|
||||||
or
|
As example for one array consider the function \f$r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\f$.
|
||||||
|
The \f$ L_{1}, L_{2} \f$ and \f$ L_{\infty} \f$ norm for the sample value \f$r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\f$
|
||||||
\f[norm = \forkthree{\frac{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} }{\|\texttt{src2}\|_{L_{\infty}} }}{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_INF}\) }
|
is calculated as follows
|
||||||
{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_1} }{\|\texttt{src2}\|_{L_1}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L1}\) }
|
\f{align*}
|
||||||
{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L2}\) }\f]
|
\| r(-1) \|_{L_1} &= |-1| + |2| = 3 \\
|
||||||
|
\| r(-1) \|_{L_2} &= \sqrt{(-1)^{2} + (2)^{2}} = \sqrt{5} \\
|
||||||
|
\| r(-1) \|_{L_\infty} &= \max(|-1|,|2|) = 2
|
||||||
|
\f}
|
||||||
|
and for \f$r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\f$ the calculation is
|
||||||
|
\f{align*}
|
||||||
|
\| r(0.5) \|_{L_1} &= |0.5| + |0.5| = 1 \\
|
||||||
|
\| r(0.5) \|_{L_2} &= \sqrt{(0.5)^{2} + (0.5)^{2}} = \sqrt{0.5} \\
|
||||||
|
\| r(0.5) \|_{L_\infty} &= \max(|0.5|,|0.5|) = 0.5.
|
||||||
|
\f}
|
||||||
|
The following graphic shows all values for the three norm functions \f$\| r(x) \|_{L_1}, \| r(x) \|_{L_2}\f$ and \f$\| r(x) \|_{L_\infty}\f$.
|
||||||
|
It is notable that the \f$ L_{1} \f$ norm forms the upper and the \f$ L_{\infty} \f$ norm forms the lower border for the example function \f$ r(x) \f$.
|
||||||
|

|
||||||
|
|
||||||
The function cv::norm returns the calculated norm.
|
The function cv::norm returns the calculated norm.
|
||||||
|
|
||||||
When the mask parameter is specified and it is not empty, the norm is
|
When the mask parameter is specified and it is not empty, the norm is
|
||||||
calculated only over the region specified by the mask.
|
calculated only over the region specified by the mask.
|
||||||
|
|
||||||
A multi-channel input arrays are treated as a single-channel, that is,
|
Multi-channel input arrays are treated as single-channel arrays, that is,
|
||||||
the results for all channels are combined.
|
the results for all channels are combined.
|
||||||
|
|
||||||
@param src1 first input array.
|
@param src1 first input array.
|
||||||
@ -676,7 +686,24 @@ the results for all channels are combined.
|
|||||||
*/
|
*/
|
||||||
CV_EXPORTS_W double norm(InputArray src1, int normType = NORM_L2, InputArray mask = noArray());
|
CV_EXPORTS_W double norm(InputArray src1, int normType = NORM_L2, InputArray mask = noArray());
|
||||||
|
|
||||||
/** @overload
|
/** @brief Calculates an absolute difference norm or a relative difference norm.
|
||||||
|
|
||||||
|
This version of cv::norm calculates the absolute difference norm
|
||||||
|
or the relative difference norm of arrays src1 and src2.
|
||||||
|
The type of norm to calculate is specified using cv::NormTypes.
|
||||||
|
|
||||||
|
\f[norm = \forkfour{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} = \max _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM_INF}\) }
|
||||||
|
{ \| \texttt{src1} - \texttt{src2} \| _{L_1} = \sum _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM_L1}\) }
|
||||||
|
{ \| \texttt{src1} - \texttt{src2} \| _{L_2} = \sqrt{\sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2} }{if \(\texttt{normType} = \texttt{NORM_L2}\) }
|
||||||
|
{ \| \texttt{src1} - \texttt{src2} \| _{L_2} ^{2} = \sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2 }{if \(\texttt{normType} = \texttt{NORM_L2SQR}\) }
|
||||||
|
\f]
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
\f[norm = \forkthree{\frac{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} }{\|\texttt{src2}\|_{L_{\infty}} }}{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_INF}\) }
|
||||||
|
{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_1} }{\|\texttt{src2}\|_{L_1}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L1}\) }
|
||||||
|
{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L2}\) }\f]
|
||||||
|
|
||||||
@param src1 first input array.
|
@param src1 first input array.
|
||||||
@param src2 second input array of the same size and the same type as src1.
|
@param src2 second input array of the same size and the same type as src1.
|
||||||
@param normType type of the norm (cv::NormTypes).
|
@param normType type of the norm (cv::NormTypes).
|
||||||
|
@ -167,23 +167,6 @@ enum DecompTypes {
|
|||||||
{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_1} }{\|\texttt{src2}\|_{L_1}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L1}\) }
|
{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_1} }{\|\texttt{src2}\|_{L_1}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L1}\) }
|
||||||
{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L2}\) }\f]
|
{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L2}\) }\f]
|
||||||
|
|
||||||
As example for one array consider the function \f$r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\f$.
|
|
||||||
The \f$ L_{1}, L_{2} \f$ and \f$ L_{\infty} \f$ norm for the sample value \f$r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\f$
|
|
||||||
is calculated as follows
|
|
||||||
\f{align*}
|
|
||||||
\| r(-1) \|_{L_1} &= |-1| + |2| = 3 \\
|
|
||||||
\| r(-1) \|_{L_2} &= \sqrt{(-1)^{2} + (2)^{2}} = \sqrt{5} \\
|
|
||||||
\| r(-1) \|_{L_\infty} &= \max(|-1|,|2|) = 2
|
|
||||||
\f}
|
|
||||||
and for \f$r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\f$ the calculation is
|
|
||||||
\f{align*}
|
|
||||||
\| r(0.5) \|_{L_1} &= |0.5| + |0.5| = 1 \\
|
|
||||||
\| r(0.5) \|_{L_2} &= \sqrt{(0.5)^{2} + (0.5)^{2}} = \sqrt{0.5} \\
|
|
||||||
\| r(0.5) \|_{L_\infty} &= \max(|0.5|,|0.5|) = 0.5.
|
|
||||||
\f}
|
|
||||||
The following graphic shows all values for the three norm functions \f$\| r(x) \|_{L_1}, \| r(x) \|_{L_2}\f$ and \f$\| r(x) \|_{L_\infty}\f$.
|
|
||||||
It is notable that the \f$ L_{1} \f$ norm forms the upper and the \f$ L_{\infty} \f$ norm forms the lower border for the example function \f$ r(x) \f$.
|
|
||||||

|
|
||||||
*/
|
*/
|
||||||
enum NormTypes { NORM_INF = 1,
|
enum NormTypes { NORM_INF = 1,
|
||||||
NORM_L1 = 2,
|
NORM_L1 = 2,
|
||||||
|
Loading…
Reference in New Issue
Block a user