JP2000339456A - 画像処理方法 - Google Patents
画像処理方法Info
- Publication number
- JP2000339456A JP2000339456A JP2000008783A JP2000008783A JP2000339456A JP 2000339456 A JP2000339456 A JP 2000339456A JP 2000008783 A JP2000008783 A JP 2000008783A JP 2000008783 A JP2000008783 A JP 2000008783A JP 2000339456 A JP2000339456 A JP 2000339456A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- label
- labeling
- stack
- target pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Analysis (AREA)
Abstract
モリ20の2値画像を走査してラベル未付与の白画素を
見つけると、その画素を始点としてそこから新たな値n
でのラベリングを開始する。この場合、まずその始点か
らライン方向に順に隣接画素を調べ、その画素がラベル
未付与の白画素であればその画素にラベルnを付与す
る。このとき、同時にその画素の上下の隣接画素がラベ
ル未付与の白画素であれば、それをスタック12に積
む。その始点の属するラインについて、その始点に連結
する画素のラベリングが終了すると、スタック12の先
頭の画素を取り出し、その画素を始点として同じ処理を
繰り返す。この処理は、多分木の深さ優先探索アルゴリ
ズムと等価であり、最初に見つけたら白画素に連結した
すべての白画素をもれなく検出しラベリングすることが
できる。
Description
し、特に画像のラベリング処理に関する。
づく対象物認識がある。画像からの対象物認識では、画
像から所望の対象物の部分を切り出し、この対象物部分
の画像としての特徴量を求め、この特徴量から認識を行
う。この画像からの対象部分の切出しには、一般に画像
の2値化及びラベリングの技術が利用されることが多
い。
きい値と比較し、しきい値より大きいか小さいかで各画
素を分類する処理である。しきい値を適切に選んで2値
化を行うことにより、対象となる部分を抽出できる。ラ
ベリングは、2値化画像において、連結成分、すなわち
注目する画素値(白又は黒のいずれか)を有し互いに連
結した画素群、を抽出し、各連結成分にそれぞれ識別の
ためのラベルを付与する処理である。ラベリングには、
自画素の上下左右の隣接4画素との連結性を考慮する場
合(4連結性)と、さらに斜め方向の隣接4画素を加え
た周囲8画素との連結性を考慮する場合(8連結性)と
が一般に知られている。このラベリング処理により、2
値化画像中の注目画素値を有する各画素を、互いに連結
した画素の塊(連結成分)に分けることができる。この
ように求めた各連結成分が認識の対象となり、各連結成
分毎にその特徴量が求められる。
知するシステムとして、現在の画像とその直前の画像と
の差分画像を求め、その差分画像を2値化・ラベリング
して各連結成分を求め、それら各連結成分の面積や重心
から侵入者の有無を判定するものが知られている。
ような手順が知られている。この手順では、まず画像の
左上隅から右下隅に向かってラスタ走査により各画像を
調べ、注目画素値を有する画素に仮のラベルを付与し、
この走査が終わると、今度は逆に右下隅から左上隅にラ
スタ走査を行って仮ラベルを調整する。そして、更に右
上隅から左下隅に向かってラスタ走査を行うことによ
り、仮ラベルの再調整をする。
合、上記手順の最初のラスタ走査では、注目画素値を持
つ画素を検出すると、その画素をラベリング対象とし、
その画素の上及び左の隣接画素と同じラベルを仮ラベル
を付与する。上及び左の隣接画素のどちらにもラベルが
付されていない場合は、ラベルリング対象の画素には新
たなラベルを付与する。次の右下隅から左上隅へのラス
タ走査では、仮ラベルを付与した画素を検出すると、そ
の画素のラベルを下及び右の隣接画素のラベルに合わせ
る。下及び右の隣接画素のどちらにもラベルが付されて
いない場合は、元の仮ラベルをそのまま最終的なラベル
とする。そして、最後の右上隅から左下隅への走査で
は、仮ラベルを付与した画素を検出すると、その画素の
ラベルを上及び右の隣接画素のラベルに合わせるように
調整する。
素に一般に異なる仮ラベルが付されるが、中盤及び最後
の走査により、連結成分が比較的単純な形状ならば、同
じ連結成分に属する画素はすべて同じラベルを持つよう
になる。
来処理は、連結成分の形状が複雑になると正しいラベリ
ングができない可能性がある。例えば、図20に示した
ような多数の枝分かれを含む複雑な形状の連結成分10
0は、上記従来処理では同じラベルを付与することがで
きない。このような複雑な形状についても正しいラベリ
ングを行おうとすると、更に走査の方向を増やすなどの
対応が必要となり、処理時間が長くなってしまう。
ベルを順次調整していくことで、最終的に1つの連結成
分に属する画素に同一のラベルを与えるようにするもの
なので、全画面についてラベルの調整が完了した段階で
は、各連結成分(例えば白画素の塊)に与えられたラベ
ルが飛び飛びの値になる可能性が高い。このため、連結
成分の総数が知りたければ、ラベルを連番に直す処理が
必要となり、そのための処理時間が必要となる。
べてのラスタ走査が完了するまで各画素の最終的なラベ
ルが決定されない。このため、ラベリングの後に行う連
結成分の面積や重心などの特徴量は、後半の走査が完了
するまで行うことができなかった。したがって、上記従
来のラベリング処理は、高速な対象物認識を要求される
応用分野には不向きであった。
になされたものであり、複雑な形状の画像も比較的高速
にラベリング処理できる方法を提供することを目的とす
る。また、本発明の更なる目的は、ラベリング処理にお
ける連結成分の特徴量を高速に求めることができる方法
を提供することである。
理方法では、画像を所定の走査順序で調べ、ラベル未付
与でかつ注目画素値を有するというラベル条件を満足す
る画素を検出し、ラベル付け始点画素に定める始点検出
ステップと、ラベル付け始点画素及びこれに連結性を有
する画素にラベルを付与するラベル付与ステップとを繰
り返すことにより、画像内の注目画素値を持つ画素の各
連結成分にラベリングを行う。ここで、ラベル付与ステ
ップでは、ラベル付け始点画素をライン始点とするステ
ップ(a)と、ライン始点を最初の対象画素とし、対象
画素を右及び左のうち所定の一方向に順次1画素ずつ移
動させながら、対象画素が前記ラベル条件を満足する場
合はその対象画素に前記ラベルを付与すると共に、その
対象画素の上下の隣接画素が前記ラベル条件を満足する
場合その隣接画素をスタックに追加するステップ(b)
と、このステップ(b)にて対象画素が前記ラベル条件
を満足しなくなるか又は画像端部に達すると、ラベル付
け始点画素から前記ステップ(b)とは逆方向に順次対
象画素を1画素ずつ移動させながら、対象画素が前記ラ
ベル条件を満足する場合はその対象画素に前記ラベルを
付与すると共に、その対象画素の上下の隣接画素が前記
ラベル条件を満足する場合その隣接画素を前記スタック
に追加するステップ(c)と、このステップ(c)にて
対象画素が前記ラベル条件を満足しなくなるか又は画像
端部に達すると、前記スタックの先頭の画素を取り出し
て新たなライン始点として前記ステップ(b)及び
(c)を実行するステップ(d)と、前記スタックから
画素がなくなるまで上記ステップ(d)を繰り返すステ
ップ(e)とを含む。
素の連結性を調べてラベリングを行い、この際にラベリ
ングした画素と連結した隣接ラインの画素をスタックに
登録し、そのラインの連結成分のラベリングが完了する
と、次にスタックから画素を取り出してその画素を始点
として同じ手順を繰り返す。このようにライン上を一画
素ずつ連結性を調べると共に、その画素の上下(すなわ
ち隣接ライン)の連結性を持つ画素をもれなく調べ、ラ
ベリング開始点の候補としてスタックするので、注目画
素値を有する画素の塊(連結成分)に属する画素をもれ
なく検出し、同一ラベルでラベリングすることができ
る。したがって、多数の分岐を含む複雑な形状の連結成
分でも正確にラベリングすることができる。また、この
方法によれば、1つの連結成分ごとに順にラベリングを
行っていくことになるので、画像全体のラベリングが終
了した段階では、各連結成分のラベルは必ず連番にな
る。
ラベル付け始点画素をライン始点とするステップ(a)
と、ライン始点を最初の対象画素とし、対象画素が前記
ラベル条件を満足しなくなるか又は画像端部に達するま
で、対象画素を右及び左のうち所定の一方向に順次1画
素ずつ移動させながらその都度対象画素及びその上下の
隣接画素を調べ、隣接画素が前記ラベル条件を満足する
場合はその隣接画素をスタックに追加し、対象画素が前
記ラベル条件を満足する場合はその対象画素に前記ラベ
ルを付与するステップ(b)と、ステップ(b)にて対
象画素が前記ラベル条件を満足しなくなるか又は画像端
部に達すると、対象画素が前記ラベル条件を満足しなく
なるか又は画像端部に達するまで、ラベル付け始点画素
から前記ステップ(b)とは逆方向に順次対象画素を1
画素ずつ移動させその都度対象画素その上下の隣接画素
を調べ、隣接画素が前記ラベル条件を満足する場合その
隣接画素を前記スタックに追加し、対象画素が前記ラベ
ル条件を満足する場合はその対象画素に前記ラベルを付
与するステップ(c)と、ステップ(c)にて対象画素
が前記ラベル条件を満足しなくなるか又は画像端部に達
すると、前記スタックの先頭の画素を取り出して新たな
ライン始点として前記ステップ(b)及び(c)を実行
するステップ(d)と、前記スタックから画素がなくな
るまで上記ステップ(d)を繰り返すステップ(e)
と、を含み、画像の全画素について走査が終わるまで前
記始点検出ステップ及びラベル付与ステップを繰り返
す。
スタックする際に、その対象画素がラベル付けされるか
否かによらず、隣接画素がラベル条件を満足するか否か
のみでスタックするか否かを判断するようにした。これ
により、8連結における斜め方向の連結の場合も正しく
スタックすることができるので、8連結成分のラベリン
グ処理を実現することができる。また、この方法は、上
記第1の発明に係る方法とほぼ同じ計算量で、8近傍ラ
ベリングを実現することができる。
並行してラベリングした画素の数や座標を集計すること
により、同一ラベルの画素連結成分の面積や重心などの
特徴量を計算することができ、高速な特徴量計算が可能
になる。
から取り出した画素がラベル未付与か否かを判定し(前
記ラベル条件の判定)、ラベル付与済みである場合の回
数をカウントすることにより、注目画素値の連結成分中
の穴(注目画素値以外の画素の領域)の数を求めること
ができる。
査順序で調べ、ラベル未付与でかつ注目画素値を有する
というラベル条件を満足する画素を検出し、ラベル付け
始点画素に定める始点検出ステップと、ラベル付け始点
画素及びこれに連結性を有する画素にラベルを付与する
ラベル付与ステップと、を含み、前記ラベル付与ステッ
プは、ラベル付け始点画素をライン始点とする開始ステ
ップと、前記ライン始点を含むライン上の画素を1画素
ずつ走査し、前記ライン始点に対して連結性を有し前記
ラベル条件を満足する画素を見つける毎に前記ラベルを
付与すると共に、その走査ラインの上下の隣接ラインに
おいて、その走査ラインの画素に対して前記ラベル条件
を満足する画素を連結候補画素として所定の記憶手段に
記憶するライン走査ステップと、前記ライン走査ステッ
プにおいて前記走査ライン上でのラベル付け処理が完了
すると、前記記憶手段から連結候補画素を1つ取り出
し、これを新たなライン始点として前記ライン走査ステ
ップを反復する走査反復ステップとを含む。
インにおけるラベル条件を満足する画素をスタックに追
加し、ライン走査が終わった後そのスタックから次のラ
インの走査開始点を取り出してラベリングのためのライ
ン走査を行う。このような処理により、複雑な図形でも
1回の走査で(すなわち従来技術のように仮ラベルの付
け直しのための走査を何度も繰り返すことなく)、高速
にラベリングを行うことができる。
実施形態という)について、図面に基づいて説明する。
構成を示す機能ブロック図である。本実施形態では、2
値画像用メモリ20に記憶された2値画像に対し、ラベ
リング処理部10によりラベリング処理を行い、その結
果をラベル付画像用メモリ30に書き込んでいく。ラベ
リング処理部10は、ラベリングのための制御情報記憶
手段としてスタック12を用いる。このスタック12
は、後入れ先出し(LIFO)方式のデータ構造であ
る。本実施形態では、2値画像において1ラインずつラ
ベリングを進めていくが、このスタック12にはそのラ
インのラベリングの際に求めた次のラインのラベリング
処理の始点画素の座標情報を登録する。このスタック1
2の詳細な利用法については、後の処理手順の説明にて
詳細に述べる。また、ラベリング処理部10は、ラベリ
ング処理と平行して、面積カウンタ14、Xカウンタ1
6及びYカウンタ18を用いて、ラベリングした各連結
成分(すなわち注目する画素値を持つ互いに連結した画
素の塊)の面積や重心を計算する。
実施形態の画像処理装置の全体処理手順を説明する。以
下の処理は、ラベリング処理部10によって行われる。
ずラベリング処理部10は、付与すべきラベルの値nを
0に初期化する(ステップS10)。本実施形態では、
ラベルとして続き番号を用いている。
べき注目画素値の画素の塊を見つけるための画像走査を
行う。以下では、2値画像を構成する白黒の2値のう
ち、「白」を注目する画素値とし、白画素の塊をラベリ
ングするものとする。
隅から右下隅に向かって、ラスタ走査順序に従って行
う。この走査のため、まずラベリング処理部10は、鉛
直座標yの値を0に初期化する(ステップS12)。こ
の鉛直座標yは、走査対象の画像ラインに対し、上から
順に付けた番号である。本実施形態では、図8に示すよ
うに、画像の座標系として、水平方向右向きに水平座標
x、鉛直方向下向きに鉛直座標yをとり、画像の左端の
カラム(列)のx座標を0、上端のライン(行)のy座
標を0としている。鉛直座標yを初期化すると、以降ス
テップS14からS26までの処理ループで、鉛直方向
についての走査が制御される。ステップS16では、水
平方向の走査のために、水平座標xが0に初期化され
る。そして、ステップS18からS24までの処理ルー
プで、水平方向についての走査が制御される。このよう
な走査に従って、2値画像用メモリ20に格納された2
値画像の各画素がラスタ走査順序で調べられる。
象に選んだ点(x,y)がラベル未付与の白画素である
か否かを判定する。図では肯定判定をTRUE(真)、
否定判定をFALSE(偽)と表している。この判定結
果が肯定(TRUE)の場合、ラベルnの値を1だけイ
ンクリメントし(ステップS22)、この点(x,y)
を起点とする白画素の塊(連結成分)に対し値nのラベ
ルを付与する処理(ステップS100)を実行する。こ
のステップS100の処理については、後に図3を参照
して詳しく説明する。そして、ステップS24にて水平
座標xの値を1インクリメントすることにより調査対象
を右に1つ移動し、ステップS18に戻る。一方、ステ
ップS20の判定結果が否定(FALSE)の場合は、
何も行わずにステップS24に進み、調査対象の画素を
右に1つ移動してステップS18に戻る。
8で調査対象の画素が画像の右端を超えたことが分かる
と、ステップS26で鉛直座標yを1だけインクリメン
トし、ステップS14に戻り、次のラインについてステ
ップS16からS24の処理を繰り返す。そして、ステ
ップS14で調査対象のラインが画像の下端を超えたこ
とを検知すると、一連のラベリング処理が完了したこと
になる。
右下隅に向かうラスタ走査順序に従い各画素が調べら
れ、ラベル未付与の白画素が検出されると、その画素を
起点とした連結成分のラベル付け処理(ステップS10
0)が行われることになる。ステップS100により1
つの連結成分についてのラベル付けが終わると、ラスタ
走査順序に従い、ラベル未付与の連結成分の起点となる
白画素の探索が行われる。
20で見つけられるラベル未付与の白画素は、1つの白
画素の連結成分(塊)の中の最上ラインの左端の画素で
ある。この画素を始点として、1つの連結成分をラベリ
ングするためのサブルーチン、すなわちステップS10
0の処理が実行される。次に、このステップS100の
処理手順を説明する。
プS100の詳細な処理手順を示す。この手順では、ま
ず準備として、図2に示したメインルーチンから、ステ
ップS20で検出された連結成分の始点の座標(xi,
yi)、及びステップS22で求められたラベル値nを
取得する(S102)。例えば、最初に見つけられた始
点(xi,yi)のラベル値nは、ステップS22によれ
ば1となる。以下の手順では、この始点の画素に連結す
る白画素が順次検出され、ラベルnが付与されていく。
制御用のスタック12(図1参照)に追加する(ステッ
プS104)。本実施形態ではラベリング処理と並行し
て白画素の連結成分の面積や重心の計算を行うが、その
ために用いる面積カウンタ14(面積S)、Xカウンタ
16(Gx)、Yカウンタ18(Gy)の初期化をステ
ップS106で行う。そして、以降、そのスタックに画
素座標のデータがエントリされている間、ステップS1
08からS114の処理ループが繰り返される。
先頭のエントリ(すなわち最後に積まれた画素座標)を
取り出し、これを走査開始座標(x0,y0)にセットす
る(ステップS110)。そして、ステップS112で
点(x0,y0)がラベル未付与の注目画素値(この場合
は「白」)の画素かを判定する。なお、図及び以下の説
明では、表現の簡素化のため、点(x,y)の画素がラ
ベル未付与の注目画素値の画素であるかどうかの条件判
断をK(x,y)と表記する。点(x,y)がラベル未
付与の注目画素値の画素である場合には、この結果はT
RUE(真)、そうでない場合にはFALSE(偽)と
なる。
場合は、走査開始座標(x0,y0)を始点として、ライ
ン方向に画素を走査してラベリングを実行していく(ス
テップS200)。このステップS200によれば、走
査開始座標(x0,y0)の画素が属する画像ラインのう
ちその画素に連結性を有する各画素にラベルnが付与さ
れるとともに、そのラインの上下の隣接ラインの走査開
始座標の候補となるものが求められ、それがスタック1
2に追加されることになる。またこのとき、白画素の塊
の面積や重心を求めるためのカウンタ14、16及び1
8のカウントアップも行われる。なお、このステップS
200の詳細な処理手順は後に詳しく説明する。ステッ
プS200の処理が完了すると、ステップS108に戻
り、スタック12から最新に追加されたエントリを取り
出して以上の処理を繰り返す。
LSEになるのは、スタック12に積まれた座標の画素
が、スタック12から取り出される(ステップS10
8)前にラベル付けされてしまっている場合である。後
に具体例を挙げて説明するが、簡単に言えば、連結した
白画素の塊の中に穴(黒画素)がある場合、このような
ことが起こる。この場合、その座標の属するラインにつ
いてはラベリングが終わっているので、何もせずにステ
ップS108に戻る。
12のエントリがすべてなくなると、始点(xi,yi)
から始まる白画素の連結成分に属する全画素についてラ
ベルnの付与が完了したことになる。
ント値がその連結成分の面積Sであり、Xカウンタ16
及びYカウンタ18のカウント値をその面積Sで除した
値が、それぞれその連結成分の重心のx座標(Gx)及
びy座標(Gy)となる。本実施形態では、ステップS
114で、ラベリングした連結成分の重心座標(Gx、
Gy)を計算し、これを連結成分の面積Sの値と共に、
所定の記憶手段に格納する(ステップS116)。
0の処理が終わり、制御が図2のメインルーチンに戻さ
れて、次の白画素の塊(連結成分)の開始座標が探索さ
れる。
ライン走査処理の詳細な処理手順を説明する。この処理
は、図4に示すように、ステップS110でスタック1
2から取り出された走査開始座標(x0,y0)の画素か
ら、当該ラインを右方向に走査して連結画素のラベリン
グを行っていく処理(ステップS210:右方向処理)
と、その画素から当該ラインを左方向に走査して連結画
素をラベリングする処理(ステップS250:左方向処
理)を含んでいる。以下、それら各処理の内容を説明す
る。
順を図5に示す。この処理では、まず2つのフラグF1
及びF2の値をFALSEに初期化(リセット)する
(ステップS212)。これらのフラグは、ステップS
300の隣接ラインの開始点をスタック12に登録する
処理において用いるものであり、その機能についてはス
テップS300の処理の説明の際に詳しく述べる。
査開始座標のx座標値x0をセットする。以降、ステッ
プS216でxが2値画像の幅以上になった(すなわち
画像の右端に達した)ことが検知されるまで、ステップ
S224で水平座標xを1ずつインクリメントしなが
ら、ステップS216からS224の処理ループを繰り
返す。
ベル未付与の注目画素値の画素か否かを判定し(K
(x,y0))(ステップS218)、この結果がTR
UEの場合は、点(x,y0)の画素に値nのラベルが
付与される(ステップS220)。
は、x=x0なので、ステップS220では、スタック
12から取り出された走査開始座標(x0,y0)の画素
について条件判定K(x,y)が適用されることになる
が、この画素はステップS112でTRUE判定を受け
たものと同じものなので、ここでの処理結果もTRUE
となり、走査開始座標の画素にラベルnが付与されるこ
とになる。以降、この処理ループでは、検査対象となる
画素の座標が、ライン上を順次右方向に1画素ずつシフ
トされ(ステップS224)、その検査対象画素がラベ
ル未付与の白画素かがステップS218で検査される。
ステップS218の結果がFALSEになるとこの処理
ループを抜けるので、逆に言えばこの処理ループが繰り
返されている間は、検査対象の画素は、走査開始座標の
画素に対し、ライン上でラベルnの画素のみを介してつ
ながっていることになる。したがって、ステップS21
8の結果がTRUE(すなわち検査対象画素がラベル未
付与かつ白画素)の場合は、その検査対象画素は走査開
始座標の画素に対して連結性を有していることが保証さ
れるので、その検査対象画素に対してラベルnを付与し
てよいことになる。
ベル付けの始点(xi,yi)の属するラインについて、
そのライン上でその始点に連結性を有する画素に、その
始点と同じラベルnを付与されることは以上の説明から
理解されよう。その他のラインについては、スタック1
2に積まれた座標の画素から処理が開始されるが、その
開始画素は、後で説明するスタック12への座標追加処
理(ステップS300)の方法から、隣接ラインのラベ
ルnを付与済みの画素に連結性を有していることが保証
される。したがって、その開始画素及び同一ライン上の
連結性を有する画素には、やはりラベルnを付与してよ
いことになり、実際、ステップS108にてスタック1
2から開始画素を取り出した後、図5の処理ループ(ス
テップS216からS224)の実行により、それら各
画素にラベルnが付与されることになる。
(x,y0)にラベル付けをすると、これと並行して、
白画素の連結成分の面積を求めるため面積カウンタ14
(S)のカウント値を1だけインクリメントすると共
に、その連結成分の重心を求めるためにラベル付けした
画素の水平座標xと鉛直座標y0を、Xカウンタ16
(Gx)とYカウンタ18(Gy)のカウント値にそれ
ぞれ加える(ステップS222)。
スタック12に登録するための処理を行う(ステップS
300)。
処理手順を説明する。この処理では、検査対象の画素
(x,y0)の上下の隣接画素が隣接ラインの走査開始
点に適するか否かを判断し、適する場合にはその隣接画
素の座標をスタック12に追加する。この処理におい
て、ステップS302からS310までは上の隣接画素
に関する処理であり、ステップS312からS320ま
でが下の隣接画素に関する処理である。これら両者はい
ずれを先に行ってもよい。
02では、検査対象の画素(x,y0)の上の隣接画素
(x,y0−1)について判定K(x,y)を適用し、
その隣接画素がラベル未付与の白画素か否かを判定す
る。この判定結果がTRUEの場合、その隣接画素は検
査対象画素に連結性を有していることになる。ここで検
査対象画素自体にはラベルnが付与されているので、そ
の隣接画素が検査対象画素に連結性を有していれば、そ
の隣接画素もラベルnを付与されるべき画素であるとい
える。本実施形態では、基本的に、そのようなラベルn
を付与すべき隣接画素を、隣接ラインの走査開始点とし
てスタック12に登録する。
ック12に登録したのではスタックのサイズが大きくな
り、またスタック12からの画素取り出し処理の負荷が
増えるので、本実施形態ではこれを避けるため、スタッ
ク12に登録する画素を絞り込んでいる。前述のフラグ
F1及びF2はこの絞り込みのために用いている。F1
は上隣の隣接画素用、F2は下隣の隣接画素用である。
接画素がラベル未付与の白画素と分かった場合、フラグ
F1の現在値がFALSEであるか否かを判定する(ス
テップS304)。そして、F1がFALSEの場合に
のみ、その隣接画素の座標(x,y0−1)をスタック
12に追加する(ステップS306)。そして、F1の
値をTRUEにセットする(ステップS308)。
ALSEに初期化されているので、ライン走査処理(ス
テップS200)の中で最初にこのステップ304を通
過する際には、F1は必ずFALSEである。したがっ
て、そのラインの走査開始画素(x0,y0)の上の隣接
画素がラベル未付与の白画素であれば、その隣接画素は
必ずスタック12に登録される。こうして、いったん上
の隣接画素がスタック12に登録されると、ステップS
308でフラグF1がTRUEにセットされ、F1がT
RUEである間は、上の隣接画素(x,y0−1)は、
ラベル未付与の白画素であってもステップS304の判
定により、スタック12に登録されないことになる。し
たがって、例えば最初に走査開始画素(x0,y0)の上
の隣接画素をスタック12に登録した後、その上の隣接
画素から同一ライン上を右方向に白画素が連続している
場合でも、それら白画素はスタック12に登録されな
い。フラグF1がTRUEからFALSEにリセットさ
れるのは、ステップS302で上隣接画素(x,y0−
1)がラベル未付与の白画素でない(すなわち黒画素か
又はラベル付与済みの画素)と判定された場合である
(ステップS310)。F1がFALSEにリセットさ
れた後、再びラベル未付与の白画素である隣接画素
(x,y0−1)が見つかると(ステップS302)、
その隣接画素はスタック12に追加される(ステップS
306)。
てのスタック処理を説明したが、下の隣接画素もこれと
全く同様スタック処理される。すなわち、まずステップ
S312で下の隣接画素(x,y0+1)がラベル未付
与の白画素かが判定され、この判定結果がTRUEの場
合、ステップS314でフラグF2がFALSEか否か
が更に判定され、F2がFALSEである場合にのみ、
その画素(x,y0+1)がスタック12に登録される
(ステップS316)。そして、スタック12への登録
がなされると、ステップS318でフラグF2はTRU
Eにセットされる。いったんTRUEにセットされたフ
ラグF2は、走査が進んでステップS312で下の隣接
画素(x,y0+1)がラベル未付与の白画素でなくな
ると、FALSEにリセットされる(ステップS32
0)。
素座標の登録処理について説明した。図6には示さなか
ったが、ステップS302やS312で検査対象画素の
上隣や下隣の画素を参照する際、誤って2値画像の外の
値を読み込まないようにするためのエラー回避処理を行
っていることは言うまでもない。
0)の上下の隣接画素についてのスタック処理が完了す
ると、ステップS224で検査対象画素の水平座標xを
1だけインクリメントし、検査対象画素を1つ右にずら
してステップS216からS224の処理を繰り返す。
このようにして、検査対象画素が2値画像の左端を超え
てしまったり(ステップS216)、検査対象画素がラ
ベルnを付すべき画素でなくなったり(ステップS21
8の結果がFALSE)すると、右方向処理(ステップ
S210)が完了し、左方向処理(ステップS250)
に移る。
に示す手順に従って行われる。この処理は、走査開始座
標(x0,y0)の左隣の画素から処理を開始し、当該ラ
イン上を左方向に走査していくことを除けば、前述の右
方向処理と全く同じ内容の処理を行う。
フラグF1をK(x0,y0−1)の判定結果に、F2を
K(x0,y0+1)の判定結果に、それぞれ初期化す
る。ここでは、走査開始座標(x0,y0)の上隣及び下
隣の画素に合わせてフラグを初期化しているわけであ
る。次にステップS254で水平座標xがx0−1に初
期化されることにより、走査開始座標の左隣の画素が最
初の検査対象画素に選ばれることになる。以降、ステッ
プS256にて水平座標xが0より小さくなったことが
検出されるまで、ステップS264にて順次水平座標が
1ずつデクリメントされ、これにより検査対象画素を1
つずつ左方向にずらしながら、右方向処理の場合と同様
のラベル付け及びスタック処理(ステップS218〜S
300)が行われる。
50)が完了すると、1ラインについてのラベリング処
理(ステップS200)が完了し、図3の処理の流れに
戻ってスタック12から次の走査開始座標を取り出し
て、同じ処理を繰り返す。
の処理手順を説明した。以上の手順では、点(x,y)
上の画素がラベル未付与かつ注目画素値か、という条件
判定K(x,y)を各所で行ったが、この処理は、ラベ
ル付画像用メモリ30に対して次のような初期化処理を
実行することにより簡略化できる。この初期化処理で
は、2値画像用メモリ20から各画素の値を読み出し、
その画素が注目画素値であるか否かに応じて、それぞれ
異なる仮ラベルを与えてラベル付画像用メモリ30に書
き込む。この際に用いる仮ラベルには、最終的なラベリ
ングには使用しない値(例えば自然数の連番でラベリン
グする場合は、0や−1など)を用いる。好適な例とし
ては、注目画素値の画素には“−1”の仮ラベル、注目
画素値でない画素には“0”の仮ラベルを与える。この
ようにすれば、図2のステップS20、図3のステップ
S112、図5のステップS218などにおけるK
(x,y)の条件判定が、結局その点(x,y)のラベ
ル値が“−1”であるか否かの判定になる。すなわち、
点(x,y)が“−1”であれば、ラベル未付与かつ注
目画素値であるからである(注目画素値でなければラベ
ル値は“0”であるし、ラベルが既に付与されていれば
ラベル値は“−1”ではない)。
例を参照して、その処理手順の実行の様子を説明する。
を考える。図8では、黒塗り正方形が黒画素、白抜き正
方形が白画素を示し、中に数字を含む白抜き正方形はラ
ベル付けされた白画素を示す。中の数字がラベルの値で
ある。そして、ハッチングが付された四角形は、スタッ
ク12に座標が登録された白画素を示すものとする。
素の塊)についてラベル付与が終わり、ステップS20
にて次のラベル付け始点が検出され、その始点をステッ
プS104でスタック12に登録した時点の様子を示し
ている。すなわち、スタックには座標(12,2)が積
まれており、以降、この座標の画素を始点として、この
画素に連結する画素のラベリングが行われる。
2,2)が取り出され(ステップS110)、これはラ
ベル未付与の白画素なので、新たなラベル2が付与され
る(ステップS220)。この画素の上隣と下隣のう
ち、後者はラベル未付与の白画素なのでその座標(1
2,3)がスタック12に積まれる(ステップS31
6)。そのラベル付け始点(12,2)の左隣の画素を
調べると、その画素(13,2)はラベル未付与の白画
素なので、ラベル付け始点と同じラベル2が付与される
(ステップS220)。この画素の下隣の画素(13,
3)は、ラベル未付与の白画素であるが(ステップS3
02)、先ほど座標(12,3)をスタック12に積ん
だときにフラグF2がTRUEにセットされているの
で、スタック12へは登録されない。図9はこの時点の
様子を示す。
の走査が終わった時点では、ラベル付けの状態は図10
に示すようになる。ラインの走査が完了したので、次に
スタック12から先頭のエントリ、すなわち座標(1
2,3)を取り出し(ステップS110)、この座標を
起点としてy=3のラインについての走査を行う。ここ
ではまずラインの始点(12,3)にラベル2が付与さ
れる。その下隣(12,4)はラベル未付与の白画素な
ので、スタック12に積まれる。ラインの始点(12,
3)から右方向に処理を進めていくと、検査対象画素が
(15,3)に達した時点でその画素の下隣(15,
4)が黒画素となり、フラグF2がFALSEにリセッ
トされる(S320)。その後、検査対象画素が(1
9,3)に達した時点では、その下隣(19,4)はラ
ベル未付与の白画素であり、しかもこの時点ではフラグ
F2はFALSEなので、座標(19,4)がスタック
12に積まれることになる(ステップS316)。この
時点のラベリング状態を図11に示す。
が完了した時点では、ラベリング状態は図12に示すよ
うになる。この時点では、スタック12には上から順に
座標(19,4)、(12,4)が積まれている。これ
は、y=4より下では白画素の連結成分が、画素(1
9,4)に連結している部分と、画素(12,4)に連
結している部分の2つに分岐していることを示してい
る。
(19,4)が取り出され、この座標をライン始点とし
て走査(ラベリング)が行われることになる。以降、上
記の処理の繰り返しにより、2分岐した連結成分のうち
画素(19,4)に連結した白画素にラベル2が付与さ
れていく。y=7のラインまで処理が完了した時点のラ
ベリング状態を図13に示す。
ら取り出され、この点を始点としてy=8のラインのラ
ベリング走査が行われる。この走査により、新たに座標
(20,9)、(15,7)、(9,9)がこの順番で
スタック12に積まれる。y=8のラインの走査が終わ
った時点のラベリング状態を図14に示す。
り出され、この点から下に向かってラベリングが行われ
ていく。そして、(9,9)から下の連結成分の白画素
すべてにラベル付けが終わると、次にスタック12から
座標(15,7)が取り出され、この点から上に向かっ
てラベリングが行われていく。図15は、この上向きの
ラベリング走査がy=6のラインまで完了した時点のラ
ベリング状態を示している。
ングが完了した時点の状態を示す。この時点では、スタ
ック12の先頭には座標(13,4)が積まれている。
したがって、次は、この点(13,4)を始点としてy
=4のラインについてラベリングが行われる。図17
は、この処理結果を示している。この処理により、スタ
ック12の一番下に積まれている座標(12,4)の画
素にラベル2が付与される。図17では、このことを白
抜きラベルの四角形で表している。この処理では、新た
にスタック12に積まれる座標はない。
9)を取り出し、これを始点として、下方向に向かって
この始点に連結する白画素をラベリングしていく。そし
て、その始点から下方向の連結成分のすべてにラベル付
けが終わると、図18に示す状態となる。この状態で
は、スタック12には、座標(12,4)の点のみが残
っている。最後に、この点をスタック12から取り出す
(ステップS110)。この点は既にラベル付けされて
いるので、ステップS112の判定結果はFALSEと
なり、ライン走査処理ステップS200は行われない。
したがって、スタック12へのエントリの追加が行われ
ないので、結局この結果スタック12が空になる。これ
により、ステップS118でループAの終了条件が成立
し、ラベル付け始点(12,2)から始まるラベル2の
ラベリングが完了したことになる。
イン上で互いに連結する白画素の集合をノードと考える
と、同一ラベルが付される白画素の塊は、そのノード同
士を隣り合うライン同士で接続した多分木構造と考える
ことができる。本実施形態のラベリング手法は、この多
分木を深さ優先探索アルゴリズムに従って探索する処理
と等価であることが分かる。本実施形態の手法では、多
分木構造のすべての分岐の開始点(ラインの走査開始座
標)が確実にスタック12にスタックされるので、4連
結の連結成分をもれなく求めてラベリングすることがで
きる。
連結する白画素の集合に対し1つの画素(走査開始座
標)のみが選択されスタック12に登録される構成であ
る。したがって、スタック12から取り出した画素を調
べたとき、それがラベル既付与のものならば、その画素
はある方向から(例えば上から)のアプローチで白画素
塊の分岐の開始点の候補としてスタックされたものが、
逆の方向からのアプローチで既にラベル付けされてしま
ったことを示し、これはすなわち白画素の塊の中に1つ
の穴(黒画素領域)があることを示す。したがって、ス
タック12から取り出した画素がラベル付与済みであっ
た回数をカウントすれば、その結果はラベル付けした白
画素の塊の中の穴の個数を求めることができる。穴の個
数という位相幾何学的な情報は、対象物認識のための有
力な情報となる。
グ処理について説明した。本実施形態では、ラインに沿
って1画素ずつ連結性を調べると共にその画素の上下の
連結性を持つ画素をラベリング開始点の候補(走査開始
座標)としてスタックする構成なので、あるラインに注
目した場合、そのラインから上あるいは下方向に連結成
分が複雑に分岐するとしても、各分岐部分のいずれかの
画素が必ずスタックに積まれる。したがって、そのスタ
ックのエントリがなくなるまで処理を繰り返せば、必ず
すべての分岐部分について同じラベルが割り当てられる
ことになり、連結成分が複雑な形状でも各画素に確実に
同じラベルを付与することができる。
に対応するためには様々な方向について走査を行う必要
があったため、処理に長い時間を要したが、本実施形態
では、複雑な形状についても高速にラベリング処理を行
うことができる。
画素の2値画像を用いて行った実験では、白画素連結成
分のラベリングについて、従来手法に基づくプログラム
と本実施形態の手法に基づくプログラムとでは、処理時
間が約4:1(すなわち本実施形態は従来の約4倍の速
度)という結果が得られた。なおこの実験は、一般的な
パーソナルコンピュータを用いて行ったものである。
ベリング処理が完了するまで特徴量の算出を待たなけれ
ばならなかったのに対し、本実施形態では、1つの白画
素の塊(連結成分)のラベリングが終了した段階でその
塊の面積や重心などの特徴量を求めることができるの
で、特徴量の算出までを総合して考えれば高速化の効果
はさらに高いといえる。特に、侵入者検知など、画像中
から特定の条件を満たすものを1つ見つければよいとい
う用途では、高速化の効果はさらに顕著である。
なる注目画素値を白としたが、本発明は、注目画素値を
黒とする場合にも当然適用可能である。
て、本実施形態の画像処理の侵入者検知装置への応用例
を説明する。図19において、図1と同様の構成要素に
は同じ符号を付す。
カメラ100からのNTSCコンポジット信号を画像入
力部40で受信し、画像入力部40で得た画像を第1原
画像用メモリ42及び第2原画像用メモリ44に対し、
1フレーム毎に交互に書き込んでいく。差分演算部46
では、1フレーム毎に、第1及び第2原画像用メモリ4
2及び44の画素毎の差分を計算し、その結果を差分画
像用メモリ48に書き込む。差分画像用メモリ48に形
成された、ある時刻とその1フレーム前の時刻との差分
画像は、2値化処理部50にて所定のしきい値を基準に
2値化され、その結果が2値画像用メモリ20に書き込
まれる。ラベリング処理部10は、2値画像用メモリ2
0内の2値画像に対し、前述の処理手順に従ってラベリ
ング及び特徴量の計算処理を行い、その結果をラベル付
画像用メモリ30に書き込む。なお、この図では、ラベ
リング処理に用いる制御用のスタックや各種カウンタの
図示は省略している。侵入者判定部52は、このラベリ
ング結果や特徴量の計算結果を受け取り、これらのデー
タから所定の判断基準に従って侵入者の有無を判定す
る。この判定結果は、侵入者判定装置全体を制御する制
御部54に伝えられ、例えば侵入者有りと判定された場
合は、この制御部54が所定の警報装置を作動させる。
ついて説明する。上記実施形態1が4連結成分のラベリ
ングであったのに対し、本実施形態では8連結成分のラ
ベリングのための構成を説明する。
示した上記実施形態1の装置構成と同様でよく、基本的
な処理の手順も実施形態1のものとほぼ同様である。た
だ本実施形態では、8連結成分のラベリングを可能とす
るために、隣接ラインの開始点のスタック処理の仕方
を、上記実施形態1の方式から少し変更している。
1画素ずつ隣を調べてラベリングしていく際、調べる対
象の画素にラベリングを行った後、その画素の上下の隣
接画素についてスタック処理を行っていた(例えば図5
のS218〜S300参照)。この方式では、対象画素
がラベル付けされなければ、その上下の隣接画素が、ラ
ベリング開始点の候補としてスタック12(図1)に積
まれることはない。この方式は、隣接ラインの走査開始
点としてスタックに積まれる画素は、ラベル付けされた
画素の上下の隣接画素に限られるので、対象画素の上下
左右の4つの隣接画素との連結性を見る4連結成分の方
式に合致している。例えば、図22に示すような画像2
00の場合、実施形態1の方式では、白画素の塊210
と塊220とが(4連結性の観点では)非連結と判断さ
れ、別のラベルが与えられてしまう。例えば左から右
へ、上から下へと画素を走査して連結性を調べていく場
合、6ライン目にて(7,6)から順に右方向へと走査
していった場合、(9,6)の画素は黒画素なのでラベ
ル条件を満たさず、したがってラベリングが施されな
い。このため、その下の(9,7)は白画素であるもの
の、スタック12には追加されない。したがって、ラベ
リング走査は7ライン目に続くことができず、塊220
には、塊210とは別のラベルが与えられることにな
る。
形態2では、図22のようなケースにおいて塊210と
220とに同じラベルを与えるために、6ライン目の走
査の際に、隣接ラインの(9,7)がスタック12に積
まれるようにアルゴリズムを変更する。すなわち、本実
施形態では、実施形態1と異なり、ラベリング走査の対
象画素にラベルが付与されるか否かによらず、その対象
画素の上下の隣接画素がラベル条件を満足すればスタッ
ク12に追加するようにする。例えば図22の例で言え
ば、6ライン目の走査において、対象画素が(9,6)
となったとき、その下側の隣接画素(9,7)はラベル
条件(ラベル未付与且つ白画素)を満足するので、その
画素をスタック12に積む(対象画素がラベル条件を満
足するか否かは考慮しない)。ライン走査において対象
画素(9,6)の直前の画素(86)までは連結性が保
証されており、この画素(8,6)とスタックに積んだ
画素(9,7)とは8連結性がある。したがって、スタ
ック12に積んだ画素(9,7)から隣接ラインのラベ
リング走査を再開すれば、8連結性を満足したラベリン
グが行える。
して本実施形態のラベリング手順を説明する。この手順
では、スタック処理を上述の如く変更する以外に、ラベ
ル付画像用メモリ30に対して初期化処理を施すことに
より、ラベル条件の判断を容易にしている。
ートである。この手順では、まずラベリング処理対象の
2値画像を2値画像用メモリ20に用意し(S50)、
この2値画像に応じてラベル付画像用メモリ30を初期
化する(S500)。この初期化処理の詳細を図24に
示す。
は、まず2値画像を用意し(S502)、走査位置を示
す座標のインデックスx、yをそれぞれ0に初期化する
(S504)。以降ステップS506からS518まで
の処理ループで、鉛直方向についての走査が制御され、
ステップS508からS516までの処理ループで、水
平方向についての走査が制御される。このラスタ走査に
従って、2値画像の各画素(x,y)の値B(x,y)
を調べていく(S510)。
黒)ならば、ラベル付画像用メモリ30の当該画素
(x,y)の値L(x,y)を“0”にセットし(S5
12)、B(x,y)=0でなければ(すなわち黒画
素)であれば、当該画素のラベル値L(x,y)を“−
1”にセットする(S514)。
て自然数(1,2,3,…)のラベルを付与していくた
め、この初期化処理では、黒画素についてはラベル値
“0”を与え、各白画素には仮のラベル値“−1”を与
える。この仮のラベル値“−1”は、後に正式のラベル
値に置き換えられる。逆に言えば、後のラベリング処理
において、ラベル値が“−1”である画素を見つけれ
ば、その画素は、ラベル条件(白画素且つラベル未付
与)を満足するということが即座に分かり、各画素がラ
ベル条件を満足するか否かの判断が容易になる。
の初期化が完了すると、ラベル値nを0に初期化し(S
52)、走査点の座標インデックスx、yをそれぞれ0
に初期化した上で(S54)、ラベル付画像用メモリ3
0をラスタ走査する(x方向はS58〜S64、y方向
はS56〜S66)。この走査は、ラベル未付与の新た
な白画素の塊の最初の点を見つけるための走査であり、
S60でメモリ30の調査対象画素(x,y)の値L
(x,y)を調べ、その値が−1であれば、ラベル未付
与の白画素が見つかったということなので、ラベル値n
をインクリメントし(S62)、その画素を始点として
連結成分のラベル付け処理を行う(S600)。1つの
塊のラベル付け(S600)が終わる毎に、S56〜S
66の処理ループが繰り返され、画像の最後の画素まで
走査が終わると処理が終了する。
は、図3に示した実施形態1の手順とほぼ同様である。
ただし、実施形態1では、S112でスタック12から
取り出した画素(x0,y0)がラベル条件を満足するか
どうかの条件判断K(x0,y0)を行っていたが、本実
施形態ではこの代わりに、当該画素のラベル値L(x
0,y0)が“−1”であるか否かを調べる。L=−1で
あればラベル条件を満足するということなのでライン走
査処理(S200)に進み、そうでなければスタック1
2から次の画素を取り出して処理を繰り返す。
施形態1と同様右方向処理(S210)と左方向処理
(S250)を順に行う(図4参照)。本実施形態にお
ける右方向処理と左方向処理の詳細な手順を図25、図
26にそれぞれ示す。これらの図において、図5、図7
と同様の処理を行うステップについては、同じ符号を付
してその説明を省略する。
は、対象画素(x,y0)がライン条件を満足するか否
かを判定する(S232)前に、その対象画素の上下の
隣接画素について隣接ライン開始点スタック処理(S3
00)を実行する点が実施形態1と異なる(実施形態1
では、対象画素がライン条件を満足する場合にのみ、そ
の上下の隣接画素についてスタック処理(S300)を
行った)。そして、S232の判定で対象画素がライン
条件を満足すると判定された場合、その対象画素(x,
y0)のラベル値L(x,y0)をnにセットし(S23
4)、面積や重心の計算のための処理を行う(S22
4)。
0)の処理内容は、上下隣接画素がライン条件を満たす
かどうかの判定(S302、S312)を、それら画素
の画素値L(x,y0-1)、L(x,y0+1)が“−1”
であるか否かによって判定する点を除いては、図6に示
した実施形態1の処理と同様でよい。
グ調整処理(S270)を行う。このフラグ調整処理の
詳細は図27に示される。すなわち、フラグ調整処理で
は、まずy0(走査中のラインの番号)が0より大きい
か否か(すなわち上方に隣接ラインが存在しうるか否
か)を判定し(S700)、y0>0であれば上側隣接
ラインの開始点画素判定のためのフラグF1にL(x
0,y0-1)をセットする。この値L(x0,y0-1)は、
現在走査中のラインの始点画素(x0,y0)の上隣の画
素のラベル値である。ただし、フラグF1は0,1の2
値なので、L=0以外のケースはF1=1になる。この
S702により、ライン始点画素の上隣画素がL=0で
ある時のみ、F1=0(FALSE、すなわちリセット
状態)となり、それ以外のケースではF1=1(TRU
E)となる。
ン始点の上隣画素(x0,y0-1)がラベル条件を満足し
ていないことを意味し、これは言い換えれば、走査中の
ラインの上隣ラインのラベル条件を満足する画素は、少
なくとも(x0,y0-1)で連結を切断されていることを
意味する。したがって、ここでF1をFALSEにリセ
ットすることで、以降の左方向のライン走査において最
初に見つかる上隣ラインのラベル条件満足画素をスタッ
クに積むことができる。
は、次の2つのケースが考えられる。第1のケースはL
(x0,y0-1)=−1の場合であり、この場合、既に画
素(x0,y0-1)は右方向処理(図25)のときにスタ
ックにつまれているはずなので、F1がTRUEで問題
がない。
然数)、すなわち画素(x0,y0-1)に既にラベルが付
与されている場合であり、この値nは、連結性から始点
画素(x0,y0)のラベルと同じ値である。この場合、
上隣ラインでラベル未付与画素の連結が切れているの
で、本来ならばフラグF1はFALSEにリセットされ
るべきであるが、このS702ではTRUEにセットさ
れる。しかし、これはこれで問題がない。なぜなら、そ
の画素(x0,y0-1)のラベルがn(自然数)である以
上、左隣の画素(x0-1,y0-1)のラベルL(x0-1,
y0-1)は、白画素ならば連結性によりnにセットされ
ているはずであり、黒画素ならば0にセットされている
はずだからである。したがって、仮にこの第2のケース
においてS702でF1=TRUEに設定したとして
も、次の画素に進んでスタック処理(図6参照)を行っ
たときにF1はFALSEにリセットされるので、問題
が起こらない。
整を行う。すなわち、まず走査中のラインが画像の最終
行でないことを確認し(S704)、最終行でないこと
が確認できた場合に、フラグF2を前述のF1と同様に
して、F2=L(x0,y0+1)に調整する。なおS70
4の判定において、走査中のラインが最終行であると判
断されれば、フラグF2は必要ないので調整も行わな
い。
ら左方向処理に移行する際のフラグ調整を、簡単な処理
で実現している。
述の右方向処理と同様にして、始点から左方向にラベリ
ング処理を行っていく(S254〜S264)。この左
方向処理も、右方向処理と同様、対象画素(x,y0)
がライン条件を満足するか否かを判定する(S232)
前に、その対象画素の上下の隣接画素について隣接ライ
ン開始点スタック処理(S300)を実行する。以降の
処理は右方向処理と基本的に同じでよい。
50)が完了すると、1ラインについてのラベリング処
理(ステップS600)が完了し、図23の処理の流れ
に戻ってスタック12から次の走査開始座標を取り出し
て、同じ処理を繰り返す。これにより、上記実施形態1
の場合と同様にして、8連結性を考慮したラベリング処
理が行える。また、本実施形態でも、実施形態1と同
様、白画素の塊の面積Sや重心、白画素塊の中にある穴
の数、などをラベリング処理と並行して求めることがで
きる。また、ラベリングの走査の際に、走査した画素の
x、y座標の最大値、最小値を記憶していくようにすれ
ば、白画素塊の幅や高さなどをラベリング処理と並行し
て求めることも可能である。
の走査開始点をスタックする際に、ライン走査における
対象画素がラベル付けされるか否かによらず、その対象
ラインの上下の隣接画素がラベル条件を満足するか否か
のみでスタックするか否かを判断するようにした。これ
により、8連結における斜め方向の連結(図22におけ
る(8,6)と(9、7)の関係など)の場合も正しく
スタックすることができるので、8連結成分のラベリン
グ処理を実現することができる。
施形態1の処理手順とほとんど同じなので、計算量も実
施形態1の場合とほとんど変わらない。本実施形態は、
実施形態1の4近傍ラベリングの場合と比べると、ライ
ン1本のラベリングにつき、当該ラインの両端の斜め隣
の4画素を余計に検査するだけであり、ラインがある程
度長い状況であればこの差はほとんど無視できるほどに
なる。
では、長さL(画素)のライン1本をラベリングする際
にラベル条件を判定する画素の数は3L+2個(対象ラ
イン及びその上下両隣のラインでL×3、これに対象ラ
インの左右両隣の画素2個を加えたもの)である。これ
に対し、本実施形態の8近傍ラベリングでは、同じライ
ン1本につきラベル条件を判定する画素数は3L+6個
である。最悪のケースは、白黒が1画素ずつ市松模様に
なっている場合であり、この場合はL=1なので、本実
施形態の8近傍ラベリングの1ライン当たりの検査画素
数は、実施形態1の場合の1.8倍となる。しかしなが
ら、実際の応用分野(例えば侵入者検知など)では、画
像がこのような極端なものになることはなく、一般に十
分なライン長さになるので、4近傍ラベリングに比べて
4画素分増加したとしても、それは無視できる(例えば
L=50の場合、2.6%の増加に過ぎない)。したが
って、本実施形態の手法は、4近傍ラベリングである実
施形態1とほぼ同様の計算量で、8近傍ラベリングを実
現できるというメリットがある。
態1の場合と同様、侵入者検知装置など様々な応用分野
に応用できる。
いて検証した。用いた画像は図28に示した(a)〜
(c)の3つの画像であり、これらの画像に対して(a
1)従来手法による4近傍ラベリング(従来技術に記
載)、(a2)従来手法による8近傍ラベリング(従来
技術に示した手法を8近傍を考慮するように拡張したも
の)、(a3)実施形態1による4近傍ラベリング、
(a4)実施形態2による8近傍ラベリング、の4つの
手法でラベリングを行い、その処理時間を計測した。処
理は、CPUとしてPentium2(登録商標)の2
66MHzを搭載したパーソナルコンピュータで行っ
た。その際の処理時間を図29に示す。
でも仮ラベルの更新を1〜2回行えば最終的なラベルが
決まってしまう。それでも、実施形態1に示した手法
(a3)の方が従来手法(a1)よりも4倍以上速いこ
とが分かる。また、実施形態2の手法(a4)も従来手
法(a2)よりも4倍以上速く、実施形態1(a3)と
ほぼ同程度の速さであることが分かる。
侵入者監視などの応用分野においては、この程度の複雑
さの画像をラベリングすることはめずらしくなく、この
程度の複雑さの画像は実用的な画像の範疇である。この
程度の複雑さになると、従来手法(a1)、(a2)で
は最終的なラベルを決定するのに何度も仮ラベルの付け
直しを必要とするため、処理時間が非常に長くなる。こ
れに対し、実施形態1、2の手法(a3)、(a4)
は、単純な画像(a)の場合と変わらない時間で処理が
完了しており、本発明に係る手法の高速性が如実に示さ
れている。この例でも、実施形態2による処理時間は実
施形態1と比べて遜色ない程度である。
際の応用分野でこのような複雑な画像を扱うことはあま
り考えられない。しかしながら、ここでは、本発明に係
る手法の有効性を調べるため、このような複雑な画像に
ついても検証を行った。従来手法(a1)、(a2)で
は、仮ラベルの付け直しを何度も何度も繰り返す必要が
あるため、非常に長い処理時間を要している。しかも、
従来の4近傍処理では、連結を判定する画素が少ないの
で、ラベル付け直しで正当なラベルが塊内を伝搬する速
度が遅くなるため、ここまで画像が複雑になると8近傍
処理の方が処理速度が速くなっている。しかしながら、
いずれにしても、本発明に係る手法(a3)、(a4)
ではいずれも、単純な画像と変わらない処理時間で処理
が完了している。この例でも、実施形態2は、実施形態
1と変わらない処理時間で8近傍ラベリングが可能なこ
とが分かる。
術よりもはるかに速い処理速度で、しかも4近傍ラベリ
ングを行う実施形態1の場合とほとんど変わらぬ速度
で、8近傍ラベリングを実現することができる。しか
も、その処理に要する時間は、画像の複雑さにあまり影
響されず、ある程度複雑な画像でも高速に処理すること
ができる。これにより、画像処理のリアルタイム性を一
層高めることができる。このようなラベリングの高速化
により生じる時間の余裕により、これまで処理時間の観
点から見送っていた他の処理に時間を割くことも可能に
なると考えられる。
る。
順を示すフローチャートである。
の手順を示すフローチャートである。
順を示すフローチャートである。
方向への走査処理の手順を示すフローチャートである。
する処理の手順を示すフローチャートである。
方向への走査処理の手順を示すフローチャートである。
ング処理を適用した場合の、ある時点での処理状態を示
す図である。
ング処理を適用した場合の、ある時点での処理状態を示
す図である。
リング処理を適用した場合の、ある時点での処理状態を
示す図である。
リング処理を適用した場合の、ある時点での処理状態を
示す図である。
リング処理を適用した場合の、ある時点での処理状態を
示す図である。
リング処理を適用した場合の、ある時点での処理状態を
示す図である。
リング処理を適用した場合の、ある時点での処理状態を
示す図である。
リング処理を適用した場合の、ある時点での処理状態を
示す図である。
リング処理を適用した場合の、ある時点での処理状態を
示す図である。
リング処理を適用した場合の、ある時点での処理状態を
示す図である。
リング処理を適用した場合の、ある時点での処理状態を
示す図である。
示す図である。
を示す図である。
較実験に用いた画像を示す図である。
る。
示すフローチャートである。
を示すフローチャートである。
手順を示すフローチャートである。
手順を示すフローチャートである。
トである。
像の例を示す図である。
形態の手法によるラベリングの処理時間の計測結果を示
す図である。
カウンタ、16 Xカウンタ、18 Yカウンタ、20
2値画像用メモリ、30 ラベル付画像用メモリ。
Claims (7)
- 【請求項1】 画像を所定の走査順序で調べ、ラベル未
付与でかつ注目画素値を有するというラベル条件を満足
する画素を検出し、ラベル付け始点画素に定める始点検
出ステップと、 ラベル付け始点画素及びこれに連結性を有する画素にラ
ベルを付与するラベル付与ステップと、 を含み、 前記ラベル付与ステップは、(a)ラベル付け始点画素
をライン始点とするステップと、(b)ライン始点を最
初の対象画素とし、対象画素を右及び左のうち所定の一
方向に順次1画素ずつ移動させながら、対象画素が前記
ラベル条件を満足する場合はその対象画素に前記ラベル
を付与すると共に、その対象画素の上下の隣接画素が前
記ラベル条件を満足する場合その隣接画素をスタックに
追加するステップと、(c)ステップ(b)にて対象画
素が前記ラベル条件を満足しなくなるか又は画像端部に
達すると、ラベル付け始点画素から前記ステップ(b)
とは逆方向に順次対象画素を1画素ずつ移動させなが
ら、対象画素が前記ラベル条件を満足する場合はその対
象画素に前記ラベルを付与すると共に、その対象画素の
上下の隣接画素が前記ラベル条件を満足する場合その隣
接画素を前記スタックに追加するステップと、(d)ス
テップ(c)にて対象画素が前記ラベル条件を満足しな
くなるか又は画像端部に達すると、前記スタックの先頭
の画素を取り出して新たなライン始点として前記ステッ
プ(b)及び(c)を実行するステップと、(e)前記
スタックから画素がなくなるまで上記ステップ(d)を
繰り返すステップと、 を含み、画像の全画素について走査が終わるまで前記始
点検出ステップ及びラベル付与ステップを繰り返す画像
処理方法。 - 【請求項2】 画像を所定の走査順序で調べ、ラベル未
付与でかつ注目画素値を有するというラベル条件を満足
する画素を検出し、ラベル付け始点画素に定める始点検
出ステップと、 ラベル付け始点画素及びこれに連結性を有する画素にラ
ベルを付与するラベル付与ステップと、 を含み、 前記ラベル付与ステップは、(a)ラベル付け始点画素
をライン始点とするステップと、(b)ライン始点を最
初の対象画素とし、対象画素が前記ラベル条件を満足し
なくなるか又は画像端部に達するまで、対象画素を右及
び左のうち所定の一方向に順次1画素ずつ移動させなが
らその都度対象画素及びその上下の隣接画素を調べ、隣
接画素が前記ラベル条件を満足する場合はその隣接画素
をスタックに追加し、対象画素が前記ラベル条件を満足
する場合はその対象画素に前記ラベルを付与するステッ
プと、(c)ステップ(b)にて対象画素が前記ラベル
条件を満足しなくなるか又は画像端部に達すると、対象
画素が前記ラベル条件を満足しなくなるか又は画像端部
に達するまで、ラベル付け始点画素から前記ステップ
(b)とは逆方向に順次対象画素を1画素ずつ移動させ
その都度対象画素その上下の隣接画素を調べ、隣接画素
が前記ラベル条件を満足する場合その隣接画素を前記ス
タックに追加し、対象画素が前記ラベル条件を満足する
場合はその対象画素に前記ラベルを付与するステップ
と、(d)ステップ(c)にて対象画素が前記ラベル条
件を満足しなくなるか又は画像端部に達すると、前記ス
タックの先頭の画素を取り出して新たなライン始点とし
て前記ステップ(b)及び(c)を実行するステップ
と、(e)前記スタックから画素がなくなるまで上記ス
テップ(d)を繰り返すステップと、 を含み、画像の全画素について走査が終わるまで前記始
点検出ステップ及びラベル付与ステップを繰り返す画像
処理方法。 - 【請求項3】 前記ステップ(b)及び(c)では、 対象画素の上の隣接画素を前記スタックに追加するとセ
ットされ、対象画素の上の隣接画素が前記ラベル条件を
満足しなくなるとリセットされるフラグと、 対象画素の下の隣接画素を前記スタックに追加するとセ
ットされ、対象画素の下の隣接画素が前記ラベル条件を
満足しなるとリセットされるフラグと、 を用い、対象画素の上下の隣接画素のスタックへの追加
は、各々対応するフラグがリセットされている場合のみ
に行うことを特徴とする請求項1又は請求項2に記載の
画像処理方法。 - 【請求項4】 前記ステップ(b)及び(c)で対象画
素にラベルを付与する際に面積カウンタをカウントアッ
プし、前記ステップ(e)で前記スタックから画素がな
くなった時点での前記面積カウンタのカウント値を、前
記ラベル付け始点画素に連結性を有する画素群の面積と
して出力することを特徴とする請求項3記載の画像処理
方法。 - 【請求項5】 前記ステップ(b)及び(c)で対象画
素にラベルを付与する際にその対象画素のx,y座標を
それぞれxカウンタ及びyカウンタに加え、前記ステッ
プ(e)で前記スタックから画素がなくなった時点での
前記xカウンタ及びyカウンタのカウント値をそれぞれ
前記面積カウンタのカウント値で除することにより、前
記ラベル付け始点画素に連結性を有する画素群の重心位
置を算出して出力することを特徴とする請求項4記載の
画像処理方法。 - 【請求項6】 前記ステップ(d)で前記スタックから
取り出した画素が前記ステップ(b)で前記ラベル条件
を満足しないと判断された回数をカウントするカウンタ
を有し、前記ステップ(e)で前記スタックから画素が
なくなった時点でのこのカウンタのカウント値を、前記
ラベル付け始点画素に連結性を有する画素領域に含まれ
る穴の数として出力することを特徴とする請求項3から
請求項5のいずれかに記載の画像処理方法。 - 【請求項7】 画像を所定の走査順序で調べ、ラベル未
付与でかつ注目画素値を有するというラベル条件を満足
する画素を検出し、ラベル付け始点画素に定める始点検
出ステップと、 ラベル付け始点画素及びこれに連結性を有する画素にラ
ベルを付与するラベル付与ステップと、 を含み、 前記ラベル付与ステップは、 ラベル付け始点画素をライン始点とする開始ステップ
と、 前記ライン始点を含むライン上の画素を1画素ずつ走査
し、前記ライン始点に対して連結性を有し前記ラベル条
件を満足する画素を見つける毎に前記ラベルを付与する
と共に、その走査ラインの上下の隣接ラインにおいて、
その走査ラインの画素に対して前記ラベル条件を満足す
る画素を連結候補画素として所定の記憶手段に記憶する
ライン走査ステップと、 前記ライン走査ステップにおいて前記走査ライン上での
ラベル付け処理が完了すると、前記記憶手段から連結候
補画素を1つ取り出し、これを新たなライン始点として
前記ライン走査ステップを反復する走査反復ステップ
と、 を含む画像処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000008783A JP3840025B2 (ja) | 1999-03-19 | 2000-01-18 | 画像処理方法 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11-76867 | 1999-03-19 | ||
| JP7686799 | 1999-03-19 | ||
| JP2000008783A JP3840025B2 (ja) | 1999-03-19 | 2000-01-18 | 画像処理方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000339456A true JP2000339456A (ja) | 2000-12-08 |
| JP3840025B2 JP3840025B2 (ja) | 2006-11-01 |
Family
ID=26417990
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000008783A Expired - Fee Related JP3840025B2 (ja) | 1999-03-19 | 2000-01-18 | 画像処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3840025B2 (ja) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002035474A1 (en) * | 2000-10-27 | 2002-05-02 | Praelux Incorporated | Method and apparatus for screening chemical compounds |
| JP2005267362A (ja) * | 2004-03-19 | 2005-09-29 | Ricoh Co Ltd | Simdプロセッサを用いた画像処理方法及び画像処理装置 |
| JP2008225739A (ja) * | 2007-03-12 | 2008-09-25 | Mitsubishi Electric Corp | 特徴量計測方法および特徴量計測装置 |
| US7706595B2 (en) | 2003-11-07 | 2010-04-27 | Cyberoptics Corporation | Pick and place machine with workpiece motion inspection |
| US7813559B2 (en) | 2001-11-13 | 2010-10-12 | Cyberoptics Corporation | Image analysis for pick and place machines with in situ component placement inspection |
| JP2015041166A (ja) * | 2013-08-21 | 2015-03-02 | 国立大学法人富山大学 | 対象物追跡方法及び対象物追跡システム |
| WO2018073888A1 (ja) * | 2016-10-18 | 2018-04-26 | オリンパス株式会社 | 画像処理方法および画像処理装置 |
| JP2020087356A (ja) * | 2018-11-30 | 2020-06-04 | コイト電工株式会社 | 画像処理装置及び画像処理方法 |
-
2000
- 2000-01-18 JP JP2000008783A patent/JP3840025B2/ja not_active Expired - Fee Related
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002035474A1 (en) * | 2000-10-27 | 2002-05-02 | Praelux Incorporated | Method and apparatus for screening chemical compounds |
| US7813559B2 (en) | 2001-11-13 | 2010-10-12 | Cyberoptics Corporation | Image analysis for pick and place machines with in situ component placement inspection |
| US7706595B2 (en) | 2003-11-07 | 2010-04-27 | Cyberoptics Corporation | Pick and place machine with workpiece motion inspection |
| JP2005267362A (ja) * | 2004-03-19 | 2005-09-29 | Ricoh Co Ltd | Simdプロセッサを用いた画像処理方法及び画像処理装置 |
| JP2008225739A (ja) * | 2007-03-12 | 2008-09-25 | Mitsubishi Electric Corp | 特徴量計測方法および特徴量計測装置 |
| JP2015041166A (ja) * | 2013-08-21 | 2015-03-02 | 国立大学法人富山大学 | 対象物追跡方法及び対象物追跡システム |
| WO2018073888A1 (ja) * | 2016-10-18 | 2018-04-26 | オリンパス株式会社 | 画像処理方法および画像処理装置 |
| US10846862B2 (en) | 2016-10-18 | 2020-11-24 | Olympus Corporation | Image processing method and image processing device |
| JP2020087356A (ja) * | 2018-11-30 | 2020-06-04 | コイト電工株式会社 | 画像処理装置及び画像処理方法 |
| JP7242273B2 (ja) | 2018-11-30 | 2023-03-20 | コイト電工株式会社 | 画像処理装置及び画像処理方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3840025B2 (ja) | 2006-11-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4970195B2 (ja) | 人物追跡システム、人物追跡装置および人物追跡プログラム | |
| JP6794766B2 (ja) | 指紋処理装置、指紋処理方法、プログラム、指紋処理回路 | |
| KR20200137219A (ko) | 비지도 학습 기반 웨이퍼 불량 패턴 검출 방법 및 그 장치 | |
| CN106485183A (zh) | 一种二维码定位方法及系统 | |
| JPH0312750B2 (ja) | ||
| CN102254144A (zh) | 一种鲁棒的图像中二维码区域提取方法 | |
| CN108537286B (zh) | 一种基于关键区域检测的复杂目标精准识别方法 | |
| CN120431087A (zh) | 基于图像处理的无机矿物铸件检测方法 | |
| JP3840025B2 (ja) | 画像処理方法 | |
| JP5264457B2 (ja) | 物体検出装置 | |
| JPS60230281A (ja) | 文字識別装置 | |
| JP3598878B2 (ja) | 欠陥検査方法および欠陥検査装置 | |
| CN121409276A (zh) | 基于机器视觉融合的机器人路径规划方法及系统 | |
| CN119445167A (zh) | 一种多模态图像共可见区域提取方法、系统、设备和介质 | |
| US20040173683A1 (en) | Method and system for verifying transitions between contrasting elements | |
| CN115423845A (zh) | 融合毫米波雷达及相机的目标对象检测与跟踪方法 | |
| JP2010170199A (ja) | 物体検出装置 | |
| JP2022060505A (ja) | 指紋処理装置、指紋処理方法、プログラム、指紋処理回路 | |
| CN119323702B (zh) | 一种农村公路路面类型的Spark分布式识别方法、装置电子设备及存储介质 | |
| KR102832441B1 (ko) | 모바일 로봇의 전역 위치인식을 위한 방법 및 컴퓨팅 장치 | |
| CN119323596B (zh) | 一种农村公路路面宽度的Spark分布式计算方法、装置、电子设备及存储介质 | |
| JP7031717B2 (ja) | 指紋処理装置、指紋処理方法、プログラム、指紋処理回路 | |
| JP3307782B2 (ja) | 文字マーク認識装置 | |
| KR0158416B1 (ko) | 화상데이타의 수축에 의한 물체의 위치 판단방법 | |
| JPH0522164B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040119 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040119 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060707 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060801 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060804 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3840025 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100811 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110811 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110811 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120811 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130811 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |