OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
图 API: 数学运算

详细描述

函数

GMat cv::gapi::add (const GMat &src1, const GMat &src2, int ddepth=-1)
 计算两个矩阵的逐元素和。
 
GMat cv::gapi::addC (const GMat &src1, const GScalar &c, int ddepth=-1)
 计算矩阵和给定标量的逐元素和。
 
GMat cv::gapi::addC (const GScalar &c, const GMat &src1, int ddepth=-1)
 这是一个重载成员函数,为方便起见而提供。它与上面的函数仅在接受的参数上有所不同。
 
std::tuple< GMat, GMatcv::gapi::cartToPolar (const GMat &x, const GMat &y, bool angleInDegrees=false)
 Calculates the magnitude and angle of 2D vectors.
 
GMat cv::gapi::div (const GMat &src1, const GMat &src2, double scale, int ddepth=-1)
 执行两个矩阵的逐元素除法。
 
GMat cv::gapi::divC (const GMat &src, const GScalar &divisor, double scale, int ddepth=-1)
 矩阵除以标量。
 
GMat cv::gapi::divRC (const GScalar &divident, const GMat &src, double scale, int ddepth=-1)
 标量除以矩阵。
 
GMat cv::gapi::mask (const GMat &src, const GMat &mask)
 将掩码应用于矩阵。
 
GScalar cv::gapi::mean (const GMat &src)
 计算矩阵元素的平均值。
 
GMat cv::gapi::mul (const GMat &src1, const GMat &src2, double scale=1.0, int ddepth=-1)
 计算两个矩阵的逐元素缩放积。
 
GMat cv::gapi::mulC (const GMat &src, const GScalar &multiplier, int ddepth=-1)
 这是一个重载成员函数,为方便起见而提供。它与上面的函数仅在接受的参数上有所不同。
 
GMat cv::gapi::mulC (const GMat &src, double multiplier, int ddepth=-1)
 矩阵乘以标量。
 
GMat cv::gapi::mulC (const GScalar &multiplier, const GMat &src, int ddepth=-1)
 这是一个重载成员函数,为方便起见而提供。它与上面的函数仅在接受的参数上有所不同。
 
GMat cv::gapi::phase (const GMat &x, const GMat &y, bool angleInDegrees=false)
 计算二维向量的旋转角度。
 
std::tuple< GMat, GMatcv::gapi::polarToCart (const GMat &magnitude, const GMat &angle, bool angleInDegrees=false)
 根据二维向量的幅度和角度计算其x和y坐标。
 
GMat cv::gapi::sqrt (const GMat &src)
 计算数组元素的平方根。
 
GMat cv::gapi::sub (const GMat &src1, const GMat &src2, int ddepth=-1)
 计算两个矩阵的逐元素差值。
 
GMat cv::gapi::subC (const GMat &src, const GScalar &c, int ddepth=-1)
 计算矩阵与给定标量之间的逐元素差。
 
GMat cv::gapi::subRC (const GScalar &c, const GMat &src, int ddepth=-1)
 计算给定标量与矩阵之间的逐元素差。
 

函数文档

◆ add()

GMat cv::gapi::add ( const GMat & src1,
const GMat & src2,
int ddepth = -1 )
Python
cv.gapi.add(src1, src2[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

计算两个矩阵的逐元素和。

`add` 函数计算两个相同大小、相同通道数矩阵的和。

\[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) + \texttt{src2}(I)) \quad \texttt{if mask}(I) \ne0\]

该函数可以被矩阵表达式替代:

\[\texttt{dst} = \texttt{src1} + \texttt{src2}\]

输入矩阵和输出矩阵可以具有相同或不同的深度。例如,您可以将一个16位无符号矩阵添加到一个8位有符号矩阵,并将和存储为32位浮点矩阵。输出矩阵的深度由 `ddepth` 参数决定。如果 `src1.depth() == src2.depth()`,`ddepth` 可以设置为默认值 -1。在这种情况下,输出矩阵将与输入矩阵具有相同的深度。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.add"
参数
src1第一个输入矩阵。
src2第二个输入矩阵。
ddepth输出矩阵的可选深度。
另请参见
sub, addWeighted

◆ addC() [1/2]

