吉澤 信
[email protected], 非常勤講師 大妻女子大学 社会情報学部
画像情報処理論及び演習II
第8回講義 水曜日1限
教室6218
情報デザイン専攻
-フィルタ処理・エッジ強調-
セパレート実装、方向フィルタ、形態作用素
Shin Yoshizawa: [email protected]
今日の授業内容
1. 線形フィルタのセパレート実装、Guassianピラミッド.
2. 方向フィルタ、Log-Gaborフィルタと方向ピラミッド.
3. 形態作用素.
4. 演習
: Report06
、今日(12/16)
〆切です。次回は1/13です。
www.riken.jp/brict/Yoshizawa/Lectures/index.html www.riken.jp/brict/Yoshizawa/Lectures/Lec20.pdf
Report04/Report05
の再提出採点結果を取りに来てください。復習:線形フィルタ
Shin Yoshizawa: [email protected]
線形フィルタ(畳み込み和、Convolution):
yy x
x
h
h m
h
h n
n m h n j m i f j
i
I ( , ) ( , ) ( , )
) 1 2 ( ) 1 2
( h
y h
x )
, ( i j
h
yI
出力画像f
入力画像h
カーネル画像:フィルタi j
フィルタを適用している画素の座標値
)
, ( i j
m n
h
yカーネル画像(局所Window)サイズ:
) , ( m n )
0 , 0
(
(im,jn)) 0 , 0 ( h
xh
x入力画像
カーネル 画像
復習:線形フィルタ
Shin Yoshizawa: [email protected]
線形フィルタ(畳み込み和、Convolution):
yy 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
yy 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
カーネル画像:フィルタ
yy
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 ) h
y( m ) h
x( n )
セパレート実装2
Shin Yoshizawa: [email protected]
例えば、2次元のアルゴリズムはx方向のフィルタ 結果へy方向のフィルタを適用する.
yy
x
x h
h m
h h n
x
y
m f i m j n h 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
(( h
xh
ys
xs
yO h
xh
ys
xs
yO
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 yx
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 2 h
倍なので、もし半径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の積.
yy
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
1G k g
0f
g
k
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).
Imaginary
Real
4方向の例角度:0 45 90 135
Quadrature 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 fbb ] ] [[
)
(fb fb b ) ( )
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
bErosion(
収縮):
白い部分が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
bShin Yoshizawa: [email protected]
Opening
Opening(穴あけ):白に黒い穴がSE分だけあく.
Erosion
後にDilation.
Structured Elementは円でその半径rが
4
r r8 r16 r20 r32
] ] [[
)
( f b 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
] ] [[
)
( f b f b 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
B
hat( ) ( )
Shin Yoshizawa: [email protected]
Bottom Hat2
Shading Correctionに非常によい.
入力画像 大津の二値化 BottomHat画像 大津の二値化
5 r
Shin Yoshizawa: [email protected]
Morphologicalフィルタ
©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
前回までの内容=Report06(今日〆切)の内容 が出来ていない人はそちらを先にやりましょう!
makeでコンパイル後にプログラムを各.cxxを見て実 行してみましょう!- Gaussianフィルタのセパレート実装.
- 形態作用素.
次回は1/13です。Report04・05の採点結果を取りに来てください.