吉澤 信
[email protected], 非常勤講師
大妻女子大学 社会情報学部
画像情報処理論及び演習II
第8回講義 水曜日1限
教室6218
情報デザイン専攻
-フィルタ処理・エッジ強調-
セパレート実装、方向フィルタ、形態作用素
Shin Yoshizawa: [email protected]
今日の授業内容
1.
線形フィルタのセパレート実装、
Guassianピラミッド
.2.
方向フィルタ、Log-Gaborフィルタと方向ピラミッド.
3.
形態作用素
.4.
演習: Report05、今日(12/17)〆切です。
次回は1/7です。
www.riken.jp/brict/Yoshizawa/Lectures/index.html www.riken.jp/brict/Yoshizawa/Lectures/Lec20.pdf
Report04
の採点結果を取りに来てください
.Shin Yoshizawa: [email protected]
復習:周波数操作
入力 変換 画像
©CG-ARTS協会
出力 画像 周波数 処理後の 逆変換
周波数 処理
Shin Yoshizawa: [email protected]
復習: FDCTによる周波数分解
全ての周波数バンドを足し合わせると入力になる.
= + + + +
+ + + +
+
=
低周波
高周波
周波数領域
+ + +
+ +
+ +
+ +
低周波
高周波
+
ベースの 低周波
+
Shin Yoshizawa: [email protected]
復習: DoG+FDCTによる周波数分解
=
+ + + + +
+ + + +
高周波 低周波
全ての周波数バンドを足し合わせると入力になる.
=
周波数領域
+
高周波
低周波
+ + +
+ +
+ +
+
余り:
1-G
+
ベースの 低周波
+
復習:線形フィルタ
Shin Yoshizawa: [email protected]
線形フィルタ(畳み込み和、Convolution):
y
y x
x
h
h m
h h n
n m h n j m i f j
i
I( , ) ( , ) ( , )
) 1 2 ( ) 1 2
( hy hx )
, (i j
hy
I
出力画像
f入力画像
hカーネル画像:フィルタ
i j
フィルタを適用している画素の座標値
), (i j
m n
hy
カーネル画像(局所Window)サイズ:
) , (mn )
0 , 0
( (im,jn)
) 0 , 0 ( hx hx
入力画像
カーネル
画像
復習:線形フィルタ
Shin Yoshizawa: [email protected]
線形フィルタ(畳み込み和、Convolution):
y
y x
x
h
h m
h h n
n m h n j m i f j
i
I( , ) ( , ) ( , )
fの重み付和
=fとhの対応画 素値の積和
=線形フィルタ.
f I
h
y
y x
x
h h m
h h n
n m h n j m i f j
i
I( , ) ( , ) ( , )
セパレート実装
Shin Yoshizawa: [email protected]
1次元フィルタを次元(方向)別にn回適用してn次元 線形畳み込みを効率よく適用する実装方法.
- 線形フィルタ(畳み込み和):
I
出力画像
f入力画像
hカーネル画像:フィルタ
y
y
x
x
h h m
h h n
x
y m f i m j n h n
h j
i
I(, ) ( ) ( , ) ( )
もしも分離可能なら↓
h(m,n)hy(m)hx(n)セパレート実装2
Shin Yoshizawa: [email protected]
例えば、2次元のアルゴリズムはx方向のフィルタ 結果へy方向のフィルタを適用する.
y
y
x
x h
h m
h h n
x
y m f i m j nh n
h j i
I(, ) ( ) ( , ) ( )
1 2hx
1 2hy
x
x h
h
n f i j nhxn
j i
tmp(, ) (, ) ( )
y
y h
h
m f i m jhym
j i
I(, ) ( , ) ( )
);
, ( ) ( ) , ( ) ( ) ( ) (
n j i f n h j i tmp
n for
j for
i for
(,) ( ) ( ,);
) ( ) ( ) (
j m i tmp m h j i I
m for
i for
j for
X
方向のフィルタ
Y方向のフィルタセパレート実装3
Shin Yoshizawa: [email protected]
計算量は画像の縦横をsy,sxとすると、
例1:ソーベル作用素は、9/6=1.5倍:
hx, hyが大きいほど効率的→Gaussianフィルタ.
) ) 1 (
2 ( ) ) 1 2 )(
1 2
(( hx hy sxsy O hx hy sxsy
O
1 2 1
* 1 0 1 1 0 1
2 0 2
1 0
1 *1 2 1
1 0 1 1 2 1
0 0 0
1 2 1
6 ) 1 (
2 , 9 ) 1 2 )(
1 2 (
1
y x y x y
x h h h h h
h
1 ) 1 2 )(
1 2 2(
y x
y x
h h
h
h
倍
hxhyh 2h21倍 速度
セパレート実装4
Shin Yoshizawa: [email protected]
例2:Gaussianフィルタ:
2 1 2h
倍なので、もし半径h=100なら約100倍速い!
f x u y vg uvdudv y
x
I( , ) ( , ) ( , )
- 分離:
) ( ) (
2 )) 2 exp(
))( 1 exp( 2 2 ( 1
2 ) 2 exp(
) 1 , (
2 2 2
2 2
2 2 2
y g x g
y x
y y x
x g
高次元のGaussianは 低次元Gaussianの積.
y
y
x
x h
h m
h h n
n g n j m i f m g j i
I(, ) ( ) ( , ) ( )
) ( ) ( ) ,
(m n h m h n
h y x
が重要.
Ex13.zip内のSeparableGaussian.cxxに実際の実装があります.
Shin Yoshizawa: [email protected]
Gaussianピラミッド
. , )]
(
*
[g 1 Gk g0 f
gk k
例3:Gaussianピラミッド作成時のExpandとReduce 操作.
5-tap filer:
1 4 6 4 1
16 1
Shin Yoshizawa: [email protected]
方向微分
通常の座標軸に沿った方向の微分(微小変化率)で はなく、任意の方向(ベクトル)に沿った微分.
勾配と方向微分したいベクトルとの内積.
例えば、LoGや DoGを与えられた 方向に適用しても OK!
t t
x
f( ) f
Shin Yoshizawa: [email protected]
方向(Orientation) フィルタ
方向特徴フィルタ(log Gabor).
)) cos(
) )(sin(
( )
exp(i G i
G x t
Imaginary
Real 4方向の例
2 / 1 2 imaginary 2
real )
(f f
角度:
0 45 90 135Quadrature Filter Set Kternels:
Real and Imaginary
Kernel画像
畳み込み結果
畳み込み結果 Kernel画像
強度
方向特徴フィルタ(log Gabor)によるOrientation Pyramid.
Shin Yoshizawa: [email protected]
Steerable Pyramid
+
Shin Yoshizawa: [email protected]
Steerable Pyramid
©www.filiprooms.be
Flat Structuring Element (SE)と呼ばれる二値化画像 (Binary Image: b)の内側の輝度値の最小値・最大値等で、
評価画素の輝度値を置き換える.
Shin Yoshizawa: [email protected]
形態作用素(Morphological Operator)
- Erosion(収縮):
- Dilation(膨張):
- Opening(
穴あけ
):- Closing(
穴埋め
):©Steven W. Smith
Structuring Element
はグレー スケール画像でもよいが本講 義では取り扱わない
.Flat Structuring Element (SE)と呼ばれる二値化画像 (Binary Image: b)の内側の輝度値の最小値・最大値等で、
評価画素の輝度値を置き換える
.Shin Yoshizawa: [email protected]
形態作用素(Morphological Operator)2
) , (i j
入力画像
- Erosion(収縮):- Dilation(膨張):
- Opening(
穴あけ
):- Closing(
穴埋め
):- Top Hat:
- Bottom Hat:
Structuring Element
)}
( { min ) ](
[ x x t
t
b f
f b
)}
( { max ) ](
[ x x t
t
b f
f b
] ] [[
)
(fb fb b ] ] [[
)
(fb fbb ) ( )
hat(f f f b
T
f b f f
Bhat( )( ) ©wikipwdia
SEは円をよく使う.
Ex13.zip内の
MorphologicalOpe
rators.hに実装が
あります.
Shin Yoshizawa: [email protected]
Erosion
)}
( { min ) ](
[ x x t
t
b f
f b
Erosion(収縮):
白い部分がSE分だけ収縮する.
Minフィルタと同じ.
Structured Elementは円でその半径rが
1
r r2 r3 r4 r5 r10
Shin Yoshizawa: [email protected]
Dilation
Dilation(膨張):
白い部分がSE分だけ膨張する.
Maxフィルタと同じ.
Structured Elementは円でその半径rが
1
r r2 r3 r4 r5 r10
)}
( { max ) ](
[ x x t
t
b f
f b
Shin Yoshizawa: [email protected]
Opening
Opening(
穴あけ
):白に黒い穴が
SE分だけあく
. Erosion後にDilation.Structured Elementは円でその半径rが
4
r r8 r16 r20 r32
] ] [[
)
(fb f b b
1
r r2 r3 r4 r5 r10
Shin Yoshizawa: [email protected]
Closing
Closing(
穴埋め
):白に黒い穴が
SE分だけ埋まる
. Dilation後にErosion.Structured Elementは円でその半径rが
4
r r8 r16 r20 r32
1
r r2 r3 r4 r5 r10
] ] [[
)
(fb fb b
Shin Yoshizawa: [email protected]
Top Hat
TopHat: 穴あけで消えた部分を強調:入力から
Openingを引く
.Structured Elementは円でその半径rが
3
r r4 r5 r10 r20 r30
) ( )
hat(f f f b
T
Shin Yoshizawa: [email protected]
Top Hat2
Shading Correctionに非常によい.入力画像 大津の二値化
TopHat画像 大津の二値化
5 r
20 r
Shin Yoshizawa: [email protected]
Bottom Hat
BottomHat: 穴埋めで消えた部分を強調.Closingから入力を引く.
Structured Elementは円でその半径rが
3
r r4 r5 r10 r20 r30
f b f f
Bhat( )( )
Shin Yoshizawa: [email protected]
Bottom Hat2
Shading Correctionに非常によい.入力画像 大津の二値化
BottomHat画像 大津の二値化
5 r
20 r
Shin Yoshizawa: [email protected]
Morphologicalフィルタ
©wikipwdia
©inf.ed.ac.uk
Shin Yoshizawa: [email protected]
演習: 形態フィルタ
www.riken.jp/brict/Yoshizawa/Lectures/index.html www.riken.jp/brict/Yoshizawa/Lectures/Lec20.pdf www.riken.jp/brict/Yoshizawa/Lectures/Ex13.zip
前回までの内容
=Report05(今日〆切)の内容 が出来ていない人はそちらを先にやりましょう!
makeでコンパイル後にプログラムを各.cxxを見て実