JPH05165955A - 画像処理方法 - Google Patents
画像処理方法Info
- Publication number
- JPH05165955A JPH05165955A JP35226891A JP35226891A JPH05165955A JP H05165955 A JPH05165955 A JP H05165955A JP 35226891 A JP35226891 A JP 35226891A JP 35226891 A JP35226891 A JP 35226891A JP H05165955 A JPH05165955 A JP H05165955A
- Authority
- JP
- Japan
- Prior art keywords
- label
- run
- labels
- processing
- image data
- 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.)
- Pending
Links
Landscapes
- Image Analysis (AREA)
Abstract
(57)【要約】
【目的】 ラベル処理の速度を向上させ、メモリの使用
容量を低減する画像データ処理方法を提供する。 【構成】 2次元状に配列された2値画像データを同種
画素の連続を示すランレングスで表現し、該ランレング
スで表現された画像データをある方向に沿ってラベリン
グし、更に異なる方向からラベリングして最初のラベリ
ングによるラベルの数を低減させると共に、各ラベル間
の連結関係を求める。
容量を低減する画像データ処理方法を提供する。 【構成】 2次元状に配列された2値画像データを同種
画素の連続を示すランレングスで表現し、該ランレング
スで表現された画像データをある方向に沿ってラベリン
グし、更に異なる方向からラベリングして最初のラベリ
ングによるラベルの数を低減させると共に、各ラベル間
の連結関係を求める。
Description
【0001】
【産業上の利用分野】本発明は画像処理方法に関し、特
に、ランレングスで表現された画像データの処理方法に
関する。本発明、たとえば、プリント基板の孔に電子部
品を自動装着する場合にプリント基板を撮像し、画像処
理によってその孔を見出し、正確に電子部品を位置決め
する場合に使用される。
に、ランレングスで表現された画像データの処理方法に
関する。本発明、たとえば、プリント基板の孔に電子部
品を自動装着する場合にプリント基板を撮像し、画像処
理によってその孔を見出し、正確に電子部品を位置決め
する場合に使用される。
【0002】
【従来の技術】従来、対象物の背景も含めて撮像した領
域の全体を2値画像データとして画像メモリに2次元状
に一旦ストアする。この画像の認識等の処理のために
は、一般に画像全体の左上の画素から対角線上の対向す
る右下の画素までを順次走査してゆき、通常は「0」で
表される背景画素データをとばし、「1」で表現されて
いる対象物の画素データを探す。そしてその画素に仮の
ラベルが付与される。また、「1」で表現されている画
素データが連続している場合にはそれらの画素データに
は同一の仮ラベルを採用する。更に、既に割り当てられ
た仮ラベル同士が結合する場合は、全ての走査が終了し
た後で仮ラベルの整理、即ち、リラベリングが行われ
る。
域の全体を2値画像データとして画像メモリに2次元状
に一旦ストアする。この画像の認識等の処理のために
は、一般に画像全体の左上の画素から対角線上の対向す
る右下の画素までを順次走査してゆき、通常は「0」で
表される背景画素データをとばし、「1」で表現されて
いる対象物の画素データを探す。そしてその画素に仮の
ラベルが付与される。また、「1」で表現されている画
素データが連続している場合にはそれらの画素データに
は同一の仮ラベルを採用する。更に、既に割り当てられ
た仮ラベル同士が結合する場合は、全ての走査が終了し
た後で仮ラベルの整理、即ち、リラベリングが行われ
る。
【0003】
【発明が解決しようとする課題】しかしながら、上記の
画像処理方法によるラベル処理では、本来は背景として
処理しなくてもよい領域(「0」で表される背景画素)
まで処理対象とするため、処理時間がかかり、また、大
きなメモリを必要とする。
画像処理方法によるラベル処理では、本来は背景として
処理しなくてもよい領域(「0」で表される背景画素)
まで処理対象とするため、処理時間がかかり、また、大
きなメモリを必要とする。
【0004】本発明は、ラベル処理の速度を向上させ、
メモリの使用容量を低減せしめる画像データの処理方法
を提供することを目的とする。
メモリの使用容量を低減せしめる画像データの処理方法
を提供することを目的とする。
【0005】
【課題を解決するための手段】上記目的に鑑みて本発明
は、2次元状に配列された画像データを同種画素の連続
を示すランレングスで表現し、該ランレングスで表現さ
れた画像データをある方向に沿ってラベリングし、更に
異なる方向からラベリングして最初のラベリングによる
ラベルの数を低減し、各ラベル間の連結関係を求めるこ
とを特徴とする画像データの処理方法を提供する。ま
た、2次元状に配列された2値画像を複数の画像ブロッ
クに分割し、上記ランレングスと各ラベリングの処理を
各画像ブロック毎に並列して行ない、隣接している2つ
の画像ブロック間の境界において互いにラベルが連結し
ているか否かを判定してリラベリングすることを特徴と
する画像データの処理方法を提供する。
は、2次元状に配列された画像データを同種画素の連続
を示すランレングスで表現し、該ランレングスで表現さ
れた画像データをある方向に沿ってラベリングし、更に
異なる方向からラベリングして最初のラベリングによる
ラベルの数を低減し、各ラベル間の連結関係を求めるこ
とを特徴とする画像データの処理方法を提供する。ま
た、2次元状に配列された2値画像を複数の画像ブロッ
クに分割し、上記ランレングスと各ラベリングの処理を
各画像ブロック毎に並列して行ない、隣接している2つ
の画像ブロック間の境界において互いにラベルが連結し
ているか否かを判定してリラベリングすることを特徴と
する画像データの処理方法を提供する。
【0006】
【作用】前者では、ランレングスを用いると、同種画素
の連続帯であるランの始点と終点、あるいは始点とその
長さだけによって2値画像データを表現することができ
る。従って、各ランレングスを定義したあとはメモリに
はランレングスのラベル番号と始点の座標値および終点
の座標値や長さをストアするだけで済み、その後のラベ
リングの処理はこれらの座標値や長さのみによって行う
ことができる。このため処理を高速で行うことができ
る。また、ラベリングを異なる方向から行うことによっ
て各ラベル間の連結関係が明らかになるとともに、ラベ
ルの数が低減できる。後者では、画像を複数に分割し、
それぞれを並列処理することによって全体としての画像
処理速度を高めることができる。
の連続帯であるランの始点と終点、あるいは始点とその
長さだけによって2値画像データを表現することができ
る。従って、各ランレングスを定義したあとはメモリに
はランレングスのラベル番号と始点の座標値および終点
の座標値や長さをストアするだけで済み、その後のラベ
リングの処理はこれらの座標値や長さのみによって行う
ことができる。このため処理を高速で行うことができ
る。また、ラベリングを異なる方向から行うことによっ
て各ラベル間の連結関係が明らかになるとともに、ラベ
ルの数が低減できる。後者では、画像を複数に分割し、
それぞれを並列処理することによって全体としての画像
処理速度を高めることができる。
【0007】
【実施例】以下、本発明を添付図面に示す実施例に基づ
き、更に詳細に説明する。図1は2値画像が2次元状に
配列されていることを示す図であり、図2は本発明に係
る画像データの処理方法に使用される装置の構成を示
す。CCDカメラ等のカメラ12によって撮像されたグ
レーレベルの2次元画像データは、マイクロコンピュー
タ10の外部の大容量画像メモリ20にストアされ、そ
の後、所定のしきい値を用いて2値画像に変換されたあ
と2値画像データとして2次元状にストアされている。
マイクロコンピュータ10の中には、以下において説明
する画像処理プログラムがストアされているROMメモ
リ16と、画像処理結果を一時的にストアするRAMメ
モリ18と、処理の制御を行うCPU14とが内蔵され
ている。本発明の前半はCPU14は一個でよいが、後
半の位置画像を複数のブロックに分割した場合の並列処
理においては複数のCPU14を設ける。
き、更に詳細に説明する。図1は2値画像が2次元状に
配列されていることを示す図であり、図2は本発明に係
る画像データの処理方法に使用される装置の構成を示
す。CCDカメラ等のカメラ12によって撮像されたグ
レーレベルの2次元画像データは、マイクロコンピュー
タ10の外部の大容量画像メモリ20にストアされ、そ
の後、所定のしきい値を用いて2値画像に変換されたあ
と2値画像データとして2次元状にストアされている。
マイクロコンピュータ10の中には、以下において説明
する画像処理プログラムがストアされているROMメモ
リ16と、画像処理結果を一時的にストアするRAMメ
モリ18と、処理の制御を行うCPU14とが内蔵され
ている。本発明の前半はCPU14は一個でよいが、後
半の位置画像を複数のブロックに分割した場合の並列処
理においては複数のCPU14を設ける。
【0008】マイクロコンピュータ10は、画像メモリ
20内の図1に例示するX,Y方向、2次元状に配列さ
れた2値画像を読み取り、y座標の各ライン0,1,・
・・7上の白で示した「0」の画素データの連続画素群
を下記の表1に定義しているように、「0」が連続して
いることを示す「ラン」を「ランレングス」としてそれ
ぞれの始点と終点の座標値またはその長さによって表示
し、それらのランレングスデータを画像メモリ20内に
ストアする。例えば、y座標のライン2においては、2
つの離隔したランレングスが定義されており、これらは
ライン1のランと連結しているが、ライン3のランとは
一方のランのみが連結している。
20内の図1に例示するX,Y方向、2次元状に配列さ
れた2値画像を読み取り、y座標の各ライン0,1,・
・・7上の白で示した「0」の画素データの連続画素群
を下記の表1に定義しているように、「0」が連続して
いることを示す「ラン」を「ランレングス」としてそれ
ぞれの始点と終点の座標値またはその長さによって表示
し、それらのランレングスデータを画像メモリ20内に
ストアする。例えば、y座標のライン2においては、2
つの離隔したランレングスが定義されており、これらは
ライン1のランと連結しているが、ライン3のランとは
一方のランのみが連結している。
【0009】
【表1】
【0010】以下においては、こうした各ランの連結性
を考慮して各ランにラベルを付す処理の方法につき説明
する。各ランの連結性の判断においては、各ランがラン
レングスによって表現されているためx方向においては
何ら調べる必要はなく、y方向において、即ち、上下2
つのラン間において互いに連結しているか否かを調べる
だけでよい。以下に述べる実施例では45度間隔の放射
方向における、8方向の連結を想定しており、たとえ
ば、図1のライン1と2について言えば、ライン2の各
ランはそれぞれライン1のランと連結していると判断さ
れる。次の2つの場合において連結していないと判定す
る以外は全て連結されていると判定する。連結されてい
る場合は同一ラベルが付される。 (1)ラン1の終点座標+1がラン2の始点座標より小
さい場合。 (2)ラン2の終点座標+1がラン1の始点座標より小
さい場合。
を考慮して各ランにラベルを付す処理の方法につき説明
する。各ランの連結性の判断においては、各ランがラン
レングスによって表現されているためx方向においては
何ら調べる必要はなく、y方向において、即ち、上下2
つのラン間において互いに連結しているか否かを調べる
だけでよい。以下に述べる実施例では45度間隔の放射
方向における、8方向の連結を想定しており、たとえ
ば、図1のライン1と2について言えば、ライン2の各
ランはそれぞれライン1のランと連結していると判断さ
れる。次の2つの場合において連結していないと判定す
る以外は全て連結されていると判定する。連結されてい
る場合は同一ラベルが付される。 (1)ラン1の終点座標+1がラン2の始点座標より小
さい場合。 (2)ラン2の終点座標+1がラン1の始点座標より小
さい場合。
【0011】各ランにラベルを付すラベリングの処理の
流れは、まず、一の方向に沿ったラベリング(順方向ラ
ベリング)を行い、次いでその逆方向にラベリングし、
最後にラベルの整理(リラベリング)を行う。
流れは、まず、一の方向に沿ったラベリング(順方向ラ
ベリング)を行い、次いでその逆方向にラベリングし、
最後にラベルの整理(リラベリング)を行う。
【0012】順方向ラベリングを図3と図4を参照して
説明する。ステップ24においてy座標を「0」にセッ
トし、ライン0からスタートする。ステップ25におい
てライン上に白画素の連続群(ラン)があるか否かを判
定する。ランがあれば、ステップ26においてそのライ
ン直前のラインにおけるランの有無を判定する。直前の
ラインにランがあればステップ27においてラベルの連
結を調べて上述のようにラベルを付するラベル伝播処理
を行う。直前のラインにランが無ければ上下のライン間
にランの連結関係はないため、ステップ30においてそ
のライン上の全てのランに新たなラベルを付ける。ステ
ップ28と29において以上の処理を繰り返す。
説明する。ステップ24においてy座標を「0」にセッ
トし、ライン0からスタートする。ステップ25におい
てライン上に白画素の連続群(ラン)があるか否かを判
定する。ランがあれば、ステップ26においてそのライ
ン直前のラインにおけるランの有無を判定する。直前の
ラインにランがあればステップ27においてラベルの連
結を調べて上述のようにラベルを付するラベル伝播処理
を行う。直前のラインにランが無ければ上下のライン間
にランの連結関係はないため、ステップ30においてそ
のライン上の全てのランに新たなラベルを付ける。ステ
ップ28と29において以上の処理を繰り返す。
【0013】図4に示すラベル伝播処理においては、フ
ラグは「0」又は「1」の値を取り、「0」の場合は新
たなラベルを付し、「1」の場合は同一のラベルを付す
ことを示す。i,jとrun(ラン)との関係は、ru
n1があるライン上のj番目のランを示し、run2が
一つ下のライン上のi番目のランを示す。また、run
1.startはrun1の始点座標であり、run
1.endはrun1の終点座標である。label1
はrun1の仮ラベルである。
ラグは「0」又は「1」の値を取り、「0」の場合は新
たなラベルを付し、「1」の場合は同一のラベルを付す
ことを示す。i,jとrun(ラン)との関係は、ru
n1があるライン上のj番目のランを示し、run2が
一つ下のライン上のi番目のランを示す。また、run
1.startはrun1の始点座標であり、run
1.endはrun1の終点座標である。label1
はrun1の仮ラベルである。
【0014】ステップ31において初期値設定を行い、
ステップ32においてラン間の連結を判定するためのパ
ラメータa,b,cを定義している。ステップ33とス
テップ41とにおいては、a<0であって、フラグ=0
の場合はステップ42へ進み、run2に新たなラベル
を付し、a<0であって、フラグ=1の場合は、ステッ
プ45においてフラグを0にリセットする。ステップ4
3と44は一つ下のライン上のiの次のランi+1に進
めてステップ32からの判定を繰り返す。
ステップ32においてラン間の連結を判定するためのパ
ラメータa,b,cを定義している。ステップ33とス
テップ41とにおいては、a<0であって、フラグ=0
の場合はステップ42へ進み、run2に新たなラベル
を付し、a<0であって、フラグ=1の場合は、ステッ
プ45においてフラグを0にリセットする。ステップ4
3と44は一つ下のライン上のiの次のランi+1に進
めてステップ32からの判定を繰り返す。
【0015】ステップ33と34において、a<0であ
ってb<0の場合はラン同士が離れているため、ステッ
プ46においてフラグ=0にリセットし、ステップ47
と48は、あるライン上のjの次のランj+1に進めて
ステップ32からの判定を繰り返す。もし、jが最後の
ラン番号を越えた場合は、ステップ49において一つ下
のライン上のi番目以降のランの全てに新ラベルを付与
する。
ってb<0の場合はラン同士が離れているため、ステッ
プ46においてフラグ=0にリセットし、ステップ47
と48は、あるライン上のjの次のランj+1に進めて
ステップ32からの判定を繰り返す。もし、jが最後の
ラン番号を越えた場合は、ステップ49において一つ下
のライン上のi番目以降のランの全てに新ラベルを付与
する。
【0016】また、ステップ33と34において、a≧
0であってb≧0の場合はステップ35に進み、run
2の仮ラベルはrun1とrun2の仮ラベルの内の小
さい方のラベルに設定する。ステップ36においては更
にc≦0か否かを判定し、c≦0の場合はステップ4
3,44に移り、一つ下のライン上のi以降の全てのラ
ンについて判定を行う。それ以外ではステップ37に移
り、フラグを同一のラベルを付すことを示す「1」に設
定する。ステップ38と39において、あるライン上の
jの次のラン(j+1)に進めてステップ32からの判
定を繰り返す。もし、jが最後のラン番号を越えた場合
は、ステップ40において一つ下のライン上のi+1番
目以降のランの全てに新ラベルを付与する。
0であってb≧0の場合はステップ35に進み、run
2の仮ラベルはrun1とrun2の仮ラベルの内の小
さい方のラベルに設定する。ステップ36においては更
にc≦0か否かを判定し、c≦0の場合はステップ4
3,44に移り、一つ下のライン上のi以降の全てのラ
ンについて判定を行う。それ以外ではステップ37に移
り、フラグを同一のラベルを付すことを示す「1」に設
定する。ステップ38と39において、あるライン上の
jの次のラン(j+1)に進めてステップ32からの判
定を繰り返す。もし、jが最後のラン番号を越えた場合
は、ステップ40において一つ下のライン上のi+1番
目以降のランの全てに新ラベルを付与する。
【0017】次に逆方向ラベリングを行う。図5を参照
すると、処理の流れは図3に示した流れと同様であり、
ステップ50においてy座標を「0」にセットし、ライ
ン0からスタートする。但しこの場合は逆方向ラベリン
グであるため、このy=0は図1における7の位置のラ
インを意味する。ステップ51においてライン上に白画
素の連続帯(ラン)があるか否かを判定する。ランがあ
れば、ステップ52においてその下からのライン直前の
ラインにおけるランの有無を判定する。直前のラインに
ランがあれば、ステップ53においてラベルの連結を調
べてラベルを統合するラベル統合処理を行う。直前のラ
インにランが無ければ上下のライン間にランの連結関係
はないため、ステップ56においてそのライン上の全て
のランのラベルはそのまま有効に残る。ステップ54と
55において以上の処理を繰り返す。
すると、処理の流れは図3に示した流れと同様であり、
ステップ50においてy座標を「0」にセットし、ライ
ン0からスタートする。但しこの場合は逆方向ラベリン
グであるため、このy=0は図1における7の位置のラ
インを意味する。ステップ51においてライン上に白画
素の連続帯(ラン)があるか否かを判定する。ランがあ
れば、ステップ52においてその下からのライン直前の
ラインにおけるランの有無を判定する。直前のラインに
ランがあれば、ステップ53においてラベルの連結を調
べてラベルを統合するラベル統合処理を行う。直前のラ
インにランが無ければ上下のライン間にランの連結関係
はないため、ステップ56においてそのライン上の全て
のランのラベルはそのまま有効に残る。ステップ54と
55において以上の処理を繰り返す。
【0018】上記ラベルの統合処理を図6に詳細に示し
ているが、その処理流れは図4の処理の場合と同様であ
る。図6においてT1とT2は仮ラベルの連結関係を記
憶するテーブルであり、図4の処理の場合と異なる点は
ステップ351において、連結関係にあるrun2の仮
ラベルとrun1の仮ラベルが同じであるか否かを判定
し、同じである場合は図4の場合と同様にステップ36
1へ進む。異なる場合はフラグが1であるか否かをステ
ップ352において判定し、1の場合は上下のランが連
結していることを示しているため、ステップ353にお
いてその連結関係をテーブルT1,T2にストアする。
フラグが「0」となっている場合には上下のランが離れ
ていることを示すものであるが、ステップ33と34に
おける条件によってこの場合は上下のランは連結してい
ることが判明している。従って、この逆方向ラベリング
のステップ354においてrun2の仮ラベルをrun
1の仮ラベルと同一に設定する。
ているが、その処理流れは図4の処理の場合と同様であ
る。図6においてT1とT2は仮ラベルの連結関係を記
憶するテーブルであり、図4の処理の場合と異なる点は
ステップ351において、連結関係にあるrun2の仮
ラベルとrun1の仮ラベルが同じであるか否かを判定
し、同じである場合は図4の場合と同様にステップ36
1へ進む。異なる場合はフラグが1であるか否かをステ
ップ352において判定し、1の場合は上下のランが連
結していることを示しているため、ステップ353にお
いてその連結関係をテーブルT1,T2にストアする。
フラグが「0」となっている場合には上下のランが離れ
ていることを示すものであるが、ステップ33と34に
おける条件によってこの場合は上下のランは連結してい
ることが判明している。従って、この逆方向ラベリング
のステップ354においてrun2の仮ラベルをrun
1の仮ラベルと同一に設定する。
【0019】また、ステップ421においてはrun2
に付与されている仮ラベルを有効に残すことが、図4の
ステップ42の処理と異なる。ここで仮ラベルを有効に
するとは、後の処理のために他のテーブルTCのその仮
ラベルの番号mのテーブルTC(m)を「0」にセット
することを意味する。また、上述のrun2の仮ラベル
をrun1の仮ラベルと同一に設定することは、run
2の元の仮ラベル番号は不要であって消滅させることで
あるため、その元の仮ラベル番号をnとすると、TC
(n)を「FFF(16進表示)」という消滅を示す特
定の記号にセットする処理を行う。更には、これと同様
な点においてステップ401と491も図4のステップ
40および49と異なる。
に付与されている仮ラベルを有効に残すことが、図4の
ステップ42の処理と異なる。ここで仮ラベルを有効に
するとは、後の処理のために他のテーブルTCのその仮
ラベルの番号mのテーブルTC(m)を「0」にセット
することを意味する。また、上述のrun2の仮ラベル
をrun1の仮ラベルと同一に設定することは、run
2の元の仮ラベル番号は不要であって消滅させることで
あるため、その元の仮ラベル番号をnとすると、TC
(n)を「FFF(16進表示)」という消滅を示す特
定の記号にセットする処理を行う。更には、これと同様
な点においてステップ401と491も図4のステップ
40および49と異なる。
【0020】順方向ラベリングを行ったものに対してこ
の逆方向ラベリングを行った一例を図8に示す。図8の
(1)は上から下に向かって順方向ラベリングを行った
結果であり、1から4までの仮ラベルが付与されてい
る。これに対して(2)は、下から上に向かって逆方向
ラベリングを行った結果である。ラベル3と4とが連結
していることが判明し、その結果ラベル4は消滅し、ラ
ベル1,2,3のみが有効に残っている。この場合、ラ
ベル1と2とは、図の如く本来的には連結関係にある
が、順方向側にも逆方向側にも開き部V1,V2が存在
するため逆方向ラベリングを行っただけではラベルは異
なっている。しかし、その連結関係は図6のステップ3
52においてテーブルT1,T2にストアされているた
め、これを使用してその修正が以下のリラベリング処理
において行われる。
の逆方向ラベリングを行った一例を図8に示す。図8の
(1)は上から下に向かって順方向ラベリングを行った
結果であり、1から4までの仮ラベルが付与されてい
る。これに対して(2)は、下から上に向かって逆方向
ラベリングを行った結果である。ラベル3と4とが連結
していることが判明し、その結果ラベル4は消滅し、ラ
ベル1,2,3のみが有効に残っている。この場合、ラ
ベル1と2とは、図の如く本来的には連結関係にある
が、順方向側にも逆方向側にも開き部V1,V2が存在
するため逆方向ラベリングを行っただけではラベルは異
なっている。しかし、その連結関係は図6のステップ3
52においてテーブルT1,T2にストアされているた
め、これを使用してその修正が以下のリラベリング処理
において行われる。
【0021】図7はリラベリング処理の流れを説明して
いる。ステップ60は互いの連結関係を示すテーブルT
1とT2のk番目の要素T1(k)とT2(k)をパラ
メータr,bで示す。ステップ61はr,bの内、大き
い方をr、小さい方をbと再定義している。ステップ6
2はテーブルTC(r)が0か否か、即ち、有効か否か
を判定し、有効な場合はステップ66において、TC
(r)を小さい方のラベル番号bにセットする。テーブ
ルTC(r)が0でない場合は、ステップ63において
TC(r)が小さい方のラベル番号bにセットされてい
るか否かを判定する。小さい方のラベル番号bにセット
されていない場合はステップ67においてrをその番号
TC(r)にセットし直し、再びステップ61へ戻る。
ステップ63においてTC(r)が小さい方のラベル番
号bにセットされているならば、ステップ64,65に
よって以上の処理を繰り返す。
いる。ステップ60は互いの連結関係を示すテーブルT
1とT2のk番目の要素T1(k)とT2(k)をパラ
メータr,bで示す。ステップ61はr,bの内、大き
い方をr、小さい方をbと再定義している。ステップ6
2はテーブルTC(r)が0か否か、即ち、有効か否か
を判定し、有効な場合はステップ66において、TC
(r)を小さい方のラベル番号bにセットする。テーブ
ルTC(r)が0でない場合は、ステップ63において
TC(r)が小さい方のラベル番号bにセットされてい
るか否かを判定する。小さい方のラベル番号bにセット
されていない場合はステップ67においてrをその番号
TC(r)にセットし直し、再びステップ61へ戻る。
ステップ63においてTC(r)が小さい方のラベル番
号bにセットされているならば、ステップ64,65に
よって以上の処理を繰り返す。
【0022】全てのT1,T2のテーブルにつき上記処
理を終了したならばステップ70に進み、テーブルTC
(l)のラベル番号を整理する。ステップ71において
TC(l)が有効であることを示す「0」の場合にはス
テップ76で「1」から番号を振り付け、ステップ77
において番号pを「1」だけ進めてステップ74に進
む。一方、TC(l)が「0」でない場合はステップ7
2へ進み、消滅した番号か否かを判定する。消滅した番
号の場合はステップ74へ進む。消滅した番号でない場
合は連結関係を示すテーブルT1,T2によってラベル
が付与されたものであるため、ステップ73において連
結先の若い(小さな)番号にセットする。そしてステッ
プ74、ステップ75に進み、全てのテーブル要素(L
個の要素)につき以上の処理を繰り返す。
理を終了したならばステップ70に進み、テーブルTC
(l)のラベル番号を整理する。ステップ71において
TC(l)が有効であることを示す「0」の場合にはス
テップ76で「1」から番号を振り付け、ステップ77
において番号pを「1」だけ進めてステップ74に進
む。一方、TC(l)が「0」でない場合はステップ7
2へ進み、消滅した番号か否かを判定する。消滅した番
号の場合はステップ74へ進む。消滅した番号でない場
合は連結関係を示すテーブルT1,T2によってラベル
が付与されたものであるため、ステップ73において連
結先の若い(小さな)番号にセットする。そしてステッ
プ74、ステップ75に進み、全てのテーブル要素(L
個の要素)につき以上の処理を繰り返す。
【0023】上記リラベリング処理の概略を図9の例に
よって具体的に説明する。図6に示すラベルの連結処理
までで、図9の上の図に示すラベル番号が得られてい
る。その際、テーブルTCの要素TC(1),TC
(2),TC(3)は有効ラベルであるため「0」にセ
ットされており、TC(4)は消滅ラベルであるため
「FFF(16進表示)」にセットされている。更に、
連結関係の他のテーブルT1,T2はラベル1とラベル
2との連結関係と、ラベル2とラベル3との連結関係を
示している。
よって具体的に説明する。図6に示すラベルの連結処理
までで、図9の上の図に示すラベル番号が得られてい
る。その際、テーブルTCの要素TC(1),TC
(2),TC(3)は有効ラベルであるため「0」にセ
ットされており、TC(4)は消滅ラベルであるため
「FFF(16進表示)」にセットされている。更に、
連結関係の他のテーブルT1,T2はラベル1とラベル
2との連結関係と、ラベル2とラベル3との連結関係を
示している。
【0024】その各テーブルを使って、図7の前半の処
理によって図9の右側中央のテーブルTCが得られ、更
に、図7の後半の処理によってラベル番号の整理を行
い、図9の下方の確定したラベルとテーブルTCが得ら
れる。図7に示した処理は、上述した図8に示す例にお
いても使用されており、図8(2)を図8(3)にリラ
ベリング処理し、2つの確定したラベル1,ラベル2に
よってランを表示している。
理によって図9の右側中央のテーブルTCが得られ、更
に、図7の後半の処理によってラベル番号の整理を行
い、図9の下方の確定したラベルとテーブルTCが得ら
れる。図7に示した処理は、上述した図8に示す例にお
いても使用されており、図8(2)を図8(3)にリラ
ベリング処理し、2つの確定したラベル1,ラベル2に
よってランを表示している。
【0025】次に、図10に示すように1つの画像画面
を複数M個のブロックに分割して、図2に示す複数のC
PUを用いて並列的に画像処理を行う場合の本発明の第
2実施例の処理方法について説明する。この処理方法の
1つを図11に示す。この方法では、まず図3から図9
を用いて説明した画像データ処理方法によって、各ブロ
ック毎に独立して処理を施し(ステップ80,81,8
2,・・・,83)、その後、ブロック1とブロック2
とを1つにまとめて併せる処理を行う。そのため、ま
ず、ブロック1とブロック2との境界における各ラベル
間の連結関係を処理し(ステップ84)、その結果に基
づいて各ブロック内のリラベリングを行う(ステップ8
5,86)。これらの処理が行われたあと、ブロック1
と2を併せた画像領域と、ブロック3との間で同様な処
理を行う(ステップ87,88,89)。この方法を繰
り返し、最後のステップ90,91,92によって全て
のブロックの併合処理を終える。
を複数M個のブロックに分割して、図2に示す複数のC
PUを用いて並列的に画像処理を行う場合の本発明の第
2実施例の処理方法について説明する。この処理方法の
1つを図11に示す。この方法では、まず図3から図9
を用いて説明した画像データ処理方法によって、各ブロ
ック毎に独立して処理を施し(ステップ80,81,8
2,・・・,83)、その後、ブロック1とブロック2
とを1つにまとめて併せる処理を行う。そのため、ま
ず、ブロック1とブロック2との境界における各ラベル
間の連結関係を処理し(ステップ84)、その結果に基
づいて各ブロック内のリラベリングを行う(ステップ8
5,86)。これらの処理が行われたあと、ブロック1
と2を併せた画像領域と、ブロック3との間で同様な処
理を行う(ステップ87,88,89)。この方法を繰
り返し、最後のステップ90,91,92によって全て
のブロックの併合処理を終える。
【0026】しかし、本発明に係る並列処理は図11に
示す方法に限らず、各ブロック毎に各ブロック内の処理
を行ったあと、ブロック1と2の組以外に、他の2個ず
つの隣接ブロック毎にステップ84と同様の境界処理を
並列して行い、それぞれについてステップ85と86の
処理を並列して行うという様に順次繰り返してもよい。
示す方法に限らず、各ブロック毎に各ブロック内の処理
を行ったあと、ブロック1と2の組以外に、他の2個ず
つの隣接ブロック毎にステップ84と同様の境界処理を
並列して行い、それぞれについてステップ85と86の
処理を並列して行うという様に順次繰り返してもよい。
【0027】図12は上述した各ブロック間の境界にお
ける連結関係を処理する方法を示すものであるが、この
処理の基本的な処理流れは、上下のライン間のランの連
結関係を調べて処理する図4のラベル伝播処理方法の場
合と同様である。この境界処理では、下のブロックのラ
ベルの影響で、上のブロック内でこの上ブロック内のラ
ベル同士が連結することがあるため、その関係をテーブ
ルT1,T2に記憶させておくことが必要となる。ま
た、上下のブロック間において互いのラベルが連結して
いることもあり、上のブロックのラベルに連結している
下のブロックのラベルを上のブロックのラベルとの対応
において新たなテーブルTC2に記憶させておく。
ける連結関係を処理する方法を示すものであるが、この
処理の基本的な処理流れは、上下のライン間のランの連
結関係を調べて処理する図4のラベル伝播処理方法の場
合と同様である。この境界処理では、下のブロックのラ
ベルの影響で、上のブロック内でこの上ブロック内のラ
ベル同士が連結することがあるため、その関係をテーブ
ルT1,T2に記憶させておくことが必要となる。ま
た、上下のブロック間において互いのラベルが連結して
いることもあり、上のブロックのラベルに連結している
下のブロックのラベルを上のブロックのラベルとの対応
において新たなテーブルTC2に記憶させておく。
【0028】run1は境界の上のラインのj番目のラ
ンであり、run2は境界の下のラインのi番目のラン
である。T1,T2,TC2の各記号の意味は上述の如
くであり、他の記号の意味は図4の場合と同様である。
ステップ33において a≧0であり、かつ、ステップ
34においてb≧0であると、この場合は上下のラベル
は連結関係にあるため、下のブロックのラベルlabe
l2に対応するテーブルTC2(label2)に、こ
れと連結関係にある上のブロックのラベルlabel1
を記憶させておく(ステップ354a)。但し、この処
理はステップ351aにおいてTC2(label2)
に初期値である0がセットされている場合に限り、そう
でない場合は、ステップ352aにおいてrun1の仮
ラベルlabel1がrun2の仮ラベル番号に対する
テーブルの値TC2(label2)と同一でない場合
に限り、ステップ353aにおいてrun1の仮ラベル
label1を他のテーブルT1にセットし、run2
の仮ラベル番号に対するテーブルの値TC2(labe
l2)をT2にセットする。ステップ352aにおいて
run1の仮ラベルlabel1がrun2の仮ラベル
番号に対するテーブルの値TC2(label2)と同
一の場合は、既に連結関係が設定されていることとなる
からステップ353aの処理を行わない。
ンであり、run2は境界の下のラインのi番目のラン
である。T1,T2,TC2の各記号の意味は上述の如
くであり、他の記号の意味は図4の場合と同様である。
ステップ33において a≧0であり、かつ、ステップ
34においてb≧0であると、この場合は上下のラベル
は連結関係にあるため、下のブロックのラベルlabe
l2に対応するテーブルTC2(label2)に、こ
れと連結関係にある上のブロックのラベルlabel1
を記憶させておく(ステップ354a)。但し、この処
理はステップ351aにおいてTC2(label2)
に初期値である0がセットされている場合に限り、そう
でない場合は、ステップ352aにおいてrun1の仮
ラベルlabel1がrun2の仮ラベル番号に対する
テーブルの値TC2(label2)と同一でない場合
に限り、ステップ353aにおいてrun1の仮ラベル
label1を他のテーブルT1にセットし、run2
の仮ラベル番号に対するテーブルの値TC2(labe
l2)をT2にセットする。ステップ352aにおいて
run1の仮ラベルlabel1がrun2の仮ラベル
番号に対するテーブルの値TC2(label2)と同
一の場合は、既に連結関係が設定されていることとなる
からステップ353aの処理を行わない。
【0029】図12で示す処理によって各ブロック間の
境界の処理を行った後、2つの隣接ブロックのラベルを
付け直す。まず、上のブロック内のリラベリングをラベ
ル間の連結を表すテーブルT1,T2に基づいて実行
し、テーブルTCを決定する。この処理は図7に示すリ
ラベリング処理と同じである。
境界の処理を行った後、2つの隣接ブロックのラベルを
付け直す。まず、上のブロック内のリラベリングをラベ
ル間の連結を表すテーブルT1,T2に基づいて実行
し、テーブルTCを決定する。この処理は図7に示すリ
ラベリング処理と同じである。
【0030】一方、テーブルTC2には下のブロックの
ラベルが上のブロックのラベルに連結しているか独立し
ているかの情報が記憶されているので、それを基に下の
ブロックのラベルを付け直す。即ち、下のブロック内に
だけ存在するラベルは上のブロックの最終ラベル番号の
続きとなり、両方に跨がるラベルは上のブロックのラベ
ルを採用する。この下のブロックのラベルのリラベリン
グ処理を図13に示す。
ラベルが上のブロックのラベルに連結しているか独立し
ているかの情報が記憶されているので、それを基に下の
ブロックのラベルを付け直す。即ち、下のブロック内に
だけ存在するラベルは上のブロックの最終ラベル番号の
続きとなり、両方に跨がるラベルは上のブロックのラベ
ルを採用する。この下のブロックのラベルのリラベリン
グ処理を図13に示す。
【0031】ステップ100は下のブロックは、上のブ
ロックの最終ラベル番号の続きの番号をラベルとして用
いることを示している。ステップ101においてTC2
(l)が「0」ならば、これは下のブロックのラベルが
上のブロックのラベルに連結しておらず、独立であるこ
とを示しており、ステップ105において、下のブロッ
クのラベル番号としてのTC2(l)は上のブロックの
最終ラベル番号の続きの番号pに設定する。一方、ステ
ップ101においてTC2(l)が「0」でないなら
ば、上下のブロックのラベル間の連結関係を示してお
り、ステップ102において下のブロックのラベル番号
としてのTC2(l)として、連結している上のブロッ
クのラベル番号をセットする。そしてステップ103,
104において全てのテーブルTC2について以上の処
理を繰り返す。
ロックの最終ラベル番号の続きの番号をラベルとして用
いることを示している。ステップ101においてTC2
(l)が「0」ならば、これは下のブロックのラベルが
上のブロックのラベルに連結しておらず、独立であるこ
とを示しており、ステップ105において、下のブロッ
クのラベル番号としてのTC2(l)は上のブロックの
最終ラベル番号の続きの番号pに設定する。一方、ステ
ップ101においてTC2(l)が「0」でないなら
ば、上下のブロックのラベル間の連結関係を示してお
り、ステップ102において下のブロックのラベル番号
としてのTC2(l)として、連結している上のブロッ
クのラベル番号をセットする。そしてステップ103,
104において全てのテーブルTC2について以上の処
理を繰り返す。
【0032】画像画面を2分割した場合のラベリング処
理の例を図14に示す。上のブロックにはラベル1から
6までが存在し、一方、下のブロックにはラベル1から
4までが存在している。これらのラベルの内、上のブロ
ックのラベル4と6は下のブロックのラベル2の存在に
よって連結関係にある。また、上のブロックのラベル3
と5も下のブロックのラベル3の存在によって連結関係
にある。この上のブロック内のラベルの関係をテーブル
T1,T2に記憶させている。更に、上下のブロック間
においてラベル同士の連結の関係を他のテーブルTC2
に記憶させている。即ち、下のブロックのラベル1,
2,3がそれぞれ上のブロックのラベル4,4,3と連
結関係にあることをTC2に記憶させている。
理の例を図14に示す。上のブロックにはラベル1から
6までが存在し、一方、下のブロックにはラベル1から
4までが存在している。これらのラベルの内、上のブロ
ックのラベル4と6は下のブロックのラベル2の存在に
よって連結関係にある。また、上のブロックのラベル3
と5も下のブロックのラベル3の存在によって連結関係
にある。この上のブロック内のラベルの関係をテーブル
T1,T2に記憶させている。更に、上下のブロック間
においてラベル同士の連結の関係を他のテーブルTC2
に記憶させている。即ち、下のブロックのラベル1,
2,3がそれぞれ上のブロックのラベル4,4,3と連
結関係にあることをTC2に記憶させている。
【0033】上記テーブルT1に基づくと、上のブロッ
クの元のラベル1から4は有効であり、5と6は消滅
し、新たにセットされる。従って、TC(1),・・
・,TC(4)=0,TC(5)=3,TC(6)=4
とセットされる。それから、テーブルTCのリラベリン
グを行うと、上のブロックは図14の下側の画像処理結
果に示す如く、TC(1)=1,TC(2)=2,TC
(3)=3,TC(4)=4,TC(5)=3,TC
(6)=4となる。上記テーブルTC2に基づき、下側
のブロックの図13に示すリラベリング処理を行うと、
図14の下方の画像処理結果に示す如く、TC2(1)
=4,TC2(2)=4,TC2(3)=3,TC2
(4)=5となる。以上により、2分割された画像のラ
ベリング処理が終了する。
クの元のラベル1から4は有効であり、5と6は消滅
し、新たにセットされる。従って、TC(1),・・
・,TC(4)=0,TC(5)=3,TC(6)=4
とセットされる。それから、テーブルTCのリラベリン
グを行うと、上のブロックは図14の下側の画像処理結
果に示す如く、TC(1)=1,TC(2)=2,TC
(3)=3,TC(4)=4,TC(5)=3,TC
(6)=4となる。上記テーブルTC2に基づき、下側
のブロックの図13に示すリラベリング処理を行うと、
図14の下方の画像処理結果に示す如く、TC2(1)
=4,TC2(2)=4,TC2(3)=3,TC2
(4)=5となる。以上により、2分割された画像のラ
ベリング処理が終了する。
【0034】
【発明の効果】以上の説明から明らかなように本発明に
よれば、2値化画像データをランの始点と終点の座標値
もしくはランの長さのみによって表現するため、その処
理対象とするデータが少ない。従って、メモリの使用を
可及的に低減せしめ、ラベリング処理の速度の速い画像
データの処理方法が提供可能となる。
よれば、2値化画像データをランの始点と終点の座標値
もしくはランの長さのみによって表現するため、その処
理対象とするデータが少ない。従って、メモリの使用を
可及的に低減せしめ、ラベリング処理の速度の速い画像
データの処理方法が提供可能となる。
【図1】図1は2値画像データの2次元形状配列の例を
示す図である。
示す図である。
【図2】図2は本発明に係る画像データの処理方法に使
用される装置の構成を示す図である。
用される装置の構成を示す図である。
【図3】図3は本発明に係る一方向ラベリングの流れ図
である。
である。
【図4】図4は図3に示すラベル伝播処理の詳細流れ図
である。
である。
【図5】図5は本発明に係る逆方向ラベリングの流れ図
である。
である。
【図6】図6は図5に示すラベル統合処理の詳細流れ図
である。
である。
【図7】図7は本発明に係るリラベリング処理の流れ図
である。
である。
【図8】図8は本発明に係るラベリング処理の一実施例
を示す図である。
を示す図である。
【図9】図9は図7に示すリラベリングの一実施例を示
す図である。
す図である。
【図10】図10は1画像をM個のブロックに分割した
状態を示す図である。
状態を示す図である。
【図11】図11はM個のブロックに分割した画像の本
発明に係るラベリング処理の方法を示す流れ図である。
発明に係るラベリング処理の方法を示す流れ図である。
【図12】図12は図11に示す各処理のうち、各境界
での境界処理の方法を示す流れ図である。
での境界処理の方法を示す流れ図である。
【図13】図13は図11に示す各処理のうち、一方の
ブロックのリラベリング処理を示す流れ図である。
ブロックのリラベリング処理を示す流れ図である。
【図14】図14はM個のブロックに分割した画像の本
発明に係る処理方法の一例としての2分割画像のラベリ
ング処理を示す図である。
発明に係る処理方法の一例としての2分割画像のラベリ
ング処理を示す図である。
10 マイクロコンピュータ 12 カメラ run1 ライン上のj番目のラン run2 run1の1つ上のライン上のi番目の
ラン label1 run1の仮ラベル label2 run2の仮ラベル T1,T2 仮ラベルの結合関係を記憶するテーブル TC リラベリングによって決定すべきラベル
テーブル、又は分割画像処理における上側のブロックの
ラベルテーブル FFF リラベリングによって消滅するラベルテ
ーブル TC2 分割画像処理における下側のブロックの
ラベルテーブル
ラン label1 run1の仮ラベル label2 run2の仮ラベル T1,T2 仮ラベルの結合関係を記憶するテーブル TC リラベリングによって決定すべきラベル
テーブル、又は分割画像処理における上側のブロックの
ラベルテーブル FFF リラベリングによって消滅するラベルテ
ーブル TC2 分割画像処理における下側のブロックの
ラベルテーブル
Claims (2)
- 【請求項1】 2次元状に配列された画像データを同種
画素の連続を示すランレングスで表現し、 該ランレングスで表現された画像データをある方向に沿
ってラベリングし、 更に異なる方向からラベリングして最初のラベリングに
よるラベルの数を低減し、各ラベル間の連結関係を求め
ることを特徴とする画像処理方法。 - 【請求項2】 2次元状に配列された画像データを複数
の画像ブロックに分割し、 上記ランレングスと各ラベリングの処理を各画像ブロッ
ク毎に並列して行ない、 隣接している2つの画像ブロック間の境界において互い
にラベルが連結しているか否かを判定してリラベリング
することを特徴とする請求項1記載の画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35226891A JPH05165955A (ja) | 1991-12-13 | 1991-12-13 | 画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35226891A JPH05165955A (ja) | 1991-12-13 | 1991-12-13 | 画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05165955A true JPH05165955A (ja) | 1993-07-02 |
Family
ID=18422899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35226891A Pending JPH05165955A (ja) | 1991-12-13 | 1991-12-13 | 画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05165955A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008524728A (ja) * | 2004-12-21 | 2008-07-10 | キヤノン株式会社 | デジタル画像をセグメント化する方法及びコンパクトな表現の生成方法 |
JP2014209310A (ja) * | 2013-03-22 | 2014-11-06 | 大日本スクリーン製造株式会社 | ラベリング方法、ラベリング装置および欠陥検査装置 |
WO2018020623A1 (ja) * | 2016-07-27 | 2018-02-01 | 株式会社Pfu | 画像処理装置、画像処理方法、および、プログラム |
CN112800264A (zh) * | 2020-12-30 | 2021-05-14 | 上海联影智能医疗科技有限公司 | 标注数据的压缩方法、电子装置和存储介质 |
-
1991
- 1991-12-13 JP JP35226891A patent/JPH05165955A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008524728A (ja) * | 2004-12-21 | 2008-07-10 | キヤノン株式会社 | デジタル画像をセグメント化する方法及びコンパクトな表現の生成方法 |
JP2014209310A (ja) * | 2013-03-22 | 2014-11-06 | 大日本スクリーン製造株式会社 | ラベリング方法、ラベリング装置および欠陥検査装置 |
WO2018020623A1 (ja) * | 2016-07-27 | 2018-02-01 | 株式会社Pfu | 画像処理装置、画像処理方法、および、プログラム |
CN112800264A (zh) * | 2020-12-30 | 2021-05-14 | 上海联影智能医疗科技有限公司 | 标注数据的压缩方法、电子装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111598076B (zh) | 一种标签图像中日期检测处理方法及装置 | |
US20060245652A1 (en) | Method for recognizing objects in an image without recording the image in its entirety | |
CN102171723A (zh) | 红眼检测的方法 | |
JPH05165955A (ja) | 画像処理方法 | |
CN110084117A (zh) | 基于二值图分段投影的文档表格线检测方法、系统 | |
JP4116377B2 (ja) | 画像処理方法および画像処理装置 | |
JPH1083452A (ja) | パターン欠陥検出装置 | |
CN113780049A (zh) | 基于ostu法的y型分岔非结构化道路识别方法 | |
JP2522511B2 (ja) | 画像輪郭追跡ユニット | |
JPH0916764A (ja) | 画像処理装置 | |
JP2001143076A (ja) | 画像処理装置 | |
JP3109237B2 (ja) | 画像中の線分構成画素抽出方法および線分判定方法 | |
JP2613211B2 (ja) | 画像入力装置 | |
JP2023170839A (ja) | 撮像情報認識方法、撮像情報認識装置、および、プログラム | |
JPH0773313A (ja) | 画像分割方法、及び装置 | |
JPH05298443A (ja) | カラー画像領域抽出装置 | |
JPH0520455A (ja) | 画像処理方法 | |
JPH06195460A (ja) | 画像抽出方式 | |
KR100243194B1 (ko) | 비트맵영상에서연결요소를구하는방법 | |
JP2771045B2 (ja) | 文書画像の領域分割方法 | |
JPH0392978A (ja) | 画像処理装置 | |
JPH1011576A (ja) | 部品形状認識方法 | |
JPH08153178A (ja) | 文書画像の分割入力方法および装置 | |
JPS61249180A (ja) | 領域分割回路 | |
JPH04291472A (ja) | カラー画像同一性判定方法及びその実施装置 |