画像フィルタリング

このセクションでは,2次元画像上の様々な線形・非線形フィルタリング処理に用いる関数とクラスについて述べます.

参考: 画像フィルタリング

gpu::BaseRowFilter_GPU

Comments from the Wiki

gpu::BaseRowFilter_GPU

2次元配列の行を処理する線形または非線形フィルタの基底クラス.このようなフィルタは,分離型フィルタの「水平方向」フィルタリング処理で利用されます.

class BaseRowFilter_GPU
{
public:
    BaseRowFilter_GPU(int ksize_, int anchor_);
    virtual ~BaseRowFilter_GPU() {}
    virtual void operator()(const GpuMat& src, GpuMat& dst) = 0;
    int ksize, anchor;
};

注意事項: このクラスは,出力画像用にメモリを割り当てません.これは通常, cv::gpu::FilterEngine_GPU の内部で利用されます.

gpu::BaseColumnFilter_GPU

Comments from the Wiki

gpu::BaseColumnFilter_GPU

この基底クラスは,2次元配列の列を処理する線形または非線形フィルタの基底クラスです.このようなフィルタは,分離型フィルタの「垂直方向」フィルタリング処理で利用されます.

class BaseColumnFilter_GPU
{
public:
    BaseColumnFilter_GPU(int ksize_, int anchor_);
    virtual ~BaseColumnFilter_GPU() {}
    virtual void operator()(const GpuMat& src, GpuMat& dst) = 0;
    int ksize, anchor;
};

注意事項: このクラスは,出力画像用にメモリを割り当てません.これは通常, cv::gpu::FilterEngine_GPU の内部で利用されます.

gpu::BaseFilter_GPU

Comments from the Wiki

gpu::BaseFilter_GPU

非分離型2次元フィルタの基底クラスです.

class CV_EXPORTS BaseFilter_GPU
{
public:
    BaseFilter_GPU(const Size& ksize_, const Point& anchor_);
    virtual ~BaseFilter_GPU() {}
    virtual void operator()(const GpuMat& src, GpuMat& dst) = 0;
    Size ksize;
    Point anchor;
};

注意事項: このクラスは,出力画像用にメモリを割り当てません.これは通常, cv::gpu::FilterEngine_GPU の内部で利用されます.

gpu::FilterEngine_GPU

Comments from the Wiki

gpu::FilterEngine_GPU

フィルタエンジンの基底クラスです.

class CV_EXPORTS FilterEngine_GPU
{
public:
    virtual ~FilterEngine_GPU() {}

    virtual void apply(const GpuMat& src, GpuMat& dst,
                       Rect roi = Rect(0,0,-1,-1)) = 0;
};

画像に任意のフィルタリング処理を適用するために,このクラスを利用できます.これは,必要なすべての中間バッファを含んでいます.初期化された FilterEngine_GPU インスタンスへのポインタは,後述するように,さまざまな create*Filter_GPU 関数によって返され, gpu::filter2D()gpu::erode()gpu::Sobel() などの高レベル関数内部で利用されます.

関数の代わりに FilterEngine_GPU を利用することで,中間バッファの不要なメモリ割り当てを避けることができ,パフォーマンスが大きく向上します.

while (...)
{
    cv::gpu::GpuMat src = getImg();
    cv::gpu::GpuMat dst;
    // 反復毎に,バッファの割り当てと解放をします.
    cv::gpu::GaussianBlur(src, dst, ksize, sigma1);
}

// バッファを 1 度だけ割り当てます.
cv::Ptr<cv::gpu::FilterEngine_GPU> filter =
    cv::gpu::createGaussianFilter_GPU(CV_8UC4, ksize, sigma1);
while (...)
{
    cv::gpu::GpuMat src = getImg();
    cv::gpu::GpuMat dst;
    filter->apply(src, dst, cv::Rect(0, 0, src.cols, src.rows));
}
// バッファを 1 度だけ解放します.
filter.release();

FilterEngine_GPU 画像中の矩形部分領域を処理します.もし roi == Rect(0,0,-1,-1) である場合,デフォルトでは, FilterEngine_GPU は画像の内部領域( Rect(anchor.x, anchor.y, src_size.width - ksize.width, src_size.height - ksize.height) )を処理します.効率化のために,インデックスが画像外にはみ出しているか否かをチェックしないフィルタもある事が理由です.画像全体の処理をサポートするフィルタ,しないフィルタ,画像の型に関する制限事項などについては後述します.

