OpenCV  4.10.0
开源计算机视觉
正在加载...
正在搜索...
没有匹配项
| 函数

详细说明

类  cv::cuda::Convolution
 卷积(或互相关)算子的基础类:更多...
 
类  cv::cuda::DFT
 作为 cv::AlgorithmDFT 算子的基础类:更多...
 

函数

Ptr< Convolutioncv::cuda::createConvolution (Size user_block_size=Size())
 创建 cuda::Convolution 的实现。
 
Ptr< DFTcv::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())
 对两个傅里叶变换做逐个元素乘法。
 

函数文档

◆ createConvolution()

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 ,您可以以牺牲速度为代价来降低内存需求。

◆ createDFT()

Ptr< DFT > cv::cuda::createDFT ( Size  dft_size,
int  flags 
)

#include <opencv2/cudaarithm.hpp>

创建 cuda::DFT 的实现。

参数
dft_size图像大小
flags可选标记
  • DFT_ROWS 转换源矩阵的每一行
  • DFT_SCALE 缩放结果:将其除以变换中的元素个数(从 dft_size 获取)。
  • DFT_INVERSE 反转 DFT。用于复数-复数情况(实数-复数和复数-实数情况始终分别为正向和反向)。
  • DFT_COMPLEX_INPUT 指定输入将以 2 个通道的复数形式出现。
  • DFT_REAL_OUTPUT 指定输出为实数。源矩阵是实数-复数变换的结果,因此目标矩阵必须为实数。

◆ dft()

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可选标记
  • DFT_ROWS 转换源矩阵的每一行
  • DFT_SCALE 缩放结果:将其除以变换中的元素个数(从 dft_size 获取)。
  • DFT_INVERSE 反转 DFT。用于复数-复数情况(实数-复数和复数-实数情况始终分别为正向和反向)。
  • DFT_COMPLEX_INPUT 指定输入为带有 2 个通道的复数输入。
  • DFT_REAL_OUTPUT 指定输出为实数。源矩阵是实数-复数变换的结果,因此目标矩阵必须为实数。
streamStream 用于异步版本。

用于处理实数矩阵 ( CV32FC1 ) 和交错格式中的复数矩阵 ( CV32FC2 )。

源矩阵应该是连续的,否则将执行重新分配和数据复制。此函数将根据源矩阵的标志、大小和通道数选择操作模式

  • 如果源矩阵是复数且输出未指定为实数,则目标矩阵是复数且具有 dft_size 大小和 CV_32FC2 类型。目标矩阵包含 DFT(正向或反向)的完整结果。
  • 如果源矩阵是复数并且输出被指定为实数,则此函数假定其输入是正向变换的结果(参见下一项)。目标矩阵具有 dft_size 大小和 CV_32FC1 类型。它包含反 DFT 的结果。
  • 如果源矩阵是实数(其类型为 CV_32FC1 ),则将执行正向 DFTDFT 的结果打包到复数 ( CV_32FC2 ) 矩阵中。因此,目标矩阵的宽度为 dft_size.width / 2 + 1 。但是,如果源是一个单列,则减少高度而不是宽度。
另请参见
dft

◆ gemm()

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 相同。
betasrc3 的权重。
dst目标矩阵。其已具有合适的尺寸和与输入矩阵相同的类型。
flags运算标志
  • GEMM_1_T 转置 src1
  • GEMM_2_T 转置 src2
  • GEMM_3_T 转置 src3
streamStream 用于异步版本。

此函数执行类似于 BLAS level 中的 gemm 函数的广义矩阵乘法

  1. 例如,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\]

注意
转置运算不支持 CV_64FC2 输入类型。
另请参见
gemm

◆ mulAndScaleSpectrums()

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可选标志,用于指定在乘法之前是否需要对第二个频谱进行共轭。
streamStream 用于异步版本。

目前,只支持以交错格式位于完全(非打包)CV_32FC2 复频谱中。

另请参见
mulSpectrums

◆ mulSpectrums()

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可选标志,用于指定在乘法之前是否需要对第二个频谱进行共轭。
streamStream 用于异步版本。

目前,只支持以交错格式位于完全(非打包)CV_32FC2 复频谱中。

另请参见
mulSpectrums