OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
正在加载...
正在搜索...
未找到匹配项
Graph API: 矩阵操作

详细说明

函数

GMat cv::gapi::absDiff (const GMat &src1, const GMat &src2)
 计算两个矩阵之间逐元素的绝对差值。
 
GMat cv::gapi::absDiffC (const GMat &src, const GScalar &c)
 计算矩阵元素的绝对值。
 
GMat cv::gapi::addWeighted (const GMat &src1, double alpha, const GMat &src2, double beta, double gamma, int ddepth=-1)
 计算两个矩阵的加权和。
 
GOpaque< int > cv::gapi::countNonZero (const GMat &src)
 统计非零数组元素的数量。
 
GMat cv::gapi::inRange (const GMat &src, const GScalar &threshLow, const GScalar &threshUp)
 对每个矩阵元素应用范围级阈值。
 
std::tuple< GMat, GMatcv::gapi::integral (const GMat &src, int sdepth=-1, int sqdepth=-1)
 计算图像的积分图。
 
GMat cv::gapi::max (const GMat &src1, const GMat &src2)
 计算两个矩阵逐元素的最大值。
 
GMat cv::gapi::min (const GMat &src1, const GMat &src2)
 计算两个矩阵逐元素的最小值。
 
GScalar cv::gapi::normInf (const GMat &src)
 计算矩阵的绝对无穷范数。
 
GScalar cv::gapi::normL1 (const GMat &src)
 计算矩阵的绝对 L1 范数。
 
GScalar cv::gapi::normL2 (const GMat &src)
 计算矩阵的绝对 L2 范数。
 
GScalar cv::gapi::sum (const GMat &src)
 计算所有矩阵元素的和。
 
std::tuple< GMat, GScalarcv::gapi::threshold (const GMat &src, const GScalar &maxval, int type)
 
GMat cv::gapi::threshold (const GMat &src, const GScalar &thresh, const GScalar &maxval, int type)
 对每个矩阵元素应用固定级别的阈值。
 

函数文档 (Function Documentation)

◆ absDiff()

GMat cv::gapi::absDiff ( const GMat & src1,
const GMat & src2 )
Python
cv.gapi.absDiff(src1, src2) -> retval

#include <opencv2/gapi/core.hpp>

计算两个矩阵之间逐元素的绝对差值。

函数 absDiff 计算两个相同大小和深度的矩阵的绝对差

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

其中 I 是矩阵元素的多维索引。对于多通道矩阵,每个通道独立处理。输出矩阵必须与输入矩阵具有相同的大小和深度。

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

注意
函数文本 ID 为 "org.opencv.core.matrixop.absdiff"
参数
src1第一个输入矩阵。
src2第二个输入矩阵。
另请参阅
绝对值

◆ absDiffC()

GMat cv::gapi::absDiffC ( const GMat & src,
const GScalar & c )
Python
cv.gapi.absDiffC(src, c) -> retval

#include <opencv2/gapi/core.hpp>

计算矩阵元素的绝对值。

函数 absDiffC 计算矩阵元素与给定标量值之间的绝对差

\[\texttt{dst}(I) = \texttt{saturate} (| \texttt{src1}(I) - \texttt{matC}(I)|)\]

其中 matC 由给定标量 c 构造,并与输入矩阵 src 具有相同的大小和深度。

输出矩阵必须与 src 具有相同的大小和深度。

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

注意
函数文本 ID 为 "org.opencv.core.matrixop.absdiffC"
参数
src输入矩阵。
c要减去的标量。
另请参阅
min, max

◆ addWeighted()

GMat cv::gapi::addWeighted ( const GMat & src1,
double alpha,
const GMat & src2,
double beta,
double gamma,
int ddepth = -1 )
Python
cv.gapi.addWeighted(src1, alpha, src2, beta, gamma[, ddepth]) -> retval

#include <opencv2/gapi/core.hpp>

计算两个矩阵的加权和。

函数 addWeighted 按如下方式计算两个矩阵的加权和

\[\texttt{dst} (I)= \texttt{saturate} ( \texttt{src1} (I)* \texttt{alpha} + \texttt{src2} (I)* \texttt{beta} + \texttt{gamma} )\]

其中 I 是数组元素的多维索引。对于多通道矩阵,每个通道独立处理。

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

\[\texttt{dst}(I) = \texttt{alpha} * \texttt{src1}(I) - \texttt{beta} * \texttt{src2}(I) + \texttt{gamma} \]

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