注意事項: GPUフィルタは,置換モードをサポートしていません.

参考: cv::gpu::BaseRowFilter_GPU , cv::gpu::BaseColumnFilter_GPU , cv::gpu::BaseFilter_GPU , cv::gpu::createFilter2D_GPU , cv::gpu::createSeparableFilter_GPU , cv::gpu::createBoxFilter_GPU , cv::gpu::createMorphologyFilter_GPU , cv::gpu::createLinearFilter_GPU , cv::gpu::createSeparableLinearFilter_GPU , cv::gpu::createDerivFilter_GPU , cv::gpu::createGaussianFilter_GPU

cv::gpu::createFilter2D_GPU

Comments from the Wiki

Ptr<FilterEngine_GPU> createFilter2D_GPU(const Ptr<BaseFilter_GPU>& filter2D, int srcType, int dstType)

指定されたフィルタで,非分離型フィルタエンジンを作成します.

{非分離型の2次元フィルタ.}

パラメタ:
  • srcType – 入力画像の型. filter2D がサポートするものでなければいけません.
  • dstType – 出力画像の型. filter2D がサポートするものでなければいけません.

通常,この関数は, cv::gpu::createLinearFilter_GPU , cv::gpu::createBoxFilter_GPU などの高レベル関数の内部で利用されます.

cv::gpu::createSeparableFilter_GPU

Comments from the Wiki

Ptr<FilterEngine_GPU> createSeparableFilter_GPU(const Ptr<BaseRowFilter_GPU>& rowFilter, const Ptr<BaseColumnFilter_GPU>& columnFilter, int srcType, int bufType, int dstType)

指定されたフィルタで,分離型フィルタエンジンを作成します.

{「水平方向」の1次元フィルタ.} {「垂直方向」の1次元フィルタ.}

パラメタ:
  • srcType – 入力画像の型. rowFilter がサポートするものでなければいけません.
  • bufType – バッファ画像の型. rowFiltercolumnFilter がサポートするものでなければいけません.
  • dstType – 出力画像の型. columnFilter がサポートするものでなければいけません.

通常,この関数は, cv::gpu::createSeparableLinearFilter_GPU などの高レベル関数の内部で利用されます.

cv::gpu::getRowSumFilter_GPU

Comments from the Wiki

Ptr<BaseRowFilter_GPU> getRowSumFilter_GPU(int srcType, int sumType, int ksize, int anchor = -1)

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

パラメタ:
  • srcType – 入力画像.現在, CV_8UC1 型の画像のみがサポートされています.
  • sumType – 出力画像.現在, CV_32FC1 型の画像のみがサポートされています.
  • ksize – カーネルサイズ.
  • anchor – アンカーポイント.デフォルト値 (-1) は,アンカーがカーネル中心にあることを意味します.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

cv::gpu::getColumnSumFilter_GPU

Comments from the Wiki

Ptr<BaseColumnFilter_GPU> getColumnSumFilter_GPU(int sumType, int dstType, int ksize, int anchor = -1)

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

パラメタ:
  • sumType – 入力画像.現在, CV_8UC1 型の画像のみがサポートされています.
  • dstType – 出力画像.現在, CV_32FC1 型の画像のみがサポートされています.
  • ksize – カーネルサイズ.
  • anchor – アンカーポイント.デフォルト値 (-1) は,アンカーがカーネル中心にあることを意味します.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

cv::gpu::createBoxFilter_GPU

Comments from the Wiki

Ptr<FilterEngine_GPU> createBoxFilter_GPU(int srcType, int dstType, const Size& ksize, const Point& anchor = Point(-1, -1))

正規化された2次元ボックスフィルタを作成します.

Ptr<BaseFilter_GPU> getBoxFilter_GPU(int srcType, int dstType, const Size& ksize, Point anchor = Point(-1, -1))
パラメタ:
  • srcType – 入力画像の型. CV_8UC1 および CV_8UC4 のみがサポートされています.
  • dstType – 出力画像の型.サポートされる型は入力と同じです.
  • ksize – カーネルサイズ.
  • anchor – アンカーポイント.デフォルト値 Point(-1, -1) は,アンカーがカーネル中心にあることを意味します.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

