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