OpenCV 4.10.0
开源计算机视觉
|
类 | |
类 | cv::cuda::Convolution |
卷积(或互相关)算子的基础类:更多... | |
类 | cv::cuda::DFT |
作为 cv::Algorithm 的 DFT 算子的基础类:更多... | |
函数 | |
Ptr< Convolution > | cv::cuda::createConvolution (Size user_block_size=Size()) |
创建 cuda::Convolution 的实现。 | |
Ptr< DFT > | cv::cuda::createDFT (Size dft_size, int flags) |
创建 cuda::DFT 的实现。 | |
void | cv::cuda::dft (InputArray src, OutputArray dst, Size dft_size, int flags=0, Stream &stream=Stream::Null()) |
对浮点矩阵执行正向或反向离散傅里叶变换(1D 或 2D)。 | |
void | cv::cuda::gemm (InputArray src1, InputArray src2, double alpha, InputArray src3, double beta, OutputArray dst, int flags=0, Stream &stream=Stream::Null()) |
执行广义矩阵乘法 | |
void | cv::cuda::mulAndScaleSpectrums (InputArray src1, InputArray src2, OutputArray dst, int flags, float scale, bool conjB=false, Stream &stream=Stream::Null()) |
对两个傅里叶变换做逐个元素乘法,并对结果进行缩放。 | |
void | cv::cuda::mulSpectrums (InputArray src1, InputArray src2, OutputArray dst, int flags, bool conjB=false, Stream &stream=Stream::Null()) |
对两个傅里叶变换做逐个元素乘法。 | |
Ptr< Convolution > cv::cuda::createConvolution | ( | Size | user_block_size = Size() | ) |
#include <opencv2/cudaarithm.hpp>
创建 cuda::Convolution 的实现。
user_block_size | 块大小。如果您留空默认值 Size(0,0) ,则会使用自动估计的块大小(以优化速度)。通过改变 user_block_size ,您可以以牺牲速度为代价来降低内存需求。 |
#include <opencv2/cudaarithm.hpp>
创建 cuda::DFT 的实现。
dft_size | 图像大小 |
flags | 可选标记
|
void cv::cuda::dft | ( | InputArray | src, |
OutputArray | dst, | ||
Size | dft_size, | ||
int | flags = 0 , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
对浮点矩阵执行正向或反向离散傅里叶变换(1D 或 2D)。
src | 源矩阵(实数或复数)。 |
dst | 目标矩阵(实数或复数)。 |
dft_size | 离散傅立叶变换的大小。 |
flags | 可选标记
|
stream | Stream 用于异步版本。 |
用于处理实数矩阵 ( CV32FC1 ) 和交错格式中的复数矩阵 ( CV32FC2 )。
源矩阵应该是连续的,否则将执行重新分配和数据复制。此函数将根据源矩阵的标志、大小和通道数选择操作模式
void cv::cuda::gemm | ( | InputArray | src1, |
InputArray | src2, | ||
double | alpha, | ||
InputArray | src3, | ||
double | beta, | ||
OutputArray | dst, | ||
int | flags = 0 , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
执行广义矩阵乘法
src1 | 第一个要乘的输入矩阵,其类型应为 CV_32FC1、CV_64FC1、CV_32FC2 或 CV_64FC2。 |
src2 | 第二个要乘的输入矩阵,其类型应与 src1 相同。 |
alpha | 矩阵积的权重。 |
src3 | 第三个可选 delta 矩阵,添加到矩阵积中。其类型应与 src1 和 src2 相同。 |
beta | src3 的权重。 |
dst | 目标矩阵。其已具有合适的尺寸和与输入矩阵相同的类型。 |
flags | 运算标志
|
stream | Stream 用于异步版本。 |
此函数执行类似于 BLAS level 中的 gemm 函数的广义矩阵乘法
例如,gemm(src1, src2, alpha, src3, beta, dst, GEMM_1_T + GEMM_3_T) 对应于
\[\texttt{dst} = \texttt{alpha} \cdot \texttt{src1} ^T \cdot \texttt{src2} + \texttt{beta} \cdot \texttt{src3} ^T\]
void cv::cuda::mulAndScaleSpectrums | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
int | flags, | ||
float | scale, | ||
bool | conjB = false , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
对两个傅里叶变换做逐个元素乘法,并对结果进行缩放。
src1 | 第一个频谱。 |
src2 | 第二个频谱,尺寸和类型应与 a 相同。 |
dst | 目标频谱。 |
flags | 用于使 CPU/CUDA 接口更为相似的模拟参数,只需添加一个 0 值即可。 |
scale | 缩放系数。 |
conjB | 可选标志,用于指定在乘法之前是否需要对第二个频谱进行共轭。 |
stream | Stream 用于异步版本。 |
目前,只支持以交错格式位于完全(非打包)CV_32FC2 复频谱中。
void cv::cuda::mulSpectrums | ( | InputArray | src1, |
InputArray | src2, | ||
OutputArray | dst, | ||
int | flags, | ||
bool | conjB = false , |
||
Stream & | stream = Stream::Null() |
||
) |
#include <opencv2/cudaarithm.hpp>
对两个傅里叶变换做逐个元素乘法。
src1 | 第一个频谱。 |
src2 | 第二个频谱,尺寸和类型应与 a 相同。 |
dst | 目标频谱。 |
flags | 用于使 CPU/CUDA 接口更为相似的模拟参数。 |
conjB | 可选标志,用于指定在乘法之前是否需要对第二个频谱进行共轭。 |
stream | Stream 用于异步版本。 |
目前,只支持以交错格式位于完全(非打包)CV_32FC2 复频谱中。