参考: boxFilter() .

cv::gpu::boxFilter

Comments from the Wiki

void boxFilter(const GpuMat& src, GpuMat& dst, int ddepth, Size ksize, Point anchor = Point(-1, -1))

正規化されたボックスフィルタを用いて,画像を平滑化します.

パラメタ:
  • src – 入力画像. CV_8UC1 および CV_8UC4 型の画像のみがサポートされています.
  • dst – 出力画像. src と同じサイズ,同じ型になります.
  • ddepth – 出力画像のビット深度.入力画像のビット深度と同じもの( CV_8U ),あるいは 入力のビット深度を意味する -1 のみがサポートされます.
  • ksize – カーネルサイズ.
  • anchor – アンカーポイント.デフォルト値 Point(-1, -1) は,アンカーがカーネル中心にあることを意味します.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

参考: boxFilter() , cv::gpu::createBoxFilter_GPU .

cv::gpu::blur

Comments from the Wiki

void blur(const GpuMat& src, GpuMat& dst, Size ksize, Point anchor = Point(-1, -1))

正規化されたボックスフィルタの別名.

パラメタ:
  • src – 入力画像. CV_8UC1 および CV_8UC4 型の画像のみがサポートされています.
  • dst – 出力画像. src と同じサイズ,同じ型になります.
  • ksize – カーネルサイズ.
  • anchor – アンカーポイント.デフォルト値 Point(-1, -1) は,アンカーがカーネル中心にあることを意味します.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

参考: blur() , gpu::boxFilter() .

cv::gpu::createMorphologyFilter_GPU

Comments from the Wiki

Ptr<FilterEngine_GPU> createMorphologyFilter_GPU(int op, int type, const Mat& kernel, const Point& anchor = Point(-1, -1), int iterations = 1)

2次元のモルフォロジーフィルタを作成します.

Ptr<BaseFilter_GPU> getMorphologyFilter_GPU(int op, int type, const Mat& kernel, const Size& ksize, Point anchor=Point(-1, -1))

{モルフォロジー演算ID. MORPH_ERODEMORPH_DILATE のみがサポートされています.}

パラメタ:
  • type – 入出力画像の型. CV_8UC1CV_8UC4 のみがサポートされています.
  • kernel – モルフォロジー演算で利用する,2次元,8ビットの構造要素.
  • size – 分離型モルフォロジー演算で利用する,水平および垂直方向の構造要素サイズ.
  • anchor – 構造要素内のアンカー位置.負の値は,アンカーが中心にあることを意味します.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

参考: createMorphologyFilter() .

cv::gpu::erode

Comments from the Wiki

void erode(const GpuMat& src, GpuMat& dst, const Mat& kernel, Point anchor = Point(-1, -1), int iterations = 1)

指定された構造要素を用いて,画像を収縮します.

パラメタ:
  • src – 入力画像. CV_8UC1 および CV_8UC4 型の画像のみがサポートされています.
  • dst – 出力画像. src と同じサイズ,同じ型になります.
  • kernel – 収縮に用いられる構造要素. kernel=Mat() の場合, 3 \times 3 の矩形構造要素が利用されます.
  • anchor – 構造要素内のアンカー位置.デフォルト値 (-1, -1) は,アンカーが構造要素中心にあることを意味します.
  • iterations – 収縮を行う回数.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

参考: erode() , cv::gpu::createMorphologyFilter_GPU .

cv::gpu::dilate

Comments from the Wiki

void dilate(const GpuMat& src, GpuMat& dst, const Mat& kernel, Point anchor = Point(-1, -1), int iterations = 1)

指定された構造要素を用いて,画像を膨張します.

パラメタ:
  • src – 入力画像. CV_8UC1 および CV_8UC4 型の画像のみがサポートされています.
  • dst – 出力画像. src と同じサイズ,同じ型になります.
  • kernel – 膨張に用いられる構造要素. kernel=Mat() の場合, 3 \times 3 の矩形構造要素が利用されます.
  • anchor – 構造要素内のアンカー位置.デフォルト値 (-1, -1) は,アンカーが構造要素中心にあることを意味します.
  • iterations – 膨張を行う回数.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

参考: dilate() , cv::gpu::createMorphologyFilter_GPU .

cv::gpu::morphologyEx

Comments from the Wiki

