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

詳細説明

本節で説明する関数とクラスは、2D画像に対してさまざまな線形または非線形のフィルタリング処理を実行するために使用される。

覚え書き
  • erodeやdilateなどのすべての基本的なモルフォロジー演算子を含むサンプルは、opencv_source_code/samples/gpu/morphology.cpp にある

クラス

class  cv::cuda::Filter
 すべてのCUDAフィルタに共通のインターフェース : 続き...
 

関数

Ptr< Filtercv::cuda::createBoxFilter (int srcType, int dstType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 正規化された2Dボックスフィルタを生成する。
 
Ptr< Filtercv::cuda::createBoxMaxFilter (int srcType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 最大値フィルタを生成する。
 
Ptr< Filtercv::cuda::createBoxMinFilter (int srcType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 最小値フィルタを生成する。
 
Ptr< Filtercv::cuda::createColumnSumFilter (int srcType, int dstType, int ksize, int anchor=-1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 垂直方向の1Dボックスフィルタを生成する。
 
Ptr< Filtercv::cuda::createDerivFilter (int srcType, int dstType, int dx, int dy, int ksize, bool normalize=false, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
 一般化されたDeriv演算子を生成する。
 
Ptr< Filtercv::cuda::createGaussianFilter (int srcType, int dstType, Size ksize, double sigma1, double sigma2=0, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
 ガウシアンフィルタを生成する。
 
Ptr< Filtercv::cuda::createLaplacianFilter (int srcType, int dstType, int ksize=1, double scale=1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 ラプラシアン演算子を生成する。
 
Ptr< Filtercv::cuda::createLinearFilter (int srcType, int dstType, InputArray kernel, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 非分離型の線形2Dフィルタを生成する。
 
Ptr< Filtercv::cuda::createMorphologyFilter (int op, int srcType, InputArray kernel, Point anchor=Point(-1, -1), int iterations=1)
 2Dモルフォロジーフィルタを生成する。
 
Ptr< Filtercv::cuda::createRowSumFilter (int srcType, int dstType, int ksize, int anchor=-1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 水平方向の1Dボックスフィルタを生成する。
 
Ptr< Filtercv::cuda::createScharrFilter (int srcType, int dstType, int dx, int dy, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
 垂直または水平方向のScharr演算子を生成する。
 
Ptr< Filtercv::cuda::createSeparableLinearFilter (int srcType, int dstType, InputArray rowKernel, InputArray columnKernel, Point anchor=Point(-1,-1), int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
 分離型の線形フィルタを生成する。インプレース処理に対応している。
 
Ptr< Filtercv::cuda::createSobelFilter (int srcType, int dstType, int dx, int dy, int ksize=3, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
 Sobel演算子を生成する。
 

関数詳解

◆ createBoxFilter()

Ptr< Filter > cv::cuda::createBoxFilter ( int srcType,
int dstType,
Size ksize,
Point anchor = Point(-1, -1),
int borderMode = BORDER_DEFAULT,
Scalar borderVal = Scalar::all(0) )

#include <opencv2/cudafilters.hpp>

正規化された2Dボックスフィルタを生成する。

引数
srcType入力画像の型。現時点ではCV_8UC1、CV_8UC4、CV_32FC1のみがサポートされている。
dstType出力画像の型。現時点ではsrcと同じ型のみがサポートされている。
ksizeカーネルサイズ。
anchorアンカー点。デフォルト値のPoint(-1, -1)は、アンカーがカーネルの中心にあることを意味する。
borderModeピクセル外挿方法。詳細はborderInterpolateを参照のこと。
borderValデフォルトの境界値。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。
参照
boxFilter

◆ createBoxMaxFilter()

Ptr< Filter > cv::cuda::createBoxMaxFilter ( int srcType,
Size ksize,
Point anchor = Point(-1, -1),
int borderMode = BORDER_DEFAULT,
Scalar borderVal = Scalar::all(0) )

#include <opencv2/cudafilters.hpp>

最大値フィルタを生成する。

引数
srcType入出力画像の型。CV_8UC1とCV_8UC4のみがサポートされている。
ksizeカーネルサイズ。
anchorアンカー点。デフォルト値の(-1)は、アンカーがカーネルの中心にあることを意味する。
borderModeピクセル外挿方法。詳細はborderInterpolateを参照のこと。
borderValデフォルトの境界値。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。

◆ createBoxMinFilter()

Ptr< Filter > cv::cuda::createBoxMinFilter ( int srcType,
Size ksize,
Point anchor = Point(-1, -1),
int borderMode = BORDER_DEFAULT,
Scalar borderVal = Scalar::all(0) )

#include <opencv2/cudafilters.hpp>

最小値フィルタを作成する。

引数
srcType入出力画像の型。CV_8UC1とCV_8UC4のみがサポートされている。
ksizeカーネルサイズ。
anchorアンカー点。デフォルト値の(-1)は、アンカーがカーネルの中心にあることを意味する。
borderModeピクセル外挿方法。詳細はborderInterpolateを参照のこと。
borderValデフォルトの境界値。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。

◆ createColumnSumFilter()

Ptr< Filter > cv::cuda::createColumnSumFilter ( int srcType,
int dstType,
int ksize,
int anchor = -1,
int borderMode = BORDER_DEFAULT,
Scalar borderVal = Scalar::all(0) )

#include <opencv2/cudafilters.hpp>

垂直方向の1次元ボックスフィルタを作成する。

引数
srcType入力画像の型。現時点ではCV_8UC1型のみがサポートされている。
dstType出力画像の型。現時点ではCV_32FC1型のみがサポートされている。
ksizeカーネルサイズ。
anchorアンカー点。デフォルト値の(-1)は、アンカーがカーネルの中心にあることを意味する。
borderModeピクセル外挿方法。詳細はborderInterpolateを参照のこと。
borderValデフォルトの境界値。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。

◆ createDerivFilter()

Ptr< Filter > cv::cuda::createDerivFilter ( int srcType,
int dstType,
int dx,
int dy,
int ksize,
bool normalize = false,
double scale = 1,
int rowBorderMode = BORDER_DEFAULT,
int columnBorderMode = -1 )

#include <opencv2/cudafilters.hpp>

一般化された微分(Deriv)演算子を作成する。

引数
srcType入力画像の型。
dstType出力配列の型。
dxx に関する微分の次数。
dyy に関する微分の次数。
ksizeアパーチャサイズ。詳細はgetDerivKernelsを参照のこと。
normalizeフィルタ係数を正規化(スケールダウン)するかどうかを示すフラグ。詳細はgetDerivKernelsを参照のこと。
scale計算された微分値に対する省略可能なスケール係数。デフォルトではスケーリングは適用されない。詳細はgetDerivKernelsを参照のこと。
rowBorderMode垂直方向のピクセル外挿方法。詳細はborderInterpolateを参照のこと。
columnBorderMode水平方向のピクセル外挿方法。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。

◆ createGaussianFilter()

Ptr< Filter > cv::cuda::createGaussianFilter ( int srcType,
int dstType,
Size ksize,
double sigma1,
double sigma2 = 0,
int rowBorderMode = BORDER_DEFAULT,
int columnBorderMode = -1 )

#include <opencv2/cudafilters.hpp>

ガウシアンフィルタを作成する。

引数
srcType入力画像の型。
dstType出力配列の型。
ksizeアパーチャサイズ。詳細はgetGaussianKernelを参照のこと。
sigma1水平方向のガウスシグマ。詳細はgetGaussianKernelを参照のこと。
sigma2垂直方向のガウスシグマ。0の場合は \(\texttt{sigma2}\leftarrow\texttt{sigma1}\) となる。
rowBorderMode垂直方向のピクセル外挿方法。詳細はborderInterpolateを参照のこと。
columnBorderMode水平方向のピクセル外挿方法。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。
参照
GaussianBlur

◆ createLaplacianFilter()

Ptr< Filter > cv::cuda::createLaplacianFilter ( int srcType,
int dstType,
int ksize = 1,
double scale = 1,
int borderMode = BORDER_DEFAULT,
Scalar borderVal = Scalar::all(0) )

#include <opencv2/cudafilters.hpp>

ラプラシアン演算子を作成する。

引数
srcType入力画像の型。1チャンネルおよび4チャンネルのCV_8U、CV_16U、CV_32F画像をサポートする。
dstType出力画像の型。現時点ではsrcと同じ型のみがサポートされている。
ksize2次微分フィルタを計算するために使用するアパーチャサイズ(getDerivKernelsを参照)。正の奇数でなければならない。ksize = 1とksize = 3のみがサポートされている。
scale計算されたラプラシアン値に対する省略可能なスケール係数。デフォルトではスケーリングは適用されない(getDerivKernelsを参照)。
borderModeピクセル外挿方法。詳細はborderInterpolateを参照のこと。
borderValデフォルトの境界値。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。
参照
Laplacian

◆ createLinearFilter()

Ptr< Filter > cv::cuda::createLinearFilter ( int srcType,
int dstType,
InputArray kernel,
Point anchor = Point(-1, -1),
int borderMode = BORDER_DEFAULT,
Scalar borderVal = Scalar::all(0) )

#include <opencv2/cudafilters.hpp>

分離不可能な線形2次元フィルタを作成する。

引数
srcType入力画像の型。1チャンネルおよび4チャンネルのCV_8U、CV_16U、CV_32F画像をサポートする。
dstType出力画像の型。現時点ではsrcと同じ型のみがサポートされている。
kernelフィルタ係数の2D配列。
anchorアンカー点。デフォルト値のPoint(-1, -1)は、アンカーがカーネルの中心にあることを意味する。
borderModeピクセル外挿方法。詳細はborderInterpolateを参照のこと。
borderValデフォルトの境界値。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。
参照
filter2D

◆ createMorphologyFilter()

Ptr< Filter > cv::cuda::createMorphologyFilter ( int op,
int srcType,
InputArray kernel,
Point anchor = Point(-1, -1),
int iterations = 1 )

#include <opencv2/cudafilters.hpp>

2次元モルフォロジーフィルタを作成する。

引数
opモルフォロジー演算の種類。次の種類が利用可能である:
  • MORPH_ERODE 収縮
  • MORPH_DILATE 膨張
  • MORPH_OPEN オープニング
  • MORPH_CLOSE クロージング
  • MORPH_GRADIENT モルフォロジー勾配
  • MORPH_TOPHAT 「トップハット」
  • MORPH_BLACKHAT 「ブラックハット」
srcType入出力画像の型。CV_8UC1、CV_8UC4、CV_32FC1、CV_32FC4のみがサポートされている。
kernelモルフォロジー演算用の2D 8ビット構造化要素。
anchor構造化要素内のアンカー位置。負の値はアンカーが中心にあることを意味する。
iterations収縮と膨張を適用する回数。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。
参照
morphologyEx

◆ createRowSumFilter()

Ptr< Filter > cv::cuda::createRowSumFilter ( int srcType,
int dstType,
int ksize,
int anchor = -1,
int borderMode = BORDER_DEFAULT,
Scalar borderVal = Scalar::all(0) )

#include <opencv2/cudafilters.hpp>

水平方向の1次元ボックスフィルタを作成する。

引数
srcType入力画像の型。現時点ではCV_8UC1型のみがサポートされている。
dstType出力画像の型。現時点ではCV_32FC1型のみがサポートされている。
ksizeカーネルサイズ。
anchorアンカー点。デフォルト値の(-1)は、アンカーがカーネルの中心にあることを意味する。
borderModeピクセル外挿方法。詳細はborderInterpolateを参照のこと。
borderValデフォルトの境界値。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。

◆ createScharrFilter()

Ptr< Filter > cv::cuda::createScharrFilter ( int srcType,
int dstType,
int dx,
int dy,
double scale = 1,
int rowBorderMode = BORDER_DEFAULT,
int columnBorderMode = -1 )

#include <opencv2/cudafilters.hpp>

垂直または水平方向のScharr演算子を作成する。

引数
srcType入力画像の型。
dstType出力配列の型。
dxx方向の微分の階数。
dyy方向の微分の階数。
scale計算された微分値に対する省略可能なスケール係数。デフォルトではスケーリングは適用されない。詳細はgetDerivKernelsを参照のこと。
rowBorderMode垂直方向のピクセル外挿方法。詳細はborderInterpolateを参照のこと。
columnBorderMode水平方向のピクセル外挿方法。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。
参照
Scharr

◆ createSeparableLinearFilter()

Ptr< Filter > cv::cuda::createSeparableLinearFilter ( int srcType,
int dstType,
InputArray rowKernel,
InputArray columnKernel,
Point anchor = Point(-1,-1),
int rowBorderMode = BORDER_DEFAULT,
int columnBorderMode = -1 )

#include <opencv2/cudafilters.hpp>

分離可能な線形フィルタを作成する。インプレース処理をサポートしている。

引数
srcType入力配列の型。
dstType出力配列の型。
rowKernel水平方向のフィルタ係数。サイズが <= 32 のカーネルをサポートする。行方向のフィルタリングを無視するために noArray() がサポートされている。
columnKernel垂直方向のフィルタ係数。サイズが <= 32 のカーネルをサポートする。列方向のフィルタリングを無視するために noArray() がサポートされている。
anchorカーネル内のアンカー位置。負の値はアンカーがアパーチャの中心に配置されることを意味する。
rowBorderMode垂直方向のピクセル外挿方法。詳細はborderInterpolateを参照のこと。
columnBorderMode水平方向のピクセル外挿方法。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。
参照
sepFilter2D

◆ createSobelFilter()

Ptr< Filter > cv::cuda::createSobelFilter ( int srcType,
int dstType,
int dx,
int dy,
int ksize = 3,
double scale = 1,
int rowBorderMode = BORDER_DEFAULT,
int columnBorderMode = -1 )

#include <opencv2/cudafilters.hpp>

Sobel演算子を作成する。

引数
srcType入力画像の型。
dstType出力配列の型。
dxx に関する微分の次数。
dyy に関する微分の次数。
ksize拡張Sobelカーネルのサイズ。指定可能な値は1、3、5、7である。
scale計算された微分値に対する省略可能なスケール係数。デフォルトではスケーリングは適用されない。詳細はgetDerivKernelsを参照のこと。
rowBorderMode垂直方向のピクセル外挿方法。詳細はborderInterpolateを参照のこと。
columnBorderMode水平方向のピクセル外挿方法。
覚え書き
CUDA Stream 内で適用する場合、各 Stream ごとに個別のフィルタインスタンスを生成する必要がある。複数のストリーム間で単一のインスタンスを共有することはサポートされておらず、ストリーム固有の内部状態のために未定義動作を引き起こす可能性がある。
参照
Sobel