Sobelフィルターについて
- エッジの強調が強い
- そのためノイズが強調されやすい
- カーネル(3x3)のイメージ ↓
OpenCVでの使用方法
-
src:入力画像 -
dst:出力画像(サイズ,チャンネル数が同じ) -
ddepth:出力画像の深さ (下の表の組み合わせのように選択可) -
dx:1にするとx方向に微分する(0 or 1) -
dy:1にするとy方向に微分する(0 or 1) -
ksize:カーネルのサイズ -
scale:カーネル要素にかかる倍率 -
delta:わからない
C++サンプル
フィルタを実行するサンプルは以下のようになります。結果のエッジを強調するためにkernelサイズはそのままの3に,scaleは10としています。
cv::Mat img = imread( "images/template.jpg" );
cv::Mat gx, gy;
cv::Sobel(img, gx, CV_16S, 1, 0, 3, 10); // x方向微分
cv::Sobel(img, gy, CV_16S, 0, 1, 3, 10); // y方向微分
cv::imshow()でそれぞれのMatを見ると以下のようになりました。