void morphologyEx(const GpuMat& src, GpuMat& dst, int op, const Mat& kernel, Point anchor = Point(-1, -1), int iterations = 1)

高度なモルフォロジー演算を,画像に適用します.

パラメタ:
  • src – 入力画像. CV_8UC1 および CV_8UC4 型の画像のみがサポートされています.
  • dst – 出力画像. src と同じサイズ,同じ型になります.
  • op

    モルフォロジー演算の種類.以下のうちの1つです:

    • MORPH_OPEN オープニング
    • MORPH_CLOSE クロージング
    • MORPH_GRADIENT モルフォロジー勾配
    • MORPH_TOPHAT 「トップハット」
    • MORPH_BLACKHAT 「ブラックハット」
  • kernel – 構造要素.
  • anchor – 構造要素内のアンカー位置.デフォルト値 Point(-1, -1) は,アンカーが構造要素中心にあることを意味します.
  • iterations – 収縮と膨張を適用する回数.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

参考: morphologyEx() .

cv::gpu::createLinearFilter_GPU

Comments from the Wiki

Ptr<FilterEngine_GPU> createLinearFilter_GPU(int srcType, int dstType, const Mat& kernel, const Point& anchor = Point(-1, -1))

非分離型線形フィルタを作成します.

Ptr<BaseFilter_GPU> getLinearFilter_GPU(int srcType, int dstType, const Mat& kernel, const Size& ksize, Point anchor = Point(-1, -1))
パラメタ:
  • srcType – 入力画像の型. CV_8UC1CV_8UC4 がサポートされます.
  • dstType – 出力画像の型.サポートされる型は入力と同じです.
  • kernel – フィルタ係数の2次元配列.このフィルタは,整数カーネルで動作します. kernelfloatdouble 型の場合は,固定小数点数が利用されます.
  • ksize – カーネルサイズ.
  • anchor – アンカー位置.デフォルト値 Point(-1, -1) は,アンカーがカーネル中心にあることを意味します.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

参考: createLinearFilter() .

cv::gpu::filter2D

Comments from the Wiki

void filter2D(const GpuMat& src, GpuMat& dst, int ddepth, const Mat& kernel, Point anchor=Point(-1, -1))

非分離型2次元線形フィルタを,画像に適用します.

パラメタ:
  • src – 入力画像. CV_8UC1 および CV_8UC4 型の画像のみがサポートされています.
  • dst – 出力画像. src と同じサイズ,同じチャンネル数になります.
  • ddepth – 出力画像のビット深度.負の値が与えられると, src.depth() と同じ値になります.サポートされるビット深度は,入力画像と同じものです.
  • kernel – フィルタ係数の2次元配列.このフィルタは,整数カーネルで動作します. kernelfloatdouble 型の場合は,固定小数点数が利用されます.
  • anchor – アンカー位置.これは,カーネル内のフィルタ対象点の相対位置を表します.このアンカーは,カーネル内部に位置します.デフォルト値 (-1, -1) は,アンカーがカーネル中心にあることを意味します.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

参考: filter2D() , cv::gpu::createLinearFilter_GPU .

cv::gpu::Laplacian

Comments from the Wiki

void Laplacian(const GpuMat& src, GpuMat& dst, int ddepth, int ksize = 1, double scale = 1)

Laplacian オペレータを,画像に適用します.

パラメタ:
  • src – 入力画像. CV_8UC1 および CV_8UC4 型の画像のみがサポートされています.
  • dst – 出力画像. src と同じサイズ,同じチャンネル数になります.
  • ddepth – 出力画像のビット深度.サポートされるビット深度は,入力画像と同じものです.
  • ksize – 2次微分フィルタを計算する際に利用されるアパーチャサイズ.詳細は, getDerivKernels() を参照してください.これは,正の奇数です. ksize = 1 と ksize = 3 のみがサポートされています.
  • scale – Laplacian 値を求めるための,オプションのスケールファクタ(デフォルトでは,スケーリングは適用されません. getDerivKernels() を参照してください).

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

参考: Laplacian() , gpu::filter2D() .

cv::gpu::getLinearRowFilter_GPU

Comments from the Wiki

Ptr<BaseRowFilter_GPU> getLinearRowFilter_GPU(int srcType, int bufType, const Mat& rowKernel, int anchor = -1, int borderType = BORDER_CONSTANT)