注意
函数文本 ID 为 "org.opencv.core.matrixop.addweighted"
参数
src1第一个输入矩阵。
alpha第一个矩阵元素的权重。
src2与 src1 具有相同大小和通道数的第二个输入矩阵。
beta第二个矩阵元素的权重。
gamma添加到每个和的标量。
ddepth输出矩阵的可选深度。
另请参阅
add, sub

◆ countNonZero()

GOpaque< int > cv::gapi::countNonZero ( const GMat & src)
Python
cv.gapi.countNonZero(src) -> retval

#include <opencv2/gapi/core.hpp>

统计非零数组元素的数量。

函数返回 src 中非零元素的数量

\[\sum _{I: \; \texttt{src} (I) \ne0 } 1\]

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

注意
函数文本 ID 为 "org.opencv.core.matrixop.countNonZero"
参数
src输入单通道矩阵。
另请参阅
mean, min, max

◆ inRange()

GMat cv::gapi::inRange ( const GMat & src,
const GScalar & threshLow,
const GScalar & threshUp )
Python
cv.gapi.inRange(src, threshLow, threshUp) -> retval

#include <opencv2/gapi/core.hpp>

对每个矩阵元素应用范围级阈值。

该函数对单通道或多通道矩阵应用范围级阈值处理。如果输入矩阵的对应像素值在指定范围内,则将输出像素值设置为 0xFF,否则设置为 0。

输入和输出矩阵必须为 CV_8UC1。

注意
函数文本 ID 为 "org.opencv.core.matrixop.inRange"
参数
src输入矩阵 (CV_8UC1)。
threshLow下限值。
threshUp上限值。
另请参阅
阈值 (threshold)

◆ integral()

std::tuple< GMat, GMat > cv::gapi::integral ( const GMat & src,
int sdepth = -1,
int sqdepth = -1 )
Python
cv.gapi.integral(src[, sdepth[, sqdepth]]) -> retval

#include <opencv2/gapi/core.hpp>

计算图像的积分图。

函数按如下方式计算源图像的一个或多个积分图像

\[\texttt{sum} (X,Y) = \sum _{x<X,y<Y} \texttt{image} (x,y)\]

\[\texttt{sqsum} (X,Y) = \sum _{x<X,y<Y} \texttt{image} (x,y)^2\]

函数返回积分图像为 \((W+1)\times (H+1)\),32位整数或浮点(32f 或 64f),以及平方像素值的积分图像;它是 \((W+1)\times (H+)\),双精度浮点(64f)数组。

注意
函数文本 ID 为 "org.opencv.core.matrixop.integral"
参数
src输入图像。
sdepth积分图像和倾斜积分图像的所需深度,CV_32S、CV_32F 或 CV_64F。
sqdepth平方像素值积分图像的所需深度,CV_32F 或 CV_64F。

◆ max()

GMat cv::gapi::max ( const GMat & src1,
const GMat & src2 )
Python
cv.gapi.max(src1, src2) -> retval

#include <opencv2/gapi/core.hpp>

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

函数 max 计算两个相同大小、通道数和深度的矩阵的逐元素最大值

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

其中 I 是矩阵元素的多维索引。对于多通道矩阵,每个通道独立处理。输出矩阵必须与 src1 具有相同的大小和深度。

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

注意
函数文本 ID 为 "org.opencv.core.matrixop.max"
参数
src1第一个输入矩阵。
src2与 src1 具有相同大小和深度的第二个输入矩阵。
另请参阅
min, compare, cmpEQ, cmpGT, cmpGE

◆ min()

GMat cv::gapi::min ( const GMat & src1,
const GMat & src2 )
Python
cv.gapi.min(src1, src2) -> retval

#include <opencv2/gapi/core.hpp>

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

函数 min 计算两个相同大小、通道数和深度的矩阵的逐元素最小值

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

其中 I 是矩阵元素的多维索引。对于多通道矩阵,每个通道独立处理。输出矩阵必须与 src1 具有相同的大小和深度。

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

注意
函数文本 ID 为 "org.opencv.core.matrixop.min"
参数
src1第一个输入矩阵。
src2与 src1 具有相同大小和深度的第二个输入矩阵。
另请参阅
max, cmpEQ, cmpLT, cmpLE

◆ normInf()

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

#include <opencv2/gapi/core.hpp>

计算矩阵的绝对无穷范数。

此版本的 normInf 计算 src 的绝对无限范数。

以一个数组为例,考虑函数 \(r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\)。样本值 \(r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\) 的 \( L_{\infty} \) 范数计算如下

\begin{align*} \| r(-1) \|_{L_\infty} &= \max(|-1|,|2|) = 2 \end{align*}

