OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。

詳細説明

クラス

class  cv::cuda::Convolution
 畳み込み(または相互相関)演算子の基底クラス。 : 続き...
 
class  cv::cuda::DFT
 cv::Algorithmとして実装されたDFT演算子の基底クラス。 : 続き...
 

関数

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())
 2つのフーリエスペクトルの要素ごとの乗算を行い、結果をスケーリングする。
 
void cv::cuda::mulSpectrums (InputArray src1, InputArray src2, OutputArray dst, int flags, bool conjB=false, Stream &stream=Stream::Null())
 2つのフーリエスペクトルの要素ごとの乗算を行う。
 

関数詳解

◆ 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非同期版のための Stream

実数行列 ( CV32FC1 ) およびインターリーブ形式の複素数行列を扱う場合に使用する。

ソース行列は連続している必要がある。そうでない場合は再確保とデータコピーが行われる。関数は、ソース行列のフラグ・サイズ・チャンネル数に応じて動作モードを選択する:

  • ソース行列が複素数で、出力が実数として指定されていない場合、出力先行列は複素数となり、dft_size サイズと CV_32FC2 型を持つ。出力先行列は DFT の完全な結果(順方向または逆方向)を含む。
  • ソース行列が複素数で、出力が実数として指定されている場合、関数はその入力が順方向変換の結果であると仮定する(次の項目を参照)。出力先行列は dft_size サイズと CV_32FC1 型を持つ。これは逆 DFT の結果を含む。
  • ソース行列が実数(型が CV_32FC1 )の場合、順方向 DFT が実行される。DFT の結果は複素数 ( 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>

一般化行列乗算を実行する。

引数
src11番目の積をとる入力行列。CV_32FC1、CV_64FC1、CV_32FC2、またはCV_64FC2型でなければならない。
src2src1 と同じ型の2番目の積をとる入力行列。
alpha行列積の重み。
src3行列積に加算される3番目のオプションのデルタ行列。src1 および src2 と同じ型でなければならない。
betasrc3 の重み。
dst出力先の行列。適切なサイズと、入力行列と同じ型を持つ。
flags演算フラグ:
  • GEMM_1_T src1 を転置する
  • GEMM_2_T src2 を転置する
  • GEMM_3_T src3 を転置する
stream非同期版のための 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>

2つのフーリエスペクトルの要素ごとの乗算を実行し、結果をスケーリングする。

引数
src11番目のスペクトル。
src2a と同じサイズおよび型の2番目のスペクトル。
dst出力先のスペクトル。
flagsCPU/CUDAインターフェースの類似性のために使用されるダミー引数。単純に 0 を渡す。
scaleスケール定数。
conjB乗算の前に2番目のスペクトルを共役にする必要があるかどうかを指定するオプションのフラグ。
stream非同期版のための 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>

2つのフーリエスペクトルの要素ごとの乗算を実行する。

引数
src11番目のスペクトル。
src2a と同じサイズおよび型の2番目のスペクトル。
dst出力先のスペクトル。
flagsCPU/CUDAインターフェースの類似性のために使用されるダミー引数。
conjB乗算の前に2番目のスペクトルを共役にする必要があるかどうかを指定するオプションのフラグ。
stream非同期版のための Stream

現時点では、インターリーブ形式の完全な(パックされていない)CV_32FC2 複素数スペクトルのみがサポートされている。

参照
mulSpectrums