Creates primitive row filter with the specified kernel.

パラメタ:
  • srcType – 入力配列の型. CV_8UC1 , CV_8UC4 , CV_16SC1 , CV_16SC2 , CV_32SC1 , CV_32FC1 がサポートされています.
  • bufType – 中間バッファの型.チャンネル数は, srcType と同数でなければいけません.
  • rowKernel – フィルタ係数.
  • anchor – カーネル内のアンカー位置.負の値は,アンカーがアパーチャ中心にあることを意味します.
  • borderType – ピクセル外挿手法. borderInterpolate() を参照してください.制限事項については,後述します.

アルゴリズムには,2つのバージョンが存在します:NPP および OpenCV です. srcType == CV_8UC1 または srcType == CV_8UC4 ,かつ bufType == srcType の場合は NPP が呼び出され,それ以外の場合は OpenCV 版が呼び出されます.NPP は,境界の種類として BORDER_CONSTANT のみをサポートしており,画像外のインデックスをチェックしません.OpenCV 版は,バッファのビット深度として CV_32F のみをサポートしており,境界の種類は BORDER_REFLECT101 , BORDER_REPLICATE および BORDER_CONSTANT をサポートします.また,画像外のインデックスのチェックを行います.

参考: cv::gpu::getLinearColumnFilter_GPU , createSeparableLinearFilter() .

cv::gpu::getLinearColumnFilter_GPU

Comments from the Wiki

Ptr<BaseColumnFilter_GPU> getLinearColumnFilter_GPU(int bufType, int dstType, const Mat& columnKernel, int anchor = -1, int borderType = BORDER_CONSTANT)

指定したカーネルで,基本的な列フィルタを作成します.

パラメタ:
  • bufType – 中間バッファの型.チャンネル数は, dstType と同数でなければいけません.
  • dstType – 出力配列の型. CV_8UC1 , CV_8UC4 , CV_16SC1 , CV_16SC2 , CV_32SC1 , CV_32FC1 がサポートされています.
  • columnKernel – フィルタ係数.
  • anchor – カーネル内のアンカー位置.負の値は,アンカーがアパーチャ中心にあることを意味します.
  • borderType – ピクセル外挿手法. borderInterpolate() を参照してください.制限事項については,後述します.

アルゴリズムには,2つのバージョンが存在します:NPP および OpenCV です. srcType == CV_8UC1 または srcType == CV_8UC4 ,かつ bufType == srcType の場合は NPP が呼び出され,それ以外の場合は OpenCV 版が呼び出されます.NPP は,境界の種類として BORDER_CONSTANT のみをサポートしており,画像外のインデックスをチェックしません.OpenCV 版は,バッファのビット深度として CV_32F のみをサポートしており,境界の種類は BORDER_REFLECT101 , BORDER_REPLICATE および BORDER_CONSTANT をサポートします.また,画像外のインデックスのチェックを行います. 参考: cv::gpu::getLinearRowFilter_GPU , createSeparableLinearFilter() .

cv::gpu::createSeparableLinearFilter_GPU

Comments from the Wiki

Ptr<FilterEngine_GPU> createSeparableLinearFilter_GPU(int srcType, int dstType, const Mat& rowKernel, const Mat& columnKernel, const Point& anchor = Point(-1, -1), int rowBorderType = BORDER_DEFAULT, int columnBorderType = -1)

分離型線形フィルタエンジンを作成します.

パラメタ:
  • srcType – 入力配列の型. CV_8UC1 , CV_8UC4 , CV_16SC1 , CV_16SC2 , CV_32SC1 , CV_32FC1 がサポートされています.
  • dstType – 出力配列の型. CV_8UC1 , CV_8UC4 , CV_16SC1 , CV_16SC2 , CV_32SC1 , CV_32FC1 がサポートされています.
  • columnKernel (rowKernel,) – フィルタ係数.
  • anchor – カーネル内のアンカー位置.負の値は,アンカーがアパーチャ中心にあることを意味します.
  • columnBorderType (rowBorderType,) – 水平および垂直方向のピクセル外挿手法. borderInterpolate() を参照してください.制限事項に関しては, cv::gpu::getLinearRowFilter_GPU , cv::gpu::getLinearColumnFilter_GPU を参照してください.