对于 \(r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\),计算如下

\begin{align*} \| r(0.5) \|_{L_\infty} &= \max(|0.5|,|0.5|) = 0.5. \end{align*}

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

注意
函数文本 ID 为 "org.opencv.core.matrixop.norminf"
参数
src输入矩阵。
另请参阅
normL1, normL2

◆ normL1()

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

#include <opencv2/gapi/core.hpp>

计算矩阵的绝对 L1 范数。

此版本的 normL1 计算 src 的绝对 L1 范数。

以一个数组为例,考虑函数 \(r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\)。样本值 \(r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\) 的 \( L_{1} \) 范数计算如下

\begin{align*} \| r(-1) \|_{L_1} &= |-1| + |2| = 3 \\ \end{align*}

对于 \(r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\),计算如下

\begin{align*} \| r(0.5) \|_{L_1} &= |0.5| + |0.5| = 1 \\ \end{align*}

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

注意
函数文本 ID 为 "org.opencv.core.matrixop.norml1"
参数
src输入矩阵。
另请参阅
normL2, normInf

◆ normL2()

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

#include <opencv2/gapi/core.hpp>

计算矩阵的绝对 L2 范数。

此版本的 normL2 计算 src 的绝对 L2 范数。

以一个数组为例,考虑函数 \(r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\)。样本值 \(r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\) 的 \( L_{2} \) 范数计算如下

\begin{align*} \| r(-1) \|_{L_2} &= \sqrt{(-1)^{2} + (2)^{2}} = \sqrt{5} \\ \end{align*}

对于 \(r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\),计算如下

\begin{align*} \| r(0.5) \|_{L_2} &= \sqrt{(0.5)^{2} + (0.5)^{2}} = \sqrt{0.5} \\ \end{align*}

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

注意
函数文本 ID 为 "org.opencv.core.matrixop.norml2"
参数
src输入矩阵。
另请参阅
normL1, normInf

◆ sum()

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

#include <opencv2/gapi/core.hpp>

计算所有矩阵元素的和。

函数 sum 计算所有矩阵元素的和,每个通道独立计算。

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

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

◆ threshold() [1/2]

std::tuple< GMat, GScalar > cv::gapi::threshold ( const GMat & src,
const GScalar & 最大值 (maxval),
int type )
Python
cv.gapi.threshold(src, thresh, maxval, type) -> retval
cv.gapi.threshold(src, maxval, type) -> retval

#include <opencv2/gapi/core.hpp>

这是一个重载成员函数,为方便起见而提供。它与上述函数仅在接受的参数上有所不同。此函数适用于除 cv::THRESH_OTSUcv::THRESH_TRIANGLE 之外的所有阈值类型

注意
函数文本 ID 为 "org.opencv.core.matrixop.thresholdOT"

◆ threshold() [2/2]

GMat cv::gapi::threshold ( const GMat & src,
const GScalar & thresh,
const GScalar & 最大值 (maxval),
int type )
Python
cv.gapi.threshold(src, thresh, maxval, type) -> retval
cv.gapi.threshold(src, maxval, type) -> retval

#include <opencv2/gapi/core.hpp>

对每个矩阵元素应用固定级别的阈值。

该函数对单通道或多通道矩阵应用固定级别的阈值处理。该函数通常用于从灰度图像中获取双级(二值)图像(cmp 函数也可用于此目的)或用于去除噪声,即过滤掉值过小或过大的像素。该函数支持多种阈值处理类型,由 type 参数决定。

此外,特殊值 cv::THRESH_OTSUcv::THRESH_TRIANGLE 可以与上述值之一结合使用。在这些情况下,函数使用 Otsu 或 Triangle 算法确定最佳阈值,并使用它而不是指定的 thresh。函数除了阈值化矩阵外,还返回计算出的阈值。Otsu 和 Triangle 方法仅适用于 8 位矩阵。

cv::THRESH_OTSUcv::THRESH_TRIANGLE 标志的情况下,输入图像应为单通道。输出矩阵必须与 src 具有相同的大小和深度。

注意
函数文本 ID 为 "org.opencv.core.matrixop.threshold"
参数
src输入矩阵 (CV_8UC1, CV_8UC3, 或 CV_32FC1)。
thresh阈值。
最大值 (maxval)cv::THRESH_BINARYcv::THRESH_BINARY_INV 阈值类型一起使用的最大值。
type阈值类型(参见 cv::ThresholdTypes)。
另请参阅
min, max, cmpGT, cmpLE, cmpGE, cmpLT