画像処理論
第7回
佐藤 洋一
生産技術研究所
情報理工学系研究科電子情報学専攻/情報学環
http://www.hci.iis.u-tokyo.ac.jp/~ysato/
前回講義内容の復習
RANSAC
対象領域の抽出
2値化処理
Deformable contours
RANSACによるモデル当てはめ
S個の点により定義されるモデルの場合
1.ランダムなサンプリング
データ点からS点をランダムに選択
選択したS点からモデルパラメタを計算
2.サポートの検証
データ点のうち、モデルに十分近い点(サポート)を選択
十分なサポートがあれば終了、or 以上の手順を十分な回数繰り返し
3.終了処理
モデルパラメタのサポート点を用いて、モデルパラメタを再推定
対象領域の抽出
閾値処理
ヒストグラムにもとづく閾値決定法
p-tile法
モード法
分散比最大化(Ohtsu’s method)
Deformable contour models
segmentation
tracking
Deformable contourのエネルギー関数
E ai Econt ( pi ) bi Esmooth ( pi ) ci Eedge ( pi )
N
i 1
internal
external
Econt ( pi ) (d pi pi 1 ) 2
Esmooth ( pi ) pi 1 2 pi pi 1
Eedge ( pi ) I ( pi )
2
Edge attraction
Continuity
Greedy アルゴリズムによるEの最小化
Smoothness
連続系での表現
Energy Functional is defined as:
E (a ( s ) Econt ( s ) b( s ) Esmooth( s ) c( s ) Eedge ( s )) ds
2
2 2
d p
dp
(a( s)
b( s ) 2 c( s )( I ( p ) )) ds
ds
ds
internal
external
where a,b,c are “weights” to control influence.
Edge attraction
Continuity
Smoothness
本日の講義の内容
2値画像における領域と処理
モルフォロジー処理
領域の連結性
領域の属性を考える前に、領域の連結性を定義
4近傍
4連結と8連結
連結成分(connected component)
⇒連結したひとまとまりの画素
8近傍
連結成分のラベリング
連結成分ごとに異なるラベル(番号)を付与
ラベリングは連結成分の属性解析に必要
2値画像のラベリング
http://homepages.inf.ed.ac.uk/rbf/HIPR2/labeldem
o.htm
ラベル付けのアルゴリズム
1.
L=0とし、順方向ラスタスキャン開始
2.
ラベルの無い画素 f(m,n) において、既走査の4隣接画素
(下図の○)のラベル値を調べる
全て0(背景)ならば、L=L+1とし、g(m,n)=L
ラベル値が1種類ならば、g(m,n)=L
ラベル値が2種類でL, L’(L<L’)ならば(ラベルの衝突、下図の①と④)、
g(m,n)=Lとし、ラベルL’の既走査画素をLに変更
領域の特徴量
連結成分とホール
ホール
単連結(simply connected)
一つの連結成分中に存在し、背景と連結しない0連結成分
ホールのない連結成分
多重連結(multiply connected)
ホールを1つ以上含む連結成分
単連結
ホール
多重連結
オイラー数
連結成分のトポロジカルな性質
位相的な不変量であり、図形を連続的に変化させても不変
オイラー数
E=(連結成分の個数)-(ホールの個数)
連結成分のモーメント
図形的特徴量としてよく用いられる
2次元関数 g(x,y) の p+q次モーメント
m pq x p y q g ( x, y )dxdy
連結成分のモーメント
m pq
p q
x
y
( x , y )R
面積と重心
面積:0次モーメント
m00
0 0
x
y
( x , y )R
1
( x , y )R
重心:1次モーメントを0次モーメントで正規化
m10 x1 y 0 x
( x , y )R
( x , y )R
0 1
m
x
y y
01
( x , y )R
( x , y )R
m10
m01
xG
, yG
m00
m00
重心モーメントと慣性モーメント
重心モーメント(重心周りのモーメント)
M pq
( x , y )R
2次の重心モーメント(慣性モーメント)
M 20
p
q
(
x
x
)
(
y
y
)
G
G
(x x
( x , y )R
G
) 2 , M 02
(y y
( x , y )R
連結成分の主軸方向
1
2
arctan(
2 M 11
)
M 20 M 02
G
) 2 , M 11
(x x
( x , y )R
G
)( y yG )
慣性モーメント量の利用
正規化重心モーメントと不変量
正規化重心モーメント
0次モーメントで正規化した重心モーメント
pq
M pq
M 00
pq
,
1
2
回転・平行移動・拡大縮小に対する不変量
2~3次モーメントで7つの不変量
1 20 02
2 ( 20 02 ) 2 4112
3 (30 312 ) 2 (3 21 03 ) 2
4 ( 03 12 ) 2 ( 21 03 ) 2
不変量の例
縮小
反転
注)ここでは濃淡図形のモーメント
元の図形
回転
回転
領域の特徴的な点
内部点と境界点
境界点
2値画像の領域で背景と接している経路をなす点
内部点
2値画像の領域で境界点以外の点
8連結の場合の内部点:4近傍に背景がない
4連結の場合の内部点:8近傍に背景がない
境界線追跡
ある境界点からスタートし、順に境界点を追跡
注目画素を中心に常に一方向で3X3の近傍を調べ、
背景→前景に変わる点を見つける
追跡開始点にたどりついたら探索を終了
2値画像の画素の分類:連結数
境界線追跡をしたとき、その画素を通過する回数
4連結の場合
NC
[ 4]
1
8連結の場合
NC
[8 ]
2
連結数にもとづく画素の分類
連結数0: 孤立点 または 内部点
連結数1: 端点
連結数2: 連結点
(例 (f)のN8, (j)のN4)
連結数3: 分岐点
(例 (h)のN8)
連結数4: 交差点
(例 (l)のN8)
(例 (a), (k)のN8)
(例 (i))
連結数の計算
連結数は次式により求めることができる
NC
NC
[ 4]
( f
k4近傍
[8 ]
( f
k4近傍
k
k
f k f k 1 f k 2 )
f k f k 1 f k 2 )
x4 x3 x2
x5 x0 x1
x6 x7 x8
ただし、k 8ならk k 8とする
f 1 f
距離変換と細線化
連結成分の距離変換
距離変換(distance transformation)
連結成分の各画素に対して、背景の最小距離を計算
4-近傍距離と8-近傍距離
連結性に応じて2種類:4近傍距離と8近傍距離
連結成分の画素(m,n)から背景画素(k,l)への距離
d ( 4 ) (m, n) min ( m k n l )
k ,l
d (8) (m, n) min{max( m k , n l )}
k ,l
距離変換の方法
手順
1.
境界点となる画素の距離値を1にセット
2.
画素の近傍点を調べ、近傍点に距離がセットされている場合に
は、その距離+1にセット
3.
全画素に距離が割り当てられるまで2を繰り返す
最大距離回数だけ全画素を走査するため非効率
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
X
X
X
1
1
2
2
2
1
1
2
2
2
1
1
X
X
X
1
1
2
X
2
1
1
2
3
2
1
1
X
X
X
1
1
2
2
2
1
1
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
ラスタ走査2回による距離変換
順方向と逆方向のラスタ走査の組合せで距離変換
距離変換の例
http://www.dai.ed.ac.uk/HIPR2/distancedemo.htm
連結成分の細線化
連結性を保ったまま、連結成分の画素を除去
3X3の局所領域における処理の繰り返しにより実現
細線化アルゴリズム(8連結)
右側境界→上側境界→左側境界→下側境界の順に、
画素を取り除けるかどうか調べていく
基本的な考え方
3X3近傍に2つ以上の連結成分が存在すれば保存
(抽出点条件)
→その画素を取り除いてしまうと連結性を変えてしまうため
細線化アルゴリズム(8連結)
1.
繰り返し回数 k=0 とする
2.
flag=0
3.
k=k+1
4.
画像中に境界条件C(k)を満たす値1の画素pがあればflag=1とし、次の
処理をする
pが抽出点条件を満たしていればf(p)=2としその画素を永久保存点とする
満たしていなければf(p)=3とする
5.
f(p)=3の画素全てをf(p)=0とし消去する
6.
k<4ならば3.へ
7.
flag=0なら終了。そうでなければ1.へ
細線化の例
モルフォロジー処理
input
filling, differencing
differencing
Hit-or-miss
thinning
モルフォロジー処理
2値画像のモルフォロジー処理
Mathematical morphologyにもとづく幾何構造処理
一般的にn次元のデータに対して定義
濃淡画像や3次元ボリュームデータにも拡張可能
基本4操作
Dilation
Erosion
Opening
Closing
基本定義(1)
連結成分A
Z2(2次元の整数)で定義される集合
原点が1つ定義される
Aの構成要素(画素)はa=(a1,a2)
Translation of A by x (平行移動)
( A) x {c c a x, for a A}
基本定義(2)
Reflection of B(反転)
Bˆ {x x b for b B}
Complement of set A(補集合)
AC {x x A}
Difference of two sets A and B(差分)
A B {x x A, x B} A B C
Dilationオペレータ(膨張)
dilation
of A by B
B:構造要素
A B {x ( Bˆ ) A }
x
A
Bˆ B
A B
Erosionオペレータ(収縮)
erosion
of A by B
A B {x ( B) x A}
DilationとErosionの双対関係
Erosionの補集合は
( A B) {x ( B) x A}
C
C
( B) x が A に含まれるということは ( B) x AC
( A B ) {x ( B ) x A }
C
C
C
C
C
(
B)
A
(
B)
A
となる x
を満たすxの補集合は
x
x
( A B )C {x ( B) x AC } AC Bˆ
Openingオペレータ
opening
of A by B
細い所を削除する性質
A B ( A B) B
Closing
closing
of A by B
細い溝を埋める性質
A B ( A B) B
Openingオペレータの解釈
構成要素BをAの中に収まるようにスライドさせた時にBによ
り走査される領域
A B {( B) x ( B) x A}
Closingオペレータの解釈
zを含むようにBをスライドさせた場合、必ずBとAが重なりを持
つような z はA・Bの要素となる
OpeningとClosingの性質
Opening とclosing はcomplementationとreflectionに
関して双対関係
( A B) C ( AC Bˆ )
Openingの性質
A B はAのサブセット
もしCがDのサブセットならば、 C B は D B のサブセット
( A B) B A B
Closingの性質
Aは A B のサブセット
もしCがDのサブセットならば、 C B は D B のサブセット
( A B) B A B
http://homepages.inf.ed.ac.uk/rbf/HIPR2/morops.
htm
http://www.cs.bris.ac.uk/~majid/mengine/morph.
html
Morphological filter
基本オペレータの組合せで各種処理を実現
細かなゴミの除去の例
Hit-or-Miss Transform (1)
テンプレートマッチング
入力画像Aの中で対象Xを検出
ここで B は X にもとづくテンプレート
B ( B1 , B2 ) ( X ,W X )
Hit-or-Miss Transform (2)
A B ( A X ) [ AC (W X )]
AとACのErosion
Erosionの結果を統合→Xの検出
Hit-or-Miss Transform (3)
Hit-or-Miss変換 *
A B ( A X ) [ A (W X )]
C
ここでBはXにもとづくテンプレート
B ( B1 , B2 ) ( X , W X )
erosionとdilationの双対関係と差分の定義より
A B ( A B1 ) ( AC B2 )
すなわち
A B ( A B1 ) ( A Bˆ 2 )
本日の講義内容のまとめ
2値画像における領域と処理
連結性とラベリング処理
オイラー数
モーメントと図形特徴
境界線と連結数
距離変換
細線化
モルフォロジー処理
参考資料
Trucco&Verri 5.4章
谷口 7.1~7.4章
Gonzalez&Woods 8.4章
講義に関するメモ
平成14年度
追加すべき項目
平成16年度
分量がやや多すぎ
Gray-scale morphological operations
Convex HullとThickeningを割愛する
質問事項
なぜDilationの構造要素を反転するのか
Convex HullがConvex Hullになっていない理由⇒第2版を確認
Thinningの最後のステップを確認
平成18年度
Convex hullをカット
各種処理部分が単調すぎ⇒一部を減らし、濃淡モルフォロジーを追加すべき
平成20年度
連結成分記述からスタート
画素の連結数の説明を復活
モルフォロジーの説明を分割
各操作の説明にアプレットを利用する
http://homepages.inf.ed.ac.uk/rbf/HIPR2/morops.htm
平成24年度
Hit-or-Missの前までで終了
オイラー数の計算
方法1.境界を追跡した場合の向きによりホールを検出
方法2.凸画素と凹画素の数え上げ
方法1
ある方向を考えた場合に、
オイラー数E=(# convex pixels)-(# concave pixels)
方法2
近傍画素からのオイラー数の計算
4連結 E(4) = V – E + F
8連結 E(8) = V – E – D + T – F
V: 画素数
V=23, E=15, D=2, T=11, F=0
チェーンコードによる線図形の表現
輪郭の方向コードにより形を表現
境界線追跡や細線化処理などにより求めた線図形を効率よく記
述する方法
平行移動に対して不変だが、回転に対しては変化
→Derivativeの利用
フーリエ記述子による線図形の表現
輪郭形状を各周波数成分の和で表現
s (k ) x(k ) jy (k ) ただしk 0, , N 1
この時、フーリエ変換とフーリエ逆変換は
1
a (u )
N
N 1
s(k ) exp[ j 2uk / N ]
k 0
N 1
s (k ) a(u ) exp[ j 2uk / N ]
u 0
一部の隠れなどで係数が大幅に変化してしまう問題
フーリエ記述子による形状の近似
M(M<N)次元までの係数を利用することにより
概略形状を表現
M 1
sˆ(k ) a (u ) exp[ j 2uk / N ]
k 0
フーリエ記述子による形状表現の例
フーリエ記述子の変換
元図形の回転、平行移動、拡大縮小、開始点の変更は係数
の簡単な変換で表現
回転
sr (k ) s (k ) exp[ j ]
ar (u ) a(u ) exp[ j ]
平行移動
st (k ) s (k ) t x jt y
at (u ) a (u ) (t x jt y ) (u )
拡大縮小
s s ( k ) s ( k )
as (u ) a(u )
開始点の変更
s p (k ) s(k k0 )
a p (u ) a(u ) exp[ j 2k0u / N ]
デモ:フーリエ記述子
http://www.s2.chalmers.se/research/image/Java/N
ewApplets/FourierDescriptor/index.htm
Convex hull
連結成分Sに対し、Sを内包する最小の凸形状HをSの
convex hull(凸包)と呼ぶ
連結成分の形状を表現するものとして有効な特徴
D=H-Sはconvex deficiencyと呼ばれ、D/Hは連結成分の凹度
合いを表す
境界の分割に利用
細線の特徴点
細線化後の各点を端点、分岐点、孤立点、通過点に分類
線画像のベクトル化(1)
端点と分岐点をもとに線分に分割
線画像のベクトル化(2)
画素列を再帰的に分割
両端点を結ぶ直線から最も遠い点で
分割
全ての点がある距離以内に収まった
段階で終了
© Copyright 2026 ExpyDoc