参考: cv::gpu::getLinearRowFilter_GPU , cv::gpu::getLinearColumnFilter_GPU , createSeparableLinearFilter() .

cv::gpu::sepFilter2D

Comments from the Wiki

void sepFilter2D(const GpuMat& src, GpuMat& dst, int ddepth, const Mat& kernelX, const Mat& kernelY, Point anchor = Point(-1, -1), int rowBorderType = BORDER_DEFAULT, int columnBorderType = -1)

分離型2次元線形フィルタを,画像に適用します.

パラメタ:
  • src – 入力画像. CV_8UC1 , CV_8UC4 , CV_16SC1 , CV_16SC2 , CV_32SC1 , CV_32FC1 型の画像がサポートされます.
  • dst – 出力画像. src と同じサイズ,同じチャンネル数になります.
  • ddepth – 出力画像のビット深度. CV_8U , CV_16S , CV_32S および CV_32F がサポートされます.
  • kernelY (kernelX,) – フィルタ係数.
  • anchor – カーネル内のアンカー位置.デフォルト値 (-1, -1) は,アンカーが構造要素中心にあることを意味します.
  • columnBorderType (rowBorderType,) – ピクセル外挿手法. borderInterpolate() を参照してください.

参考: cv::gpu::createSeparableLinearFilter_GPU , sepFilter2D() .

cv::gpu::createDerivFilter_GPU

Comments from the Wiki

Ptr<FilterEngine_GPU> createDerivFilter_GPU(int srcType, int dstType, int dx, int dy, int ksize, int rowBorderType = BORDER_DEFAULT, int columnBorderType = -1)

一般化 Sobel オペレータに対するフィルタエンジンを作成します.

パラメタ:
  • srcType – 入力画像の型. CV_8UC1 , CV_8UC4 , CV_16SC1 , CV_16SC2 , CV_32SC1 , CV_32FC1 がサポートされています.
  • dstType – 出力画像の型.チャンネル数は, srcType と同数でなければいけません.ビット深度は, CV_8U , CV_16S , CV_32S and CV_32F をサポートしています.
  • dx – x に関する微分の次数.
  • dy – y に関する微分の次数.
  • ksize – アパーチャサイズ. getDerivKernels() を参照してください.
  • columnBorderType (rowBorderType,) – ピクセル外挿手法. borderInterpolate() を参照してください.

参考: cv::gpu::createSeparableLinearFilter_GPU , createDerivFilter() .

cv::gpu::Sobel

Comments from the Wiki

void Sobel(const GpuMat& src, GpuMat& dst, int ddepth, int dx, int dy, int ksize = 3, double scale = 1, int rowBorderType = BORDER_DEFAULT, int columnBorderType = -1)

一般化 Sobel オペレータ を,画像のいて起用します.

パラメタ:
  • src – 入力画像. CV_8UC1 , CV_8UC4 , CV_16SC1 , CV_16SC2 , CV_32SC1 , CV_32FC1 型の画像がサポートされています.
  • dst – 出力画像. src と同じサイズ,同じチャンネル数になります.
  • ddepth – 出力画像のビット深度. CV_8U , CV_16S , CV_32S および CV_32F がサポートされます.
  • dx – x に関する微分の次数.
  • dy – y に関する微分の次数.
  • ksize – 拡張 Sobel カーネルのサイズ.必ず 1,3,5,7 のいずれかです.
  • scale – 微分値を計算する際の,オプションのスケールファクタ(デフォルトでは,スケーリングは適用されません. getDerivKernels() を参照してください).
  • columnBorderType (rowBorderType,) – ピクセル外挿手法. borderInterpolate() を参照してください.

参考: cv::gpu::createSeparableLinearFilter_GPU , Sobel() .

cv::gpu::Scharr

Comments from the Wiki

void Scharr(const GpuMat& src, GpuMat& dst, int ddepth, int dx, int dy, double scale = 1, int rowBorderType = BORDER_DEFAULT, int columnBorderType = -1)

Scharr オペレータを用いて,1次の x および y 微分画像を求めます.

