ガボールフィルタで方向別のエッジ・テクスチャ特徴を抽出する【画像処理100本ノック】
約 2 分
目次
概要
Q.77〜80ではガボールフィルタを生成し、回転、畳み込み、方向別応答の合成までを実装します。 ガボールフィルタは方向と空間周波数の両方を選択でき、エッジやテクスチャの特徴抽出に使えます。
カーネルを生成する(Q.77)
ガウシアン窓と正弦波を掛け合わせてカーネルを作ります。σが応答する範囲、波長λが
対象とする模様の細かさ、角度θが方向を決めます。
G(x, y) = exp(-(x'² + γ²y'²) / 2σ²) cos(2πx' / λ + ψ)
生成後は係数の絶対値和などで正規化し、画像全体の明るさが過度に変わらないようにします。
方向を変える(Q.78)
座標を0、45、90、135度へ回転し、方向の異なる4種類のカーネルを描画します。角度ごとに 縞模様の向きが変わることを確認できます。
画像へ適用する(Q.79)
各方向のカーネルをグレースケール画像へ畳み込みます。特定方向の線や縞とカーネルが一致した 場所で大きな応答が得られます。
方向別応答を合成する(Q.80)
4方向の応答を画素ごとに加算し、向きに偏らない特徴画像を作ります。単一方向のエッジ検出から、 複数方向をまとめたテクスチャ表現へ発展させる処理です。
Sobelフィルタとの違い
Sobelは主に局所的な輝度勾配を求めます。ガボールフィルタは方向に加えて周波数も指定できるため、 一定間隔の縞や繰り返し模様へ選択的に反応できます。
おすすめの記事
最新の記事
よく読まれている記事
タグから探す
- javascript129
- typescript66
- node.js54
- linux54
- 画像処理48
- amazon-aws47
- アルゴリズム37
- canvas35
- html529
- 画像処理100本ノック27
- php24
- centos24
- python22
- 競技プログラミング21
- mac21
- mysql20
- opencv17
- 雑談16
- 機械学習16
- docker16
- wordpress15
- atcoder14
- apache12
- データベース12
- amazon-s312
- red-hat12
- prisma12
- ubuntu11
- github10
- git10
- react10
- mariadb10
- vue.js9
- aws-cdk9
- css38
- 可視化8
- 小ネタ8
- next.js8
- nestjs8
- amazon-lightsail7
- ブログ6
- cms6
- oracle6
- perl6
- gitlab6
- iam5
- amazon-ec25
- 資格試験5
- aws-amplify5
- curl4