OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
图形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)
 对每个矩阵元素应用固定阈值。
 

函数文档

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

注意
函数文本ID为“org.opencv.core.matrixop.absdiff”
参数
src1第一个输入矩阵。
src2第二个输入矩阵。
参见
abs

◆ absDiffC()

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

#include <opencv2/gapi/core.hpp>

计算矩阵元素的绝对值。

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

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

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

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

支持的矩阵数据类型为CV_8UC1CV_8UC3CV_16UC1CV_16SC1CV_32FC1

注意
函数文本ID为“org.opencv.core.matrixop.absdiffC”
参数
src输入矩阵。
c要减去的标量。
参见
minmax

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

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

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

注意
函数文本ID为“org.opencv.core.matrixop.countNonZero”
参数
src输入单通道矩阵。
参见
均值最小值最大值

◆ inRange()

cv::gapi::inRange GMat ( 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上边界值。
参见
阈值

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

cv::gapi::max GMat ( 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_8UC1CV_8UC3CV_16UC1CV_16SC1CV_32FC1

注意
函数文本ID为“org.opencv.core.matrixop.max”
参数
src1第一个输入矩阵。
src2第二个输入矩阵,大小和深度与src1相同。
参见
最小值比较cmpEQcmpGTcmpGE

◆ min()

cv::gapi::min GMat ( 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_8UC1CV_8UC3CV_16UC1CV_16SC1CV_32FC1

注意
函数文本ID为“org.opencv.core.matrixop.min”
参数
src1第一个输入矩阵。
src2第二个输入矩阵,大小和深度与src1相同。
参见
最大值cmpEQcmpLTcmpLE

◆ normInf()

cv::gapi::normInf GScalar ( 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_8UC1CV_8UC3CV_16UC1CV_16SC1CV_32FC1

注意
函数文本ID为“org.opencv.core.matrixop.norminf”
参数
src输入矩阵。
参见
normL1normL2

◆ normL1()

cv::gapi::normL1 GScalar ( 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_8UC1CV_8UC3CV_16UC1CV_16SC1CV_32FC1

注意
函数文本ID为“org.opencv.core.matrixop.norml1”
参数
src输入矩阵。
参见
normL2normInf

◆ normL2()

cv::gapi::normL2 GScalar ( 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_8UC1CV_8UC3CV_16UC1CV_16SC1CV_32FC1

注意
函数文本ID为“org.opencv.core.matrixop.norml2”
参数
src输入矩阵。
参见
normL1normInf

◆ sum()

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

#include <opencv2/gapi/core.hpp>

计算所有矩阵元素的和。

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

支持的矩阵数据类型为CV_8UC1CV_8UC3CV_16UC1CV_16SC1CV_32FC1

注意
函数文本ID为“org.opencv.core.matrixop.sum”
参数
src输入矩阵。
参见
countNonZeromeanminmax

◆ 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算法或三角形算法确定最佳阈值,并使用它代替指定的thresh。该函数除了阈值矩阵外,还返回计算出的阈值。Otsu算法和三角形方法仅针对8位矩阵实现。

在使用cv::THRESH_OTSUcv::THRESH_TRIANGLE标志时,输入图像应仅为单通道。输出矩阵的大小和深度必须与src相同。

注意
函数文本ID为“org.opencv.core.matrixop.threshold”
参数
src输入矩阵(CV_8UC1CV_8UC3,或CV_32FC1)。
thresh阈值。
maxvalcv::THRESH_BINARYcv::THRESH_BINARY_INV阈值类型一起使用的最大值。
type阈值类型(参见cv::ThresholdTypes)。
参见
minmaxcmpGTcmpLEcmpGEcmpLT