[32/64bit] 1次元あるいは2次元の配列に対して,離散コサイン変換(順変換,逆変換)を行います.
core_dct p1,p2,p3
p1 = sptr : IntPtr src p2 = sptr : IntPtr dst p3 = int : int flags
(プラグイン / モジュール : OpenCvSharpExtern.dll)
関数 cv::dct は,1次元あるいは2次元の浮動小数点型配列に対して,離散コサイン変換(DCT)を行います: N 個の要素を持つ 1 次元ベクトルに対するコサイン変換. \Y = C^{(N)} \cdot X\] となります. ここで \[C^{(N)}_{jk}= \sqrt{\alpha_j/N}\C^{(N)}_{jk}= C^{(N)}_{jk}= C^{(N)}_{jk}= C^{(N)}_{k+1)j}{2N}\右)になります。] となり、j > 0では、\\0=1\、\\j=2?となります。 N個の要素を持つ1次元ベクトルの逆コサイン変換です。 \♪ X = ♪ left (C^{(N)})\¶X = ¶left (C^{(N)} ¶right )^{-1} ¶cdot Y = ¶left (C^{(N)} ¶right )^T ¶C\♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪] (C^{(N)}\)は直交行列なので、\(C^{(N)})(C^{(N)}\\left(C^{(N)}\right)^T = I\) ) M x N 行列の2次元コサイン変換を行います。 \Y = C^{(N)} \cdot X \cdot left (C^{(N)} \right )^T\]となります。 M×N行列の逆2次元コサイン変換です。 \この関数は,入力配列のフラグとサイズを考慮して処理モードを決定します: (flags & DCT_INVERSE) == 0 の場合,この関数は 1 次元または 2 次元の順変換を行います。それ以外の場合は,1次元または2次元の逆変換を行います。 (flags & DCT_ROWS) != 0 の場合,この関数は各行に対して1次元変換を行います。 配列が1つの列,あるいは1つの行である場合,この関数は1次元の変換を行います。 注意現在のdctは,偶数サイズの配列(2, 4, 6 ...)をサポートしています.データ解析や近似のために,必要に応じて配列をパディングすることができます.また,関数の性能は,配列のサイズに大きく依存し,単調ではありません( getOptimalDFTSize を参照してください).現在の実装では,サイズ N のベクトルに対する DCT は,サイズ N/2 のベクトルに対する DFT を介して計算されます.したがって,最適な DCT サイズ N1 >= N は次のように計算されます: size_t getOptimalDCTSize(size_t N) { return 2*getOptimalDFTSize((N+1)/2); }N1 = getOptimalDCTSize(N);See alsodft , getOptimalDFTSize , idct 元関数名(C#): core_dct 元DLLエクスポート名: core_dct 参照元CSファイル: Internal\PInvoke\NativeMethods\core\NativeMethods_core.cs ▼ C言語側関数定義
CVAPI(ExceptionStatus) core_dct(cv::_InputArray *src, cv::_OutputArray *dst, int flags) { BEGIN_WRAP cv::dct(*src, *dst, flags); END_WRAP }
プラグイン / モジュール | OpenCvSharpExtern.dll |
バージョン | 1.00 |
作成日 | 2021/11/30 |
著作者 | inovia |
URL | https://hsp.moe/ |
備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
タイプ | OpenCVSharpラッパーDLL |
グループ | NativeMethods_core |
対応環境 |
|
hs ファイル | hsphelp\OpenCvSharpExtern.hs |