画像フィルタリング =========================== .. highlight:: cpp このセクションでは,2次元画像上の様々な線形・非線形フィルタリング処理に用いる関数とクラスについて述べます. 参考: 画像フィルタリング .. index:: gpu::BaseRowFilter_GPU .. _gpu::BaseRowFilter_GPU: gpu::BaseRowFilter_GPU ---------------------- `id=0.318174602519 Comments from the Wiki `__ .. ctype:: gpu::BaseRowFilter_GPU 2次元配列の行を処理する線形または非線形フィルタの基底クラス.このようなフィルタは,分離型フィルタの「水平方向」フィルタリング処理で利用されます. .. code-block:: c 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 の内部で利用されます. .. index:: gpu::BaseColumnFilter_GPU .. _gpu::BaseColumnFilter_GPU: gpu::BaseColumnFilter_GPU ------------------------- `id=0.865358783384 Comments from the Wiki `__ .. ctype:: gpu::BaseColumnFilter_GPU この基底クラスは,2次元配列の列を処理する線形または非線形フィルタの基底クラスです.このようなフィルタは,分離型フィルタの「垂直方向」フィルタリング処理で利用されます. .. code-block:: c 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 の内部で利用されます. .. index:: gpu::BaseFilter_GPU .. _gpu::BaseFilter_GPU: gpu::BaseFilter_GPU ------------------- `id=0.00431184333046 Comments from the Wiki `__ .. ctype:: gpu::BaseFilter_GPU 非分離型2次元フィルタの基底クラスです. .. code-block:: c 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 の内部で利用されます. .. index:: gpu::FilterEngine_GPU .. _gpu::FilterEngine_GPU: gpu::FilterEngine_GPU --------------------- `id=0.0696378441182 Comments from the Wiki `__ .. ctype:: gpu::FilterEngine_GPU フィルタエンジンの基底クラスです. .. code-block:: c 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`` 関数によって返され, :func:`gpu::filter2D` , :func:`gpu::erode` , :func:`gpu::Sobel` などの高レベル関数内部で利用されます. 関数の代わりに ``FilterEngine_GPU`` を利用することで,中間バッファの不要なメモリ割り当てを避けることができ,パフォーマンスが大きく向上します. .. code-block:: c while (...) { cv::gpu::GpuMat src = getImg(); cv::gpu::GpuMat dst; // 反復毎に,バッファの割り当てと解放をします. cv::gpu::GaussianBlur(src, dst, ksize, sigma1); } // バッファを 1 度だけ割り当てます. cv::Ptr 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 .. index:: cv::gpu::createFilter2D_GPU .. _cv::gpu::createFilter2D_GPU: cv::gpu::createFilter2D_GPU --------------------------- `id=0.167001618374 Comments from the Wiki `__ .. cfunction:: Ptr createFilter2D_GPU( const Ptr\& filter2D, int srcType, int dstType) 指定されたフィルタで,非分離型フィルタエンジンを作成します. {非分離型の2次元フィルタ.} :param srcType: 入力画像の型. ``filter2D`` がサポートするものでなければいけません. :param dstType: 出力画像の型. ``filter2D`` がサポートするものでなければいけません. 通常,この関数は, cv::gpu::createLinearFilter\_GPU , cv::gpu::createBoxFilter\_GPU などの高レベル関数の内部で利用されます. .. index:: cv::gpu::createSeparableFilter_GPU .. _cv::gpu::createSeparableFilter_GPU: cv::gpu::createSeparableFilter_GPU ---------------------------------- `id=0.248421947015 Comments from the Wiki `__ .. cfunction:: Ptr createSeparableFilter_GPU( const Ptr\& rowFilter, const Ptr\& columnFilter, int srcType, int bufType, int dstType) 指定されたフィルタで,分離型フィルタエンジンを作成します. {「水平方向」の1次元フィルタ.} {「垂直方向」の1次元フィルタ.} :param srcType: 入力画像の型. ``rowFilter`` がサポートするものでなければいけません. :param bufType: バッファ画像の型. ``rowFilter`` と ``columnFilter`` がサポートするものでなければいけません. :param dstType: 出力画像の型. ``columnFilter`` がサポートするものでなければいけません. 通常,この関数は, cv::gpu::createSeparableLinearFilter\_GPU などの高レベル関数の内部で利用されます. .. index:: cv::gpu::getRowSumFilter_GPU .. _cv::gpu::getRowSumFilter_GPU: cv::gpu::getRowSumFilter_GPU ---------------------------- `id=0.40235225489 Comments from the Wiki `__ .. cfunction:: Ptr getRowSumFilter_GPU(int srcType, int sumType, int ksize, int anchor = -1) 水平方向の1次元ボックスフィルタを作成します. :param srcType: 入力画像.現在, ``CV_8UC1`` 型の画像のみがサポートされています. :param sumType: 出力画像.現在, ``CV_32FC1`` 型の画像のみがサポートされています. :param ksize: カーネルサイズ. :param anchor: アンカーポイント.デフォルト値 (-1) は,アンカーがカーネル中心にあることを意味します. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. .. index:: cv::gpu::getColumnSumFilter_GPU .. _cv::gpu::getColumnSumFilter_GPU: cv::gpu::getColumnSumFilter_GPU ------------------------------- `id=0.20820721496 Comments from the Wiki `__ .. cfunction:: Ptr getColumnSumFilter_GPU(int sumType, int dstType, int ksize, int anchor = -1) 垂直方向の1次元ボックスフィルタを作成します. :param sumType: 入力画像.現在, ``CV_8UC1`` 型の画像のみがサポートされています. :param dstType: 出力画像.現在, ``CV_32FC1`` 型の画像のみがサポートされています. :param ksize: カーネルサイズ. :param anchor: アンカーポイント.デフォルト値 (-1) は,アンカーがカーネル中心にあることを意味します. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. .. index:: cv::gpu::createBoxFilter_GPU .. _cv::gpu::createBoxFilter_GPU: cv::gpu::createBoxFilter_GPU ---------------------------- `id=0.0426869546618 Comments from the Wiki `__ .. cfunction:: Ptr createBoxFilter_GPU(int srcType, int dstType, const Size\& ksize, const Point\& anchor = Point(-1,-1)) 正規化された2次元ボックスフィルタを作成します. .. cfunction:: Ptr getBoxFilter_GPU(int srcType, int dstType, const Size\& ksize, Point anchor = Point(-1, -1)) :param srcType: 入力画像の型. ``CV_8UC1`` および ``CV_8UC4`` のみがサポートされています. :param dstType: 出力画像の型.サポートされる型は入力と同じです. :param ksize: カーネルサイズ. :param anchor: アンカーポイント.デフォルト値 Point(-1, -1) は,アンカーがカーネル中心にあることを意味します. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. 参考: :func:`boxFilter` . .. index:: gpu::boxFilter cv::gpu::boxFilter ------------------ `id=0.810254236316 Comments from the Wiki `__ .. cfunction:: void boxFilter(const GpuMat\& src, GpuMat\& dst, int ddepth, Size ksize, Point anchor = Point(-1,-1)) 正規化されたボックスフィルタを用いて,画像を平滑化します. :param src: 入力画像. ``CV_8UC1`` および ``CV_8UC4`` 型の画像のみがサポートされています. :param dst: 出力画像. ``src`` と同じサイズ,同じ型になります. :param ddepth: 出力画像のビット深度.入力画像のビット深度と同じもの( ``CV_8U`` ),あるいは 入力のビット深度を意味する -1 のみがサポートされます. :param ksize: カーネルサイズ. :param anchor: アンカーポイント.デフォルト値 Point(-1, -1) は,アンカーがカーネル中心にあることを意味します. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. 参考: :func:`boxFilter` , cv::gpu::createBoxFilter\_GPU . .. index:: gpu::blur cv::gpu::blur ------------- `id=0.826553760455 Comments from the Wiki `__ .. cfunction:: void blur(const GpuMat\& src, GpuMat\& dst, Size ksize, Point anchor = Point(-1,-1)) 正規化されたボックスフィルタの別名. :param src: 入力画像. ``CV_8UC1`` および ``CV_8UC4`` 型の画像のみがサポートされています. :param dst: 出力画像. ``src`` と同じサイズ,同じ型になります. :param ksize: カーネルサイズ. :param anchor: アンカーポイント.デフォルト値 Point(-1, -1) は,アンカーがカーネル中心にあることを意味します. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. 参考: :func:`blur` , :func:`gpu::boxFilter` . .. index:: cv::gpu::createMorphologyFilter_GPU .. _cv::gpu::createMorphologyFilter_GPU: cv::gpu::createMorphologyFilter_GPU ----------------------------------- `id=0.887309682383 Comments from the Wiki `__ .. cfunction:: Ptr createMorphologyFilter_GPU(int op, int type, const Mat\& kernel, const Point\& anchor = Point(-1,-1), int iterations = 1) 2次元のモルフォロジーフィルタを作成します. .. cfunction:: Ptr getMorphologyFilter_GPU(int op, int type, const Mat\& kernel, const Size\& ksize, Point anchor=Point(-1,-1)) {モルフォロジー演算ID. ``MORPH_ERODE`` と ``MORPH_DILATE`` のみがサポートされています.} :param type: 入出力画像の型. ``CV_8UC1`` と ``CV_8UC4`` のみがサポートされています. :param kernel: モルフォロジー演算で利用する,2次元,8ビットの構造要素. :param size: 分離型モルフォロジー演算で利用する,水平および垂直方向の構造要素サイズ. :param anchor: 構造要素内のアンカー位置.負の値は,アンカーが中心にあることを意味します. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. 参考: :func:`createMorphologyFilter` . .. index:: gpu::erode cv::gpu::erode -------------- `id=0.118432654047 Comments from the Wiki `__ .. cfunction:: void erode(const GpuMat\& src, GpuMat\& dst, const Mat\& kernel, Point anchor = Point(-1, -1), int iterations = 1) 指定された構造要素を用いて,画像を収縮します. :param src: 入力画像. ``CV_8UC1`` および ``CV_8UC4`` 型の画像のみがサポートされています. :param dst: 出力画像. ``src`` と同じサイズ,同じ型になります. :param kernel: 収縮に用いられる構造要素. ``kernel=Mat()`` の場合, :math:`3 \times 3` の矩形構造要素が利用されます. :param anchor: 構造要素内のアンカー位置.デフォルト値 :math:`(-1, -1)` は,アンカーが構造要素中心にあることを意味します. :param iterations: 収縮を行う回数. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. 参考: :func:`erode` , cv::gpu::createMorphologyFilter\_GPU . .. index:: gpu::dilate cv::gpu::dilate --------------- `id=0.478704006055 Comments from the Wiki `__ .. cfunction:: void dilate(const GpuMat\& src, GpuMat\& dst, const Mat\& kernel, Point anchor = Point(-1, -1), int iterations = 1) 指定された構造要素を用いて,画像を膨張します. :param src: 入力画像. ``CV_8UC1`` および ``CV_8UC4`` 型の画像のみがサポートされています. :param dst: 出力画像. ``src`` と同じサイズ,同じ型になります. :param kernel: 膨張に用いられる構造要素. ``kernel=Mat()`` の場合, :math:`3 \times 3` の矩形構造要素が利用されます. :param anchor: 構造要素内のアンカー位置.デフォルト値 :math:`(-1, -1)` は,アンカーが構造要素中心にあることを意味します. :param iterations: 膨張を行う回数. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. 参考: :func:`dilate` , cv::gpu::createMorphologyFilter\_GPU . .. index:: gpu::morphologyEx cv::gpu::morphologyEx --------------------- `id=0.230466126042 Comments from the Wiki `__ .. cfunction:: void morphologyEx(const GpuMat\& src, GpuMat\& dst, int op, const Mat\& kernel, Point anchor = Point(-1, -1), int iterations = 1) 高度なモルフォロジー演算を,画像に適用します. :param src: 入力画像. ``CV_8UC1`` および ``CV_8UC4`` 型の画像のみがサポートされています. :param dst: 出力画像. ``src`` と同じサイズ,同じ型になります. :param op: モルフォロジー演算の種類.以下のうちの1つです: * **MORPH_OPEN** オープニング * **MORPH_CLOSE** クロージング * **MORPH_GRADIENT** モルフォロジー勾配 * **MORPH_TOPHAT** 「トップハット」 * **MORPH_BLACKHAT** 「ブラックハット」 :param kernel: 構造要素. :param anchor: 構造要素内のアンカー位置.デフォルト値 Point(-1, -1) は,アンカーが構造要素中心にあることを意味します. :param iterations: 収縮と膨張を適用する回数. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. 参考: :func:`morphologyEx` . .. index:: cv::gpu::createLinearFilter_GPU .. _cv::gpu::createLinearFilter_GPU: cv::gpu::createLinearFilter_GPU ------------------------------- `id=0.586906215897 Comments from the Wiki `__ .. cfunction:: Ptr createLinearFilter_GPU(int srcType, int dstType, const Mat\& kernel, const Point\& anchor = Point(-1,-1)) 非分離型線形フィルタを作成します. .. cfunction:: Ptr getLinearFilter_GPU(int srcType, int dstType, const Mat\& kernel, const Size\& ksize, Point anchor = Point(-1, -1)) :param srcType: 入力画像の型. ``CV_8UC1`` と ``CV_8UC4`` がサポートされます. :param dstType: 出力画像の型.サポートされる型は入力と同じです. :param kernel: フィルタ係数の2次元配列.このフィルタは,整数カーネルで動作します. ``kernel`` が ``float`` や ``double`` 型の場合は,固定小数点数が利用されます. :param ksize: カーネルサイズ. :param anchor: アンカー位置.デフォルト値 Point(-1, -1) は,アンカーがカーネル中心にあることを意味します. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. 参考: :func:`createLinearFilter` . .. index:: gpu::filter2D cv::gpu::filter2D ----------------- `id=0.0766213317154 Comments from the Wiki `__ .. cfunction:: void filter2D(const GpuMat\& src, GpuMat\& dst, int ddepth, const Mat\& kernel, Point anchor=Point(-1,-1)) 非分離型2次元線形フィルタを,画像に適用します. :param src: 入力画像. ``CV_8UC1`` および ``CV_8UC4`` 型の画像のみがサポートされています. :param dst: 出力画像. ``src`` と同じサイズ,同じチャンネル数になります. :param ddepth: 出力画像のビット深度.負の値が与えられると, ``src.depth()`` と同じ値になります.サポートされるビット深度は,入力画像と同じものです. :param kernel: フィルタ係数の2次元配列.このフィルタは,整数カーネルで動作します. ``kernel`` が ``float`` や ``double`` 型の場合は,固定小数点数が利用されます. :param anchor: アンカー位置.これは,カーネル内のフィルタ対象点の相対位置を表します.このアンカーは,カーネル内部に位置します.デフォルト値 (-1, -1) は,アンカーがカーネル中心にあることを意味します. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. 参考: :func:`filter2D` , cv::gpu::createLinearFilter\_GPU . .. index:: gpu::Laplacian cv::gpu::Laplacian ------------------ `id=0.312761110278 Comments from the Wiki `__ .. cfunction:: void Laplacian(const GpuMat\& src, GpuMat\& dst, int ddepth, int ksize = 1, double scale = 1) Laplacian オペレータを,画像に適用します. :param src: 入力画像. ``CV_8UC1`` および ``CV_8UC4`` 型の画像のみがサポートされています. :param dst: 出力画像. ``src`` と同じサイズ,同じチャンネル数になります. :param ddepth: 出力画像のビット深度.サポートされるビット深度は,入力画像と同じものです. :param ksize: 2次微分フィルタを計算する際に利用されるアパーチャサイズ.詳細は, :func:`getDerivKernels` を参照してください.これは,正の奇数です. ``ksize`` = 1 と ``ksize`` = 3 のみがサポートされています. :param scale: Laplacian 値を求めるための,オプションのスケールファクタ(デフォルトでは,スケーリングは適用されません. :func:`getDerivKernels` を参照してください). **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. 参考: :func:`Laplacian` , :func:`gpu::filter2D` . .. index:: cv::gpu::getLinearRowFilter_GPU .. _cv::gpu::getLinearRowFilter_GPU: cv::gpu::getLinearRowFilter_GPU ------------------------------- `id=0.826043202984 Comments from the Wiki `__ .. cfunction:: Ptr getLinearRowFilter_GPU(int srcType, int bufType, const Mat\& rowKernel, int anchor = -1, int borderType = BORDER_CONSTANT) Creates primitive row filter with the specified kernel. :param srcType: 入力配列の型. ``CV_8UC1`` , ``CV_8UC4`` , ``CV_16SC1`` , ``CV_16SC2`` , ``CV_32SC1`` , ``CV_32FC1`` がサポートされています. :param bufType: 中間バッファの型.チャンネル数は, ``srcType`` と同数でなければいけません. :param rowKernel: フィルタ係数. :param anchor: カーネル内のアンカー位置.負の値は,アンカーがアパーチャ中心にあることを意味します. :param borderType: ピクセル外挿手法. :func:`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 , :func:`createSeparableLinearFilter` . .. index:: cv::gpu::getLinearColumnFilter_GPU .. _cv::gpu::getLinearColumnFilter_GPU: cv::gpu::getLinearColumnFilter_GPU ---------------------------------- `id=0.1499300785 Comments from the Wiki `__ .. cfunction:: Ptr getLinearColumnFilter_GPU(int bufType, int dstType, const Mat\& columnKernel, int anchor = -1, int borderType = BORDER_CONSTANT) 指定したカーネルで,基本的な列フィルタを作成します. :param bufType: 中間バッファの型.チャンネル数は, ``dstType`` と同数でなければいけません. :param dstType: 出力配列の型. ``CV_8UC1`` , ``CV_8UC4`` , ``CV_16SC1`` , ``CV_16SC2`` , ``CV_32SC1`` , ``CV_32FC1`` がサポートされています. :param columnKernel: フィルタ係数. :param anchor: カーネル内のアンカー位置.負の値は,アンカーがアパーチャ中心にあることを意味します. :param borderType: ピクセル外挿手法. :func:`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 , :func:`createSeparableLinearFilter` . .. index:: cv::gpu::createSeparableLinearFilter_GPU .. _cv::gpu::createSeparableLinearFilter_GPU: cv::gpu::createSeparableLinearFilter_GPU ---------------------------------------- `id=0.681419726631 Comments from the Wiki `__ .. cfunction:: Ptr 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) 分離型線形フィルタエンジンを作成します. :param srcType: 入力配列の型. ``CV_8UC1`` , ``CV_8UC4`` , ``CV_16SC1`` , ``CV_16SC2`` , ``CV_32SC1`` , ``CV_32FC1`` がサポートされています. :param dstType: 出力配列の型. ``CV_8UC1`` , ``CV_8UC4`` , ``CV_16SC1`` , ``CV_16SC2`` , ``CV_32SC1`` , ``CV_32FC1`` がサポートされています. :param rowKernel, columnKernel: フィルタ係数. :param anchor: カーネル内のアンカー位置.負の値は,アンカーがアパーチャ中心にあることを意味します. :param rowBorderType, columnBorderType: 水平および垂直方向のピクセル外挿手法. :func:`borderInterpolate` を参照してください.制限事項に関しては, cv::gpu::getLinearRowFilter\_GPU , cv::gpu::getLinearColumnFilter\_GPU を参照してください. 参考: cv::gpu::getLinearRowFilter\_GPU , cv::gpu::getLinearColumnFilter\_GPU , :func:`createSeparableLinearFilter` . .. index:: gpu::sepFilter2D cv::gpu::sepFilter2D -------------------- `id=0.722335161769 Comments from the Wiki `__ .. cfunction:: 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次元線形フィルタを,画像に適用します. :param src: 入力画像. ``CV_8UC1`` , ``CV_8UC4`` , ``CV_16SC1`` , ``CV_16SC2`` , ``CV_32SC1`` , ``CV_32FC1`` 型の画像がサポートされます. :param dst: 出力画像. ``src`` と同じサイズ,同じチャンネル数になります. :param ddepth: 出力画像のビット深度. ``CV_8U`` , ``CV_16S`` , ``CV_32S`` および ``CV_32F`` がサポートされます. :param kernelX, kernelY: フィルタ係数. :param anchor: カーネル内のアンカー位置.デフォルト値 :math:`(-1, -1)` は,アンカーが構造要素中心にあることを意味します. :param rowBorderType, columnBorderType: ピクセル外挿手法. :func:`borderInterpolate` を参照してください. 参考: cv::gpu::createSeparableLinearFilter\_GPU , :func:`sepFilter2D` . .. index:: cv::gpu::createDerivFilter_GPU .. _cv::gpu::createDerivFilter_GPU: cv::gpu::createDerivFilter_GPU ------------------------------ `id=0.816815227085 Comments from the Wiki `__ .. cfunction:: Ptr createDerivFilter_GPU(int srcType, int dstType, int dx, int dy, int ksize, int rowBorderType = BORDER_DEFAULT, int columnBorderType = -1) 一般化 Sobel オペレータに対するフィルタエンジンを作成します. :param srcType: 入力画像の型. ``CV_8UC1`` , ``CV_8UC4`` , ``CV_16SC1`` , ``CV_16SC2`` , ``CV_32SC1`` , ``CV_32FC1`` がサポートされています. :param dstType: 出力画像の型.チャンネル数は, ``srcType`` と同数でなければいけません.ビット深度は, ``CV_8U`` , ``CV_16S`` , ``CV_32S`` and ``CV_32F`` をサポートしています. :param dx: x に関する微分の次数. :param dy: y に関する微分の次数. :param ksize: アパーチャサイズ. :func:`getDerivKernels` を参照してください. :param rowBorderType, columnBorderType: ピクセル外挿手法. :func:`borderInterpolate` を参照してください. 参考: cv::gpu::createSeparableLinearFilter\_GPU , :func:`createDerivFilter` . .. index:: gpu::Sobel cv::gpu::Sobel -------------- `id=0.127771256634 Comments from the Wiki `__ .. cfunction:: 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 オペレータ を,画像のいて起用します. :param src: 入力画像. ``CV_8UC1`` , ``CV_8UC4`` , ``CV_16SC1`` , ``CV_16SC2`` , ``CV_32SC1`` , ``CV_32FC1`` 型の画像がサポートされています. :param dst: 出力画像. ``src`` と同じサイズ,同じチャンネル数になります. :param ddepth: 出力画像のビット深度. ``CV_8U`` , ``CV_16S`` , ``CV_32S`` および ``CV_32F`` がサポートされます. :param dx: x に関する微分の次数. :param dy: y に関する微分の次数. :param ksize: 拡張 Sobel カーネルのサイズ.必ず 1,3,5,7 のいずれかです. :param scale: 微分値を計算する際の,オプションのスケールファクタ(デフォルトでは,スケーリングは適用されません. :func:`getDerivKernels` を参照してください). :param rowBorderType, columnBorderType: ピクセル外挿手法. :func:`borderInterpolate` を参照してください. 参考: cv::gpu::createSeparableLinearFilter\_GPU , :func:`Sobel` . .. index:: gpu::Scharr cv::gpu::Scharr --------------- `id=0.917318893098 Comments from the Wiki `__ .. cfunction:: 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 微分画像を求めます. :param src: 入力画像. ``CV_8UC1`` , ``CV_8UC4`` , ``CV_16SC1`` , ``CV_16SC2`` , ``CV_32SC1`` , ``CV_32FC1`` 型の画像がサポートされます. :param dst: 出力画像. ``src`` と同じサイズ,同じチャンネル数になります. :param ddepth: 出力画像のビット深度. ``CV_8U`` , ``CV_16S`` , ``CV_32S`` および ``CV_32F`` がサポートされます. :param dx: x に関する微分の次数. :param dy: y に関する微分の次数. :param scale: 微分値を計算する際の,オプションのスケールファクタ(デフォルトでは,スケーリングは適用されません. :func:`getDerivKernels` を参照してください). :param rowBorderType, columnBorderType: Pixel extrapolation method, see :func:`borderInterpolate` 参考: cv::gpu::createSeparableLinearFilter\_GPU , :func:`Scharr` . .. index:: cv::gpu::createGaussianFilter_GPU .. _cv::gpu::createGaussianFilter_GPU: cv::gpu::createGaussianFilter_GPU --------------------------------- `id=0.383948545059 Comments from the Wiki `__ .. cfunction:: Ptr createGaussianFilter_GPU(int type, Size ksize, double sigmaX, double sigmaY = 0, int rowBorderType = BORDER_DEFAULT, int columnBorderType = -1) Gaussian フィルタエンジンを作成します. :param type: 入力画像および出力画像の型. ``CV_8UC1`` , ``CV_8UC4`` , ``CV_16SC1`` , ``CV_16SC2`` , ``CV_32SC1`` , ``CV_32FC1`` がサポートされています. :param ksize: アパーチャサイズ. :func:`getGaussianKernel` を参照してください. :param sigmaX: 水平方向の Gaussian シグマ. :func:`getGaussianKernel` を参照してください. :param sigmaY: 垂直方向の Gaussian シグマ. :func:`getGaussianKernel` を参照してください. :param rowBorderType, columnBorderType: 利用する境界の種類. :func:`borderInterpolate` を参照してください. 参考: cv::gpu::createSeparableLinearFilter\_GPU , :func:`createGaussianFilter` . .. index:: gpu::GaussianBlur cv::gpu::GaussianBlur --------------------- `id=0.308203451162 Comments from the Wiki `__ .. cfunction:: void GaussianBlur(const GpuMat\& src, GpuMat\& dst, Size ksize, double sigmaX, double sigmaY = 0, int rowBorderType = BORDER_DEFAULT, int columnBorderType = -1) Gaussian フィルタを用いて,画像を平滑化します. :param src: 入力画像. ``CV_8UC1`` , ``CV_8UC4`` , ``CV_16SC1`` , ``CV_16SC2`` , ``CV_32SC1`` , ``CV_32FC1`` 型の画像がサポートされます. :param dst: 出力画像. ``src`` と同じサイズ,同じチャンネル数になります. :param ksize: Gaussian カーネルサイズ. ``ksize.width`` と ``ksize.height`` を別々に指定できますが,共に正の奇数でなければいけません.または,0を指定することも可能で,その場合, ``sigmaX`` と ``sigmaY`` から計算されます. :param sigmaX, sigmaY: X および Y 方向の,Gaussian カーネルの標準偏差. ``sigmaY`` が0の場合, ``sigmaX`` と同じ値にセットされます.どちらも0だった場合は, ``ksize.width`` と ``ksize.height`` から,それぞれ計算されます. :func:`getGaussianKernel` を参照してください.将来これらの引数の意味が変更されたとしても,それに関係なく結果を完全に制御するために, ``ksize`` , ``sigmaX`` および ``sigmaY`` のすべての値を指定することが推奨されます. :param rowBorderType, columnBorderType: ピクセル外挿手法. :func:`borderInterpolate` を参照してください. 参考: cv::gpu::createGaussianFilter\_GPU , :func:`GaussianBlur` . .. index:: cv::gpu::getMaxFilter_GPU .. _cv::gpu::getMaxFilter_GPU: cv::gpu::getMaxFilter_GPU ------------------------- `id=0.985756548779 Comments from the Wiki `__ .. cfunction:: Ptr getMaxFilter_GPU(int srcType, int dstType, const Size\& ksize, Point anchor = Point(-1,-1)) 最大値フィルタを作成します. :param srcType: 入力画像の型. ``CV_8UC1`` および ``CV_8UC4`` のみがサポートされています. :param dstType: 出力画像の型.サポートされる型は入力と同じです. :param ksize: カーネルサイズ. :param anchor: アンカーポイント.デフォルト値 (-1) は,アンカーがカーネル中心にあることを意味します. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります. .. index:: cv::gpu::getMinFilter_GPU .. _cv::gpu::getMinFilter_GPU: cv::gpu::getMinFilter_GPU ------------------------- `id=0.647521314513 Comments from the Wiki `__ .. cfunction:: Ptr getMinFilter_GPU(int srcType, int dstType, const Size\& ksize, Point anchor = Point(-1,-1)) 最小値フィルタを作成します. :param srcType: 入力画像の型. ``CV_8UC1`` と ``CV_8UC4`` がサポートされます. :param dstType: 出力画像の型.サポートされる型は入力と同じです. :param ksize: カーネルサイズ. :param anchor: アンカーポイント.デフォルト値 (-1) は,アンカーがカーネル中心にあることを意味します. **注意事項:** このフィルタは,境界外へのアクセスをチェックしません.よって,これには,より大きな行列の適切な部分行列を渡す必要があります.