OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項

詳細描述

類  cv::cuda::Convolution
 卷積(或互相關)運算子的基類。: 更多...
 
類  cv::cuda::DFT
 DFT 運算子作為 cv::Algorithm 的基類。: 更多...
 

函式

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 將輸出指定為實數。源矩陣是實數-複數變換的結果,因此目標矩陣必須是實數。
Stream 用於非同步版本。

用於處理實數矩陣 ( 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新增到矩陣積的第三個可選增量矩陣。它應與 src1 和 src2 具有相同的型別。
betasrc3 的權重。
dst目標矩陣。它具有適當的大小,並且與輸入矩陣的型別相同。
flags操作標誌
  • GEMM_1_T 轉置 src1
  • GEMM_2_T 轉置 src2
  • GEMM_3_T 轉置 src3
Stream 用於非同步版本。

該函式執行類似於 BLAS 級別的 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可選標誌,用於指定是否需要在乘法之前共軛第二個頻譜。
Stream 用於非同步版本。

現在僅支援交錯格式的完整(未打包)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可選標誌,用於指定是否需要在乘法之前共軛第二個頻譜。
Stream 用於非同步版本。

現在僅支援交錯格式的完整(未打包)CV_32FC2 複數頻譜。

另請參見
mulSpectrums