cvSobelやcvLaplaceなど

#contents

*void cv::Sobel( InputArray _src, OutputArray _dst, int ddepth, int dx, int dy, int ksize=3, double scale=1, double delta=0, int borderType=BORDER_DEFAULT ); [#j79b0c2e]
Sobelフィルタを画像にかけてエッジ抽出をする
**引数 [#y966478b]
-_src:[[cv::Mat>OpenCVの画像クラス/構造体#fe1ffe4a]]型 の入力画像
-_dst:[[cv::Mat>OpenCVの画像クラス/構造体#fe1ffe4a]]型 の出力画像
-ddepth:出力画像のビット深度。負数を指定すると入力と同じビット深度を意味する。
-dx:x軸方向の微分回数.抽出されるのは''縦エッジ''
-dy:y軸方向の微分回数.抽出されるのは''横エッジ''
-ksize:フィルタのサイズ.デフォルト3で省略可
-scale:処理後の画素値を定数倍する係数。デフォルト1で省略可
-delta:処理後の画素値に加算される定数。デフォルト0で省略可
-borderType:画面端での処理を指定するenum型。デフォルトBORDER_DEFAULT (4)で省略可


**解説 [#heb88d0f]
-OpenCV1.0時代のcvSobel関数に相当する
-各引数の対応は以下の通り
|OpenCV 1.0 (C Interface)|OpenCV 2.4.8 (C++ Interface)|
|src|_src|
|dst|_dst|
|存在しない|ddepth|
|xorder|dx|
|yorder|yx|
|aperture_size|ksize|
|存在しない|scale|
|存在しない|delta|
|存在しない|borderType|
-指定したパラメータに対応するカーネル(フィルタ)を、getDerivKernelsで生成する
-生成したカーネルを sepFilter2D で画像に適用する
-Tegra 用の最適化に関して
--Tegra 用の最適化が有効な場合 (HAVE_TEGRA_OPTIMIZATION)
--scaleが1.0
--deltaが0
--ksizeが3の場合
---tegra::sobel3x3関数を使う
--ksizeか-1の場合
---tegra::scharr関数を使う
-IPPの最適化に関して
--IPP 用の最適化が有効な場合 (HAVE_IPP)
--dx が 3未満
--dy が 3未満
--src のチャンネル数が1
--borderType が1(BORDER_REPLICATE)
--IPPDeriv関数を使う


**画面端での指定enum [#r5dc5aaa]
|imgproc.hpp内での宣言|実際の値|対応するIPL互換な定数|
|BORDER_REPLICATE|1|IPL_BORDER_REPLICATE|
|BORDER_CONSTANT|0|IPL_BORDER_CONSTANT|
|BORDER_REFLECT|2|IPL_BORDER_REFLECT|
|BORDER_WRAP|3|IPL_BORDER_WRAP|
|BORDER_REFLECT_101|4|IPL_BORDER_REFLECT_101|
|BORDER_REFLECT101|4|BORDER_REFLECT_101|
|BORDER_TRANSPARENT|5|IPL_BORDER_TRANSPARENT|
|BORDER_DEFAULT|4|BORDER_REFLECT_101|
|BORDER_ISOLATED|16|無し|
-IPL_BORDER_ 定数群はtypes_c.hで宣言されている

*void cv::getDerivKernels( OutputArray kx, OutputArray ky, int dx, int dy, int ksize, bool normalize=false, int ktype=CV_32F ); [#tb215353]

TBW


*void cvSobel( const IplImage* src, IplImage* dst, int xorder, int yorder, int aperture_size=3 ); [#p6d06cda]

Sobelフィルタを画像にかけてエッジ抽出をする

**引数 [#j5bd79a7]
-src:IplImage*型の入力画像
-dst:IplImage*型の出力画像.抽出されたエッジ成分が入っている.
-xorder:x軸方向の微分回数.抽出されるのは''縦エッジ''
-yorder:y軸方向の微分回数.抽出されるのは''横エッジ''
-aperture_size:フィルタのサイズ.デフォルト3で省略可

**返り値 [#ve556f07]

-voidなのでなし

*解説 [#ed098de1]

*サンプルコード [#t5daab47]

*実体ファイル [#ned79e29]
-OpenCV 2.4.8
--sources/modules/imgproc/include/opencv2/imgproc/imgproc.hpp
--sources/modules/imgproc/src/filter.cpp (sepFilter2D)
--sources/modules/imgproc/src/deriv.cpp (sobel, Scharr, getDerivKernels)
--sources/modules/core/include/opencv2/core/types_c.h (IPL_BORDER_REFLECT_101 など)
-OpenCV 1.0
--cv/include/cv.h
--cv/src/cvderiv.cpp

ジャンル[[:OpenCV]][[:OpenCV 1.0]][[:OpenCV 2.4]]準拠

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS