ラベリング処理装置、ラベリング処理方法、ラベリング処理プログラム、および記録媒体
【課題】並列演算処理によりラベリング処理が高速化され、分割領域をまたがる連結領域の異なるラベル値を統一する特別処理を不要とするラベリング処理装置を実現する。
【解決手段】2次元の2値画像データ領域内で、連結領域に対してラベル付けを行うラベリング処理装置において、画素縦2行横m列または縦m行横2列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理手段までの、M個のラベル演算処理手段を備え、M個のラベル演算処理手段が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理手段のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行う。
【解決手段】2次元の2値画像データ領域内で、連結領域に対してラベル付けを行うラベリング処理装置において、画素縦2行横m列または縦m行横2列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理手段までの、M個のラベル演算処理手段を備え、M個のラベル演算処理手段が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理手段のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理におけるラベリング処理に関するものである。
【背景技術】
【0002】
従来、2次元2値画像データの連結領域に対してラスタスキャンによるラベリング処理を行う場合、画素縦2行横m列(mは2以上の整数)分の走査マスク(以下、2×m走査マスクという)を参照してラベル付けを行う手法が一般的に用いられる。
【0003】
従来のラベリング処理方法について、図を用いて以下に説明を行う。(特許文献1を参照)
画像処理の分野で、二値化された画像のうち例えば二値データ「1」を有する連続した領域を一つの独立した画像の集合体(以下「島」という)とみなし、互いに分離した各島に順番にラベル付けを行う処理(ラベリング処理)が行われることがある。その場合には、まず、所定の形状の走査マスクを二値画像の画面上でラスタ走査しながら、各画素に仮ラベル(もしくは一次ラベル)を付す作業を行う。しかし、仮ラベルを付すだけでは、実際には同じ一つの島に属する画素に対して異なるラベル付けがされる場合がある。このため仮ラベリングを行ったあとで、同じ島に属する画素を一つの島として認識する統合化を行って、本ラベリング処理(もしくは二次ラベリング処理)を行うことが必要となる。
【0004】
従来から仮ラベリングを行うための走査マスクの形状としては種々のものが知られているが、図10(a)の走査マスク80は、その典型的なものの一例である。この走査マスク80は、二値画像について図10(b)に示すような方向でラスタ走査する場合の走査マスクとして用いられる。走査マスク80は、上のラインの3つの画素b、c、dと、下のラインの2つの画素a、pから構成される。このうち画素pは注目画素であり、走査マスク80を走査してこの注目画素pの二値データが「1」である画素の位置に来たときに、この注目画素pの二値データと、画素a〜dの二値データとの所定の関係に従ってその画素に仮ラベルを付す。
【0005】
図11は注目画素pにどのような仮ラベルを付すかを示した表の一例である。この表で、p及びa〜dの欄に記載された「0」又は「1」の値は図10の走査マスク80を走査しているときの走査マスク80の各部の画素の二値データに対応し、「*」印は二値データが「0」又は「1」のどちらでもよいことを示す。
【0006】
ある一つの二値画像全体についてこの走査マスク80を走査させるとき、この走査マスクのpの位置の画素が二値データの「0」であれば、その画素には仮ラベルとして0を付す。図11の表のNo.0の行はこのことを示す。これに対し、注目画素pの位置の画素が二値データとして値「1」を有していれば、その画素には、図11の表のNo.1〜No.5の条件に従って、La〜Ldのラベルもしくは「新ラベル」を付す。ここでNo.1の行のLaは、走査マスク80の画素pに対して画素aに付されている仮ラベルと同じ仮ラベルを付すことを意味する。No.2〜No.4の各行のLb〜Ldについても同様である。また、No.5の行の新ラベルは、それまでに付されている仮ラベルのうち最も大きい値の仮ラベルよりも1だけ大きい値を有する仮ラベルを新たな仮ラベルとして付すことを意味する。
【0007】
仮ラベリング処理では、仮ラベルを付す作業と並行して、仮ラベル関連テーブルを作成する作業を併せて行う。仮ラベル関連テーブルは、仮ラベルを付す段階で、異なる仮ラベルが付された画素が実は同じ島に属するものであるという場合に、そのことを示す情報(仮ラベル関連情報)を記載したテーブルである。図12(a)(b)は仮ラベル関連テーブルへの記載が行われる二つの場合を示しており、同図(c)は具体的に作成された仮ラベル関連テーブルの一例を示している。
【0008】
図12(a)は画素p、a、dの二値データが「1」で、画素b、cの二値データが「0」の場合である。この場合、画素aと画素dは画素pを介してつながっており、したがってこれらは同じ一つの島に属している。このようなときに、図12(c)のNo.rの欄に、画素aの仮ラベルLaと画素dの仮ラベルLdが同じ島に属するものである旨の仮ラベル関連情報を記載する。但し、仮ラベルを付す段階で既に画素aと画素dに等しい仮ラベルが付されていれば(La=Ld)、これらは同じ島に属することになるので、仮ラベル関連テーブルへの記載が行われるのはLa≠Ldの場合だけである。
【0009】
図12(b)は、画素p、b、dの二値データが「1」で、画素cが「0」の場合であるが、この場合も画素bと画素dは、画素pを介して同じ一つの島に属する。そこで、図12(c)のNo.sの欄に画素bの仮ラベルLbと画素dの仮ラベルLdが実際は同じ島に属する旨の仮ラベル関連情報を記載する。但し、この場合も、Lb=Ldのときは関連テーブルへの記載は行わず、仮ラベル関連テーブルへの記載が行われるのはLb≠Ldの場合だけである。
【0010】
このようにして仮ラベリング処理及び仮ラベル関連テーブルへの仮ラベル関連情報の記載が行われたら、仮ラベルの情報及び仮ラベル関連テーブルの内容に基づいて、統合化処理を行う。すなち、異なる仮ラベルが付された画素のうち同じ一つの島に属する画素を同じ一つの島に属するものと認識し、そして各島ごとに仮ラベルとは全く別系統の新しいラベルを付す作業(本ラベリング又は二次ラベリング)を行う。
【0011】
図13(a)は、島の各画素に対して仮ラベルを付した状態の例を表したものであり、図13(b)は、仮ラベル関連テーブルに、この例における仮ラベル関連情報が一時記憶として記載された状態を示したものである。上記の手法により仮ラベリング処理を行うと、図13(a)に示す例のように、同一の島に対して、1〜5の仮ラベルが付される。また、仮ラベリング処理の過程で、画素51a〜54aの仮ラベルを付す際には、図13(b)に示す仮ラベル関連テーブル中に、No.1からNo.4の仮ラベル関連情報を記入する。仮ラベリング処理が完了した時点で、次に、図13(b)の仮ラベル関連情報を元に、どの仮ラベルと他の仮ラベルとが、同一であるべきかを検索し、図13(c)に示すように、仮ラベルを最終的に真ラベルに変換するための変換テーブルを作成する。この変換テーブルをもとに、仮ラベルを真ラベルに再設定することにより、ラベリング処理の全工程を完了する。
【0012】
なお、ここでは従来例の説明として、2×3走査マスクの例を用いたが、一般に2×m(mは2以上の整数)走査マスクが用いられる。ここで、走査マスクが小さい場合は、仮ラベル値を求めるために参照する、走査マスク内の画素数が少なくて済むメリットがあり、また、仮ラベリング処理をハードウェア回路化した場合、走査マスクが小さいので、回路が小型になるメリットがある。しかし、仮ラベル関連テーブルへの仮ラベル関連情報の登録数が多くなり、仮ラベル関連テーブルの再演算処理が多くなってしまうというデメリットが生じる。逆に、走査マスクが大きい場合は、仮ラベル値を求める際に参照する画素数が多くなるが、仮ラベル関連テーブルへの仮ラベル関連情報の登録数は少なくなる。通常は、2×3サイズの走査マスクを用いてラベリング処理を行う場合が多い。
【0013】
なお、2×3サイズの走査マスクを用いる場合、6画素の領域を用いても構わないが、図10(a)に示すように、5画素の領域を用いても演算処理が可能なため、5画素で構成される走査マスクが一般的に使用される。
【特許文献1】特開平8−22541(1996年1月23日公開)
【発明の開示】
【発明が解決しようとする課題】
【0014】
しかしながら、従来の構成および方法では下記の課題が発生する。
【0015】
2次元2値画像データの連結領域に対してラベル付けを行うラベリング処理を行う場合、通常、ラベル付けの対象画素を含む2×m(mは2以上の整数)走査マスクを参照してラベル付けを行うが、対象画素のラベル値を演算するためには、参照する走査マスクの他の画素のラベル付けが完了していることが前提条件となる。このため、3×3画素のコンボリューション・フィルタのように対象画素の値についてフィルタ演算する場合、対象画素の周辺画素の演算結果を使用せず周辺画素の値のみを参照して演算を行うため、並列化処理が容易であるが、ラベリング処理の場合、2値画像データ領域のラベル付けの処理結果をもとに演算を行う必要があるため、単純に演算処理の並列化を行うことができない。
【0016】
また、公知技術に類するが、ラベル付けの対象となる2値画像データ領域を仮想的または物理的に分割し、各々分割された領域におけるラベリング処理を個別に行う技術がある。2値画像データ領域を仮想的に分割する場合は、ラベル付けの並列演算処理を行う場合、仮想的に2値画像データ領域が分割されているものとして扱う。仮想的に分割する場合、パラメータ設定により、自由に分割位置を設定することが可能であり、並列演算を行う場合、物理的に分割する場合に比べ、より柔軟性を持たせた演算を行うことができる。仮想的に分割する場合と物理的に分割する場合とのいずれの場合であっても、複数の分割された領域にまたがる連結領域の画素については、本来ならば同一のラベル値が割当てられる必要があるが、個別のラベリング処理を行っているため、異なるラベル値が割当てられてしまう。このため、個別のラベリング処理完了後、再度、分割位置の境界領域において、異なるラベル値が割当てられている箇所を検索し、分割されたラベル値を再統合する処理が必要となる。このため、本来のラベリング処理とは別に、統合化のための特別な処理の追加が必要となり、処理の複雑化と処理時間が増加する要因となる。
【0017】
本発明は、上記の課題に鑑みてなされたものであり、その目的は、並列演算処理によりラベリング処理が高速化され、仮ラベル関連テーブルへの登録数を減らすことで本ラベリング処理の処理時間を減らし、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加を不要とすることで処理が簡略化され処理時間が短縮化されるラベリング処理装置を実現することにある。
【課題を解決するための手段】
【0018】
(1)並列させた走査マスクを用いた並列ラベリング処理
本発明に係るラベリング処理装置は、上記の課題を解決するために、2次元の2値画像データ領域内で、同じ値を持つ画素が連続した領域である連結領域に対してラベル付けを行うラベリング処理装置において、画素縦2行横m列または縦m行横2列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理手段までの、M個のラベル演算処理手段を備え、M個のラベル演算処理手段が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理手段のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行うことを特徴とする。
【0019】
当該構成において、走査マスクを構成する画素は、各走査マスクが水平方向に走査を行う場合は、縦2行横m列で構成される画素の集合を用い、垂直方向に走査を行う場合は、縦m行横2列で構成される画素の集合を用いる。M個のラベル演算処理手段が、一つのラベル演算処理手段につき1つの走査マスクを用いて2値画像データ領域を走査する。各走査マスクは、2値画像データ領域内の異なるライン上の画素を走査し、連結領域に含まれる画素に対して仮ラベル値を計算し、付与する。各走査マスクは、2値画像データ領域内の隣り合うラインを走査するのに対し、各走査マスクは、水平方向の走査の場合は、縦2行であり、垂直方向の走査の場合は、横2列であるので、1行前または1列前のラインの画素に仮ラベルが付されている場合は、必ずその画素の仮ラベルを参照する。
【0020】
上記の構成によれば、連結領域に含まれる複数の画素に対して、並行して仮ラベル付けを行うことができるので、並列演算処理によるラベリング処理の高速化を図ることができるという効果を奏する。
【0021】
(2)既存の仮ラベル値を用いた並列ラベリング処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記第Mラベル演算処理手段が、ラベル付け処理を行う際に、前記第(M−1)ラベル演算処理手段により既に画素に付された仮ラベルを利用して仮ラベル付け処理を行うことを特徴とする。
【0022】
当該構成において、第Mラベル演算処理手段は、2値画像データ領域内の第(M×N+M−1)ライン上の画素に仮ラベル値を付けるにあたり、第M走査マスク内の各画素の内、第(M−1)ラベル演算処理手段により既に第(M×N+M−2)ライン上の画素に付されている仮ラベル値を利用して、仮ラベル値の演算を行う。既に画素に付されている仮ラベル値を利用して、新しい仮ラベル値のラベル付け処理を行うことで、連結領域に含まれる隣り合う画素に同じ仮ラベル値を付すことができる。既に第(M×N+M−2)ライン上の画素に付されている仮ラベル値を利用できるようにするためには、第M走査マスクの位置は、第(M−1)走査マスクの位置よりも(m−1)画素分以上仮ラベルの演算処理を遅延させるよう配置しなければならない。もし、仮ラベルの演算処理の遅延が(m−2)画素分以下の場合、第M走査マスクの中に、まだ第(M−1)ラベル演算処理手段により仮ラベル値が付されていない画素が含まれてしまい、第Mラベル演算処理手段は、仮ラベル値の演算ができなくなってしまうからである。ただし、上記では、何画素分遅延させるかを決める前提として、走査マスク内で、仮ラベル値の演算の対象となる画素の位置は、走査マスクの移動方向から数えて(m−1)列目、かつ1行目にあるものとしている。
【0023】
上記の構成によれば、2値画像データ領域内の前のライン上の画素に付された仮ラベル値が、次のライン上で、前のライン上の画素と隣り合った画素にも同じ仮ラベル値が付されるので、同じ連結領域に属しながら異なる仮ラベルが付されてしまう機会を減らすことで、仮ラベル関連テーブルへの登録数を減らし、本ラベリング処理の処理時間を減らすことができるという効果を奏する。
【0024】
(3)領域分割による並列ラベリング処理
本発明に係るラベリング処理装置は、上記の課題を解決するために、2次元の2値画像データ領域を、垂直線または水平線の何れかの分割線により物理的にまたは仮想的に複数の矩形領域に分割し、第1から第M(Mは2以上の整数)までの複数のラベル演算処理手段のそれぞれが、前記各矩形領域内で、同じ値を持つ画素が連続した領域である連結領域に対して並行してラベル付けを行うラベリング処理装置において、
前記分割線の両側にある画素からなるライン2本から構成される境界領域内の仮ラベル付け処理を行う際に、上記ラインの一方を含む前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段により画素に付された仮ラベルを利用して、上記ラインの他方を含む前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段が、仮ラベル付け処理を行う、または上記2本のラインに属する画素に対して付された異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録する処理を行うことを特徴とする。
【0025】
当該構成において、物理的に分割するとは、2値画像データ領域のデータを保持する物理メモリを、複数の分割され独立した物理メモリとすることである。また、仮想的に分割するとは、物理的には連続した同一の物理メモリ上に2値画像データ領域のデータが保持されているが、そのデータを扱うソフトウェアにより、あたかも物理的に分割されているかのように扱うことである。複数に分割された2値画像データ領域のそれぞれの矩形領域に対して、複数のラベル演算処理手段が、並行してラベル付け処理を行う。すなわち、第1の演算処理手段による第1の矩形領域のラベル付け処理、第2の演算処理手段による第2の矩形領域のラベル付け処理などが、並行して行われる。
【0026】
隣り合う矩形領域のラベル付けを行う二つのラベル演算処理手段が、その矩形領域間の境界領域からラベル付け処理を開始する場合、第1のラベル演算処理手段により境界領域内の第1の矩形領域側のライン上の画素に付された仮ラベル値を用いて、第2のラベル演算処理手段が境界領域内の第2の矩形領域側のライン上の画素に仮ラベルを付ける。より具体的には、第2のラベル演算処理手段は、第1のラベル演算処理手段により境界領域内の第1の矩形領域側のライン上の画素に付された仮ラベル値を、走査マスクの進行方向からみて後方の画素の仮ラベル値として利用し、走査マスクの進行方向からみて前方の画素の仮ラベル値としては、第2のラベル演算処理手段自身で付した仮ラベル値を利用する。
【0027】
隣り合う矩形領域のラベル付けを行う二つのラベル演算処理手段が、その矩形領域間の境界領域に向かってラベル付け処理を開始する場合、第2のラベル演算処理手段は、第1のラベル演算処理手段により境界領域内の第1の矩形領域側のライン上の画素に付された仮ラベル値と、第2のラベル演算処理手段により境界領域内の第2の矩形領域側のライン上の画素に付された仮ラベル値とを用いて、従来技術と同様にして仮ラベル関連情報を作成し、仮ラベル関連情報テーブルへ登録する。仮ラベル付け処理が終了した時点では、分割線を境にして隣り合う矩形領域をまたがる連結領域に含まれる画素については、独立した異なるラベル演算処理手段により仮ラベルが付される為、異なる仮ラベル値が付されているが、仮ラベル関連情報テーブルを用いて、単一の連結領域は同一のラベルにより画素が連結していることが示されるので、本来同じであるべき一つの連結領域に含まれる画素の異なるラベルを統一する、本ラベル付け処理が終了した時点では、同一の本ラベル値が付される。
【0028】
なお、仮ラベル関連情報とは、連結領域に付された異なる仮ラベル同士が、本来は同じものであるべきことを示す情報である。2値画像データ領域内の連結領域の形状によっては、一つの連続した領域の画素であるにもかかわらず、異なる仮ラベルが付されてしまうことがあるので、仮ラベル付け処理の過程で同じ連結領域に属する画素に対して異なる仮ラベルが付されていることが判明した時点で、仮ラベル関連情報を仮ラベル関連情報テーブルに登録しておき、全ての仮ラベル付け処理が終わった後、仮ラベル関連情報テーブルから仮ラベル関連情報を取り出し、本来同一のラベルであるべきとされた画素には、同一の本ラベル値を付する作業を行う。
【0029】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0030】
(4)分割位置から上下方向へのラベル付け処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記第1のラベル演算処理手段が、垂直方向に仮想的に上下2分割された2値画像データ領域を、分割位置から上方に向けてラベル付けを行い、前記第2のラベル演算処理手段が、分割位置から下方に向けてラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、ラベル付け処理を行うことを特徴とする。
【0031】
当該構成において、上下に分割された2値画像データ領域のそれぞれの分割領域に対して、2個のラベル演算処理手段が、並行してラベル付け処理を行う。その際、第1のラベル演算処理手段により上側の分割領域の最下段のライン上の画素に付された仮ラベル値を用いて、第2のラベル演算処理手段が下側の分割領域の最上段のライン上の画素に仮ラベルを付ける。
【0032】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0033】
(5)分割位置から左右方向へのラベル付け処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記第1のラベル演算処理手段が、水平方向に仮想的に左右2分割された2値画像データ領域を、分割位置から左方向に向けてラベル付けを行い、前記第2のラベル演算処理手段が、分割位置から右方向に向けてラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、ラベル付け処理を行うことを特徴とする。
【0034】
当該構成において、左右に分割された2値画像データ領域のそれぞれの分割領域に対して、2個のラベル演算処理手段が、並行してラベル付け処理を行う。その際、第1のラベル演算処理手段により左側の分割領域の最も右側のライン上の画素に付された仮ラベル値を用いて、第2のラベル演算処理手段が右側の分割領域の最も左側のライン上の画素に仮ラベルを付ける。
【0035】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0036】
(6)上下端から分割位置へのラベル付け処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記第1のラベル演算処理手段が、垂直方向に仮想的に上下2分割された2値画像データ領域を、上方から分割位置に向かってラベル付けを行い、前記第2のラベル演算処理手段が、下方から分割位置に向かってラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録することを特徴とする。
【0037】
当該構成において、上下に分割された2値画像データ領域のそれぞれの分割領域に対して、2個のラベル演算処理手段が、並行してラベル付け処理を行う。その際、第2のラベル演算処理手段は、第1のラベル演算処理手段により上側の分割領域の最下段のライン上の画素に付された仮ラベル値と、第2のラベル演算処理手段により下側の分割領域の最上段のライン上の画素に付された仮ラベル値とを用いて、仮ラベル関連情報を作成し、仮ラベル関連情報テーブルへ登録する。仮ラベル付け処理が終了した時点では、分割領域をまたがる連結領域に含まれる画素については、異なる仮ラベル値が付されているが、仮ラベル関連情報テーブルを用いて、本来同じであるべき一つの連結領域に含まれる画素の異なるラベルを統一する、本ラベル付け処理が終了した時点では、同一の本ラベル値が付される。
【0038】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0039】
(7)左右端から分割位置へのラベル付け処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記第1のラベル演算処理手段が、水平方向に仮想的に左右2分割された2値画像データ領域を、左側から分割位置に向かってラベル付けを行い、前記第2のラベル演算処理手段が、右側から分割位置に向かってラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録することを特徴とする。
【0040】
当該構成において、左右に分割された2値画像データ領域のそれぞれの分割領域に対して、2個のラベル演算処理手段が、並行してラベル付け処理を行う。その際、第2のラベル演算処理手段は、第1のラベル演算処理手段により左側の分割領域の最も右側のライン上の画素に付された仮ラベル値と、第2のラベル演算処理手段により右側の分割領域の最も左側のライン上の画素に付された仮ラベル値とを用いて、仮ラベル関連情報を作成し、仮ラベル関連情報テーブルへ登録する。仮ラベル付け処理が終了した時点では、分割領域をまたがる連結領域に含まれる画素については、異なる仮ラベル値が付されているが、仮ラベル関連情報テーブルを用いて、本来同じであるべき一つの連結領域に含まれる画素の異なるラベルを統一する、本ラベル付け処理が終了した時点では、同一の本ラベル値が付される。
【0041】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0042】
(8)共有メモリを利用した並列ラベリング処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記境界領域を除く前記矩形領域を、物理的に複数に分割されている非共有メモリ上に配置し、前記境界領域を、物理的に複数に分割されている共有メモリ上に配置することを特徴とする。
【0043】
当該構成において、2値画像データ領域は、ラベリング処理を行うハードウェアであるラベリング処理ユニット上のメモリに分割して配置される。そして、各ラベリング処理ユニットが備えたラベル演算処理手段により、並行してラベル付け処理が行われる。分割された2値画像データ領域間の境界領域は共有メモリ上に配置されるので、隣り合うラベリング処理ユニットからアクセスされる。
【0044】
上記の構成によれば、ラベリング処理装置のハードウェアを物理的に異なる基板等に分割することができるので、分割領域にまたがる連結領域の画素についても同一のラベル値が割当てることができるという効果を奏する。
【0045】
また、共有メモリを配置することにより、ラベリング処理装置のユニットを分割することが容易となり、必要な処理能力に応じて、ユニットを単純に複数接続することにより、処理能力の向上を図ることができる。また、1つのユニットに複数の処理手段を搭載するよりも、最小処理能力のユニットに分割し、ユニット設計の標準化を図ることにより、開発費用の削減及び開発期間の短縮化を図ることができる。最小処理能力とは、並列化する場合の最小単位であるラベリング処理ユニットのことを示している。本ユニットを複数使用することにより、並列化を容易に実現できる。勿論、1つのユニットにラベリング処理を並列化して行う機能を搭載しても構わないが、開発費用等がかかるため、処理能力の小さいユニットで設計の標準化を図った方がメリットがある。
【0046】
(9)並列させた走査マスクを用いた並列ラベリング処理方法
本発明に係るラベリング処理方法は、上記の課題を解決するために、2次元の2値画像データ領域内で、同じ値を持つ画素が連続した領域である連結領域に対してラベル付けを行うラベリング処理方法において、画素縦2行横m列または縦m行横2列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理工程までの、M個のラベル演算処理工程を含み、M個のラベル演算処理工程が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理工程のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行うことを特徴とする。
【0047】
当該構成において、走査マスクを構成する画素は、各走査マスクが水平方向に走査を行う場合は、縦2行横m列で構成される画素の集合を用い、垂直方向に走査を行う場合は、縦m行横2列で構成される画素の集合を用いる。M個のラベル演算処理工程が、一つのラベル演算処理工程につき1つの走査マスクを用いて2値画像データ領域を走査する。各走査マスクは、2値画像データ領域内の異なるライン上の画素を走査し、連結領域に含まれる画素に対して仮ラベル値を計算し、付与する。各走査マスクは、2値画像データ領域内の隣り合うラインを走査するのに対し、各走査マスクは、水平方向の走査の場合は、縦2行であり、垂直方向の走査の場合は、横2列であるので、1行前または1列前のラインの画素に仮ラベルが付されている場合は、必ずその画素の仮ラベルを参照する。
【0048】
上記の構成によれば、連結領域に含まれる複数の画素に対して、並行して仮ラベル付けを行うことができるので、並列演算処理によるラベリング処理の高速化を図ることができるという効果を奏する。
【0049】
(10)領域分割による並列ラベリング処理方法
本発明に係るラベリング処理方法方法は、上記の課題を解決するために、2次元の2値画像データ領域を、垂直線または水平線の何れかの分割線により物理的にまたは仮想的に複数の矩形領域に分割し、第1から第M(Mは2以上の整数)までの複数のラベル演算処理工程のそれぞれが、前記各矩形領域内で、同じ値を持つ画素が連続した領域である連結領域に対して並行してラベル付けを行うラベリング処理方法において、前記分割線の両側にある画素からなるライン2本から構成される境界領域内の仮ラベル付け処理を行う際に、一方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理工程により画素に付された仮ラベルを利用して、他方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理工程が仮ラベル付け処理、または異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録する処理を行うことを特徴とする。
【0050】
当該構成において、複数に分割された2値画像データ領域のそれぞれの矩形領域に対して、複数のラベル演算処理工程が、並行してラベル付け処理を行う。すなわち、第1の演算処理工程による第1の矩形領域のラベル付け処理、第2の演算処理工程による第2の矩形領域のラベル付け処理などが、並行して行われる。
【0051】
隣り合う矩形領域のラベル付けを行う二つのラベル演算処理工程が、その矩形領域間の境界領域からラベル付け処理を開始する場合、第1のラベル演算処理工程により境界領域内の第1の矩形領域側のライン上の画素に付された仮ラベル値を用いて、第2のラベル演算処理工程が境界領域内の第2の矩形領域側のライン上の画素に仮ラベルを付ける。
【0052】
隣り合う矩形領域のラベル付けを行う二つのラベル演算処理工程が、その矩形領域間の境界領域に向かってラベル付け処理を開始する場合、第2のラベル演算処理工程は、第1のラベル演算処理工程により境界領域内の第1の矩形領域側のライン上の画素に付された仮ラベル値と、第2のラベル演算処理工程により境界領域内の第2の矩形領域側のライン上の画素に付された仮ラベル値とを用いて、仮ラベル関連情報を作成し、仮ラベル関連情報テーブルへ登録する。仮ラベル付け処理が終了した時点では、分割領域をまたがる連結領域に含まれる画素については、異なる仮ラベル値が付されているが、仮ラベル関連情報テーブルを用いて、本来同じであるべき一つの連結領域に含まれる画素の異なるラベルを統一する、本ラベル付け処理が終了した時点では、同一の本ラベル値が付される。
【0053】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0054】
なお、本発明のラベリング処理装置は、2次元2値画像データの連結領域に対してラベル付けを行うラベリング処理装置において、第1走査マスクが2×m(mは2以上の整数)被検索画素領域を検索してラベル付けを行う第1ラベル演算処理手段と、第1走査マスクとは異なる第2走査マスクが2×m被検索画素領域を検索してラベル付けを行う第2ラベル演算処理手段を備え、第1ラベル演算処理時の被検索領域と第2ラベル演算処理時の被検索領域のラベル付け演算に対して、第2ラベル演算処理時の被検索領域の検索時に第1ラベル演算処理時の被検索領域で確定したラベル値を利用してラベル付け処理を行うことを特徴とした構成としてもよい。
【0055】
また、本発明のラベリング処理装置は、画像データ領域の垂直奇数ラインのラベリング処理を第1ラベル演算処理手段が行い、画像データ領域の垂直偶数ラインのラベリング処理を第2ラベル演算処理手段が行うことを特徴とした構成としてもよい。
【0056】
また、本発明のラベリング処理装置は、M個のラベル演算処理手段を備え、画像データ領域の(M×N)ライン(Mは3以上,Nは0以上の整数)、(M×N+1)ライン、(M×N+2)ライン、・・・、(M×N+M−1)の各々のデータラインに対してM個のラベル演算処理手段にて同時にラベル付け処理を行うことを特徴とした構成としてもよい。
【0057】
また、本発明のラベリング処理装置は、画像データ領域を垂直方向に仮想的に上下2分割し、分割位置から上方に向かってラベル付けを行う第1ラベル演算処理手段と、分割位置から下方に向かってラベル付けを行う第2ラベル演算処理手段を備えることを特徴とした構成としてもよい。
【0058】
また、本発明のラベリング処理装置は、画像データ領域を水平方向に仮想的に左右2分割し、分割位置から左方向に向かってラベル付けを行う第1ラベル演算処理手段と、分割位置から右方向に向かってラベル付けを行う第2ラベル演算処理手段を備えることを特徴とした構成としてもよい。
【0059】
また、本発明のラベリング処理装置は、画像データ領域を垂直方向に仮想的に上下2分割し、上方から分割位置に向かってラベル付けを行う第1ラベル演算処理手段と、下方から分割位置に向かってラベル付けを行う第2ラベル演算処理手段を備えることを特徴とした構成としてもよい。
【0060】
また、本発明のラベリング処理装置は、画像データ領域を水平方向に仮想的に左右2分割し、左側から分割位置に向かってラベル付けを行う第1ラベル演算処理手段と、右側から分割位置に向かってラベル付けを行う第2ラベル演算処理手段を備えることを特徴とした構成としてもよい。
【0061】
また、本発明のラベリング処理装置は、画像データ領域を仮想的に複数分割し、複数個のラベル演算処理手段を備えることを特徴とした構成としてもよい。
【0062】
また、本発明のラベリング処理装置は、画像データ領域を物理的に複数に分割し、画像データ領域間の境界位置に共有メモリを配置することを特徴とした構成としてもよい。
【発明の効果】
【0063】
本発明に係るラベリング処理装置は、以上のように、画素縦2行横m列または縦m行横2列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理手段までの、M個のラベル演算処理手段を備え、M個のラベル演算処理手段が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理手段のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行うことを特徴とする。
【0064】
それゆえ、連結領域に含まれる複数の画素に対して、並行して仮ラベル付けを行うことができるので、並列演算処理によるラベリング処理の高速化を図ることができるという効果を奏する。
【0065】
また、本発明に係るラベリング処理装置は、以上のように、前記分割線の両側にある画素からなるライン2本から構成される境界領域内の仮ラベル付け処理を行う際に、一方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段により画素に付された仮ラベルを利用して、他方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段が仮ラベル付け処理、または異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録する処理を行うことを特徴とする。
【0066】
それゆえ、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【0067】
本発明のラベリング処理装置の各実施の形態について説明を行う。
【0068】
<第1の実施の形態>
通常、ラスタスキャン方式によるラベリング処理は、従来例で説明したように、仮ラベリング処理、仮ラベル関連テーブルの作成、本ラベリング処理の3段階で行う必要がある。このうち、ラベリング処理時間の大半占めるのが仮ラベリング処理であり、この処理時間を短縮することが、ラベリング処理時間全体を短縮することに直接つながる。
【0069】
しかしながら、仮ラベリング処理は、従来例でも説明したように、対象画素における仮ラベル値を演算するためには、ラベル付けの対象画素の周辺画素の仮ラベル値を参照する必要がある。また、対象画素の仮ラベル値を演算するためには、参照する走査マスク内の画素の仮ラベル付けが完了していることが前提条件となる。このため、参照する走査マスク内の画素の仮ラベル付け処理が完了していなければ、次の演算処理を行うことができず、演算処理の並列化による処理時間の短縮化を図ることができない。
【0070】
なお、特許文献1には、仮ラベリング処理自体はハードウェアによって行われるため、それに要する時間は、その後の統合化処理に要する時間に比べて極めて短い、との記述があるが、特許文献1の構成では、仮ラベリング処理のみをハードウェア化しているため、その後の処理に時間が長くかかるものである。しかしながら、仮ラベル関連テーブル作成は、ソフトウェアによる演算処理が必要であるが、仮ラベリング処理および本ラベリング処理はハードウェアによる演算処理を行うことができる。
【0071】
通常、仮ラベリング処理、仮ラベル関連テーブル作成、本ラベリング処理をソフトウェアにより演算した場合の処理時間の比は、仮ラベリング処理に要する時間が70%から90%、仮ラベル関連テーブル作成(2×3走査マスクの場合)が数%、本ラベリング処理が10%から30%程度であり、ほとんどの時間を仮ラベリング処理に消費する。なお、本ラベリング処理は、仮ラベリング処理よりも、ハードウェア化および並列化が容易であるため、本ラベリング処理の高速化は、容易に実現できる。
【0072】
本実施の形態のラベリング処理装置は、前記の課題を解決すべく、2×m(mは2以上の整数)の第1走査マスクを参照してラベル付けを行う第1ラベル演算処理部と、第1走査マスクとは異なる、2×mの第2走査マスクを参照してラベル付けを行う第2ラベル演算処理部を備え、第1ラベル演算処理部および第2ラベル演算処理部による2値画像データ領域のラベル付け演算において、第2ラベル演算処理部が第2走査マスクを参照する際に、第1ラベル演算処理部により付された仮ラベル値を利用して、対象画素のラベル付け処理を行うことを特徴とする。
【0073】
<第1の実施の形態の構成について>
図16において、2つの仮ラベル付け処理を並列して行うラベリング処理装置の仮ラベル付け処理に関係する箇所の構成例のブロック図を示す。
【0074】
本実施の形態における、仮ラベル付け処理を行うブロックは、2値画像データを格納する画像メモリ101、画像メモリ101等のメモリ制御(アドレス制御)を行うメモリ制御回路102、第1走査マスク1を用いた仮ラベル付け処理を行う第1ラベル処理部(第1ラベル演算処理手段)100a、第2走査マスク2を用いた仮ラベル付け処理を行う第2ラベル処理部(第2ラベル演算処理手段)100b、仮ラベル関連情報テーブルの作成と仮ラベル関連情報の格納を行う関連テーブル作成回路111及び関連テーブル用メモリ112、仮ラベル値を格納する仮ラベルメモリ113、および仮ラベル関連情報テーブル内の仮ラベル関連情報の統合処理、本ラベル処理、および装置の統括管理を行うCPU114により構成される。
【0075】
さらに、第1ラベル処理部100aは、2値化用Nラインメモリ103a、2値化用N+1ラインメモリ104a、走査マスク形成/判定回路105a、仮ラベル選択決定回路106a、新ラベルカウンタ107a、仮ラベル選択回路108a、仮ラベル用Nラインメモリ109a、および仮ラベル用N+1ラインメモリ110aにより構成される。
【0076】
また、第2ラベル処理部100bは、2値化用Mラインメモリ103b、2値化用M+1ラインメモリ104b、走査マスク形成/判定回路105b、仮ラベル選択決定回路106b、新ラベルカウンタ107b、仮ラベル選択回路108b、仮ラベル用Mラインメモリ109b、および仮ラベル用M+1ラインメモリ110bにより構成される。
【0077】
次に、仮ラベル付け処理を行う際の各ブロックの関連について説明を行う。但し、第2ラベル処理部100b内における各ブロックの関連は、一部を除いて第1ラベル処理部100aと同様であるので、重なる部分については説明を省略し、異なる部分についての説明に留める。
【0078】
先ず、画像メモリ101には、2値化処理された画像データが格納されており、その2値化画像データをもとに、第1ラベル処理部100aで仮ラベル付け処理を行う。処理の流れとしては、メモリ制御回路102にて、画像メモリ101から、Nライン目とN+1ライン目(Nは0以上の整数)の画像データを、2値化用Nラインメモリ103aおよび2値化用N+1ラインメモリ104aに、各々データ転送する。走査マスク形成/判定回路105aは、2値化用Nラインメモリ103aと2値化用N+1ラインメモリ104aのラインメモリから、2×mサイズの走査マスクとして画像データを取り出し、図11に示す仮ラベルを作成するための判定条件に基づき、仮ラベル値の演算を行う。次に、仮ラベル選択決定回路106aは、演算結果に基づき、新ラベルの割当てが必要か否かを判断する。
【0079】
新ラベルの割り当てが必要な場合は、仮ラベル選択決定回路106aは、新ラベルカウンタ107aの値を仮ラベル選択回路108aに送り、仮ラベル選択回路108aが、仮ラベル値として採用する。この時、新ラベルカウンタ107aは、次の新ラベル設定処理に備え、新ラベルカウンタの値を「1」だけ増やし、新ラベルカウンタの値を更新する。
【0080】
一方、新ラベルの割り当てが不要な場合、仮ラベル選択回路108aは、仮ラベル用Nラインメモリ109aと仮ラベル用N+1ラインメモリ110aからそれぞれ取得した、Nライン目とN+1ライン目の仮ラベルデータと図11に示す判定条件とに基づき、仮ラベル値を選択する。なお、Nライン目とN+1ライン目の仮ラベルデータは、仮ラベルメモリ113から、仮ラベル用Nラインメモリ109aと仮ラベル用N+1ラインメモリ110aに、予め読み込まれている。仮ラベル選択回路108aは、選択した仮ラベル値を
、仮ラベルメモリ113に書き込むと共に、仮ラベル値どうしの関連性を設定する必要がある場合は、関連テーブル作成回路111を通して、関連テーブル用メモリ112に仮ラベル関連情報を書込む。
【0081】
第2ラベル処理部100bにおいても、第1ラベル処理部100aと同様の処理を行うが、2値化用Mラインメモリ103b、2値化用M+1ラインメモリ104b、仮ラベル用Mラインメモリ109b、および仮ラベル用M+1ラインメモリ110bに読み込まれるデータは、Mライン目およびM+1ライン目(Mは0以上の整数)のデータとなる。
【0082】
CPU114は、仮ラベル付け処理完了後、仮ラベル関連情報テーブル内の仮ラベル関連情報の統合処理および本ラベリング処理等を行う。
【0083】
本ブロック図では、図1に示すように、第1ラベル処理部100aが奇数ライン(Nは奇数ラインを示す)を処理し、第2ラベル処理部100bが偶数ライン(Mは偶数ラインを示す)を処理する構成例を示している。しかし、画像データ領域を垂直方向に上下2分割し、各領域に対して第1ラベル処理部100aおよび第2ラベル処理部100bがそれぞれ処理を行う場合は、各ラベル処理部が処理するラインは、上記のように飛び飛びではなく、隣り合う連続したラインとなり、連続性が維持される。そのため、図17において破線部に示すように、2値化用Nラインメモリ103aおよび2値化用N+1ラインメモリ104aを、2値化用1ラインディレー120aに置き換え、また、仮ラベル用Nラインメモリ109aおよび仮ラベル用N+1ラインメモリ110aを仮ラベル用1ラインディレー121aに置き換え、第2ラベル処理部についても同様の構成をとることで、構成の簡略化を図ることができる。
【0084】
<第1の実施の形態のフローチャートについて>
図14において、本発明のラベリング処理装置が行う処理全体の概要のフローチャートを示す。処理全体の概要のフローチャートの説明は、従来技術における説明と同一であるので、省略する。
【0085】
図15において、本発明の第1の実施の形態における、仮ラベル付け処理および仮ラベル関連情報の作成処理の詳細な手順の例をフローチャートにより示す。この例では、第1ラベル処理部100aおよび第2ラベル処理部100bの2つのラベル処理部により、2つのラベル付け処理を並行して行う例を示している。
【0086】
図15のフローチャートのうち、破線部Saは、第1ラベル処理部100aが、第1走査マスク1を用いて行う処理の部分であり、破線部Sbは、第2ラベル処理部100bが、第2走査マスク2を用いて行う処理の部分である。破線部Saおよび破線部Sbの処理は並列して行われる。破線部Saと破線部Sbとの違いは、ディレーを行う処理(ステップ11、以下S11と略す)の有無のみとなるので、以下では、破線部Saの処理に基づき、説明を行う。
【0087】
まず、メモリ制御回路102が、第1走査マスク1における、画像メモリ101上の走査開始アドレスの位置を設定する(S10a)。
【0088】
次に、走査マスク形成/判定回路105aが、2×mサイズの第1走査マスク1を用いて、2値化用Nラインメモリ103aおよび2値化用N+1ラインメモリ104aに保持されている画像データを走査する(S12a)。
【0089】
次に、仮ラベル選択決定回路106aが、図11に示す判定条件に基づき、第1走査マスク1の注目画素pの仮ラベル値の判定処理を行う(S13a)。
【0090】
次に、仮ラベル選択決定回路106aは、上記S13aの判定処理の結果、新ラベル値を注目画素pに割り当てる必要があるかどうか判断する(S14a)。新ラベル値を割り当てる必要がある場合は、S15aに進み、新ラベル設定処理を行う。新ラベル値を割り当てる必要がない場合は、S16aに進み、仮ラベル値の関連判断を行う。
【0091】
S14aにおいて、仮ラベル値として、新ラベル値を割当てる必要があると判定された場合、仮ラベル選択決定回路106aは、新ラベルカウンタ107aの現在の新ラベルカウンタ値を、新ラベル値として設定し、仮ラベル選択回路108aに送る。その後、仮ラベル選択決定回路106aは、新ラベルカウンタ値を「1」だけ増やし、新ラベルカウンタ値を更新する(S15a)。その後、S18aに進み、仮ラベル書き込み処理を行う。
【0092】
S14aにおいて、仮ラベル値として、新ラベル値を割当てる必要はないと判定された場合、仮ラベル選択回路108aは、次に、図12(a)および(b)に示す判定条件、すなわち、第1走査マスク内で既に異なる仮ラベル値を持つ画素どうしについて、それら異なる仮ラベル値が、本来同じものであるかどうかの判定条件が満たされるかどうか判断を行う(S16a)。この判定条件が満たされる場合は、S17aの関連テーブル書込み処理に進み、満たされない場合は、S18aの仮ラベル書込み処理に進む。
【0093】
S16aにおいて、上記判定条件が満たされた場合、関連テーブル作成回路111は、上記異なる仮ラベル値どうしが、本来同じものであることを示す、仮ラベル関連情報を、関連テーブル用メモリ112上の仮ラベル関連情報テーブルに書き込む(S17a)。その後、S18aの仮ラベル書込み処理に進む。
【0094】
次に、仮ラベル選択回路108aは、現在位置での第1走査マスク1の注目画素pの仮ラベル値を、仮ラベルメモリ113に書込む(S18a)。
【0095】
次に、CPU114は、第1ラベル処理部100aが第1走査マスク1を用いて走査すべき画像データ領域の走査が全て終了したかどうかの判断を行う(S19a)。走査すべき画像データ領域に、仮ラベル値が未付与の画素が存在する場合は、S20aに進み、次のアドレスを設定する処理を行う。走査すべき画像データ領域に、仮ラベル値が未付与の画素が存在しない場合は、仮ラベル付け処理を終了する。
【0096】
S19aにおいて、走査すべき画像データ領域に、仮ラベル値が未付与の画素が存在すると判断された場合、CPU114は、メモリ制御回路102に指示し、第1走査マスク1を移動するために、画像データ領域の次のアドレスを設定する(S20a)。次のアドレスの設定においては、画像メモリ101の左端から右端に向かって水平方向に第1走査マスク1を移動する場合、次のアドレスの設定処理は、通常、現在のアドレスに「1」を加算したアドレスを、次のアドレスとする処理となる。但し、あるラインの右端から、次のラインの左端に第1走査マスク1が移動する場合であり、画像データ領域を上下2分割し、その各々の領域を一つの走査マスクで走査する場合は、走査するラインは連続しているので、次のアドレスの設定処理は、現在のアドレスに、そのまま「1」を加える処理を行う。しかし、本実施の形態のように、第1走査マスク1が奇数ラインを走査し、第2走査マスク2が偶数ラインを走査する場合は、各走査マスクがあるラインの右端に達し、次のアドレスを設定する際には、1ライン分飛ばしたラインの左端を次のアドレスとするアドレス計算が行われる。
【0097】
以上が、第1ラベル処理部100aが、第1走査マスク1を用いて行う処理の部分である。
【0098】
破線部Sbは、第2ラベル処理部100bが、第2走査マスク2を用いて行う処理の部分であるが、S11のディレー処理を除いて、破線部Saと同様の処理を行う。S11のディレー処理が必要な理由は、図1に示すように、第1走査マスク1を用いて第1ラベル処理部100aが演算した仮ラベル値を使用して、第2走査マスク2を用いて第2ラベル処理部100bが仮ラベル付け処理を行う場合、ラインの走査方向に数画素分(図1の例では、水平方向に3画素分)だけ、第1ラベル処理部100aの仮ラベル付け処理よりも、第2ラベル処理部100bの仮ラベル付け処理の処理タイミングをディレーさせる必要があるためである。
【0099】
次に本発明の第1の実施の形態の詳細内容について、図1及び図10を用いて説明を行う。
【0100】
図10(a)および(b)を用いて説明したように、従来、仮ラベリング処理を行う場合、2次元2値画像データが格納された画像データ領域内を領域の左上端から1ライン毎に右方向に2×m(図10(a)ではm=3)サイズの走査マスク80で順次走査していき、最終的には右下端まで、画素の連結領域を走査し、仮ラベリング処理を完了する。
【0101】
ここで、2×3の走査マスク80は、仮ラベル値の演算対象画素pおよび画素a〜画素dの5画素で構成されており、画素a〜画素dの4画素については、既に仮ラベル値が付された画素となっている。ラベル演算処理部が、この走査マスク80内で、演算対象画素pの仮ラベル算出機能を備える。従って、従来例のラベリング処理装置は、ラベル演算処理部を1つ備えたラベリング処理装置と見なすことができる。本実施の形態のラベリング処理装置では、このラベル演算処理部を複数個備えている。しかしながら、ラベリング処理時間を短縮するために、単純にラベル演算処理部を複数個備えただけでは、演算対象画素pのラベル付け処理を行う際に、既に仮ラベル値が付された周辺画素を参照する必要があるという前提条件を満たすことができない場合がある。
【0102】
そこで、本実施の形態では、前記前提条件を満足するための構成および方法を、図1において示すものである。
【0103】
詳細内容としては、2値画像データ領域13において、第Nライン、第(N+1)ライン、および第(N+2)ライン(Nは0以上の整数)上の画素に対して仮ラベリング処理する場合、第1ラベル演算処理部が仮ラベリング処理に用いる第1走査マスク1を第Nラインおよび第(N+1)ライン上に配置し、第2ラベル演算処理部が仮ラベリング処理に用いる第2走査マスク2を第(N+1)ラインおよび第(N+2)ライン上に配置し、2並列による仮ラベリング処理を行うものである。
【0104】
前記の配置に関して重要な事は、第1走査マスク1および第2走査マスク2の相対位置について、遅延処理が行えるよう配置することである。第1ラベル演算処理部での演算結果を利用し第2ラベル演算処理部がラベル付け演算処理を行うことにより、処理の並列化を実現することができる。
【0105】
図1に示すように走査マスクを配置する場合、第(N+1)ライン上の画素1aに対して仮ラベル付け処理を行うためには、従来例と同様、既に仮ラベル値が付された画素1b〜1eの仮ラベル値を使用し、1ライン分先行する、次の第(N+2)ライン上の画素2aに対して仮ラベル付け処理を行うためには、画素2b〜2eの仮ラベル値を使用する。
【0106】
ここで、画素2bの仮ラベル値については、第2ラベリング演算処理部により演算処理済みであり、画素2c〜2eの仮ラベル値については、既に第1ラベル演算処理部により値が付されているため、第2ラベル演算処理部が、画素2aの仮ラベル値の演算処理を行う際には、支障がない。つまり、第1ラベル演算処理部と第2ラベル演算処理部は、同時に仮ラベル演算処理を行うことができ、2並列による処理の高速化を図ることができる。
【0107】
なお、演算対象画素1aと2aと位置関係は、図1に示す例では、演算対象画素1aに対して、演算対象画素2aは3画素分だけ処理時間を遅延させた例となっている。しかし、図1に示すように2つの走査マスクを配置する例では、2画素分以上の処理時間の遅延があれば、第1ラベル演算処理部と第2ラベル演算処理部は、同時に仮ラベル演算処理を行うことができる。
【0108】
本実施の形態の構成および方法を使用した実際の2並列処理の場合、第1ラベル演算処理部が、2値画像データ領域の奇数ラインの仮ラベリング処理を行い、第2ラベル演算処理部が、偶数ラインの仮ラベリング処理を行う方法が、自然な利用方法となる。
【0109】
<第2の実施の形態>
図2において、本実施の形態による2値画像データ領域13内での仮ラベリング処理の様子を示す。本実施の形態におけるラベリング処理装置は、第1の実施の形態に記載のラベル演算処理部を、複数個(M個、Mは3以上)備え、2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)、第(M×N+1)ライン、第(M×N+2)ライン、そして第(M×N+M−1)ラインまでの、各々のラインに対してM個のラベル演算処理部により、複数画素の仮ラベル付け処理を並列して行うことにより、ラベリング処理の高速化を図るものである。
【0110】
図2に示す例は、M=4の場合を示しており、4個のラベル演算処理部が、それぞれ4個の走査マスクを用いて仮ラベリング処理を行うもので、各ラベル演算処理部がそれぞれ第1走査マスク1から第4走査マスク4までに含まれる画素の仮ラベル値を参照して、仮ラベリング処理を行う。本実施の形態のラベリング処理装置を用いることにより、演算処理の並列度が更に上がり、処理時間の短縮化を図ることができる。
【0111】
<第3の実施の形態>
本発明による図3の実施例は、画像データ領域13を垂直方向に仮想的に上下2分割し、分割位置から上方に向かってラベル付けを行う第1ラベル演算処理手段と、分割位置から下方に向かってラベル付けを行う第2ラベル演算処理手段を備えることを特徴とする。
【0112】
図4において、2値画像データ領域13を上下に分割し、上側の分割領域13a内に、連結領域20a〜20dが存在し、下側の分割領域13b内に、連結領域21a〜21fが存在する場合の例を示す。
【0113】
この場合に、単純に2値画像データ領域13を垂直方向に仮想的に上側の分割領域13aと下側の分割領域13bの領域に上下2分割して、各々の画像データ領域で独立してラベリング処理を行うと、分割領域13aおよび13bの境界にまたがる連結領域、つまり連結領域20a、21a、21b、および連結領域20b、21c、21dは、それぞれ本来1つの連結領域としてラベル付けが行われるべきであるが、6つの異なる連結領域としてラベル付けされてしまう。このため、本ラベリング処理完了後、6つの連結領域のラベル値を2つに統合する必要があり、分割領域13aと分割領域13bとの境界付近において、異なるラベル値が割当てられている箇所を検索し、分割された連結領域のラベル値について統合を行う。このため、本来のラベリング処理とは別に、統合化のための特別な処理の追加が必要となり、ラベリング処理が複雑化し、また、処理時間も増加する。
【0114】
本実施の形態では、図3に示すように、2値画像データ領域13を、分割領域13aと分割領域13とに、仮想的に上下2分割する。そして、分割領域13aと分割領域13bの境界領域として、ライン13cとライン13dとのそれぞれ幅が1画素分のラインを定義する。本実施の形態のラベリング処理装置は、分割領域13aおよびライン13d部分の2値画像データ領域を走査しラベル付けを行う第1ラベル演算処理部と、分割領域13bおよびライン13c部分の2値画像データ領域を走査しラベル付けを行う第2ラベル演算処理部を備え、各々のラベル演算処理部が、独立して仮ラベリング処理を行う。
【0115】
第1ラベル演算処理部は、第1走査マスク1を、ライン13cの左端から右端に向かって動かし、仮ラベリング処理を行う。ライン13cの右端に到達すると、1ライン上の左端から右端へと順次走査を行い、最終的には2値画像データ領域13の分割領域13aの右上端の画素まで仮ラベリング処理を行う。
【0116】
一方、第2ラベル演算処理部は、第2走査マスク2を、ライン13dの左端から右端に向かって動かし、仮ラベリング処理を行う。ライン13dの右端に到達すると、1ライン下の左端から右端へと順次走査を行い、最終的には2値画像データ領域13の分割領域13bの右下端の画素まで仮ラベリング処理を行う。
【0117】
第1ラベル演算処理部および第2ラベル演算処理部が上記の仮ラベリング処理を行う上で重要な点は、第1の実施の形態の説明で記述したように、第1ラベル演算処理部および第2ラベル演算処理部による演算処理のタイミングについて、遅延処理を行うように、第1走査マスク1および第2走査マスク2を配置することである。
【0118】
すなわち、第1ラベル演算処理部で演算した結果のラベル値を利用して、第2ラベル演算処理部がラベル付け演算を行う点が、重要である。図3において示す例では、第1走査マスク1の位置に対して、第2走査マスク2の位置を、3画素分ずらし、処理を遅延させている。なお、この例では、3画素分処理を遅延させているが、2画素分以上処理を遅延させれば、第1ラベル演算処理部で演算した結果のラベル値を利用して、第2ラベル演算処理部がラベル付け演算を行うことができる。
【0119】
以上のことから、本実施の形態のラベリング処理装置を用いれば、ラベル付けの対象となる2値画像データ領域13を仮想的に分割し、各々の分割領域13aおよび13bにおけるラベリング処理を個別に行う場合においても、分割領域13aおよび13bにまたがる連結領域に含まれる画素について、同一のラベル値を割り当てることができるため、本ラベリング処理の完了後に、ラベル値を統合化するための特別な処理は不要となり、処理の簡略化と処理時間の短縮化を図ることができる。
【0120】
なお、図3に示す例では、第1走査マスク1および第2走査マスク2を移動させる方向は、2値画像データ領域13の左端から右方向に行っているが、第1走査マスク1および第2走査マスク2の移動方向が同一であれば、右端から左方向に、走査マスクの移動を行ってもかまわない。また、2値画像データ領域13を仮想的に分割する際には、等分に分割する必要はない。但し、等分に分割した方が、仮ラベリング処理全体に要する時間を最小にすることができる。
【0121】
<境界条件処理について>
図3において、第1ラベル演算処理部が、第1走査マスク1をライン13c上で移動させて仮ラベリング処理を行う場合、第1走査マスク1がかかるライン13d上の画素には、まだ仮ラベリング処理によるラベル値が存在しない。そこで、第1ラベル演算処理部は、ライン13d上の画素のラベル値をゼロとして扱う、特別処理(境界条件処理)を行う。
【0122】
従来の構成および方法による仮ラベリング処理においても、2値画像データ領域を成す矩形の外周部4辺のうち、3辺において境界条件処理を行う必要がある。
【0123】
なお、第2走査マスク2が、ライン13d上を移動し仮ラベリング処理が行われる場合は、第1ラベル演算処理部により、ライン13c上の画素については、既に仮ラベルが付されているため、通常のラベル付け処理が行われる。
【0124】
次に、境界条件処理の詳細を説明する。境界条件処理については、図10(a)および(b)に示す従来例をもとに説明を行う。
【0125】
走査マスク80について、注目画素pの仮ラベル値を演算するためには、画素aから画素dまでの4画素の仮ラベル値を参照する必要がある。注目画素pが、2値画像データ領域の最上辺及び左右辺に位置する場合、境界条件が発生する。つまり、画素aから画素dまでの4画素のラベル値を、4つとも参照することはできない。この場合のラベリング処理方法は、例えば、注目画素pが2値画像データ領域の最上辺(第1ライン)に位置している場合、画素bから画素dまでの3画素の位置は、2値画像データ領域外となるため、これらの画素の仮ラベル値をゼロとして扱い、参照する画素のラベル値は、画素aの1画素のみのラベル値として処理を行う。
【0126】
また、注目画素pが2値画像データ領域の左辺に位置する場合は、画素aおよび画素bの2画素の位置は、2値画像データ領域外となるため、これらの画素の仮ラベル値をゼロとして扱い、参照する画素のラベル値は、50d、50eの2画素のラベル値として処理を行う。
【0127】
また、注目画素pが2値画像データ領域の右辺に位置する場合は、画素dの位置は、2値画像データ領域外となるため、仮ラベル値をゼロとして扱い、画素bから画素cまでの3画素のラベル値のみ参照して処理を行う。
【0128】
上記の処理を行うことにより、走査マスク80の注目画素pの位置が、境界位置にある場合でも仮ラベリング処理を行うことができる。
【0129】
なお、図3における第1走査マスク1は、図10(a)の走査マスクの上下を反転させたものと見なせるため、ライン13c上および分割領域13aの左右辺の3辺を境界位置として、境界条件処理を行う。
【0130】
<第4の実施の形態>
本実施の形態が、第3の実施の形態と異なる点は、第3の実施の形態では、2値画像データ領域13を垂直方向に仮想的に上下2分割しラベリング処理を行ったが、本実施の形態では、2値画像データ領域13を水平方向に仮想的に左右2分割し、第1ラベル演算処理部が分割位置から左方向に向かってラベル付けを行い、第2ラベル演算処理部が分割位置から右方向に向かってラベル付けを行う点である。
【0131】
本実施の形態では、図5に示すように、2値画像データ領域13を、分割領域13eおよび13fに仮想的に左右2分割する。分割領域13eおよび13fの境界領域として、1画素分の幅を持つライン13gおよび13hを定義する。第1ラベル演算処理部が、分割領域13eおよびライン13hの2値画像データ領域を走査しラベル付けを行い、第2ラベル演算処理部が、分割領域13fおよびライン13gの2値画像データ領域を走査しラベル付けを行う。各ラベル演算処理部は、各々独立して仮ラベリング処理を行う。
【0132】
第1ラベル演算処理部は、第1走査マスク1を、ライン13gの上端から下端に向かって移動させながら仮ラベリング処理を行い、下端に到達すると1つ左のラインに移動し、その上端から下へと順次走査を行う。最終的には、分割領域13eの左下端の画素まで処理を行う。
【0133】
一方、第2ラベル演算処理部は、第2走査マスク2を、ライン13hの上端から下端に向かって移動させながら仮ラベリング処理を行い、下端に到達すると1つ右のラインに移動し、その上端から下へと順次走査を行う。最終的には、分割領域13fの右下端の画素まで処理を行う。
【0134】
本実施の形態の構成および方法を用いれば、第3の実施の形態と同様の効果を得ることができる。
【0135】
なお、図5に示す例では、第1走査マスク1および第2走査マスク2を移動させる方向は、2値画像データ領域13の上端から下方向に行っているが、第1走査マスク1および第2走査マスク2の移動方向が同一であれば、下端から上方向に、走査マスクの移動を行ってもかまわない。また、2値画像データ領域13を仮想的に分割する際には、等分に分割する必要はない。但し、等分に分割した方が、仮ラベリング処理全体に要する時間を最小にすることができる。
【0136】
<第5の実施の形態>
本実施の形態は、図6に示すように、2値画像データ領域13を垂直方向に仮想的に上下2分割し、分割領域13aの上端から分割位置に向けてラベル付けを行う第1ラベル演算処理部と、分割領域13bの下端から分割位置に向けてラベル付けを行う第2ラベル演算処理部とを備えることを特徴とする。
【0137】
本実施の形態では、図6に示すように、2値画像データ領域13を、分割領域13aと分割領域13とに、仮想的に上下2分割する。そして、分割領域13aと分割領域13bの境界領域として、ライン13cとライン13dとのそれぞれ幅が1画素分のラインを定義する。本実施の形態のラベリング処理装置は、分割領域13aおよびライン13d部分の2値画像データ領域を走査しラベル付けを行う第1ラベル演算処理部と、分割領域13bおよびライン13c部分の2値画像データ領域を走査しラベル付けを行う第2ラベル演算処理部を備え、各々のラベル演算処理部が、独立して仮ラベリング処理を行う。
【0138】
第1ラベル演算処理部は、第1走査マスク1を、分割領域13aの左上端から右端に向かって動かし、仮ラベリング処理を行う。右端に到達すると、1ライン下の左端から右端へと順次走査を行い、最終的にはライン13dの右端の画素まで仮ラベリング処理を行う。
【0139】
一方、第2ラベル演算処理部は、第2走査マスク2を、分割領域13bの左下端から右端に向かって動かし、仮ラベリング処理を行う。右端に到達すると、1ライン上の左端から右端へと順次走査を行い、最終的にはライン13cの右端の画素まで仮ラベリング処理を行う。
【0140】
なお、図6において、2値画像データ領域13が等分に分割されている場合、第1走査マスク1が、左上端から順次移動し、ライン13cの右端に達した時点で、第2走査マスク2もライン13dの右端に達している。そしてすべての画素に対して仮ラベルが付された状態となっている。但し、分割領域13aおよび13bにまたがる連結領域がある場合、上側と下側では異なる仮ラベルが付されている
この状態から、さらに第1走査マスク1を1ライン下の左端から右端に移動させ、第2走査マスク2を1ライン上の左端から右端に移動させ、画素を走査するが、この際には、画素に再度仮ラベル値を付けることは行わず、仮ラベル関連テーブルに、仮ラベル関連情報を登録することのみを行う。そして、最終的に、仮ラベル関連テーブルから各仮ラベル関連情を検索し、本ラベル値を設定するためのテーブルを作成し、そのテーブルをもとに、各連結領域に本ラベル値を設定し、ラベリング処理を完了する。
【0141】
第1ラベル演算処理部および第2ラベル演算処理部が上記の仮ラベリング処理を行う上で重要な点は、第1の実施の形態の説明で記述したように、第1ラベル演算処理部および第2ラベル演算処理部による境界領域での演算処理のタイミングについて、遅延処理を行うように、第1走査マスク1および第2走査マスク2を配置することである。
【0142】
すなわち、第1ラベル演算処理部で演算した結果のラベル値を利用して、第2ラベル演算処理部がラベル付け演算を行う点が、重要である。図6において示す例では、第1走査マスク1の位置に対して、第2走査マスク2の位置を、3画素分ずらし、処理を遅延させている。なお、この例では、3画素分処理を遅延させているが、2画素分以上処理を遅延させれば、第1ラベル演算処理部で演算した結果のラベル値を利用して、第2ラベル演算処理部がラベル付け演算を行うことができる。
【0143】
本実施の形態の構成および方法を用いれば、第3の実施の形態と同様の効果を得ることができる。
【0144】
<第6の実施の形態>
本実施の形態が、第5の実施の形態と異なる点は、第5の実施の形態では、2値画像データ領域13を垂直方向に仮想的に上下2分割しラベリング処理を行ったが、本実施の形態では、2値画像データ領域13を水平方向に仮想的に左右2分割し、第1ラベル演算処理部が分割位置から左方向に向かってラベル付けを行い、第2ラベル演算処理部が分割位置から右方向に向かってラベル付けを行う点である。
【0145】
本実施の形態では、図7に示すように、2値画像データ領域13を、分割領域13eおよび13fに仮想的に左右2分割する。分割領域13eおよび13fの境界領域として、1画素分の幅を持つライン13gおよび13hを定義する。第1ラベル演算処理部が、分割領域13eおよびライン13hの2値画像データ領域を走査しラベル付けを行い、第2ラベル演算処理部が、分割領域13fおよびライン13gの2値画像データ領域を走査しラベル付けを行う。各ラベル演算処理部は、各々独立して仮ラベリング処理を行う。
【0146】
第1ラベル演算処理部は、第1走査マスク1を、分割領域13eの左上端から下端に向かって移動させながら仮ラベリング処理を行い、下端に到達すると1つ右のラインに移動し、その上端から下へと順次走査を行う。最終的には、ライン13hの下端の画素まで処理を行う。
【0147】
一方、第2ラベル演算処理部は、第2走査マスク2を、分割領域13fの右上端から下端に向かって移動させながら仮ラベリング処理を行い、下端に到達すると1つ左のラインに移動し、その上端から下へと順次走査を行う。最終的には、ライン13gの下端の画素まで処理を行う。
【0148】
本実施の形態の構成および方法を用いれば、第3の実施の形態と同様の効果を得ることができる。
【0149】
<第7の実施の形態>
本実施の形態は、2値画像データ領域13を、3つ以上に分割し、分割したそれぞれの分割領域に対し、対応するラベル演算処理部がラベル付けを行うものである。図8において、2値画像データ領域13を3分割した例を示す。この例での仮ラベル付け処理は、第3の実施の形態および第5の実施の形態の仮ラベル付け処理を複合したものである。従って、分割領域にまたがる連結画素について、同一のラベル値を割当てることができ、また、並列して複数の仮ラベリング処理を行うことができるため、ラベリング処理の高速化を図ることができる。
【0150】
<第8の実施の形態>
前記の各実施の形態においては、2値画像データ領域を仮想的に分割しラベリング処理を行っていたが、本実施の形態では、2値画像データ領域を物理的に分割されたメモリに割り当てることで、物理的に分割し、ラベリング処理を行う。
【0151】
本実施の形態の構成上の特徴を、図9を用いて説明すると、2値画像データ領域13を、主要画像データ領域91a〜91cと、それら主要画像データ領域の境界部分に位置する境界領域91d、91eを物理的に分離し、主要画像データ領域91a〜91cを、各ラベリング処理ユニット92a〜92c上の非共有メモリ93a〜93cに割り当て、境界領域91d、91eを、ラベリング処理ユニット92aおよび92b上の共有メモリ94aおよび94bに割り当てるということである。
【0152】
ここで使用する共有メモリは、デュアルポート・メモリ等を使用したものであり、1つのメモリ領域に対して、2方向からの独立したアクセスにより、メモリデータの読み書きが可能なものである。なお、例えば、共有メモリ94aには、前記の実施の形態で説明した、ライン13cとライン13dとが、またはライン13gとライン13hとが収められている。
【0153】
本実施の形態の構成を用いれば、物理的に2値画像データ領域を分割していても、共有メモリにより各分割領域の境界領域の部分を共有メモリにより共有することで、境界領域の画素に付されたラベル値へのアクセスが双方のラベリング処理ユニットから行えるため、分割領域にまたがる連結領域に含まれる画素に対し、同一のラベル値を割当てることができる。そのため、従来技術では、物理的にメモリを分割した場合に必要であった、ラベリング処理完了後の特別な統合化処理が、不要となる。
【0154】
なお、図9においては、非共有メモリ93aと共有メモリ94aとを同一基板内に収めたラベリング処理ユニット92a、非共有メモリ93bと共有メモリ94bとを同一基板内に収めたラベリング処理ユニット92b、そして非共有メモリ93cと共有メモリ94cとを同一基板内に収めたラベリング処理ユニット92cを示している。この構成では、共有メモリ94cは使用していないので、無駄になる。しかし、一つのラベリング処理ユニットの共有メモリを利用しないことによる無駄よりも、ラベリング処理ユニットの設計を全て同一にし、ラベリング処理ユニットを最小能力単位に分割し、標準化を図ることにより、ラベリング処理装置の開発費用の削減および開発期間の短縮を図ることができるというメリットのほうが大きい。また、ラベリング処理ユニットを最小能力単位に分割し、標準化を図ることにより、ラベリング処理装置に要求される処理能力の増減に対しては、ラベリング処理ユニットを増減させることにより容易に対応できるという、スケーラビィティを、ラベリング処理装置に持たせることができる。
【0155】
<補足事項>
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【0156】
最後に、ラベリング処理装置100の各ブロック、特に第1ラベル演算処理部101および第2ラベル演算処理部102、そして第Mラベル演算処理部(Mは3以上の整数)は、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
【0157】
すなわち、ラベリング処理装置100は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるラベリング処理装置100の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記ラベリング処理装置100に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【0158】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
【0159】
また、ラベリング処理装置100を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【産業上の利用可能性】
【0160】
本発明によれば、並列演算処理によりラベリング処理が高速化され、仮ラベル関連テーブルへの登録数を減らすことで本ラベリング処理の処理時間を減らし、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加を不要とすることで処理が簡略化され処理時間が短縮化される。以上のような効果を奏するラベリング処理装置を実現できるので、画像処理装置やスキャナをはじめとする種々のシステムに広く好適に使用できる。
【図面の簡単な説明】
【0161】
【図1】本発明の第1の実施の形態における仮ラベリング処理で、第1走査マスク1と第2走査マスク2の配置を示す図である。
【図2】本発明の第2の実施の形態における仮ラベリング処理で、第1走査マスク1から第4走査マスク4までのの配置を示す図である。
【図3】本発明の第3の実施の形態における仮ラベリング処理で、2値画像データ領域13を上下2分割し、分割位置から第1走査マスク1と第2走査マスク2が仮ラベリング処理を行う経路を示す図である。
【図4】本発明の第3の実施の形態における仮ラベリング処理で、2値画像データ領域13を上下2分割した場合に、各連結領域にどの様な仮ラベルが付されるかを示す図である。
【図5】本発明の第4の実施の形態における仮ラベリング処理で、2値画像データ領域13を左右2分割し、分割位置から第1走査マスク1と第2走査マスク2が仮ラベリング処理を行う経路を示す図である。
【図6】本発明の第5の実施の形態における仮ラベリング処理で、2値画像データ領域13を上下2分割し、2値画像データ領域13の上端から第1走査マスク1が仮ラベリング処理を行い、2値画像データ領域13の下端から第2走査マスク2が仮ラベリング処理を行う経路を示す図である。
【図7】本発明の第6の実施の形態における仮ラベリング処理で、2値画像データ領域13を左右2分割し、2値画像データ領域13の左端から第1走査マスク1が仮ラベリング処理を行い、2値画像データ領域13の右端から第2走査マスク2が仮ラベリング処理を行う経路を示す図である。
【図8】本発明の第7の実施の形態における仮ラベリング処理で、2値画像データ領域13を上下3分割し、第1走査マスクから第3走査マスク3までが仮ラベリング処理を行う経路を示す図である。
【図9】本発明の第8の実施の形態において、複数に分割された2値画像データ領域13の各分割領域および各境界領域と、ラベリング処理ユニット上の非共有メモリおよび共有メモリとの関係を示す図である。
【図10】従来手法による仮ラベリングの方法を示す図であり、(a)は、仮ラベリングで用いられる走査マスクの形状を示す図であり、(b)はその走査マスクをどのように動かして2値画像データ領域を走査するかを示す図である。
【図11】従来手法による仮ラベリングの方法において、走査マスクに含まれる各画素の既に付された仮ラベル値から、新たな仮ラベル値を求める規則を示す表である。
【図12】従来手法による仮ラベリングの方法において、走査マスクに含まれる特定の画素が特定の条件に当てはまる場合に、仮ラベル関連テーブルを作成する様子を示す図である。
【図13】従来手法による仮ラベリングの方法を用いて、実際のラベリング処理の様子を示す図であり、(a)は、2値画像データ領域内の連結領域の各画素に付された仮ラベル値の例を示す図であり、(b)は、仮ラベル関連テーブルに登録される仮ラベル関連情報の例を示す表であり、(c)は、仮ラベルを最終的に真ラベルに変換するための変換テーブルの例を示す表である。
【図14】本発明のラベリング処理装置が行う処理手順の概要を示すフローチャートである。
【図15】本発明の第1の実施の形態における、仮ラベリング処理および関連テーブル作成処理を行う手順の詳細を示すフローチャートである。
【図16】本発明における、仮ラベリング処理および関連テーブル作成処理を行うハードウェアの構成を示すブロック図である。
【図17】本発明における、仮ラベリング処理および関連テーブル作成処理を行うハードウェアの別の構成を示すブロック図である。
【符号の説明】
【0162】
1 第1走査マスク
2 第2走査マスク
5 第1走査マスク
6 第2走査マスク
13 2値画像データ領域
80 走査マスク
92a ラベリング処理ユニット
92b ラベリング処理ユニット
92c ラベリング処理ユニット
100a 第1ラベル処理部(第1ラベル演算処理手段)
100b 第2ラベル処理部(第2ラベル演算処理手段)
101 画像メモリ
102 メモリ制御回路
103a 2値化用Nラインメモリ
103b 2値化用Mラインメモリ
104a 2値化用N+1ラインメモリ
104b 2値化用M+1ラインメモリ
105a 走査マスク形成/判定回路
105b 走査マスク形成/判定回路
106a 仮ラベル選択決定回路
106b 仮ラベル選択決定回路
107a 新ラベルカウンタ
107b 新ラベルカウンタ
108a 仮ラベル選択回路
108b 仮ラベル選択回路
109a 仮ラベル用Nラインメモリ
109b 仮ラベル用Mラインメモリ
110a 仮ラベル用N+1ラインメモリ
110b 仮ラベル用M+1ラインメモリ
111 関連テーブル作成回路
112 関連テーブル用メモリ
113 仮ラベルメモリ
114 CPU
120a 2値化用1ラインディレー
120b 2値化用1ラインディレー
121a 仮ラベル用1ラインディレー
121b 仮ラベル用1ラインディレー
【技術分野】
【0001】
本発明は、画像処理におけるラベリング処理に関するものである。
【背景技術】
【0002】
従来、2次元2値画像データの連結領域に対してラスタスキャンによるラベリング処理を行う場合、画素縦2行横m列(mは2以上の整数)分の走査マスク(以下、2×m走査マスクという)を参照してラベル付けを行う手法が一般的に用いられる。
【0003】
従来のラベリング処理方法について、図を用いて以下に説明を行う。(特許文献1を参照)
画像処理の分野で、二値化された画像のうち例えば二値データ「1」を有する連続した領域を一つの独立した画像の集合体(以下「島」という)とみなし、互いに分離した各島に順番にラベル付けを行う処理(ラベリング処理)が行われることがある。その場合には、まず、所定の形状の走査マスクを二値画像の画面上でラスタ走査しながら、各画素に仮ラベル(もしくは一次ラベル)を付す作業を行う。しかし、仮ラベルを付すだけでは、実際には同じ一つの島に属する画素に対して異なるラベル付けがされる場合がある。このため仮ラベリングを行ったあとで、同じ島に属する画素を一つの島として認識する統合化を行って、本ラベリング処理(もしくは二次ラベリング処理)を行うことが必要となる。
【0004】
従来から仮ラベリングを行うための走査マスクの形状としては種々のものが知られているが、図10(a)の走査マスク80は、その典型的なものの一例である。この走査マスク80は、二値画像について図10(b)に示すような方向でラスタ走査する場合の走査マスクとして用いられる。走査マスク80は、上のラインの3つの画素b、c、dと、下のラインの2つの画素a、pから構成される。このうち画素pは注目画素であり、走査マスク80を走査してこの注目画素pの二値データが「1」である画素の位置に来たときに、この注目画素pの二値データと、画素a〜dの二値データとの所定の関係に従ってその画素に仮ラベルを付す。
【0005】
図11は注目画素pにどのような仮ラベルを付すかを示した表の一例である。この表で、p及びa〜dの欄に記載された「0」又は「1」の値は図10の走査マスク80を走査しているときの走査マスク80の各部の画素の二値データに対応し、「*」印は二値データが「0」又は「1」のどちらでもよいことを示す。
【0006】
ある一つの二値画像全体についてこの走査マスク80を走査させるとき、この走査マスクのpの位置の画素が二値データの「0」であれば、その画素には仮ラベルとして0を付す。図11の表のNo.0の行はこのことを示す。これに対し、注目画素pの位置の画素が二値データとして値「1」を有していれば、その画素には、図11の表のNo.1〜No.5の条件に従って、La〜Ldのラベルもしくは「新ラベル」を付す。ここでNo.1の行のLaは、走査マスク80の画素pに対して画素aに付されている仮ラベルと同じ仮ラベルを付すことを意味する。No.2〜No.4の各行のLb〜Ldについても同様である。また、No.5の行の新ラベルは、それまでに付されている仮ラベルのうち最も大きい値の仮ラベルよりも1だけ大きい値を有する仮ラベルを新たな仮ラベルとして付すことを意味する。
【0007】
仮ラベリング処理では、仮ラベルを付す作業と並行して、仮ラベル関連テーブルを作成する作業を併せて行う。仮ラベル関連テーブルは、仮ラベルを付す段階で、異なる仮ラベルが付された画素が実は同じ島に属するものであるという場合に、そのことを示す情報(仮ラベル関連情報)を記載したテーブルである。図12(a)(b)は仮ラベル関連テーブルへの記載が行われる二つの場合を示しており、同図(c)は具体的に作成された仮ラベル関連テーブルの一例を示している。
【0008】
図12(a)は画素p、a、dの二値データが「1」で、画素b、cの二値データが「0」の場合である。この場合、画素aと画素dは画素pを介してつながっており、したがってこれらは同じ一つの島に属している。このようなときに、図12(c)のNo.rの欄に、画素aの仮ラベルLaと画素dの仮ラベルLdが同じ島に属するものである旨の仮ラベル関連情報を記載する。但し、仮ラベルを付す段階で既に画素aと画素dに等しい仮ラベルが付されていれば(La=Ld)、これらは同じ島に属することになるので、仮ラベル関連テーブルへの記載が行われるのはLa≠Ldの場合だけである。
【0009】
図12(b)は、画素p、b、dの二値データが「1」で、画素cが「0」の場合であるが、この場合も画素bと画素dは、画素pを介して同じ一つの島に属する。そこで、図12(c)のNo.sの欄に画素bの仮ラベルLbと画素dの仮ラベルLdが実際は同じ島に属する旨の仮ラベル関連情報を記載する。但し、この場合も、Lb=Ldのときは関連テーブルへの記載は行わず、仮ラベル関連テーブルへの記載が行われるのはLb≠Ldの場合だけである。
【0010】
このようにして仮ラベリング処理及び仮ラベル関連テーブルへの仮ラベル関連情報の記載が行われたら、仮ラベルの情報及び仮ラベル関連テーブルの内容に基づいて、統合化処理を行う。すなち、異なる仮ラベルが付された画素のうち同じ一つの島に属する画素を同じ一つの島に属するものと認識し、そして各島ごとに仮ラベルとは全く別系統の新しいラベルを付す作業(本ラベリング又は二次ラベリング)を行う。
【0011】
図13(a)は、島の各画素に対して仮ラベルを付した状態の例を表したものであり、図13(b)は、仮ラベル関連テーブルに、この例における仮ラベル関連情報が一時記憶として記載された状態を示したものである。上記の手法により仮ラベリング処理を行うと、図13(a)に示す例のように、同一の島に対して、1〜5の仮ラベルが付される。また、仮ラベリング処理の過程で、画素51a〜54aの仮ラベルを付す際には、図13(b)に示す仮ラベル関連テーブル中に、No.1からNo.4の仮ラベル関連情報を記入する。仮ラベリング処理が完了した時点で、次に、図13(b)の仮ラベル関連情報を元に、どの仮ラベルと他の仮ラベルとが、同一であるべきかを検索し、図13(c)に示すように、仮ラベルを最終的に真ラベルに変換するための変換テーブルを作成する。この変換テーブルをもとに、仮ラベルを真ラベルに再設定することにより、ラベリング処理の全工程を完了する。
【0012】
なお、ここでは従来例の説明として、2×3走査マスクの例を用いたが、一般に2×m(mは2以上の整数)走査マスクが用いられる。ここで、走査マスクが小さい場合は、仮ラベル値を求めるために参照する、走査マスク内の画素数が少なくて済むメリットがあり、また、仮ラベリング処理をハードウェア回路化した場合、走査マスクが小さいので、回路が小型になるメリットがある。しかし、仮ラベル関連テーブルへの仮ラベル関連情報の登録数が多くなり、仮ラベル関連テーブルの再演算処理が多くなってしまうというデメリットが生じる。逆に、走査マスクが大きい場合は、仮ラベル値を求める際に参照する画素数が多くなるが、仮ラベル関連テーブルへの仮ラベル関連情報の登録数は少なくなる。通常は、2×3サイズの走査マスクを用いてラベリング処理を行う場合が多い。
【0013】
なお、2×3サイズの走査マスクを用いる場合、6画素の領域を用いても構わないが、図10(a)に示すように、5画素の領域を用いても演算処理が可能なため、5画素で構成される走査マスクが一般的に使用される。
【特許文献1】特開平8−22541(1996年1月23日公開)
【発明の開示】
【発明が解決しようとする課題】
【0014】
しかしながら、従来の構成および方法では下記の課題が発生する。
【0015】
2次元2値画像データの連結領域に対してラベル付けを行うラベリング処理を行う場合、通常、ラベル付けの対象画素を含む2×m(mは2以上の整数)走査マスクを参照してラベル付けを行うが、対象画素のラベル値を演算するためには、参照する走査マスクの他の画素のラベル付けが完了していることが前提条件となる。このため、3×3画素のコンボリューション・フィルタのように対象画素の値についてフィルタ演算する場合、対象画素の周辺画素の演算結果を使用せず周辺画素の値のみを参照して演算を行うため、並列化処理が容易であるが、ラベリング処理の場合、2値画像データ領域のラベル付けの処理結果をもとに演算を行う必要があるため、単純に演算処理の並列化を行うことができない。
【0016】
また、公知技術に類するが、ラベル付けの対象となる2値画像データ領域を仮想的または物理的に分割し、各々分割された領域におけるラベリング処理を個別に行う技術がある。2値画像データ領域を仮想的に分割する場合は、ラベル付けの並列演算処理を行う場合、仮想的に2値画像データ領域が分割されているものとして扱う。仮想的に分割する場合、パラメータ設定により、自由に分割位置を設定することが可能であり、並列演算を行う場合、物理的に分割する場合に比べ、より柔軟性を持たせた演算を行うことができる。仮想的に分割する場合と物理的に分割する場合とのいずれの場合であっても、複数の分割された領域にまたがる連結領域の画素については、本来ならば同一のラベル値が割当てられる必要があるが、個別のラベリング処理を行っているため、異なるラベル値が割当てられてしまう。このため、個別のラベリング処理完了後、再度、分割位置の境界領域において、異なるラベル値が割当てられている箇所を検索し、分割されたラベル値を再統合する処理が必要となる。このため、本来のラベリング処理とは別に、統合化のための特別な処理の追加が必要となり、処理の複雑化と処理時間が増加する要因となる。
【0017】
本発明は、上記の課題に鑑みてなされたものであり、その目的は、並列演算処理によりラベリング処理が高速化され、仮ラベル関連テーブルへの登録数を減らすことで本ラベリング処理の処理時間を減らし、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加を不要とすることで処理が簡略化され処理時間が短縮化されるラベリング処理装置を実現することにある。
【課題を解決するための手段】
【0018】
(1)並列させた走査マスクを用いた並列ラベリング処理
本発明に係るラベリング処理装置は、上記の課題を解決するために、2次元の2値画像データ領域内で、同じ値を持つ画素が連続した領域である連結領域に対してラベル付けを行うラベリング処理装置において、画素縦2行横m列または縦m行横2列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理手段までの、M個のラベル演算処理手段を備え、M個のラベル演算処理手段が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理手段のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行うことを特徴とする。
【0019】
当該構成において、走査マスクを構成する画素は、各走査マスクが水平方向に走査を行う場合は、縦2行横m列で構成される画素の集合を用い、垂直方向に走査を行う場合は、縦m行横2列で構成される画素の集合を用いる。M個のラベル演算処理手段が、一つのラベル演算処理手段につき1つの走査マスクを用いて2値画像データ領域を走査する。各走査マスクは、2値画像データ領域内の異なるライン上の画素を走査し、連結領域に含まれる画素に対して仮ラベル値を計算し、付与する。各走査マスクは、2値画像データ領域内の隣り合うラインを走査するのに対し、各走査マスクは、水平方向の走査の場合は、縦2行であり、垂直方向の走査の場合は、横2列であるので、1行前または1列前のラインの画素に仮ラベルが付されている場合は、必ずその画素の仮ラベルを参照する。
【0020】
上記の構成によれば、連結領域に含まれる複数の画素に対して、並行して仮ラベル付けを行うことができるので、並列演算処理によるラベリング処理の高速化を図ることができるという効果を奏する。
【0021】
(2)既存の仮ラベル値を用いた並列ラベリング処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記第Mラベル演算処理手段が、ラベル付け処理を行う際に、前記第(M−1)ラベル演算処理手段により既に画素に付された仮ラベルを利用して仮ラベル付け処理を行うことを特徴とする。
【0022】
当該構成において、第Mラベル演算処理手段は、2値画像データ領域内の第(M×N+M−1)ライン上の画素に仮ラベル値を付けるにあたり、第M走査マスク内の各画素の内、第(M−1)ラベル演算処理手段により既に第(M×N+M−2)ライン上の画素に付されている仮ラベル値を利用して、仮ラベル値の演算を行う。既に画素に付されている仮ラベル値を利用して、新しい仮ラベル値のラベル付け処理を行うことで、連結領域に含まれる隣り合う画素に同じ仮ラベル値を付すことができる。既に第(M×N+M−2)ライン上の画素に付されている仮ラベル値を利用できるようにするためには、第M走査マスクの位置は、第(M−1)走査マスクの位置よりも(m−1)画素分以上仮ラベルの演算処理を遅延させるよう配置しなければならない。もし、仮ラベルの演算処理の遅延が(m−2)画素分以下の場合、第M走査マスクの中に、まだ第(M−1)ラベル演算処理手段により仮ラベル値が付されていない画素が含まれてしまい、第Mラベル演算処理手段は、仮ラベル値の演算ができなくなってしまうからである。ただし、上記では、何画素分遅延させるかを決める前提として、走査マスク内で、仮ラベル値の演算の対象となる画素の位置は、走査マスクの移動方向から数えて(m−1)列目、かつ1行目にあるものとしている。
【0023】
上記の構成によれば、2値画像データ領域内の前のライン上の画素に付された仮ラベル値が、次のライン上で、前のライン上の画素と隣り合った画素にも同じ仮ラベル値が付されるので、同じ連結領域に属しながら異なる仮ラベルが付されてしまう機会を減らすことで、仮ラベル関連テーブルへの登録数を減らし、本ラベリング処理の処理時間を減らすことができるという効果を奏する。
【0024】
(3)領域分割による並列ラベリング処理
本発明に係るラベリング処理装置は、上記の課題を解決するために、2次元の2値画像データ領域を、垂直線または水平線の何れかの分割線により物理的にまたは仮想的に複数の矩形領域に分割し、第1から第M(Mは2以上の整数)までの複数のラベル演算処理手段のそれぞれが、前記各矩形領域内で、同じ値を持つ画素が連続した領域である連結領域に対して並行してラベル付けを行うラベリング処理装置において、
前記分割線の両側にある画素からなるライン2本から構成される境界領域内の仮ラベル付け処理を行う際に、上記ラインの一方を含む前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段により画素に付された仮ラベルを利用して、上記ラインの他方を含む前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段が、仮ラベル付け処理を行う、または上記2本のラインに属する画素に対して付された異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録する処理を行うことを特徴とする。
【0025】
当該構成において、物理的に分割するとは、2値画像データ領域のデータを保持する物理メモリを、複数の分割され独立した物理メモリとすることである。また、仮想的に分割するとは、物理的には連続した同一の物理メモリ上に2値画像データ領域のデータが保持されているが、そのデータを扱うソフトウェアにより、あたかも物理的に分割されているかのように扱うことである。複数に分割された2値画像データ領域のそれぞれの矩形領域に対して、複数のラベル演算処理手段が、並行してラベル付け処理を行う。すなわち、第1の演算処理手段による第1の矩形領域のラベル付け処理、第2の演算処理手段による第2の矩形領域のラベル付け処理などが、並行して行われる。
【0026】
隣り合う矩形領域のラベル付けを行う二つのラベル演算処理手段が、その矩形領域間の境界領域からラベル付け処理を開始する場合、第1のラベル演算処理手段により境界領域内の第1の矩形領域側のライン上の画素に付された仮ラベル値を用いて、第2のラベル演算処理手段が境界領域内の第2の矩形領域側のライン上の画素に仮ラベルを付ける。より具体的には、第2のラベル演算処理手段は、第1のラベル演算処理手段により境界領域内の第1の矩形領域側のライン上の画素に付された仮ラベル値を、走査マスクの進行方向からみて後方の画素の仮ラベル値として利用し、走査マスクの進行方向からみて前方の画素の仮ラベル値としては、第2のラベル演算処理手段自身で付した仮ラベル値を利用する。
【0027】
隣り合う矩形領域のラベル付けを行う二つのラベル演算処理手段が、その矩形領域間の境界領域に向かってラベル付け処理を開始する場合、第2のラベル演算処理手段は、第1のラベル演算処理手段により境界領域内の第1の矩形領域側のライン上の画素に付された仮ラベル値と、第2のラベル演算処理手段により境界領域内の第2の矩形領域側のライン上の画素に付された仮ラベル値とを用いて、従来技術と同様にして仮ラベル関連情報を作成し、仮ラベル関連情報テーブルへ登録する。仮ラベル付け処理が終了した時点では、分割線を境にして隣り合う矩形領域をまたがる連結領域に含まれる画素については、独立した異なるラベル演算処理手段により仮ラベルが付される為、異なる仮ラベル値が付されているが、仮ラベル関連情報テーブルを用いて、単一の連結領域は同一のラベルにより画素が連結していることが示されるので、本来同じであるべき一つの連結領域に含まれる画素の異なるラベルを統一する、本ラベル付け処理が終了した時点では、同一の本ラベル値が付される。
【0028】
なお、仮ラベル関連情報とは、連結領域に付された異なる仮ラベル同士が、本来は同じものであるべきことを示す情報である。2値画像データ領域内の連結領域の形状によっては、一つの連続した領域の画素であるにもかかわらず、異なる仮ラベルが付されてしまうことがあるので、仮ラベル付け処理の過程で同じ連結領域に属する画素に対して異なる仮ラベルが付されていることが判明した時点で、仮ラベル関連情報を仮ラベル関連情報テーブルに登録しておき、全ての仮ラベル付け処理が終わった後、仮ラベル関連情報テーブルから仮ラベル関連情報を取り出し、本来同一のラベルであるべきとされた画素には、同一の本ラベル値を付する作業を行う。
【0029】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0030】
(4)分割位置から上下方向へのラベル付け処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記第1のラベル演算処理手段が、垂直方向に仮想的に上下2分割された2値画像データ領域を、分割位置から上方に向けてラベル付けを行い、前記第2のラベル演算処理手段が、分割位置から下方に向けてラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、ラベル付け処理を行うことを特徴とする。
【0031】
当該構成において、上下に分割された2値画像データ領域のそれぞれの分割領域に対して、2個のラベル演算処理手段が、並行してラベル付け処理を行う。その際、第1のラベル演算処理手段により上側の分割領域の最下段のライン上の画素に付された仮ラベル値を用いて、第2のラベル演算処理手段が下側の分割領域の最上段のライン上の画素に仮ラベルを付ける。
【0032】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0033】
(5)分割位置から左右方向へのラベル付け処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記第1のラベル演算処理手段が、水平方向に仮想的に左右2分割された2値画像データ領域を、分割位置から左方向に向けてラベル付けを行い、前記第2のラベル演算処理手段が、分割位置から右方向に向けてラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、ラベル付け処理を行うことを特徴とする。
【0034】
当該構成において、左右に分割された2値画像データ領域のそれぞれの分割領域に対して、2個のラベル演算処理手段が、並行してラベル付け処理を行う。その際、第1のラベル演算処理手段により左側の分割領域の最も右側のライン上の画素に付された仮ラベル値を用いて、第2のラベル演算処理手段が右側の分割領域の最も左側のライン上の画素に仮ラベルを付ける。
【0035】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0036】
(6)上下端から分割位置へのラベル付け処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記第1のラベル演算処理手段が、垂直方向に仮想的に上下2分割された2値画像データ領域を、上方から分割位置に向かってラベル付けを行い、前記第2のラベル演算処理手段が、下方から分割位置に向かってラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録することを特徴とする。
【0037】
当該構成において、上下に分割された2値画像データ領域のそれぞれの分割領域に対して、2個のラベル演算処理手段が、並行してラベル付け処理を行う。その際、第2のラベル演算処理手段は、第1のラベル演算処理手段により上側の分割領域の最下段のライン上の画素に付された仮ラベル値と、第2のラベル演算処理手段により下側の分割領域の最上段のライン上の画素に付された仮ラベル値とを用いて、仮ラベル関連情報を作成し、仮ラベル関連情報テーブルへ登録する。仮ラベル付け処理が終了した時点では、分割領域をまたがる連結領域に含まれる画素については、異なる仮ラベル値が付されているが、仮ラベル関連情報テーブルを用いて、本来同じであるべき一つの連結領域に含まれる画素の異なるラベルを統一する、本ラベル付け処理が終了した時点では、同一の本ラベル値が付される。
【0038】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0039】
(7)左右端から分割位置へのラベル付け処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記第1のラベル演算処理手段が、水平方向に仮想的に左右2分割された2値画像データ領域を、左側から分割位置に向かってラベル付けを行い、前記第2のラベル演算処理手段が、右側から分割位置に向かってラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録することを特徴とする。
【0040】
当該構成において、左右に分割された2値画像データ領域のそれぞれの分割領域に対して、2個のラベル演算処理手段が、並行してラベル付け処理を行う。その際、第2のラベル演算処理手段は、第1のラベル演算処理手段により左側の分割領域の最も右側のライン上の画素に付された仮ラベル値と、第2のラベル演算処理手段により右側の分割領域の最も左側のライン上の画素に付された仮ラベル値とを用いて、仮ラベル関連情報を作成し、仮ラベル関連情報テーブルへ登録する。仮ラベル付け処理が終了した時点では、分割領域をまたがる連結領域に含まれる画素については、異なる仮ラベル値が付されているが、仮ラベル関連情報テーブルを用いて、本来同じであるべき一つの連結領域に含まれる画素の異なるラベルを統一する、本ラベル付け処理が終了した時点では、同一の本ラベル値が付される。
【0041】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0042】
(8)共有メモリを利用した並列ラベリング処理
また、本発明のラベリング処理装置は、上記構成に加えて、前記境界領域を除く前記矩形領域を、物理的に複数に分割されている非共有メモリ上に配置し、前記境界領域を、物理的に複数に分割されている共有メモリ上に配置することを特徴とする。
【0043】
当該構成において、2値画像データ領域は、ラベリング処理を行うハードウェアであるラベリング処理ユニット上のメモリに分割して配置される。そして、各ラベリング処理ユニットが備えたラベル演算処理手段により、並行してラベル付け処理が行われる。分割された2値画像データ領域間の境界領域は共有メモリ上に配置されるので、隣り合うラベリング処理ユニットからアクセスされる。
【0044】
上記の構成によれば、ラベリング処理装置のハードウェアを物理的に異なる基板等に分割することができるので、分割領域にまたがる連結領域の画素についても同一のラベル値が割当てることができるという効果を奏する。
【0045】
また、共有メモリを配置することにより、ラベリング処理装置のユニットを分割することが容易となり、必要な処理能力に応じて、ユニットを単純に複数接続することにより、処理能力の向上を図ることができる。また、1つのユニットに複数の処理手段を搭載するよりも、最小処理能力のユニットに分割し、ユニット設計の標準化を図ることにより、開発費用の削減及び開発期間の短縮化を図ることができる。最小処理能力とは、並列化する場合の最小単位であるラベリング処理ユニットのことを示している。本ユニットを複数使用することにより、並列化を容易に実現できる。勿論、1つのユニットにラベリング処理を並列化して行う機能を搭載しても構わないが、開発費用等がかかるため、処理能力の小さいユニットで設計の標準化を図った方がメリットがある。
【0046】
(9)並列させた走査マスクを用いた並列ラベリング処理方法
本発明に係るラベリング処理方法は、上記の課題を解決するために、2次元の2値画像データ領域内で、同じ値を持つ画素が連続した領域である連結領域に対してラベル付けを行うラベリング処理方法において、画素縦2行横m列または縦m行横2列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理工程までの、M個のラベル演算処理工程を含み、M個のラベル演算処理工程が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理工程のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行うことを特徴とする。
【0047】
当該構成において、走査マスクを構成する画素は、各走査マスクが水平方向に走査を行う場合は、縦2行横m列で構成される画素の集合を用い、垂直方向に走査を行う場合は、縦m行横2列で構成される画素の集合を用いる。M個のラベル演算処理工程が、一つのラベル演算処理工程につき1つの走査マスクを用いて2値画像データ領域を走査する。各走査マスクは、2値画像データ領域内の異なるライン上の画素を走査し、連結領域に含まれる画素に対して仮ラベル値を計算し、付与する。各走査マスクは、2値画像データ領域内の隣り合うラインを走査するのに対し、各走査マスクは、水平方向の走査の場合は、縦2行であり、垂直方向の走査の場合は、横2列であるので、1行前または1列前のラインの画素に仮ラベルが付されている場合は、必ずその画素の仮ラベルを参照する。
【0048】
上記の構成によれば、連結領域に含まれる複数の画素に対して、並行して仮ラベル付けを行うことができるので、並列演算処理によるラベリング処理の高速化を図ることができるという効果を奏する。
【0049】
(10)領域分割による並列ラベリング処理方法
本発明に係るラベリング処理方法方法は、上記の課題を解決するために、2次元の2値画像データ領域を、垂直線または水平線の何れかの分割線により物理的にまたは仮想的に複数の矩形領域に分割し、第1から第M(Mは2以上の整数)までの複数のラベル演算処理工程のそれぞれが、前記各矩形領域内で、同じ値を持つ画素が連続した領域である連結領域に対して並行してラベル付けを行うラベリング処理方法において、前記分割線の両側にある画素からなるライン2本から構成される境界領域内の仮ラベル付け処理を行う際に、一方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理工程により画素に付された仮ラベルを利用して、他方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理工程が仮ラベル付け処理、または異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録する処理を行うことを特徴とする。
【0050】
当該構成において、複数に分割された2値画像データ領域のそれぞれの矩形領域に対して、複数のラベル演算処理工程が、並行してラベル付け処理を行う。すなわち、第1の演算処理工程による第1の矩形領域のラベル付け処理、第2の演算処理工程による第2の矩形領域のラベル付け処理などが、並行して行われる。
【0051】
隣り合う矩形領域のラベル付けを行う二つのラベル演算処理工程が、その矩形領域間の境界領域からラベル付け処理を開始する場合、第1のラベル演算処理工程により境界領域内の第1の矩形領域側のライン上の画素に付された仮ラベル値を用いて、第2のラベル演算処理工程が境界領域内の第2の矩形領域側のライン上の画素に仮ラベルを付ける。
【0052】
隣り合う矩形領域のラベル付けを行う二つのラベル演算処理工程が、その矩形領域間の境界領域に向かってラベル付け処理を開始する場合、第2のラベル演算処理工程は、第1のラベル演算処理工程により境界領域内の第1の矩形領域側のライン上の画素に付された仮ラベル値と、第2のラベル演算処理工程により境界領域内の第2の矩形領域側のライン上の画素に付された仮ラベル値とを用いて、仮ラベル関連情報を作成し、仮ラベル関連情報テーブルへ登録する。仮ラベル付け処理が終了した時点では、分割領域をまたがる連結領域に含まれる画素については、異なる仮ラベル値が付されているが、仮ラベル関連情報テーブルを用いて、本来同じであるべき一つの連結領域に含まれる画素の異なるラベルを統一する、本ラベル付け処理が終了した時点では、同一の本ラベル値が付される。
【0053】
上記の構成によれば、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【0054】
なお、本発明のラベリング処理装置は、2次元2値画像データの連結領域に対してラベル付けを行うラベリング処理装置において、第1走査マスクが2×m(mは2以上の整数)被検索画素領域を検索してラベル付けを行う第1ラベル演算処理手段と、第1走査マスクとは異なる第2走査マスクが2×m被検索画素領域を検索してラベル付けを行う第2ラベル演算処理手段を備え、第1ラベル演算処理時の被検索領域と第2ラベル演算処理時の被検索領域のラベル付け演算に対して、第2ラベル演算処理時の被検索領域の検索時に第1ラベル演算処理時の被検索領域で確定したラベル値を利用してラベル付け処理を行うことを特徴とした構成としてもよい。
【0055】
また、本発明のラベリング処理装置は、画像データ領域の垂直奇数ラインのラベリング処理を第1ラベル演算処理手段が行い、画像データ領域の垂直偶数ラインのラベリング処理を第2ラベル演算処理手段が行うことを特徴とした構成としてもよい。
【0056】
また、本発明のラベリング処理装置は、M個のラベル演算処理手段を備え、画像データ領域の(M×N)ライン(Mは3以上,Nは0以上の整数)、(M×N+1)ライン、(M×N+2)ライン、・・・、(M×N+M−1)の各々のデータラインに対してM個のラベル演算処理手段にて同時にラベル付け処理を行うことを特徴とした構成としてもよい。
【0057】
また、本発明のラベリング処理装置は、画像データ領域を垂直方向に仮想的に上下2分割し、分割位置から上方に向かってラベル付けを行う第1ラベル演算処理手段と、分割位置から下方に向かってラベル付けを行う第2ラベル演算処理手段を備えることを特徴とした構成としてもよい。
【0058】
また、本発明のラベリング処理装置は、画像データ領域を水平方向に仮想的に左右2分割し、分割位置から左方向に向かってラベル付けを行う第1ラベル演算処理手段と、分割位置から右方向に向かってラベル付けを行う第2ラベル演算処理手段を備えることを特徴とした構成としてもよい。
【0059】
また、本発明のラベリング処理装置は、画像データ領域を垂直方向に仮想的に上下2分割し、上方から分割位置に向かってラベル付けを行う第1ラベル演算処理手段と、下方から分割位置に向かってラベル付けを行う第2ラベル演算処理手段を備えることを特徴とした構成としてもよい。
【0060】
また、本発明のラベリング処理装置は、画像データ領域を水平方向に仮想的に左右2分割し、左側から分割位置に向かってラベル付けを行う第1ラベル演算処理手段と、右側から分割位置に向かってラベル付けを行う第2ラベル演算処理手段を備えることを特徴とした構成としてもよい。
【0061】
また、本発明のラベリング処理装置は、画像データ領域を仮想的に複数分割し、複数個のラベル演算処理手段を備えることを特徴とした構成としてもよい。
【0062】
また、本発明のラベリング処理装置は、画像データ領域を物理的に複数に分割し、画像データ領域間の境界位置に共有メモリを配置することを特徴とした構成としてもよい。
【発明の効果】
【0063】
本発明に係るラベリング処理装置は、以上のように、画素縦2行横m列または縦m行横2列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理手段までの、M個のラベル演算処理手段を備え、M個のラベル演算処理手段が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理手段のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行うことを特徴とする。
【0064】
それゆえ、連結領域に含まれる複数の画素に対して、並行して仮ラベル付けを行うことができるので、並列演算処理によるラベリング処理の高速化を図ることができるという効果を奏する。
【0065】
また、本発明に係るラベリング処理装置は、以上のように、前記分割線の両側にある画素からなるライン2本から構成される境界領域内の仮ラベル付け処理を行う際に、一方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段により画素に付された仮ラベルを利用して、他方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段が仮ラベル付け処理、または異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録する処理を行うことを特徴とする。
【0066】
それゆえ、分割領域をまたがる連結領域に含まれる画素について同一のラベル値を割り当てることができるので、ラベル付け処理完了後に、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加が不要となり、処理の簡略化と処理時間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【0067】
本発明のラベリング処理装置の各実施の形態について説明を行う。
【0068】
<第1の実施の形態>
通常、ラスタスキャン方式によるラベリング処理は、従来例で説明したように、仮ラベリング処理、仮ラベル関連テーブルの作成、本ラベリング処理の3段階で行う必要がある。このうち、ラベリング処理時間の大半占めるのが仮ラベリング処理であり、この処理時間を短縮することが、ラベリング処理時間全体を短縮することに直接つながる。
【0069】
しかしながら、仮ラベリング処理は、従来例でも説明したように、対象画素における仮ラベル値を演算するためには、ラベル付けの対象画素の周辺画素の仮ラベル値を参照する必要がある。また、対象画素の仮ラベル値を演算するためには、参照する走査マスク内の画素の仮ラベル付けが完了していることが前提条件となる。このため、参照する走査マスク内の画素の仮ラベル付け処理が完了していなければ、次の演算処理を行うことができず、演算処理の並列化による処理時間の短縮化を図ることができない。
【0070】
なお、特許文献1には、仮ラベリング処理自体はハードウェアによって行われるため、それに要する時間は、その後の統合化処理に要する時間に比べて極めて短い、との記述があるが、特許文献1の構成では、仮ラベリング処理のみをハードウェア化しているため、その後の処理に時間が長くかかるものである。しかしながら、仮ラベル関連テーブル作成は、ソフトウェアによる演算処理が必要であるが、仮ラベリング処理および本ラベリング処理はハードウェアによる演算処理を行うことができる。
【0071】
通常、仮ラベリング処理、仮ラベル関連テーブル作成、本ラベリング処理をソフトウェアにより演算した場合の処理時間の比は、仮ラベリング処理に要する時間が70%から90%、仮ラベル関連テーブル作成(2×3走査マスクの場合)が数%、本ラベリング処理が10%から30%程度であり、ほとんどの時間を仮ラベリング処理に消費する。なお、本ラベリング処理は、仮ラベリング処理よりも、ハードウェア化および並列化が容易であるため、本ラベリング処理の高速化は、容易に実現できる。
【0072】
本実施の形態のラベリング処理装置は、前記の課題を解決すべく、2×m(mは2以上の整数)の第1走査マスクを参照してラベル付けを行う第1ラベル演算処理部と、第1走査マスクとは異なる、2×mの第2走査マスクを参照してラベル付けを行う第2ラベル演算処理部を備え、第1ラベル演算処理部および第2ラベル演算処理部による2値画像データ領域のラベル付け演算において、第2ラベル演算処理部が第2走査マスクを参照する際に、第1ラベル演算処理部により付された仮ラベル値を利用して、対象画素のラベル付け処理を行うことを特徴とする。
【0073】
<第1の実施の形態の構成について>
図16において、2つの仮ラベル付け処理を並列して行うラベリング処理装置の仮ラベル付け処理に関係する箇所の構成例のブロック図を示す。
【0074】
本実施の形態における、仮ラベル付け処理を行うブロックは、2値画像データを格納する画像メモリ101、画像メモリ101等のメモリ制御(アドレス制御)を行うメモリ制御回路102、第1走査マスク1を用いた仮ラベル付け処理を行う第1ラベル処理部(第1ラベル演算処理手段)100a、第2走査マスク2を用いた仮ラベル付け処理を行う第2ラベル処理部(第2ラベル演算処理手段)100b、仮ラベル関連情報テーブルの作成と仮ラベル関連情報の格納を行う関連テーブル作成回路111及び関連テーブル用メモリ112、仮ラベル値を格納する仮ラベルメモリ113、および仮ラベル関連情報テーブル内の仮ラベル関連情報の統合処理、本ラベル処理、および装置の統括管理を行うCPU114により構成される。
【0075】
さらに、第1ラベル処理部100aは、2値化用Nラインメモリ103a、2値化用N+1ラインメモリ104a、走査マスク形成/判定回路105a、仮ラベル選択決定回路106a、新ラベルカウンタ107a、仮ラベル選択回路108a、仮ラベル用Nラインメモリ109a、および仮ラベル用N+1ラインメモリ110aにより構成される。
【0076】
また、第2ラベル処理部100bは、2値化用Mラインメモリ103b、2値化用M+1ラインメモリ104b、走査マスク形成/判定回路105b、仮ラベル選択決定回路106b、新ラベルカウンタ107b、仮ラベル選択回路108b、仮ラベル用Mラインメモリ109b、および仮ラベル用M+1ラインメモリ110bにより構成される。
【0077】
次に、仮ラベル付け処理を行う際の各ブロックの関連について説明を行う。但し、第2ラベル処理部100b内における各ブロックの関連は、一部を除いて第1ラベル処理部100aと同様であるので、重なる部分については説明を省略し、異なる部分についての説明に留める。
【0078】
先ず、画像メモリ101には、2値化処理された画像データが格納されており、その2値化画像データをもとに、第1ラベル処理部100aで仮ラベル付け処理を行う。処理の流れとしては、メモリ制御回路102にて、画像メモリ101から、Nライン目とN+1ライン目(Nは0以上の整数)の画像データを、2値化用Nラインメモリ103aおよび2値化用N+1ラインメモリ104aに、各々データ転送する。走査マスク形成/判定回路105aは、2値化用Nラインメモリ103aと2値化用N+1ラインメモリ104aのラインメモリから、2×mサイズの走査マスクとして画像データを取り出し、図11に示す仮ラベルを作成するための判定条件に基づき、仮ラベル値の演算を行う。次に、仮ラベル選択決定回路106aは、演算結果に基づき、新ラベルの割当てが必要か否かを判断する。
【0079】
新ラベルの割り当てが必要な場合は、仮ラベル選択決定回路106aは、新ラベルカウンタ107aの値を仮ラベル選択回路108aに送り、仮ラベル選択回路108aが、仮ラベル値として採用する。この時、新ラベルカウンタ107aは、次の新ラベル設定処理に備え、新ラベルカウンタの値を「1」だけ増やし、新ラベルカウンタの値を更新する。
【0080】
一方、新ラベルの割り当てが不要な場合、仮ラベル選択回路108aは、仮ラベル用Nラインメモリ109aと仮ラベル用N+1ラインメモリ110aからそれぞれ取得した、Nライン目とN+1ライン目の仮ラベルデータと図11に示す判定条件とに基づき、仮ラベル値を選択する。なお、Nライン目とN+1ライン目の仮ラベルデータは、仮ラベルメモリ113から、仮ラベル用Nラインメモリ109aと仮ラベル用N+1ラインメモリ110aに、予め読み込まれている。仮ラベル選択回路108aは、選択した仮ラベル値を
、仮ラベルメモリ113に書き込むと共に、仮ラベル値どうしの関連性を設定する必要がある場合は、関連テーブル作成回路111を通して、関連テーブル用メモリ112に仮ラベル関連情報を書込む。
【0081】
第2ラベル処理部100bにおいても、第1ラベル処理部100aと同様の処理を行うが、2値化用Mラインメモリ103b、2値化用M+1ラインメモリ104b、仮ラベル用Mラインメモリ109b、および仮ラベル用M+1ラインメモリ110bに読み込まれるデータは、Mライン目およびM+1ライン目(Mは0以上の整数)のデータとなる。
【0082】
CPU114は、仮ラベル付け処理完了後、仮ラベル関連情報テーブル内の仮ラベル関連情報の統合処理および本ラベリング処理等を行う。
【0083】
本ブロック図では、図1に示すように、第1ラベル処理部100aが奇数ライン(Nは奇数ラインを示す)を処理し、第2ラベル処理部100bが偶数ライン(Mは偶数ラインを示す)を処理する構成例を示している。しかし、画像データ領域を垂直方向に上下2分割し、各領域に対して第1ラベル処理部100aおよび第2ラベル処理部100bがそれぞれ処理を行う場合は、各ラベル処理部が処理するラインは、上記のように飛び飛びではなく、隣り合う連続したラインとなり、連続性が維持される。そのため、図17において破線部に示すように、2値化用Nラインメモリ103aおよび2値化用N+1ラインメモリ104aを、2値化用1ラインディレー120aに置き換え、また、仮ラベル用Nラインメモリ109aおよび仮ラベル用N+1ラインメモリ110aを仮ラベル用1ラインディレー121aに置き換え、第2ラベル処理部についても同様の構成をとることで、構成の簡略化を図ることができる。
【0084】
<第1の実施の形態のフローチャートについて>
図14において、本発明のラベリング処理装置が行う処理全体の概要のフローチャートを示す。処理全体の概要のフローチャートの説明は、従来技術における説明と同一であるので、省略する。
【0085】
図15において、本発明の第1の実施の形態における、仮ラベル付け処理および仮ラベル関連情報の作成処理の詳細な手順の例をフローチャートにより示す。この例では、第1ラベル処理部100aおよび第2ラベル処理部100bの2つのラベル処理部により、2つのラベル付け処理を並行して行う例を示している。
【0086】
図15のフローチャートのうち、破線部Saは、第1ラベル処理部100aが、第1走査マスク1を用いて行う処理の部分であり、破線部Sbは、第2ラベル処理部100bが、第2走査マスク2を用いて行う処理の部分である。破線部Saおよび破線部Sbの処理は並列して行われる。破線部Saと破線部Sbとの違いは、ディレーを行う処理(ステップ11、以下S11と略す)の有無のみとなるので、以下では、破線部Saの処理に基づき、説明を行う。
【0087】
まず、メモリ制御回路102が、第1走査マスク1における、画像メモリ101上の走査開始アドレスの位置を設定する(S10a)。
【0088】
次に、走査マスク形成/判定回路105aが、2×mサイズの第1走査マスク1を用いて、2値化用Nラインメモリ103aおよび2値化用N+1ラインメモリ104aに保持されている画像データを走査する(S12a)。
【0089】
次に、仮ラベル選択決定回路106aが、図11に示す判定条件に基づき、第1走査マスク1の注目画素pの仮ラベル値の判定処理を行う(S13a)。
【0090】
次に、仮ラベル選択決定回路106aは、上記S13aの判定処理の結果、新ラベル値を注目画素pに割り当てる必要があるかどうか判断する(S14a)。新ラベル値を割り当てる必要がある場合は、S15aに進み、新ラベル設定処理を行う。新ラベル値を割り当てる必要がない場合は、S16aに進み、仮ラベル値の関連判断を行う。
【0091】
S14aにおいて、仮ラベル値として、新ラベル値を割当てる必要があると判定された場合、仮ラベル選択決定回路106aは、新ラベルカウンタ107aの現在の新ラベルカウンタ値を、新ラベル値として設定し、仮ラベル選択回路108aに送る。その後、仮ラベル選択決定回路106aは、新ラベルカウンタ値を「1」だけ増やし、新ラベルカウンタ値を更新する(S15a)。その後、S18aに進み、仮ラベル書き込み処理を行う。
【0092】
S14aにおいて、仮ラベル値として、新ラベル値を割当てる必要はないと判定された場合、仮ラベル選択回路108aは、次に、図12(a)および(b)に示す判定条件、すなわち、第1走査マスク内で既に異なる仮ラベル値を持つ画素どうしについて、それら異なる仮ラベル値が、本来同じものであるかどうかの判定条件が満たされるかどうか判断を行う(S16a)。この判定条件が満たされる場合は、S17aの関連テーブル書込み処理に進み、満たされない場合は、S18aの仮ラベル書込み処理に進む。
【0093】
S16aにおいて、上記判定条件が満たされた場合、関連テーブル作成回路111は、上記異なる仮ラベル値どうしが、本来同じものであることを示す、仮ラベル関連情報を、関連テーブル用メモリ112上の仮ラベル関連情報テーブルに書き込む(S17a)。その後、S18aの仮ラベル書込み処理に進む。
【0094】
次に、仮ラベル選択回路108aは、現在位置での第1走査マスク1の注目画素pの仮ラベル値を、仮ラベルメモリ113に書込む(S18a)。
【0095】
次に、CPU114は、第1ラベル処理部100aが第1走査マスク1を用いて走査すべき画像データ領域の走査が全て終了したかどうかの判断を行う(S19a)。走査すべき画像データ領域に、仮ラベル値が未付与の画素が存在する場合は、S20aに進み、次のアドレスを設定する処理を行う。走査すべき画像データ領域に、仮ラベル値が未付与の画素が存在しない場合は、仮ラベル付け処理を終了する。
【0096】
S19aにおいて、走査すべき画像データ領域に、仮ラベル値が未付与の画素が存在すると判断された場合、CPU114は、メモリ制御回路102に指示し、第1走査マスク1を移動するために、画像データ領域の次のアドレスを設定する(S20a)。次のアドレスの設定においては、画像メモリ101の左端から右端に向かって水平方向に第1走査マスク1を移動する場合、次のアドレスの設定処理は、通常、現在のアドレスに「1」を加算したアドレスを、次のアドレスとする処理となる。但し、あるラインの右端から、次のラインの左端に第1走査マスク1が移動する場合であり、画像データ領域を上下2分割し、その各々の領域を一つの走査マスクで走査する場合は、走査するラインは連続しているので、次のアドレスの設定処理は、現在のアドレスに、そのまま「1」を加える処理を行う。しかし、本実施の形態のように、第1走査マスク1が奇数ラインを走査し、第2走査マスク2が偶数ラインを走査する場合は、各走査マスクがあるラインの右端に達し、次のアドレスを設定する際には、1ライン分飛ばしたラインの左端を次のアドレスとするアドレス計算が行われる。
【0097】
以上が、第1ラベル処理部100aが、第1走査マスク1を用いて行う処理の部分である。
【0098】
破線部Sbは、第2ラベル処理部100bが、第2走査マスク2を用いて行う処理の部分であるが、S11のディレー処理を除いて、破線部Saと同様の処理を行う。S11のディレー処理が必要な理由は、図1に示すように、第1走査マスク1を用いて第1ラベル処理部100aが演算した仮ラベル値を使用して、第2走査マスク2を用いて第2ラベル処理部100bが仮ラベル付け処理を行う場合、ラインの走査方向に数画素分(図1の例では、水平方向に3画素分)だけ、第1ラベル処理部100aの仮ラベル付け処理よりも、第2ラベル処理部100bの仮ラベル付け処理の処理タイミングをディレーさせる必要があるためである。
【0099】
次に本発明の第1の実施の形態の詳細内容について、図1及び図10を用いて説明を行う。
【0100】
図10(a)および(b)を用いて説明したように、従来、仮ラベリング処理を行う場合、2次元2値画像データが格納された画像データ領域内を領域の左上端から1ライン毎に右方向に2×m(図10(a)ではm=3)サイズの走査マスク80で順次走査していき、最終的には右下端まで、画素の連結領域を走査し、仮ラベリング処理を完了する。
【0101】
ここで、2×3の走査マスク80は、仮ラベル値の演算対象画素pおよび画素a〜画素dの5画素で構成されており、画素a〜画素dの4画素については、既に仮ラベル値が付された画素となっている。ラベル演算処理部が、この走査マスク80内で、演算対象画素pの仮ラベル算出機能を備える。従って、従来例のラベリング処理装置は、ラベル演算処理部を1つ備えたラベリング処理装置と見なすことができる。本実施の形態のラベリング処理装置では、このラベル演算処理部を複数個備えている。しかしながら、ラベリング処理時間を短縮するために、単純にラベル演算処理部を複数個備えただけでは、演算対象画素pのラベル付け処理を行う際に、既に仮ラベル値が付された周辺画素を参照する必要があるという前提条件を満たすことができない場合がある。
【0102】
そこで、本実施の形態では、前記前提条件を満足するための構成および方法を、図1において示すものである。
【0103】
詳細内容としては、2値画像データ領域13において、第Nライン、第(N+1)ライン、および第(N+2)ライン(Nは0以上の整数)上の画素に対して仮ラベリング処理する場合、第1ラベル演算処理部が仮ラベリング処理に用いる第1走査マスク1を第Nラインおよび第(N+1)ライン上に配置し、第2ラベル演算処理部が仮ラベリング処理に用いる第2走査マスク2を第(N+1)ラインおよび第(N+2)ライン上に配置し、2並列による仮ラベリング処理を行うものである。
【0104】
前記の配置に関して重要な事は、第1走査マスク1および第2走査マスク2の相対位置について、遅延処理が行えるよう配置することである。第1ラベル演算処理部での演算結果を利用し第2ラベル演算処理部がラベル付け演算処理を行うことにより、処理の並列化を実現することができる。
【0105】
図1に示すように走査マスクを配置する場合、第(N+1)ライン上の画素1aに対して仮ラベル付け処理を行うためには、従来例と同様、既に仮ラベル値が付された画素1b〜1eの仮ラベル値を使用し、1ライン分先行する、次の第(N+2)ライン上の画素2aに対して仮ラベル付け処理を行うためには、画素2b〜2eの仮ラベル値を使用する。
【0106】
ここで、画素2bの仮ラベル値については、第2ラベリング演算処理部により演算処理済みであり、画素2c〜2eの仮ラベル値については、既に第1ラベル演算処理部により値が付されているため、第2ラベル演算処理部が、画素2aの仮ラベル値の演算処理を行う際には、支障がない。つまり、第1ラベル演算処理部と第2ラベル演算処理部は、同時に仮ラベル演算処理を行うことができ、2並列による処理の高速化を図ることができる。
【0107】
なお、演算対象画素1aと2aと位置関係は、図1に示す例では、演算対象画素1aに対して、演算対象画素2aは3画素分だけ処理時間を遅延させた例となっている。しかし、図1に示すように2つの走査マスクを配置する例では、2画素分以上の処理時間の遅延があれば、第1ラベル演算処理部と第2ラベル演算処理部は、同時に仮ラベル演算処理を行うことができる。
【0108】
本実施の形態の構成および方法を使用した実際の2並列処理の場合、第1ラベル演算処理部が、2値画像データ領域の奇数ラインの仮ラベリング処理を行い、第2ラベル演算処理部が、偶数ラインの仮ラベリング処理を行う方法が、自然な利用方法となる。
【0109】
<第2の実施の形態>
図2において、本実施の形態による2値画像データ領域13内での仮ラベリング処理の様子を示す。本実施の形態におけるラベリング処理装置は、第1の実施の形態に記載のラベル演算処理部を、複数個(M個、Mは3以上)備え、2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)、第(M×N+1)ライン、第(M×N+2)ライン、そして第(M×N+M−1)ラインまでの、各々のラインに対してM個のラベル演算処理部により、複数画素の仮ラベル付け処理を並列して行うことにより、ラベリング処理の高速化を図るものである。
【0110】
図2に示す例は、M=4の場合を示しており、4個のラベル演算処理部が、それぞれ4個の走査マスクを用いて仮ラベリング処理を行うもので、各ラベル演算処理部がそれぞれ第1走査マスク1から第4走査マスク4までに含まれる画素の仮ラベル値を参照して、仮ラベリング処理を行う。本実施の形態のラベリング処理装置を用いることにより、演算処理の並列度が更に上がり、処理時間の短縮化を図ることができる。
【0111】
<第3の実施の形態>
本発明による図3の実施例は、画像データ領域13を垂直方向に仮想的に上下2分割し、分割位置から上方に向かってラベル付けを行う第1ラベル演算処理手段と、分割位置から下方に向かってラベル付けを行う第2ラベル演算処理手段を備えることを特徴とする。
【0112】
図4において、2値画像データ領域13を上下に分割し、上側の分割領域13a内に、連結領域20a〜20dが存在し、下側の分割領域13b内に、連結領域21a〜21fが存在する場合の例を示す。
【0113】
この場合に、単純に2値画像データ領域13を垂直方向に仮想的に上側の分割領域13aと下側の分割領域13bの領域に上下2分割して、各々の画像データ領域で独立してラベリング処理を行うと、分割領域13aおよび13bの境界にまたがる連結領域、つまり連結領域20a、21a、21b、および連結領域20b、21c、21dは、それぞれ本来1つの連結領域としてラベル付けが行われるべきであるが、6つの異なる連結領域としてラベル付けされてしまう。このため、本ラベリング処理完了後、6つの連結領域のラベル値を2つに統合する必要があり、分割領域13aと分割領域13bとの境界付近において、異なるラベル値が割当てられている箇所を検索し、分割された連結領域のラベル値について統合を行う。このため、本来のラベリング処理とは別に、統合化のための特別な処理の追加が必要となり、ラベリング処理が複雑化し、また、処理時間も増加する。
【0114】
本実施の形態では、図3に示すように、2値画像データ領域13を、分割領域13aと分割領域13とに、仮想的に上下2分割する。そして、分割領域13aと分割領域13bの境界領域として、ライン13cとライン13dとのそれぞれ幅が1画素分のラインを定義する。本実施の形態のラベリング処理装置は、分割領域13aおよびライン13d部分の2値画像データ領域を走査しラベル付けを行う第1ラベル演算処理部と、分割領域13bおよびライン13c部分の2値画像データ領域を走査しラベル付けを行う第2ラベル演算処理部を備え、各々のラベル演算処理部が、独立して仮ラベリング処理を行う。
【0115】
第1ラベル演算処理部は、第1走査マスク1を、ライン13cの左端から右端に向かって動かし、仮ラベリング処理を行う。ライン13cの右端に到達すると、1ライン上の左端から右端へと順次走査を行い、最終的には2値画像データ領域13の分割領域13aの右上端の画素まで仮ラベリング処理を行う。
【0116】
一方、第2ラベル演算処理部は、第2走査マスク2を、ライン13dの左端から右端に向かって動かし、仮ラベリング処理を行う。ライン13dの右端に到達すると、1ライン下の左端から右端へと順次走査を行い、最終的には2値画像データ領域13の分割領域13bの右下端の画素まで仮ラベリング処理を行う。
【0117】
第1ラベル演算処理部および第2ラベル演算処理部が上記の仮ラベリング処理を行う上で重要な点は、第1の実施の形態の説明で記述したように、第1ラベル演算処理部および第2ラベル演算処理部による演算処理のタイミングについて、遅延処理を行うように、第1走査マスク1および第2走査マスク2を配置することである。
【0118】
すなわち、第1ラベル演算処理部で演算した結果のラベル値を利用して、第2ラベル演算処理部がラベル付け演算を行う点が、重要である。図3において示す例では、第1走査マスク1の位置に対して、第2走査マスク2の位置を、3画素分ずらし、処理を遅延させている。なお、この例では、3画素分処理を遅延させているが、2画素分以上処理を遅延させれば、第1ラベル演算処理部で演算した結果のラベル値を利用して、第2ラベル演算処理部がラベル付け演算を行うことができる。
【0119】
以上のことから、本実施の形態のラベリング処理装置を用いれば、ラベル付けの対象となる2値画像データ領域13を仮想的に分割し、各々の分割領域13aおよび13bにおけるラベリング処理を個別に行う場合においても、分割領域13aおよび13bにまたがる連結領域に含まれる画素について、同一のラベル値を割り当てることができるため、本ラベリング処理の完了後に、ラベル値を統合化するための特別な処理は不要となり、処理の簡略化と処理時間の短縮化を図ることができる。
【0120】
なお、図3に示す例では、第1走査マスク1および第2走査マスク2を移動させる方向は、2値画像データ領域13の左端から右方向に行っているが、第1走査マスク1および第2走査マスク2の移動方向が同一であれば、右端から左方向に、走査マスクの移動を行ってもかまわない。また、2値画像データ領域13を仮想的に分割する際には、等分に分割する必要はない。但し、等分に分割した方が、仮ラベリング処理全体に要する時間を最小にすることができる。
【0121】
<境界条件処理について>
図3において、第1ラベル演算処理部が、第1走査マスク1をライン13c上で移動させて仮ラベリング処理を行う場合、第1走査マスク1がかかるライン13d上の画素には、まだ仮ラベリング処理によるラベル値が存在しない。そこで、第1ラベル演算処理部は、ライン13d上の画素のラベル値をゼロとして扱う、特別処理(境界条件処理)を行う。
【0122】
従来の構成および方法による仮ラベリング処理においても、2値画像データ領域を成す矩形の外周部4辺のうち、3辺において境界条件処理を行う必要がある。
【0123】
なお、第2走査マスク2が、ライン13d上を移動し仮ラベリング処理が行われる場合は、第1ラベル演算処理部により、ライン13c上の画素については、既に仮ラベルが付されているため、通常のラベル付け処理が行われる。
【0124】
次に、境界条件処理の詳細を説明する。境界条件処理については、図10(a)および(b)に示す従来例をもとに説明を行う。
【0125】
走査マスク80について、注目画素pの仮ラベル値を演算するためには、画素aから画素dまでの4画素の仮ラベル値を参照する必要がある。注目画素pが、2値画像データ領域の最上辺及び左右辺に位置する場合、境界条件が発生する。つまり、画素aから画素dまでの4画素のラベル値を、4つとも参照することはできない。この場合のラベリング処理方法は、例えば、注目画素pが2値画像データ領域の最上辺(第1ライン)に位置している場合、画素bから画素dまでの3画素の位置は、2値画像データ領域外となるため、これらの画素の仮ラベル値をゼロとして扱い、参照する画素のラベル値は、画素aの1画素のみのラベル値として処理を行う。
【0126】
また、注目画素pが2値画像データ領域の左辺に位置する場合は、画素aおよび画素bの2画素の位置は、2値画像データ領域外となるため、これらの画素の仮ラベル値をゼロとして扱い、参照する画素のラベル値は、50d、50eの2画素のラベル値として処理を行う。
【0127】
また、注目画素pが2値画像データ領域の右辺に位置する場合は、画素dの位置は、2値画像データ領域外となるため、仮ラベル値をゼロとして扱い、画素bから画素cまでの3画素のラベル値のみ参照して処理を行う。
【0128】
上記の処理を行うことにより、走査マスク80の注目画素pの位置が、境界位置にある場合でも仮ラベリング処理を行うことができる。
【0129】
なお、図3における第1走査マスク1は、図10(a)の走査マスクの上下を反転させたものと見なせるため、ライン13c上および分割領域13aの左右辺の3辺を境界位置として、境界条件処理を行う。
【0130】
<第4の実施の形態>
本実施の形態が、第3の実施の形態と異なる点は、第3の実施の形態では、2値画像データ領域13を垂直方向に仮想的に上下2分割しラベリング処理を行ったが、本実施の形態では、2値画像データ領域13を水平方向に仮想的に左右2分割し、第1ラベル演算処理部が分割位置から左方向に向かってラベル付けを行い、第2ラベル演算処理部が分割位置から右方向に向かってラベル付けを行う点である。
【0131】
本実施の形態では、図5に示すように、2値画像データ領域13を、分割領域13eおよび13fに仮想的に左右2分割する。分割領域13eおよび13fの境界領域として、1画素分の幅を持つライン13gおよび13hを定義する。第1ラベル演算処理部が、分割領域13eおよびライン13hの2値画像データ領域を走査しラベル付けを行い、第2ラベル演算処理部が、分割領域13fおよびライン13gの2値画像データ領域を走査しラベル付けを行う。各ラベル演算処理部は、各々独立して仮ラベリング処理を行う。
【0132】
第1ラベル演算処理部は、第1走査マスク1を、ライン13gの上端から下端に向かって移動させながら仮ラベリング処理を行い、下端に到達すると1つ左のラインに移動し、その上端から下へと順次走査を行う。最終的には、分割領域13eの左下端の画素まで処理を行う。
【0133】
一方、第2ラベル演算処理部は、第2走査マスク2を、ライン13hの上端から下端に向かって移動させながら仮ラベリング処理を行い、下端に到達すると1つ右のラインに移動し、その上端から下へと順次走査を行う。最終的には、分割領域13fの右下端の画素まで処理を行う。
【0134】
本実施の形態の構成および方法を用いれば、第3の実施の形態と同様の効果を得ることができる。
【0135】
なお、図5に示す例では、第1走査マスク1および第2走査マスク2を移動させる方向は、2値画像データ領域13の上端から下方向に行っているが、第1走査マスク1および第2走査マスク2の移動方向が同一であれば、下端から上方向に、走査マスクの移動を行ってもかまわない。また、2値画像データ領域13を仮想的に分割する際には、等分に分割する必要はない。但し、等分に分割した方が、仮ラベリング処理全体に要する時間を最小にすることができる。
【0136】
<第5の実施の形態>
本実施の形態は、図6に示すように、2値画像データ領域13を垂直方向に仮想的に上下2分割し、分割領域13aの上端から分割位置に向けてラベル付けを行う第1ラベル演算処理部と、分割領域13bの下端から分割位置に向けてラベル付けを行う第2ラベル演算処理部とを備えることを特徴とする。
【0137】
本実施の形態では、図6に示すように、2値画像データ領域13を、分割領域13aと分割領域13とに、仮想的に上下2分割する。そして、分割領域13aと分割領域13bの境界領域として、ライン13cとライン13dとのそれぞれ幅が1画素分のラインを定義する。本実施の形態のラベリング処理装置は、分割領域13aおよびライン13d部分の2値画像データ領域を走査しラベル付けを行う第1ラベル演算処理部と、分割領域13bおよびライン13c部分の2値画像データ領域を走査しラベル付けを行う第2ラベル演算処理部を備え、各々のラベル演算処理部が、独立して仮ラベリング処理を行う。
【0138】
第1ラベル演算処理部は、第1走査マスク1を、分割領域13aの左上端から右端に向かって動かし、仮ラベリング処理を行う。右端に到達すると、1ライン下の左端から右端へと順次走査を行い、最終的にはライン13dの右端の画素まで仮ラベリング処理を行う。
【0139】
一方、第2ラベル演算処理部は、第2走査マスク2を、分割領域13bの左下端から右端に向かって動かし、仮ラベリング処理を行う。右端に到達すると、1ライン上の左端から右端へと順次走査を行い、最終的にはライン13cの右端の画素まで仮ラベリング処理を行う。
【0140】
なお、図6において、2値画像データ領域13が等分に分割されている場合、第1走査マスク1が、左上端から順次移動し、ライン13cの右端に達した時点で、第2走査マスク2もライン13dの右端に達している。そしてすべての画素に対して仮ラベルが付された状態となっている。但し、分割領域13aおよび13bにまたがる連結領域がある場合、上側と下側では異なる仮ラベルが付されている
この状態から、さらに第1走査マスク1を1ライン下の左端から右端に移動させ、第2走査マスク2を1ライン上の左端から右端に移動させ、画素を走査するが、この際には、画素に再度仮ラベル値を付けることは行わず、仮ラベル関連テーブルに、仮ラベル関連情報を登録することのみを行う。そして、最終的に、仮ラベル関連テーブルから各仮ラベル関連情を検索し、本ラベル値を設定するためのテーブルを作成し、そのテーブルをもとに、各連結領域に本ラベル値を設定し、ラベリング処理を完了する。
【0141】
第1ラベル演算処理部および第2ラベル演算処理部が上記の仮ラベリング処理を行う上で重要な点は、第1の実施の形態の説明で記述したように、第1ラベル演算処理部および第2ラベル演算処理部による境界領域での演算処理のタイミングについて、遅延処理を行うように、第1走査マスク1および第2走査マスク2を配置することである。
【0142】
すなわち、第1ラベル演算処理部で演算した結果のラベル値を利用して、第2ラベル演算処理部がラベル付け演算を行う点が、重要である。図6において示す例では、第1走査マスク1の位置に対して、第2走査マスク2の位置を、3画素分ずらし、処理を遅延させている。なお、この例では、3画素分処理を遅延させているが、2画素分以上処理を遅延させれば、第1ラベル演算処理部で演算した結果のラベル値を利用して、第2ラベル演算処理部がラベル付け演算を行うことができる。
【0143】
本実施の形態の構成および方法を用いれば、第3の実施の形態と同様の効果を得ることができる。
【0144】
<第6の実施の形態>
本実施の形態が、第5の実施の形態と異なる点は、第5の実施の形態では、2値画像データ領域13を垂直方向に仮想的に上下2分割しラベリング処理を行ったが、本実施の形態では、2値画像データ領域13を水平方向に仮想的に左右2分割し、第1ラベル演算処理部が分割位置から左方向に向かってラベル付けを行い、第2ラベル演算処理部が分割位置から右方向に向かってラベル付けを行う点である。
【0145】
本実施の形態では、図7に示すように、2値画像データ領域13を、分割領域13eおよび13fに仮想的に左右2分割する。分割領域13eおよび13fの境界領域として、1画素分の幅を持つライン13gおよび13hを定義する。第1ラベル演算処理部が、分割領域13eおよびライン13hの2値画像データ領域を走査しラベル付けを行い、第2ラベル演算処理部が、分割領域13fおよびライン13gの2値画像データ領域を走査しラベル付けを行う。各ラベル演算処理部は、各々独立して仮ラベリング処理を行う。
【0146】
第1ラベル演算処理部は、第1走査マスク1を、分割領域13eの左上端から下端に向かって移動させながら仮ラベリング処理を行い、下端に到達すると1つ右のラインに移動し、その上端から下へと順次走査を行う。最終的には、ライン13hの下端の画素まで処理を行う。
【0147】
一方、第2ラベル演算処理部は、第2走査マスク2を、分割領域13fの右上端から下端に向かって移動させながら仮ラベリング処理を行い、下端に到達すると1つ左のラインに移動し、その上端から下へと順次走査を行う。最終的には、ライン13gの下端の画素まで処理を行う。
【0148】
本実施の形態の構成および方法を用いれば、第3の実施の形態と同様の効果を得ることができる。
【0149】
<第7の実施の形態>
本実施の形態は、2値画像データ領域13を、3つ以上に分割し、分割したそれぞれの分割領域に対し、対応するラベル演算処理部がラベル付けを行うものである。図8において、2値画像データ領域13を3分割した例を示す。この例での仮ラベル付け処理は、第3の実施の形態および第5の実施の形態の仮ラベル付け処理を複合したものである。従って、分割領域にまたがる連結画素について、同一のラベル値を割当てることができ、また、並列して複数の仮ラベリング処理を行うことができるため、ラベリング処理の高速化を図ることができる。
【0150】
<第8の実施の形態>
前記の各実施の形態においては、2値画像データ領域を仮想的に分割しラベリング処理を行っていたが、本実施の形態では、2値画像データ領域を物理的に分割されたメモリに割り当てることで、物理的に分割し、ラベリング処理を行う。
【0151】
本実施の形態の構成上の特徴を、図9を用いて説明すると、2値画像データ領域13を、主要画像データ領域91a〜91cと、それら主要画像データ領域の境界部分に位置する境界領域91d、91eを物理的に分離し、主要画像データ領域91a〜91cを、各ラベリング処理ユニット92a〜92c上の非共有メモリ93a〜93cに割り当て、境界領域91d、91eを、ラベリング処理ユニット92aおよび92b上の共有メモリ94aおよび94bに割り当てるということである。
【0152】
ここで使用する共有メモリは、デュアルポート・メモリ等を使用したものであり、1つのメモリ領域に対して、2方向からの独立したアクセスにより、メモリデータの読み書きが可能なものである。なお、例えば、共有メモリ94aには、前記の実施の形態で説明した、ライン13cとライン13dとが、またはライン13gとライン13hとが収められている。
【0153】
本実施の形態の構成を用いれば、物理的に2値画像データ領域を分割していても、共有メモリにより各分割領域の境界領域の部分を共有メモリにより共有することで、境界領域の画素に付されたラベル値へのアクセスが双方のラベリング処理ユニットから行えるため、分割領域にまたがる連結領域に含まれる画素に対し、同一のラベル値を割当てることができる。そのため、従来技術では、物理的にメモリを分割した場合に必要であった、ラベリング処理完了後の特別な統合化処理が、不要となる。
【0154】
なお、図9においては、非共有メモリ93aと共有メモリ94aとを同一基板内に収めたラベリング処理ユニット92a、非共有メモリ93bと共有メモリ94bとを同一基板内に収めたラベリング処理ユニット92b、そして非共有メモリ93cと共有メモリ94cとを同一基板内に収めたラベリング処理ユニット92cを示している。この構成では、共有メモリ94cは使用していないので、無駄になる。しかし、一つのラベリング処理ユニットの共有メモリを利用しないことによる無駄よりも、ラベリング処理ユニットの設計を全て同一にし、ラベリング処理ユニットを最小能力単位に分割し、標準化を図ることにより、ラベリング処理装置の開発費用の削減および開発期間の短縮を図ることができるというメリットのほうが大きい。また、ラベリング処理ユニットを最小能力単位に分割し、標準化を図ることにより、ラベリング処理装置に要求される処理能力の増減に対しては、ラベリング処理ユニットを増減させることにより容易に対応できるという、スケーラビィティを、ラベリング処理装置に持たせることができる。
【0155】
<補足事項>
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【0156】
最後に、ラベリング処理装置100の各ブロック、特に第1ラベル演算処理部101および第2ラベル演算処理部102、そして第Mラベル演算処理部(Mは3以上の整数)は、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
【0157】
すなわち、ラベリング処理装置100は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるラベリング処理装置100の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記ラベリング処理装置100に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【0158】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
【0159】
また、ラベリング処理装置100を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【産業上の利用可能性】
【0160】
本発明によれば、並列演算処理によりラベリング処理が高速化され、仮ラベル関連テーブルへの登録数を減らすことで本ラベリング処理の処理時間を減らし、分割領域をまたがる連結領域に含まれる画素に付された異なったラベル値を統一するための特別処理の追加を不要とすることで処理が簡略化され処理時間が短縮化される。以上のような効果を奏するラベリング処理装置を実現できるので、画像処理装置やスキャナをはじめとする種々のシステムに広く好適に使用できる。
【図面の簡単な説明】
【0161】
【図1】本発明の第1の実施の形態における仮ラベリング処理で、第1走査マスク1と第2走査マスク2の配置を示す図である。
【図2】本発明の第2の実施の形態における仮ラベリング処理で、第1走査マスク1から第4走査マスク4までのの配置を示す図である。
【図3】本発明の第3の実施の形態における仮ラベリング処理で、2値画像データ領域13を上下2分割し、分割位置から第1走査マスク1と第2走査マスク2が仮ラベリング処理を行う経路を示す図である。
【図4】本発明の第3の実施の形態における仮ラベリング処理で、2値画像データ領域13を上下2分割した場合に、各連結領域にどの様な仮ラベルが付されるかを示す図である。
【図5】本発明の第4の実施の形態における仮ラベリング処理で、2値画像データ領域13を左右2分割し、分割位置から第1走査マスク1と第2走査マスク2が仮ラベリング処理を行う経路を示す図である。
【図6】本発明の第5の実施の形態における仮ラベリング処理で、2値画像データ領域13を上下2分割し、2値画像データ領域13の上端から第1走査マスク1が仮ラベリング処理を行い、2値画像データ領域13の下端から第2走査マスク2が仮ラベリング処理を行う経路を示す図である。
【図7】本発明の第6の実施の形態における仮ラベリング処理で、2値画像データ領域13を左右2分割し、2値画像データ領域13の左端から第1走査マスク1が仮ラベリング処理を行い、2値画像データ領域13の右端から第2走査マスク2が仮ラベリング処理を行う経路を示す図である。
【図8】本発明の第7の実施の形態における仮ラベリング処理で、2値画像データ領域13を上下3分割し、第1走査マスクから第3走査マスク3までが仮ラベリング処理を行う経路を示す図である。
【図9】本発明の第8の実施の形態において、複数に分割された2値画像データ領域13の各分割領域および各境界領域と、ラベリング処理ユニット上の非共有メモリおよび共有メモリとの関係を示す図である。
【図10】従来手法による仮ラベリングの方法を示す図であり、(a)は、仮ラベリングで用いられる走査マスクの形状を示す図であり、(b)はその走査マスクをどのように動かして2値画像データ領域を走査するかを示す図である。
【図11】従来手法による仮ラベリングの方法において、走査マスクに含まれる各画素の既に付された仮ラベル値から、新たな仮ラベル値を求める規則を示す表である。
【図12】従来手法による仮ラベリングの方法において、走査マスクに含まれる特定の画素が特定の条件に当てはまる場合に、仮ラベル関連テーブルを作成する様子を示す図である。
【図13】従来手法による仮ラベリングの方法を用いて、実際のラベリング処理の様子を示す図であり、(a)は、2値画像データ領域内の連結領域の各画素に付された仮ラベル値の例を示す図であり、(b)は、仮ラベル関連テーブルに登録される仮ラベル関連情報の例を示す表であり、(c)は、仮ラベルを最終的に真ラベルに変換するための変換テーブルの例を示す表である。
【図14】本発明のラベリング処理装置が行う処理手順の概要を示すフローチャートである。
【図15】本発明の第1の実施の形態における、仮ラベリング処理および関連テーブル作成処理を行う手順の詳細を示すフローチャートである。
【図16】本発明における、仮ラベリング処理および関連テーブル作成処理を行うハードウェアの構成を示すブロック図である。
【図17】本発明における、仮ラベリング処理および関連テーブル作成処理を行うハードウェアの別の構成を示すブロック図である。
【符号の説明】
【0162】
1 第1走査マスク
2 第2走査マスク
5 第1走査マスク
6 第2走査マスク
13 2値画像データ領域
80 走査マスク
92a ラベリング処理ユニット
92b ラベリング処理ユニット
92c ラベリング処理ユニット
100a 第1ラベル処理部(第1ラベル演算処理手段)
100b 第2ラベル処理部(第2ラベル演算処理手段)
101 画像メモリ
102 メモリ制御回路
103a 2値化用Nラインメモリ
103b 2値化用Mラインメモリ
104a 2値化用N+1ラインメモリ
104b 2値化用M+1ラインメモリ
105a 走査マスク形成/判定回路
105b 走査マスク形成/判定回路
106a 仮ラベル選択決定回路
106b 仮ラベル選択決定回路
107a 新ラベルカウンタ
107b 新ラベルカウンタ
108a 仮ラベル選択回路
108b 仮ラベル選択回路
109a 仮ラベル用Nラインメモリ
109b 仮ラベル用Mラインメモリ
110a 仮ラベル用N+1ラインメモリ
110b 仮ラベル用M+1ラインメモリ
111 関連テーブル作成回路
112 関連テーブル用メモリ
113 仮ラベルメモリ
114 CPU
120a 2値化用1ラインディレー
120b 2値化用1ラインディレー
121a 仮ラベル用1ラインディレー
121b 仮ラベル用1ラインディレー
【特許請求の範囲】
【請求項1】
2次元の2値画像データ領域内で、同じ値を持つ画素が連続した領域である連結領域に対してラベル付けを行うラベリング処理装置において、
画素縦2行横m列または縦m行横2列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理手段までの、M個のラベル演算処理手段を備え、
M個のラベル演算処理手段が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理手段のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行うことを特徴とする、ラベリング処理装置。
【請求項2】
前記第Mラベル演算処理手段が、ラベル付け処理を行う際に、前記第(M−1)ラベル演算処理手段により既に画素に付された仮ラベルを利用して仮ラベル付け処理を行うことを特徴とする、請求項1に記載のラベリング処理装置。
【請求項3】
2次元の2値画像データ領域を、垂直線または水平線の何れかの分割線により物理的にまたは仮想的に複数の矩形領域に分割し、第1から第M(Mは2以上の整数)までの複数のラベル演算処理手段のそれぞれが、前記各矩形領域内で、同じ値を持つ画素が連続した領域である連結領域に対して並行してラベル付けを行うラベリング処理装置において、
前記分割線の両側にある画素からなるライン2本から構成される境界領域内の仮ラベル付け処理を行う際に、上記ラインの一方を含む前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段により画素に付された仮ラベルを利用して、上記ラインの他方を含む前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段が、仮ラベル付け処理を行う、または上記2本のラインに属する画素に対して付された異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録する処理を行うことを特徴とする、ラベリング処理装置。。
【請求項4】
前記第1のラベル演算処理手段が、垂直方向に仮想的に上下2分割された2値画像データ領域を、分割位置から上方に向けてラベル付けを行い、前記第2のラベル演算処理手段が、分割位置から下方に向けてラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、ラベル付け処理を行うことを特徴とする、請求項3に記載のラベリング処理装置。
【請求項5】
前記第1のラベル演算処理手段が、水平方向に仮想的に左右2分割された2値画像データ領域を、分割位置から左方向に向けてラベル付けを行い、前記第2のラベル演算処理手段が、分割位置から右方向に向けてラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、ラベル付け処理を行うことを特徴とする、請求項3に記載のラベリング処理装置。
【請求項6】
前記第1のラベル演算処理手段が、垂直方向に仮想的に上下2分割された2値画像データ領域を、上方から分割位置に向かってラベル付けを行い、前記第2のラベル演算処理手段が、下方から分割位置に向かってラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録することを特徴とする、請求項3に記載のラベリング処理装置。
【請求項7】
前記第1のラベル演算処理手段が、水平方向に仮想的に左右2分割された2値画像データ領域を、左側から分割位置に向かってラベル付けを行い、前記第2のラベル演算処理手段が、右側から分割位置に向かってラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録することを特徴とする、請求項3に記載のラベリング処理装置。
【請求項8】
前記境界領域を除く前記矩形領域を、物理的に複数に分割されている非共有メモリ上に配置し、前記境界領域を、物理的に複数に分割されている共有メモリ上に配置することを特徴とする、請求項3から7のうちいずれか一つに記載のラベリング処理装置。
【請求項9】
2次元の2値画像データ領域内で、同じ値を持つ画素が連続した領域である連結領域に対してラベル付けを行うラベリング処理方法において、
画素縦2行横m列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理工程までの、M個のラベル演算処理工程を含み、
M個のラベル演算処理工程が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理工程のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行うことを特徴とする、ラベリング処理方法。
【請求項10】
2次元の2値画像データ領域を、垂直線または水平線の何れかの分割線により物理的にまたは仮想的に複数の矩形領域に分割し、第1から第M(Mは2以上の整数)までの複数のラベル演算処理工程のそれぞれが、前記各矩形領域内で、同じ値を持つ画素が連続した領域である連結領域に対して並行してラベル付けを行うラベリング処理方法において、
前記分割線の両側にある画素からなるライン2本から構成される境界領域内の仮ラベル付け処理を行う際に、一方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理工程により画素に付された仮ラベルを利用して、他方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理工程が仮ラベル付け処理、または異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録する処理を行うことを特徴とする、ラベリング処理方法。
【請求項11】
請求項1から8のいずれか1項に記載のラベリング処理装置に備えられた各手段として、コンピュータを動作させるラベリング処理プログラム。
【請求項12】
請求項11に記載のラベリング処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項1】
2次元の2値画像データ領域内で、同じ値を持つ画素が連続した領域である連結領域に対してラベル付けを行うラベリング処理装置において、
画素縦2行横m列または縦m行横2列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理手段までの、M個のラベル演算処理手段を備え、
M個のラベル演算処理手段が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理手段のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行うことを特徴とする、ラベリング処理装置。
【請求項2】
前記第Mラベル演算処理手段が、ラベル付け処理を行う際に、前記第(M−1)ラベル演算処理手段により既に画素に付された仮ラベルを利用して仮ラベル付け処理を行うことを特徴とする、請求項1に記載のラベリング処理装置。
【請求項3】
2次元の2値画像データ領域を、垂直線または水平線の何れかの分割線により物理的にまたは仮想的に複数の矩形領域に分割し、第1から第M(Mは2以上の整数)までの複数のラベル演算処理手段のそれぞれが、前記各矩形領域内で、同じ値を持つ画素が連続した領域である連結領域に対して並行してラベル付けを行うラベリング処理装置において、
前記分割線の両側にある画素からなるライン2本から構成される境界領域内の仮ラベル付け処理を行う際に、上記ラインの一方を含む前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段により画素に付された仮ラベルを利用して、上記ラインの他方を含む前記矩形領域の仮ラベル付け処理を行うラベル演算処理手段が、仮ラベル付け処理を行う、または上記2本のラインに属する画素に対して付された異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録する処理を行うことを特徴とする、ラベリング処理装置。。
【請求項4】
前記第1のラベル演算処理手段が、垂直方向に仮想的に上下2分割された2値画像データ領域を、分割位置から上方に向けてラベル付けを行い、前記第2のラベル演算処理手段が、分割位置から下方に向けてラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、ラベル付け処理を行うことを特徴とする、請求項3に記載のラベリング処理装置。
【請求項5】
前記第1のラベル演算処理手段が、水平方向に仮想的に左右2分割された2値画像データ領域を、分割位置から左方向に向けてラベル付けを行い、前記第2のラベル演算処理手段が、分割位置から右方向に向けてラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、ラベル付け処理を行うことを特徴とする、請求項3に記載のラベリング処理装置。
【請求項6】
前記第1のラベル演算処理手段が、垂直方向に仮想的に上下2分割された2値画像データ領域を、上方から分割位置に向かってラベル付けを行い、前記第2のラベル演算処理手段が、下方から分割位置に向かってラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録することを特徴とする、請求項3に記載のラベリング処理装置。
【請求項7】
前記第1のラベル演算処理手段が、水平方向に仮想的に左右2分割された2値画像データ領域を、左側から分割位置に向かってラベル付けを行い、前記第2のラベル演算処理手段が、右側から分割位置に向かってラベル付けを行い、分割位置を挟んで隣り合う2本のライン上では、前記第1のラベル演算処理手段により画素に付された仮ラベル値を用いて、前記第2のラベル演算処理手段が、異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録することを特徴とする、請求項3に記載のラベリング処理装置。
【請求項8】
前記境界領域を除く前記矩形領域を、物理的に複数に分割されている非共有メモリ上に配置し、前記境界領域を、物理的に複数に分割されている共有メモリ上に配置することを特徴とする、請求項3から7のうちいずれか一つに記載のラベリング処理装置。
【請求項9】
2次元の2値画像データ領域内で、同じ値を持つ画素が連続した領域である連結領域に対してラベル付けを行うラベリング処理方法において、
画素縦2行横m列(mは2以上の整数)で構成される、第1走査マスクから第(M−1)走査マスク(Mは2以上の整数)までの互いに異なる走査マスクの何れとも異なる、第M走査マスクを参照してラベル付けを行う第Mラベル演算処理工程までの、M個のラベル演算処理工程を含み、
M個のラベル演算処理工程が、前記2値画像データ領域内の第(M×N)ライン(Nは0以上の整数)から第(M×N+M−1)ラインまでの各ラインに順に対応付けられ、かつM個のラベル演算処理工程のそれぞれが、各ライン上の画素のラベル付けを行う、M個のラベル付け処理を同時に行うことを特徴とする、ラベリング処理方法。
【請求項10】
2次元の2値画像データ領域を、垂直線または水平線の何れかの分割線により物理的にまたは仮想的に複数の矩形領域に分割し、第1から第M(Mは2以上の整数)までの複数のラベル演算処理工程のそれぞれが、前記各矩形領域内で、同じ値を持つ画素が連続した領域である連結領域に対して並行してラベル付けを行うラベリング処理方法において、
前記分割線の両側にある画素からなるライン2本から構成される境界領域内の仮ラベル付け処理を行う際に、一方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理工程により画素に付された仮ラベルを利用して、他方の前記矩形領域の仮ラベル付け処理を行うラベル演算処理工程が仮ラベル付け処理、または異なった仮ラベル同士が本来同じラベルであるべきことを示す仮ラベル関連情報を仮ラベル関連情報テーブルへ登録する処理を行うことを特徴とする、ラベリング処理方法。
【請求項11】
請求項1から8のいずれか1項に記載のラベリング処理装置に備えられた各手段として、コンピュータを動作させるラベリング処理プログラム。
【請求項12】
請求項11に記載のラベリング処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2007−128459(P2007−128459A)
【公開日】平成19年5月24日(2007.5.24)
【国際特許分類】
【出願番号】特願2005−322686(P2005−322686)
【出願日】平成17年11月7日(2005.11.7)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成19年5月24日(2007.5.24)
【国際特許分類】
【出願日】平成17年11月7日(2005.11.7)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]