OpenCV のエッジ検出について (Laplacian)
はじめに
OpenCV のLaplacianを使ったエッジ検出処理ついて調べたことをまとめた。
とりあえず関数を試してみたい方
実験用プログラム OpenCV_test の GitHubリポジトリ
URL
https://github.com/iryachi/OpenCV_test
実行ファイルだけ
https://github.com/iryachi/OpenCV_test/releases
使い方
https://iryachi.stars.ne.jp/opencv_test_imple/
laplacian関数について
void cv:: laplacian (InputArray src,
OutputArray dst,
int ddepth,
int ksize = 3,
double scale = 1,
double delta = 0,
int borderType = BORDER_DEFAULT
)
引数
src | InputArray | 入力画像 | グレースケールの画像 |
dst | OutputArray | 出力画像 | グレースケールの画像 フォーマットはddepth による。 |
ddepth | int | 出力画像深度 | 出力画像のビット深度。 負数の場合、入力と同じビット深度。 CV_16S, CV_32F, CV_64F |
ksize | int | カーネルサイズ | フィルタのサイズ 1, 3, 5, 7 |
scale | double | スケーリング係数 | 処理後の画素値に乗算する値。 |
delta | double | 加算係数 | 処理後の画素値に加算する値。 |
borderType | int | 境界外処理方法 | cv::BorderTypes 画面 もしくは roi の境界処理をどうするか。 詳しくは下記参照 https://iryachi.stars.ne.jp/opencv_bordertype/ |
カーネル
ksize = 1 の時は縦横のカーネルで、 ksize = 3 の時は斜め方向になってるので注意。
処理例
わかりにくいので、実験用プログラムで自分で試したらよいかと。。。
元画像
おわりに
エッジ検出フィルタは実際に処理したい画像を用いてやってみないとどれがいいかわかりにくい。
Canny や Sobel とかも比較検討してみるといいと思う。
ディスカッション
コメント一覧
まだ、コメントがありません