画像処理・実習 第五回: 空間フィルタ (特徴抽出,ラプラシアン,鮮鋭化) 東海大学 情報理工学部情報メディア学科 濱本和彦
今回の内容 3. 空間フィルタ 3.3 特徴抽出フィルタ-画像の一次微分 線検出 3.4 ラプラシアン-画像の二次微分 Laplacian フィルタ 3.5 鮮鋭化 実習
演習 3.4 表 3.5 の代わりに, square10.raw を利用 します。 Prewitt フィルタと Sobel フィルタをかけ て,その結果を比較しなさい。
演習 3.4 結果 square10.rawPrewittSobel 最大濃度 120 最大濃度 160
特徴抽出フィルタ 一次微分フィルタ:線検出フィルタ 線幅1の縦線,また は横線の検出が可能 検出したい形状に合 わせて 1,-1 を配置す ることにより任意の 形状の検出が可能 -1 をすべて -1/2 で置 き換えると,エッジ 検出も可能 縦線検出 横線検出 111
線検出,演習 3.5, 演習 3.6 表 3.4 の線検出オペレータで,線幅 1 の線が検出可能であ る理由を考えましょう。 -1 を -1/2 にすることでエッジが検出できる理由を考えま しょう。 関数 Longitudinal_line(), Lateral_line() を使い, grid.raw または square.raw を入力画像としたときの出力画像を示 し,線幅1の線のみが検出できることを確認してくださ い。 関数 Oblique_line() を使い,線幅1の斜線が検出できる ことを確認してください。 関数 Longitudinal_edge(), Lateral_edge() を使い,同様な 実験を行い,エッジが検出できること,線幅1の線の検 出は出来ないことを確認してください。
線検出フィルタ 線幅1の線が検出できる理由 幅1の線の時のみ,フィルタ 出力が正になればよい。 幅1の領域のみ正の係数とし ( +1 とする),他を負の係数とする。 幅2の線の場合に出力を0以下に するためには,幅1の領域の係数 を相殺する係数を設定する。 -1 より小さい係数を設定すれば 良い。 幅3の場合は,明らかにフィルタ 出力は負となる。 フィルタ出力は3フィルタ出力は0
線検出フィルタ エッジが検出できる理由 -1/ エッジを検出するためには,幅2の線の 場合に出力を正にする必要がある。 相殺されるように設定した負の係数を大 きくし,出力が正になるようにする。 しかし,幅3の場合には出力は0以下で なければならない。 幅3の場合にはフィルタ出力が0以下に なるようにフィルタ係数を設定する。 -1 より大きく, -1/2 以下の間で設定すれ ば良い。 フィルタ出力は正 フィルタ出力は0以下
例えばこんな結果になります grid.raw Longitudinal_line( ) square.raw
ラプラシアン Laplacian : 画像の二次微分 x 方向の二次微分 ・二次微分は,微分値同士の差分 ・対称性を考慮し, x-1 と x における微分値と差分を取る
y 方向の二次微分 ラプラシアン Laplacian : 画像の二次微分 Laplacian
特徴抽出フィルタ 二次微分フィルタ: Laplacian 濃度の変化が緩やか な所でも,その変化 の割合が大きく変化 する場所であれば抽 出される。 濃度の変化が急激で も,その変化の割合 があまり変化しない 場所は抽出されない
実習 void Laplacian(void) を実行し,その結 果を Prewitt フィルタの出力と比較検討 しなさい。 Lapalacian の結果は負になる場合もある ので,絶対値処理しています。
結果 変化の割合は大きいが,変化の割合がなだらかに 変化するため値は小さい PrewittLaplacian
結果 濃淡の差(変化の割合)は 小さいが, 変化の割合が急峻に 変化するため情報が残る PrewittLaplacian
要するに,こういうこと 画像の濃度変化 一次微分 二次微分
Laplacian ,もう一つの特徴 拡大図 二重線になっている
エッジの形状と微分結果 ステップ型エッジルーフ型エッジ 一次微分 Laplacian 濃淡の変化 絶対値を 取る事で 二重になる ゼロクロス検出
演習 3.7 回答は,次の通り。 0, 5, 10, 10, 5, 0, 5, -5, -15, -15, -5, 5, 5, 0, -5, -5, 0, 5, 5, -5, -15, -15, -5, 5, 0, 5, 10, 10, 5, 0, ルーフ型エッジ に対する結果 (前ページスライド と比較のこと)
鮮鋭化 元の画像からラプラシアンを引き算すること によりエッジが強調される。 元の画像 ラプラシアン 引き算の結果 オーバーシュート アンダーシュート マイナスを引き算=足し算 プラスを引き算=引き算振幅差が強調される
実習 void Edge_enhancement(void) を完成さ せ, lena.raw に関して鮮鋭化を実行しな さい。
結果 元の画像 鮮鋭化結果
演習 3.8 回答は,次の通り。 0, -5, -10, -10, -5, 0, -5, 10, 25, 25, 10, -5, -5, 5, 15, 15, 5, -5, -5, 10, 25, 25, 10, -5, 0, -5, -10, -10, -5, 0, アンダーシュート オーバーシュート
中間テストについて 5/28 , 3 限目は自習(質問の時間, にて), 4 限目にテストを行います。 場所: 6B-101 座席はこちらで指示します。 時間: 60 分( 15:10-16:10 ) 範囲は p.1-p.36 (ただしプログラムリストは省く) プログラムを書かせる問題は無し 教科書にない内容についても出題しない 内容と配点 教科書の類似問題(教科書本文の穴埋めと演習問題から出 題) 50点分(穴埋めは選択肢無し,太字のキーワードを中心 に) 教科書を理解していれば解ける問題 30点分 深く考えさせる問題 20点分