OpenCV  4.10.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)
 计算二维向量的幅度和角度。
 
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_8UC1CV_8UC3CV_16UC1CV_16SC1CV_32FC1

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

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

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

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

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

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

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

◆ divRC()

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

#include <opencv2/gapi/core.hpp>

将标量除以矩阵。

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

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

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

支持的矩阵数据类型为 CV_8UC1CV_8UC3CV_16UC1CV_16SC1CV_32FC1

注意
函数文本 ID 为“org.opencv.core.math.divRC”。
参数
src输入矩阵。
被除数要被除的数字。
ddepth输出矩阵的可选深度。如果为 -1,则输出矩阵的深度将与输入矩阵深度相同。
scale缩放因子。
另请参阅
addsubdivaddWeighted

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

注意
函数文本 ID 为“org.opencv.core.math.mean”。
参数
src输入矩阵。
另请参阅
countNonZerominmax

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

注意
函数文本 ID 为“org.opencv.core.math.mul”。
参数
src1第一个输入矩阵。
src2与 src1 大小和深度相同的第二个输入矩阵。
scale可选缩放因子。
ddepth输出矩阵的可选深度。
另请参阅
addsubdivaddWeighted

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

注意
函数文本 ID 为“org.opencv.core.math.mulC”。
参数
src输入矩阵。
乘数要乘的因子。
ddepth输出矩阵的可选深度。如果为 -1,则输出矩阵的深度将与输入矩阵深度相同。
另请参阅
addsubdivaddWeighted

◆ 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 幅值,
const GMat 角度,
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”。
参数
幅值输入浮点 CV_32FC1 矩阵 (1xN),表示二维向量的幅值;
角度输入浮点 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_8UC1CV_8UC3CV_16UC1CV_16SC1CV_32FC1

注意
函数文本 ID 为“org.opencv.core.math.sub”。
参数
src1第一个输入矩阵。
src2第二个输入矩阵。
ddepth输出矩阵的可选深度。
另请参阅
addaddC

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

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

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

注意
函数文本 ID 为“org.opencv.core.math.subRC”。
参数
c要从其减去的标量值。
src要减去的输入矩阵。
ddepth输出矩阵的可选深度。
另请参阅
addaddCsubC