OpenCV 4.12.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)
 Counts non-zero array elements.
 
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_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_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>

计算矩阵元素的绝对值。

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

\[\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>

Counts non-zero array elements.

该函数返回 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上边界值。
另请参见
RANSAC参数。它是点到像素中对极线的最大距离,超过此距离的点将被视为异常值,不用于计算最终的基本矩阵。它可以设置为1-3左右,具体取决于点定位的精度、图像分辨率和图像噪声。

◆ 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 & 最大值,
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 & 最大值,
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阈值。
最大值cv::THRESH_BINARYcv::THRESH_BINARY_INV 阈值类型一起使用的最大值。
type阈值类型(参见 cv::ThresholdTypes)。
另请参见
min, max, cmpGT, cmpLE, cmpGE, cmpLT