Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
画像処理工学
画質改善方法:フィルタリング処理
空間フィルタを用いた画質改善
• 空間フィルタリング
– ある性質を持った信号だけを抽出する操作
– 空間領域(画像データ空間)で行われる
– 局所処理(近傍処理)により実現される
• 局所処理(近傍処理)
– 注目している画素の値を,その近傍の画素との重み付け加算を行って求める処理
– 重み付けに用いる値を加重マトリックス,フィルタ係数,オペレータなどという
2
空間フィルタを用いた画質改善
• 大きさ3×3の局所処理
[ 1][ 1] [ 1][ ] [ 1][ 1][ ][ 1] [ ][ ] [ ][ 1]
[ 1][ 1] [ 1][ ] [ 1][ 1]
f i j f i j f i jf i j f i j f i j
f i j f i j f i j
− − − − +− +
+ − + + +
[0][0] [0][1] [0][2] [1][0] [1][1] [1][2][2][0] [2][1] [2][2]
a a aa a aa a a
積和
処理対象の画像の濃度値 オペレータ
2 2
0 0[ ][ ] [ 1][ 1] [ ][ ]
k lg i j f i k j l a k l
= =
= + − + − ⋅∑∑
[ ][ ]f i j を注目画素とし,処理した結果を とする[ ][ ]g i j
3
空間フィルタを用いた画質改善
4
• 大きさ3×3の局所処理のアルゴリズム
3×3の局所処理
1:2:3:4:5:6:7:8:9:10:11:12:13:14:
入力画像:img[N][M]結果画像:res_img[N][M]
入力画像img[][]の入力
for(y = 1; y < N – 1; y++){for(x = 1; x < M – 1; x++){
img[y-1][x-1]~img[y+1][x+1]の3×3画素領域に対する畳み込み計算結果をres_img[y][x]に格納する
}}
結果画像res_img[][]の出力
空間フィルタを用いた画質改善
• 空間フィルタリングにより行える画質改善
– 平滑化
• ランダムなノイズを除去したり,濃度値の細かい変化を少なくして見やすい画像にしたりする
– 鮮鋭化
• ぼやけた画像を鮮明にする
• 空間フィルタリングにより行える特徴抽出
– エッジ検出
• 輪郭など濃度値が急激に変化している箇所を検出する
5
空間フィルタによる画像の平滑化
• 平滑化
– 細かい濃度変化を滑らかな変化に変換する
– ローパスフィルタ
• 低周波成分のみを取り出すフィルタ
– 移動平均フィルタ
• 近傍領域内の濃度値の平均値を利用
– 加重平均フィルタ
• 単純に平均するだけでなく,注目する画素の濃度値の重み大きくして平均した値を利用
– メディアンフィルタ
• エッジを保存しながら平滑化が行える
6
空間フィルタによる画像の平滑化
• 移動平均フィルタ
– ある画素を中心とした近傍領域内の濃度値の平均値を,その中心画素の値とする
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
2 7 5 6 2 53 4 2 7 3 65 6 1 7 5 4
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
2 7 53 4 25 6 1
4
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
積和 積和
6 2 5
7 5 46374= 5=
5
移動平均フィルタ(3×3の場合)
原画像 処理結果画像
7
空間フィルタによる画像の平滑化
8
• 大きさ3×3の移動平均アルゴリズム
3×3の移動平均
1:2:3:4:5:6:7:8:9:10:11:12:13:
入力画像:img[N][M]結果画像:res_img[N][M]
入力画像img[][]の入力
for(y = 1; y < N – 1; y++){for(x = 1; x < M – 1; x++){
img[y-1][x-1]~img[y+1][x+1]の3×3画素領域平均値をres_img[y][x]に格納する
}}
結果画像res_img[][]の出力
空間フィルタによる画像の平滑化
• 加重平均フィルタ
– 移動平均では,近傍領域内についてすべて同じ重みであるため,エッジもぼけてしまう
– 少しでもぼけるのを防ぐために中心付近の重みを大きくして処理を行う
1/10 1/10 1/10
1/10 2/10 1/10
1/10 1/10 1/10
加重平均フィルタの例
1/16 2/16 1/16
2/16 4/16 2/16
1/16 2/16 1/16
1/36 1/36 1/36
1/36 2/36 2/36
1/36 2/36 4/36
1/36
1/36 2/36
2/36
2/36 2/36
2/36
1/36 1/36
1/36
1/36
1/36
1/36
1/361/361/36
9
空間フィルタによる画像の平滑化
• メディアンフィルタ
– 平均値ではなく,近傍領域内の画素の濃度値のうち中央値(メディアン)の濃度値を中心画素の濃度値とする
0,1,0,1,6,5,6,6
0,0,1,2,4,6,6,6
0,0,1,1,5,6,6,6
原画像
移動平均フィルタの結果
メディアンフィルタの結果
エッジ
エッジがぼけてる
エッジが保存されてる10
空間フィルタによる画像の平滑化
• メディアンフィルタの処理アルゴリズム
原画像 処理結果画像
1 3 23 4 21 2 0
2
1 3 23 4 21 2 0
1 32 3 421 20
中央値並べ替え
11
空間フィルタによる画像の平滑化
12
• 大きさ3×3のメディアンフィルタ処理アルゴリズム
3×3のメディアンフィルタ処理
1:2:3:4:5:6:7:8:9:10:11:12:13:14:
入力画像:img[N][M]結果画像:res_img[N][M]
入力画像img[][]の入力
for(y = 1; y < N – 1; y++){for(x = 1; x < M – 1; x++){
img[y-1][x-1]~img[y+1][x+1]の3×3画素領域の値を並べ替えたときの中央値をres_img[y][x]に格納する
}}
結果画像res_img[][]の出力
空間フィルタによる画像の平滑化
• 平滑化の処理結果
原画像 移動平均フィルタ(3×3)の処理結果
メディアンフィルタ(3×3)の処理結果
エッジもぼけてしまっている
エッジがいくらか保存されている
13
空間フィルタによるエッジの検出
• エッジの検出方法
– エッジとは,対象物の輪郭など濃度値が急激に変化しているところ
– 画像に対して1次微分を施すと,それが変化の度合いを示すことになる
– 1次微分は差分により近似する
[ ][ ] [ ][ 1]f i j f i j +
[ ][ ][ 1][ ]f i j
f i j+
[ ][ ] [ ][ 1] [ ][ ]xf i j f i j f i j= + −
[ ][ ]xf i j[ ][ ]yf i j
[ ][ ] [ 1][ ] [ ][ ]yf i j f i j f i j= + −
x 方向の1次微分 y 方向の1次微分
2 2[ ][ ] [ ][ ] [ ][ ]x yf i j f i j f i j∇ = +微分強度(エッジ強度)14
空間フィルタによるエッジの検出
• エッジの検出方法(1次微分の適用)
– 1次微分(差分)の計算をオペレータで表現
– 微分強度(エッジ強度)の計算の簡単化
[ ][ ] [ ][ ] [ ][ ]x yf i j f i j f i j∇ = +
ー1
1ー1 1 x 方向の1次微分 y 方向の1次微分
( )[ ][ ] max [ ][ ] , [ ][ ]x yf i j f i j f i j∇ =
15
空間フィルタによるエッジの検出
• エッジの検出方法(1次微分の適用)
– 斜め方向のエッジ検出(Roberts オペレータ)
ー1 0
0 1
0 1
ー1 0
{ } { }2 2[ ][ ] [ 1][ 1] [ ][ ] [ ][ 1] [ 1][ ]f i j f i j f i j f i j f i j∇ = + + − + + − +
[ ][ ] [ 1][ 1] [ ][ ] [ ][ 1] [ 1][ ]f i j f i j f i j f i j f i j∇ = + + − + + − +
( )[ ][ ] max [ 1][ 1] [ ][ ] , [ ][ 1] [ 1][ ]f i j f i j f i j f i j f i j∇ = + + − + − +
Roberts オペレータ
Robertsオペレータによる微分強度(エッジ強度)
16
空間フィルタによるエッジの検出
• エッジの検出方法(1次微分の適用)
– Prewitt オペレータ および Sobel オペレータ
• 差分値の位置が注目画素の位置と一致するように差分のとり方を変更
• 平滑化の効果
ー1
0 01
ー1 0
0
1
ー1 00
1 1 11
ー1 ー1ー1
ー1
0 02
ー1 0
0
1
ー2 00
1 2 11
ー1 ー1ー2
x 方向の差分 y 方向の差分 x 方向の差分 y 方向の差分
Prewitt オペレータ Sobel オペレータ
17
空間フィルタによるエッジの検出
18
• Prewittオペレータによる縦方向エッジ(x方向の差分)の検出
Prewittオペレータによる縦方向のエッジの検出
1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:
入力画像:img[N][M]結果画像:res_img[N][M]
入力画像img[][]の入力
for(y = 1; y < N - 1; y++){for(x = 1; x < M - 1; x++){
img[y-1][x+1]+img[y][x+1]+img[y+1][x+1]-(img[y-1][x-1]+img[y][x-1]+img[y+1][x-1])の絶対値を計算
その値が255より大きければ255に置き換えるその値が0より小さければ0と置き換えるres_img[y][x]にその値を代入する
}}
結果画像res_img[][]の出力
空間フィルタによるエッジの検出
• エッジの検出方法(2次微分の適用)
– 2次微分(差分の差分)を用いたエッジ検出
[ ][ 1] [ ][ ] [ ][ 1]f i j f i j f i j− +
[ 1][ ][ ][ ]
[ 1][ ]
f i jf i j
f i j
−
+
{ }{ }
[ ][ ] [ ][ 1] [ ][ ]
[ ][ ] [ ][ 1] [ ][ 1] 2 [ ][ ] [ ][ 1]
xxf i j f i j f i j
f i j f i jf i j f i j f i j
= + −
− − −
= − − + +
[ ][ ]xf i j
x 方向の2次微分
[ ][ 1]xf i j −
[ ][ ]xxf i j
[ ][ ]yf i j[ 1][ ]yf i j−
[ ][ ]yyf i j
{ }{ }
[ ][ ] [ 1][ ] [ ][ ]
[ ][ ] [ 1][ ] [ 1][ ] 2 [ ][ ] [ 1][ ]
yyf i j f i j f i j
f i j f i jf i j f i j f i j
= + −
− − −
= + − + −
y 方向の2次微分
19
空間フィルタによるエッジの検出
• エッジの検出方法(2次微分の適用)
– ラプラシアン(2次微分)オペレータ
– x 方向の2次微分と y 方向の2次微分を加える
2 [ ][ ] [ ][ ] [ ][ ] [ 1][ ] [ ][ 1] 4 [ ][ ] [ 1][ ] [ ][ 1]
xx yyf i j f i j f i jf i j f i j f i j f i j f i j
∇ = +
= − + − − + + + +
0 1 0
1 -4 1
0 1 0
ラプラシアンフィルタ20
空間フィルタによる画像の鮮鋭化
• 鮮鋭化
– エッジの部分は画素値が急に変化している
– 急な変化がゆるやかになると輪郭がぼやける
– 画素値の変化を強調させることでぼやけた画像を鮮明な画像にすることを鮮鋭化という
座標 x
濃度値
f (x)
濃度値
f (x)
座標 x
値が急に変化 値が徐々に変化
変化の差が少ない
エッジがはっきりしている エッジがぼやけている
21
• 画像の2次微分による鮮鋭化の概念
アンダーシュート
オーバーシュート
空間フィルタによる画像の鮮鋭化
鮮鋭化
22
空間フィルタによる画像の鮮鋭化
• 鮮鋭化フィルタ
– ラプラシアン(2次微分)の結果を原画像から差し引く
2[ ][ ] [ ][ ] [ ][ ] [ 1][ ] [ ][ 1] 5 [ ][ ] [ 1][ ] [ ][ 1]g i j f i j f i j
f i j f i j f i j f i j f i j= −∇
= − − − − + − + − +
0 -1 0
-1 5 -1
0 -1 0
4近傍鮮鋭化フィルタ
-1 -1 -1
-1 9 -1
-1 -1 -1
8近傍鮮鋭化フィルタ
斜め方向の2次微分も加えたもの
23
空間フィルタによる画像の鮮鋭化
• 鮮鋭化の処理結果
原画像 移動平均フィルタ(3×3)によりぼかした画像
8近傍鮮鋭化フィルタによる処理結果
24