![]() |
OpenCV 4.12.0
开源计算机视觉
|
类 | |
| 类 | cv::cuda::Convolution |
| 卷积(或互相关)运算符的基类。: 更多... | |
| 类 | cv::cuda::DFT |
| DFT 运算符作为 cv::Algorithm 的基类。: 更多... | |
函数 | |
| 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 用于异步版本。 |
用于处理实数矩阵 ( 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 | 添加到矩阵积的第三个可选增量矩阵。它应与 src1 和 src2 具有相同的类型。 |
| beta | src3 的权重。 |
| dst | 目标矩阵。它具有适当的大小,并且与输入矩阵的类型相同。 |
| flags | 操作标志
|
| 流 | Stream 用于异步版本。 |
该函数执行类似于 BLAS 级别的 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 用于异步版本。 |
现在仅支持交错格式的完整(未打包)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 用于异步版本。 |
现在仅支持交错格式的完整(未打包)CV_32FC2 复数频谱。