OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
正在加载...
正在搜索...
未找到匹配项
Graph 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)
 计算二维向量的幅值和角度。
 
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)
 计算给定标量与矩阵逐元素的差。
 

函数文档 (Function Documentation)

◆ 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>

计算二维向量的幅值和角度。

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 & 除数,
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)}\]

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

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

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

◆ divRC()

GMat cv::gapi::divRC ( const GScalar & 被除数,
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输入矩阵。
被除数要除的数字。
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 函数从给定矩阵设置值,如果掩码矩阵中相应的像素值设置为 true,否则将矩阵值设置为 0。

支持的 src 矩阵数据类型为 CV_8UC1CV_16SC1CV_16UC1。支持的掩码数据类型为 CV_8UC1

注意
函数文本 ID 为 "org.opencv.core.math.mask"
参数
src输入矩阵。
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 & 乘数,
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 乘数,
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输入矩阵。
乘数要相乘的因子。
ddepth输出矩阵的可选深度。如果为 -1,则输出矩阵的深度将与输入矩阵的深度相同。
另请参阅
add, sub, div, addWeighted

◆ mulC() [3/3]

GMat cv::gapi::mulC ( const GScalar & 乘数,
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