GMat cv::gapi::addC ( const GMat & src1,
const GScalar & c,
int ddepth = -1 )
Python
cv.gapi.addC(src1, c[, ddepth]) -> retval
cv.gapi.addC(c, src1[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

计算矩阵和给定标量的逐元素和。

`addC` 函数将给定的标量值添加到给定矩阵的每个元素。该函数可以被矩阵表达式替代。

\f[\texttt{dst} =  \texttt{src1} + \texttt{c}\f]

输出矩阵的深度由 `ddepth` 参数决定。如果 `ddepth` 设置为默认值 -1,则输出矩阵的深度将与输入矩阵的深度相同。矩阵可以是单通道或多通道。输出矩阵必须与输入矩阵具有相同的大小和通道数。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.addC"
参数
src1第一个输入矩阵。
c要添加的标量值。
ddepth输出矩阵的可选深度。
另请参见
sub, addWeighted

◆ addC() [2/2]

GMat cv::gapi::addC ( const GScalar & c,
const GMat & src1,
int ddepth = -1 )
Python
cv.gapi.addC(src1, c[, ddepth]) -> retval
cv.gapi.addC(c, src1[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

这是一个重载成员函数,为方便起见而提供。它与上面的函数仅在接受的参数上有所不同。

◆ cartToPolar()

std::tuple< GMat, GMat > cv::gapi::cartToPolar ( const GMat & x,
const GMat & y,
bool angleInDegrees = false )
Python
cv.gapi.cartToPolar(x, y[, angleInDegrees]) -> retval

#include <opencv2/gapi/core.hpp>

Calculates the magnitude and angle of 2D vectors.

`cartToPolar` 函数计算每个二维向量 (x(I),y(I)) 的幅值、角度或两者。

\[\begin{array}{l} \texttt{magnitude} (I)= \sqrt{\texttt{x}(I)^2+\texttt{y}(I)^2} , \\ \texttt{angle} (I)= \texttt{atan2} ( \texttt{y} (I), \texttt{x} (I))[ \cdot180 / \pi ] \end{array}\]

角度的计算精度约为0.3度。对于点(0,0),角度设置为0。

第一个输出是与输入x具有相同大小和深度的幅值矩阵。第二个输出是与x具有相同大小和深度的角度矩阵;角度以弧度(从0到2*Pi)或度数(0到360度)测量。

注意
函数的文本ID为 "org.opencv.core.math.cartToPolar"
参数
xCV_32FC1 x坐标矩阵。
yCV_32FC1 y坐标数组。
angleInDegrees一个标志,指示角度是以弧度(默认)还是以度数测量。
另请参见
polarToCart

◆ div()

GMat cv::gapi::div ( const GMat & src1,
const GMat & src2,
double scale,
int ddepth = -1 )
Python
cv.gapi.div(src1, src2, scale[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

执行两个矩阵的逐元素除法。

该函数将一个矩阵除以另一个矩阵。

\[\texttt{dst(I) = saturate(src1(I)*scale/src2(I))}\]

对于整数类型,当 `src2(I)` 为零时,`dst(I)` 也将为零。浮点数情况返回 Inf/NaN(根据IEEE标准)。

多通道矩阵的不同通道独立处理。矩阵可以是单通道或多通道。输出矩阵必须与 `src` 具有相同的大小和深度。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.div"
参数
src1第一个输入矩阵。
src2与 `src1` 具有相同大小和深度的第二个输入矩阵。
scale标量因子。
ddepth输出矩阵的可选深度;只有当 `src1.depth() == src2.depth()` 时,才能传递 -1。
另请参见
mul, add, sub

◆ divC()

GMat cv::gapi::divC ( const GMat & src,
const GScalar & divisor,
double scale,
int ddepth = -1 )
Python
cv.gapi.divC(src, divisor, scale[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

矩阵除以标量。

`divC` 函数将矩阵 `src` 的每个元素除以给定的标量值。

\[\texttt{dst(I) = saturate(src(I)*scale/divisor)}\]

当 `divisor` 为零时,`dst(I)` 也将为零。多通道矩阵的不同通道独立处理。矩阵可以是单通道或多通道。输出矩阵必须与 `src` 具有相同的大小和深度。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.divC"
参数
src输入矩阵。
divisor要除以的数值。
ddepth输出矩阵的可选深度。如果为 -1,则输出矩阵的深度将与输入矩阵的深度相同。
scale缩放因子。
另请参见
add, sub, div, addWeighted

◆ divRC()

GMat cv::gapi::divRC ( const GScalar & divident,
const GMat & src,
double scale,
int ddepth = -1 )
Python
cv.gapi.divRC(divident, src, scale[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

标量除以矩阵。

`divRC` 函数将给定标量除以矩阵 `src` 的每个元素,并将除法结果保存在与 `src` 相同大小和类型的新矩阵中。

\[\texttt{dst(I) = saturate(divident*scale/src(I))}\]

当 `src(I)` 为零时,`dst(I)` 也将为零。多通道矩阵的不同通道独立处理。矩阵可以是单通道或多通道。输出矩阵必须与 `src` 具有相同的大小和深度。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.divRC"
参数
src输入矩阵。
divident要被除的数值。
ddepth输出矩阵的可选深度。如果为 -1,则输出矩阵的深度将与输入矩阵的深度相同。
scale缩放因子
另请参见
add, sub, div, addWeighted

◆ mask()

GMat cv::gapi::mask ( const GMat & src,
const GMat & mask )
Python
cv.gapi.mask(src, mask) -> retval

#include <opencv2/gapi/core.hpp>

将掩码应用于矩阵。

`mask` 函数在 `mask` 矩阵中对应像素值为 true 时,将给定矩阵的值设置为该像素值,否则将矩阵值设置为0。

支持的 `src` 矩阵数据类型有 CV_8UC1, CV_16SC1, CV_16UC1。支持的 `mask` 数据类型是 CV_8UC1

注意
函数的文本ID为 "org.opencv.core.math.mask"
参数
src输入矩阵。
mask输入 `mask` 矩阵。

◆ mean()

GScalar cv::gapi::mean ( const GMat & src)
Python
cv.gapi.mean(src) -> retval

#include <opencv2/gapi/core.hpp>

计算矩阵元素的平均值。

`mean` 函数独立计算矩阵元素的平均值 M,并返回它,每个通道独立处理。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.mean"
参数
src输入矩阵。
另请参见
countNonZero, min, max

◆ mul()

GMat cv::gapi::mul ( const GMat & src1,
const GMat & src2,
double scale = 1.0,
int ddepth = -1 )
Python
cv.gapi.mul(src1, src2[, scale[, ddepth]]) -> retval

#include <opencv2/gapi/core.hpp>

计算两个矩阵的逐元素缩放积。

`mul` 函数计算两个矩阵的逐元素乘积。

\[\texttt{dst} (I)= \texttt{saturate} ( \texttt{scale} \cdot \texttt{src1} (I) \cdot \texttt{src2} (I))\]

如果 `src1.depth() == src2.depth()`,`ddepth` 可以设置为默认值 -1。在这种情况下,输出矩阵将与输入矩阵具有相同的深度。矩阵可以是单通道或多通道。输出矩阵必须与输入矩阵具有相同的大小。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.mul"
参数
src1第一个输入矩阵。
src2与 `src1` 具有相同大小和相同深度的第二个输入矩阵。
scale可选的比例因子。
ddepth输出矩阵的可选深度。
另请参见
add, sub, div, addWeighted

◆ mulC() [1/3]

GMat cv::gapi::mulC ( const GMat & src,
const GScalar & multiplier,
int ddepth = -1 )
Python
cv.gapi.mulC(src, multiplier[, ddepth]) -> retval
cv.gapi.mulC(multiplier, src[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

这是一个重载成员函数,为方便起见而提供。它与上面的函数仅在接受的参数上有所不同。

◆ mulC() [2/3]

GMat cv::gapi::mulC ( const GMat & src,
double multiplier,
int ddepth = -1 )
Python
cv.gapi.mulC(src, multiplier[, ddepth]) -> retval
cv.gapi.mulC(multiplier, src[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

矩阵乘以标量。

`mulC` 函数将矩阵 `src` 的每个元素乘以给定的标量值。

\[\texttt{dst} (I)= \texttt{saturate} ( \texttt{src1} (I) \cdot \texttt{multiplier} )\]

矩阵可以是单通道或多通道。输出矩阵必须与 `src` 具有相同的大小。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.mulC"
参数
src输入矩阵。
multiplier要乘以的因子。
ddepth输出矩阵的可选深度。如果为 -1,则输出矩阵的深度将与输入矩阵的深度相同。
另请参见
add, sub, div, addWeighted

◆ mulC() [3/3]

GMat cv::gapi::mulC ( const GScalar & multiplier,
const GMat & src,
int ddepth = -1 )
Python
cv.gapi.mulC(src, multiplier[, ddepth]) -> retval
cv.gapi.mulC(multiplier, src[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

这是一个重载成员函数,为方便起见而提供。它与上面的函数仅在接受的参数上有所不同。

◆ phase()

GMat cv::gapi::phase ( const GMat & x,
const GMat & y,
bool angleInDegrees = false )
Python
cv.gapi.phase(x, y[, angleInDegrees]) -> retval

#include <opencv2/gapi/core.hpp>

计算二维向量的旋转角度。

`cv::phase` 函数计算由 x 和 y 的对应元素形成的每个二维向量的旋转角度。

\[\texttt{angle} (I) = \texttt{atan2} ( \texttt{y} (I), \texttt{x} (I))\]

角度估计精度约为0.3度。当 x(I)=y(I)=0 时,相应的 `angle(I)` 设置为0。

参数
x输入的二维向量 x 坐标浮点数组。
y输入的二维向量 y 坐标数组;它必须与 x 具有相同的大小和类型。
angleInDegrees如果为 true,函数将计算以度为单位的角度,否则以弧度为单位。
返回
向量角度数组;它与 x 具有相同的大小和类型。

◆ polarToCart()

std::tuple< GMat, GMat > cv::gapi::polarToCart ( const GMat & magnitude,
const GMat & angle,
bool angleInDegrees = false )
Python
cv.gapi.polarToCart(magnitude, angle[, angleInDegrees]) -> retval

#include <opencv2/gapi/core.hpp>

根据二维向量的幅度和角度计算其x和y坐标。

`polarToCart` 函数计算由幅值和角度的相应元素表示的每个二维向量的笛卡尔坐标。

\[\begin{array}{l} \texttt{x} (I) = \texttt{magnitude} (I) \cos ( \texttt{angle} (I)) \\ \texttt{y} (I) = \texttt{magnitude} (I) \sin ( \texttt{angle} (I)) \\ \end{array}\]

估计坐标的相对精度约为1e-6。

第一个输出是二维向量 x 坐标矩阵。第二个输出是二维向量 y 坐标矩阵。两个输出都必须与输入矩阵具有相同的大小和深度。

注意
函数的文本ID为 "org.opencv.core.math.polarToCart"
参数
magnitude输入浮点 CV_32FC1 矩阵(1xN),表示二维向量的幅值;
angle输入浮点 CV_32FC1 矩阵(1xN),表示二维向量的角度。
angleInDegrees如果为 true,则输入角度以度为单位测量,否则以弧度为单位测量。
另请参见
cartToPolar, exp, log, pow, sqrt

◆ sqrt()

GMat cv::gapi::sqrt ( const GMat & src)
Python
cv.gapi.sqrt(src) -> retval

#include <opencv2/gapi/core.hpp>

计算数组元素的平方根。

`cv::gapi::sqrt` 函数计算每个输入数组元素的平方根。对于多通道数组,每个通道独立处理。精度与内置的 `std::sqrt` 大致相同。

参数
src输入浮点数组。
返回
与 `src` 相同大小和类型的输出数组。

◆ sub()

GMat cv::gapi::sub ( const GMat & src1,
const GMat & src2,
int ddepth = -1 )
Python
cv.gapi.sub(src1, src2[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

计算两个矩阵的逐元素差值。

`sub` 函数计算两个矩阵之间的差值,当两个矩阵具有相同的大小和通道数时。

\[\texttt{dst}(I) = \texttt{src1}(I) - \texttt{src2}(I)\]

该函数可以被矩阵表达式替代:

\[\texttt{dst} = \texttt{src1} - \texttt{src2}\]

输入矩阵和输出矩阵可以具有相同或不同的深度。例如,您可以从两个8位无符号矩阵中减去,并将结果存储为16位有符号矩阵。输出矩阵的深度由 `ddepth` 参数决定。如果 `src1.depth() == src2.depth()`,`ddepth` 可以设置为默认值 -1。在这种情况下,输出矩阵将与输入矩阵具有相同的深度。矩阵可以是单通道或多通道。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.sub"
参数
src1第一个输入矩阵。
src2第二个输入矩阵。
ddepth输出矩阵的可选深度。
另请参见
add, addC

◆ subC()

GMat cv::gapi::subC ( const GMat & src,
const GScalar & c,
int ddepth = -1 )
Python
cv.gapi.subC(src, c[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

计算矩阵与给定标量之间的逐元素差。

该函数可以被矩阵表达式替代:

\[\texttt{dst} = \texttt{src} - \texttt{c}\]

输出矩阵的深度由 `ddepth` 参数决定。如果 `ddepth` 设置为默认值 -1,则输出矩阵的深度将与输入矩阵的深度相同。矩阵可以是单通道或多通道。输出矩阵必须与 `src` 具有相同的大小。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.subC"
参数
src第一个输入矩阵。
c要减去的标量值。
ddepth输出矩阵的可选深度。
另请参见
add, addC, subRC

◆ subRC()

GMat cv::gapi::subRC ( const GScalar & c,
const GMat & src,
int ddepth = -1 )
Python
cv.gapi.subRC(c, src[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

计算给定标量与矩阵之间的逐元素差。

该函数可以被矩阵表达式替代:

\[\texttt{dst} = \texttt{c} - \texttt{src}\]

输出矩阵的深度由 `ddepth` 参数决定。如果 `ddepth` 设置为默认值 -1,则输出矩阵的深度将与输入矩阵的深度相同。矩阵可以是单通道或多通道。输出矩阵必须与 `src` 具有相同的大小。

支持的矩阵数据类型有 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1

注意
函数的文本ID为 "org.opencv.core.math.subRC"
参数
c用于减法的标量值。
src要被减的输入矩阵。
ddepth输出矩阵的可选深度。
另请参见
add, addC, subC