パラメタ:
  • src – 入力画像. CV_8UC1 , CV_8UC4 , CV_16SC1 , CV_16SC2 , CV_32SC1 , CV_32FC1 型の画像がサポートされます.
  • dst – 出力画像. src と同じサイズ,同じチャンネル数になります.
  • ddepth – 出力画像のビット深度. CV_8U , CV_16S , CV_32S および CV_32F がサポートされます.
  • dx – x に関する微分の次数.
  • dy – y に関する微分の次数.
  • scale – 微分値を計算する際の,オプションのスケールファクタ(デフォルトでは,スケーリングは適用されません. getDerivKernels() を参照してください).
  • columnBorderType (rowBorderType,) – Pixel extrapolation method, see borderInterpolate()

参考: cv::gpu::createSeparableLinearFilter_GPU , Scharr() .

cv::gpu::createGaussianFilter_GPU

Comments from the Wiki

Ptr<FilterEngine_GPU> createGaussianFilter_GPU(int type, Size ksize, double sigmaX, double sigmaY = 0, int rowBorderType = BORDER_DEFAULT, int columnBorderType = -1)

Gaussian フィルタエンジンを作成します.

パラメタ:
  • type – 入力画像および出力画像の型. CV_8UC1 , CV_8UC4 , CV_16SC1 , CV_16SC2 , CV_32SC1 , CV_32FC1 がサポートされています.
  • ksize – アパーチャサイズ. getGaussianKernel() を参照してください.
  • sigmaX – 水平方向の Gaussian シグマ. getGaussianKernel() を参照してください.
  • sigmaY – 垂直方向の Gaussian シグマ. getGaussianKernel() を参照してください.
  • columnBorderType (rowBorderType,) – 利用する境界の種類. borderInterpolate() を参照してください.

参考: cv::gpu::createSeparableLinearFilter_GPU , createGaussianFilter() .

cv::gpu::GaussianBlur

Comments from the Wiki

void GaussianBlur(const GpuMat& src, GpuMat& dst, Size ksize, double sigmaX, double sigmaY = 0, int rowBorderType = BORDER_DEFAULT, int columnBorderType = -1)

Gaussian フィルタを用いて,画像を平滑化します.

パラメタ:
  • src – 入力画像. CV_8UC1 , CV_8UC4 , CV_16SC1 , CV_16SC2 , CV_32SC1 , CV_32FC1 型の画像がサポートされます.
  • dst – 出力画像. src と同じサイズ,同じチャンネル数になります.
  • ksize – Gaussian カーネルサイズ. ksize.widthksize.height を別々に指定できますが,共に正の奇数でなければいけません.または,0を指定することも可能で,その場合, sigmaXsigmaY から計算されます.
  • sigmaY (sigmaX,) – X および Y 方向の,Gaussian カーネルの標準偏差. sigmaY が0の場合, sigmaX と同じ値にセットされます.どちらも0だった場合は, ksize.widthksize.height から,それぞれ計算されます. getGaussianKernel() を参照してください.将来これらの引数の意味が変更されたとしても,それに関係なく結果を完全に制御するために, ksize , sigmaX および sigmaY のすべての値を指定することが推奨されます.
  • columnBorderType (rowBorderType,) – ピクセル外挿手法. borderInterpolate() を参照してください.

参考: cv::gpu::createGaussianFilter_GPU , GaussianBlur() .

cv::gpu::getMaxFilter_GPU

Comments from the Wiki

Ptr<BaseFilter_GPU> getMaxFilter_GPU(int srcType, int dstType, const Size& ksize, Point anchor = Point(-1, -1))

最大値フィルタを作成します.

パラメタ:
  • srcType – 入力画像の型. CV_8UC1 および CV_8UC4 のみがサポートされています.
  • dstType – 出力画像の型.サポートされる型は入力と同じです.
  • ksize – カーネルサイズ.
  • anchor – アンカーポイント.デフォルト値 (-1) は,アンカーがカーネル中心にあることを意味します.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.

cv::gpu::getMinFilter_GPU

Comments from the Wiki

Ptr<BaseFilter_GPU> getMinFilter_GPU(int srcType, int dstType, const Size& ksize, Point anchor = Point(-1, -1))

最小値フィルタを作成します.

パラメタ:
  • srcType – 入力画像の型. CV_8UC1CV_8UC4 がサポートされます.
  • dstType – 出力画像の型.サポートされる型は入力と同じです.
  • ksize – カーネルサイズ.
  • anchor – アンカーポイント.デフォルト値 (-1) は,アンカーがカーネル中心にあることを意味します.

注意事項: このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.