1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Sobelフィルタ(OpenCV C++)

Last updated at Posted at 2021-11-20

Sobelフィルターについて

  • エッジの強調が強い
  • そのためノイズが強調されやすい
  • カーネル(3x3)のイメージ ↓

image.png

OpenCVでの使用方法

Screenshot from 2021-11-20 20-28-30.png

  • src: 入力画像
  • dst: 出力画像(サイズ,チャンネル数が同じ)
  • ddepth: 出力画像の深さ (下の表の組み合わせのように選択可)
  • dx : 1にするとx方向に微分する(0 or 1)
  • dy : 1にするとy方向に微分する(0 or 1)
  • ksize: カーネルのサイズ
  • scale: カーネル要素にかかる倍率
  • delta: わからない

Screenshot from 2021-11-20 20-38-25.png
※ddepthが-1のときは入力と同じ深さ

C++サンプル

フィルタを実行するサンプルは以下のようになります。結果のエッジを強調するためにkernelサイズはそのままの3に,scale10としています。

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を見ると以下のようになりました。

Screenshot from 2021-11-23 13-41-50.png

参考

Sobelフィルタについての説明

OpenCVのドキュメント・Sobelフィルタ関数説明

OpenCVのドキュメント・ddepthの組み合わせについて

Mat一覧

Mat::type()の値

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?