OPENCV 4.10.0
开源计算机视觉
|
void cv::cuda::abs | ( | InputArray | src, |
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算每个矩阵元素的绝对值。
src | 源矩阵。 |
dst | 与 src 具有相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
void cv::cuda::absdiff | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算两个矩阵(或矩阵和标量)的元素级绝对差。
src1 | 第一个源矩阵或标量。 |
src2 | 第二个源矩阵或标量。 |
dst | 具有与输入数组相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
void cv::cuda::add | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
InputArray | mask = noArray() , |
||
int | dtype = -1 , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算矩阵-矩阵或矩阵-标量的和。
src1 | 第一个源矩阵或标量。 |
src2 | 第二个源矩阵或标量。矩阵应与 src1 具有相同的大小和类型。 |
dst | 与输入数组相同大小和通道数量的输出矩阵。深度由 dtype 或 src1 深度定义。 |
mask | 可选操作掩码,8 位单通道数组,指定要更改的输出数组元素。掩码只能用于单通道图像。 |
dtype | 可选输出数组深度。 |
stream | Stream for the asynchronous version. |
void cv::cuda::addWeighted | ( | InputArray | src1, |
double | alpha, | ||
InputArray | src2, | ||
double | beta, | ||
double | gamma, | ||
OutputArray | dst, | ||
int | dtype = -1 , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算两个数组加权和。
src1 | 第一个源数组。 |
alpha | 第一数组元素的权重。 |
src2 | 具有与 src1 相同大小和通道数的第二个源数组。 |
beta | 第二数组元素的权重。 |
dst | 与输入数组具有相同大小和通道数的输出数组。 |
gamma | 加到每个总和上的标量。 |
dtype | 可选目的地数组深度。当两个输入数组具有相同的深度时,dtype 可以设置为 -1,这相当于 src1.depth(). |
stream | Stream for the asynchronous version. |
函数 addWeighted 按如下方式计算两个数组的加权总和:
\[\texttt{dst} (I)= \texttt{saturate} ( \texttt{src1} (I)* \texttt{alpha} + \texttt{src2} (I)* \texttt{beta} + \texttt{gamma} )\]
其中 I 是数组元素的多维索引。对于多通道数组,每个通道独立处理。
void cv::cuda::位与 | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
InputArray | mask = noArray() , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
对两个矩阵(或矩阵和标量)执行元素级位与操作。
src1 | 第一个源矩阵或标量。 |
src2 | 第二个源矩阵或标量。 |
dst | 具有与输入数组相同大小和类型的输出矩阵。 |
mask | 可选操作掩码,8 位单通道数组,指定要更改的输出数组元素。掩码只能用于单通道图像。 |
stream | Stream for the asynchronous version. |
void cv::cuda::位非 | ( | InputArray | src, |
OutputArray | dst, | ||
InputArray | mask = noArray() , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
对每个元素执行位非操作。
src | 源矩阵。 |
dst | 与 src 具有相同大小和类型的输出矩阵。 |
mask | 可选操作掩码,8 位单通道数组,指定要更改的输出数组元素。掩码只能用于单通道图像。 |
stream | Stream for the asynchronous version. |
void cv::cuda::位或 | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
InputArray | mask = noArray() , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
对两个矩阵(或矩阵与标量)的每个元素进行按位或操作。
src1 | 第一个源矩阵或标量。 |
src2 | 第二个源矩阵或标量。 |
dst | 具有与输入数组相同大小和类型的输出矩阵。 |
mask | 可选操作掩码,8 位单通道数组,指定要更改的输出数组元素。掩码只能用于单通道图像。 |
stream | Stream for the asynchronous version. |
void cv::cuda::位异或 | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
InputArray | mask = noArray() , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
对两个矩阵(或矩阵与标量)的每个元素进行按位异或操作。
src1 | 第一个源矩阵或标量。 |
src2 | 第二个源矩阵或标量。 |
dst | 具有与输入数组相同大小和类型的输出矩阵。 |
mask | 可选操作掩码,8 位单通道数组,指定要更改的输出数组元素。掩码只能用于单通道图像。 |
stream | Stream for the asynchronous version. |
void cv::cuda::cartToPolar | ( | InputArray | x, |
InputArray | y, | ||
OutputArray | 幅度, | ||
OutputArray | 角度, | ||
bool | angleInDegrees = false , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
将直角坐标系坐标转换为极坐标。
x | 包含实部的源矩阵 ( CV_32FC1 ). |
y | 包含虚部的源矩阵 ( CV_32FC1 ). |
幅度 | 浮点幅度目的矩阵 ( CV_32FC1 ). |
角度 | 角度目的矩阵 ( CV_32FC1 ). |
angleInDegrees | 表示角度必须以度为单位评估的标志。 |
stream | Stream for the asynchronous version. |
void cv::cuda::compare | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
int | cmpop, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
比较两个矩阵(或矩阵与标量)的元素。
src1 | 第一个源矩阵或标量。 |
src2 | 第二个源矩阵或标量。 |
dst | 与输入数组大小相同且类型为 CV_8U 的目的矩阵。 |
cmpop | 指定要检查的元素之间的关系
|
stream | Stream for the asynchronous version. |
void cv::cuda::divide | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
double | scale = 1 , |
||
int | dtype = -1 , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算矩阵-矩阵或矩阵-标量的除法。
src1 | 第一个源矩阵或一个标量。 |
src2 | 第二个源矩阵或标量。 |
dst | 与输入数组相同大小和通道数量的输出矩阵。深度由 dtype 或 src1 深度定义。 |
scale | 可选的比例因子。 |
dtype | 可选输出数组深度。 |
stream | Stream for the asynchronous version. |
与其他divide函数相比,此函数使用向下舍入的舍入模式。
void cv::cuda::exp | ( | InputArray | src, |
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算每个矩阵元素的指数。
src | 源矩阵。 |
dst | 与 src 具有相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
void cv::cuda::inRange | ( | InputArray | src, |
const Scalar & | lowerb, | ||
const Scalar & | upperb, | ||
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
检查数组元素是否位于两个标量之间。
该函数检查范围如下
\[\texttt{dst} (I)= \texttt{lowerb}_0 \leq \texttt{src} (I)_0 \leq \texttt{upperb}_0\]
\[\texttt{dst} (I)= \texttt{lowerb}_0 \leq \texttt{src} (I)_0 \leq \texttt{upperb}_0 \land \texttt{lowerb}_1 \leq \texttt{src} (I)_1 \leq \texttt{upperb}_1\]
即,如果 src (I) 在指定的 1D、2D、3D、... 箱子内,则将 dst (I) 设置为 255(所有 1 位),否则为 0。
注意,与 CPU 中的 inRange 不同,此代码不接受 lowerb 或 upperb 的数组,只接受 cv::Scalar。
src | 第一个输入数组。 |
lowerb | 包含下界 cv::Scalar。 |
upperb | 包含上界 cv::Scalar。 |
dst | 与 src 大小相同且类型为 CV_8U 的输出数组。 |
stream | Stream for the asynchronous version. |
void cv::cuda::log | ( | InputArray | src, |
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算每个矩阵元素的绝对值自然对数。
src | 源矩阵。 |
dst | 与 src 具有相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
|
inline |
void cv::cuda::lshift | ( | InputArray | src, |
Scalar_< int > | val, | ||
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
通过常数值进行图像像素的左右翻转。
src | 源矩阵。支持 CV_8U、CV_16U 或 CV_32S 深度的 1、3 和 4 通道图像。 |
val | 每通道的常量值。 |
dst | 与 src 具有相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
void cv::cuda::magnitude | ( | InputArray | x, |
InputArray | y, | ||
OutputArray | 幅度, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
这是一个重载的成员函数,提供方便使用。它与上述函数的不同之处仅在于它所接受的参数。计算每个 (x(i), y(i)) 向量的模长仅支持浮点数源
x | 包含实部的源矩阵 ( CV_32FC1 ). |
y | 包含虚部的源矩阵 ( CV_32FC1 ). |
幅度 | 浮点幅度目的矩阵 ( CV_32FC1 ). |
stream | Stream for the asynchronous version. |
void cv::cuda::magnitude | ( | InputArray | xy, |
OutputArray | 幅度, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算复矩阵元素的幅值。
xy | 源复数矩阵采用交错格式 ( CV_32FC2 )。 |
幅度 | 浮点幅度目的矩阵 ( CV_32FC1 ). |
stream | Stream for the asynchronous version. |
void cv::cuda::magnitudeSqr | ( | InputArray | x, |
InputArray | y, | ||
OutputArray | 幅度, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
这是一个重载的成员函数,提供方便使用。它与上述函数的不同之处仅在于它所接受的参数。计算每个 (x(i), y(i)) 向量的平方模长仅支持浮点数源
x | 包含实部的源矩阵 ( CV_32FC1 ). |
y | 包含虚部的源矩阵 ( CV_32FC1 ). |
幅度 | 浮点数模长平方的目标矩阵 ( CV_32FC1 )。 |
stream | Stream for the asynchronous version. |
void cv::cuda::magnitudeSqr | ( | InputArray | xy, |
OutputArray | 幅度, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算复矩阵元素平方幅值的表达式。
xy | 源复数矩阵采用交错格式 ( CV_32FC2 )。 |
幅度 | 浮点数模长平方的目标矩阵 ( CV_32FC1 )。 |
stream | Stream for the asynchronous version. |
void cv::cuda::max | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算两个矩阵(或矩阵与标量)逐元素的算术最大值。
src1 | 第一个源矩阵或标量。 |
src2 | 第二个源矩阵或标量。 |
dst | 具有与输入数组相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
void cv::cuda::min | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算两个矩阵(或矩阵与标量)逐元素的算术最小值。
src1 | 第一个源矩阵或标量。 |
src2 | 第二个源矩阵或标量。 |
dst | 具有与输入数组相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
void cv::cuda::multiply | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
double | scale = 1 , |
||
int | dtype = -1 , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算矩阵-矩阵或矩阵-标量逐元素的乘积。
src1 | 第一个源矩阵或标量。 |
src2 | 第二个源矩阵或标量。 |
dst | 与输入数组相同大小和通道数量的输出矩阵。深度由 dtype 或 src1 深度定义。 |
scale | 可选的比例因子。 |
dtype | 可选输出数组深度。 |
stream | Stream for the asynchronous version. |
void cv::cuda::phase | ( | InputArray | x, |
InputArray | y, | ||
OutputArray | 角度, | ||
bool | angleInDegrees = false , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算复杂矩阵元素的极角。
x | 包含实部的源矩阵 ( CV_32FC1 ). |
y | 包含虚部的源矩阵 ( CV_32FC1 ). |
角度 | 角度目的矩阵 ( CV_32FC1 ). |
angleInDegrees | 表示角度必须以度为单位评估的标志。 |
stream | Stream for the asynchronous version. |
void cv::cuda::polarToCart | ( | InputArray | 幅度, |
InputArray | 角度, | ||
OutputArray | x, | ||
OutputArray | y, | ||
bool | angleInDegrees = false , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
将极坐标转换为笛卡尔坐标。
幅度 | 包含模长的源矩阵 ( CV_32FC1 或 CV_64FC1 )。 |
角度 | 包含角度的源矩阵 ( 与模量具有相同类型 )。 |
x | 包含实部的目标矩阵 ( 与模量具有相同类型 )。 |
y | 包含虚部的目标矩阵 ( 与模量具有相同类型 )。 |
angleInDegrees | 指示角度是否以度为单位。 |
stream | Stream for the asynchronous version. |
void cv::cuda::pow | ( | InputArray | src, |
double | power, | ||
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
将每个矩阵元素提升到幂。
src | 源矩阵。 |
power | 幂指数。 |
dst | 与 src 具有相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
函数 pow 将输入矩阵的每个元素提升到幂指数
\[\texttt{dst} (I) = \fork{\texttt{src}(I)^{power}}{如果 \texttt{power} 是整数}{|\texttt{src}(I)|^{power}}{否则}\]
|
inline |
void cv::cuda::rshift | ( | InputArray | src, |
Scalar_< int > | val, | ||
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
执行图像以常数值逐像素向右移位。
src | 源矩阵。支持 1、3 和 4 通道的整数元素图像。 |
val | 每通道的常量值。 |
dst | 与 src 具有相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
|
inlinestatic |
void cv::cuda::sqr | ( | InputArray | src, |
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算每个矩阵元素平方值。
src | 源矩阵。 |
dst | 与 src 具有相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
void cv::cuda::sqrt | ( | InputArray | src, |
OutputArray | dst, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算每个矩阵元素的平方根。
src | 源矩阵。 |
dst | 与 src 具有相同大小和类型的输出矩阵。 |
stream | Stream for the asynchronous version. |
void cv::cuda::subtract | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
InputArray | mask = noArray() , |
||
int | dtype = -1 , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
计算矩阵-矩阵或矩阵-标量之间的差。
src1 | 第一个源矩阵或标量。 |
src2 | 第二个源矩阵或标量。矩阵应与 src1 具有相同的大小和类型。 |
dst | 与输入数组相同大小和通道数量的输出矩阵。深度由 dtype 或 src1 深度定义。 |
mask | 可选操作掩码,8 位单通道数组,指定要更改的输出数组元素。掩码只能用于单通道图像。 |
dtype | 可选输出数组深度。 |
stream | Stream for the asynchronous version. |
double cv::cuda::threshold | ( | InputArray | src, |
OutputArray | dst, | ||
double | thresh, | ||
double | maxval, | ||
int | type, | ||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
将固定阈值应用于每个数组元素。
src | 源数组 ( 单通道 )。 |
dst | 与 src 具有相同大小和类型的目标数组。 |
thresh | 阈值值。 |
maxval | 用于 THRESH_BINARY 和 THRESH_BINARY_INV 阈值类型的最大值。 |
type | 阈值类型。有关详细信息,请参阅 threshold。THRESH_OTSU 和 THRESH_TRIANGLE 阈值类型不支持。 |
stream | Stream for the asynchronous version. |