以下、本発明の実施形態について、図面を参照して説明する。本発明の実施形態の画像処理装置(以下、「画像処理装置1」という)は、例えば、グレースケール画像など、それぞれの画素の値として輝度値のみが含まれる画像(以下、「輝度画像」という)の領域を複数に分割し、複数の演算リソースで並列に領域分割処理の演算を行う画像処理装置である。
最初に、本発明の実施形態の画像処理装置1が行う領域分割処理の概念について説明する。図1A〜図1Cは、本発明の実施形態の画像処理装置1における領域分割処理の概念を説明する図である。図1Aは、画像処理装置1において領域分割処理の対象となる輝度画像の一例を示している。図1Aに示した輝度画像は、周辺の画素の中で最も輝度値が高い画素(以下、「頂点画素」という)が3つあるグレースケール画像である。
図1Aに示したような輝度画像が入力されると、画像処理装置1は、まず、輝度画像に含まれるそれぞれの画素を、頂点画素に向かう勾配を示す値(以下、「勾配ラベル」という)で表した勾配データを生成する。ここで言う「勾配」とは、ある画素に注目したとき、その画素の周辺に位置する画素の中で輝度値が高い画素に向かう方向を示すものである。図1Bには、画像処理装置1が生成した勾配データの一例を示している。図1Bに示したように、勾配データは、頂点画素に向かう勾配ラベルを、それぞれの頂点画素の周辺に位置する画素(以下、「周辺画素」という)のそれぞれに付与したデータである。なお、勾配データは、それぞれの画素を勾配ラベルである値で表したデータであるが、図1Bでは、理解を容易にするため、図1Aに示した輝度画像上に、矢印で勾配を模式的に示した勾配ラベルを重畳した形で勾配データを示している。なお、図1Bにおいて「8」、「9」、「10」と示した位置に位置する画素は、頂点画素である。このように、頂点画素には、勾配ラベルではなく、頂点であることを示す値(以下、「頂点ラベル」という)が勾配データ内に表される。図1Bに示した勾配データでは、「8」、「9」、および「10」のそれぞれが、頂点ラベルである。画像処理装置1では、輝度画像の領域を、複数の予め定めた矩形の領域に分割し、分割したそれぞれの矩形の領域の輝度画像に対応する勾配データの生成を、複数の演算リソースで並列に行う。
その後、画像処理装置1は、勾配データに含まれる勾配ラベルと頂点ラベルとに基づいて、輝度画像内の領域を、同じ頂点画素に属する画素が含まれる領域に分割する領域分割処理を行う。この領域分割処理において画像処理装置1は、同じ頂点画素に属するそれぞれの周辺画素に、同じ領域に属する画素であることを示す値(以下、「領域ラベル」という)を付与する演算を、複数の演算リソースで並列に行う。つまり、画像処理装置1では、複数の演算リソースが、分割したそれぞれの矩形の領域の輝度画像に対する領域分割処理を並列に行う。図1Cには、画像処理装置1が領域ラベルを付与する演算を行った結果である領域ラベルデータの一例を示している。図1Cに示したように、領域ラベルデータは、同じ頂点画素に属する周辺画素のそれぞれに、その頂点画素に付与された頂点ラベルと同じ値が領域ラベルとして付与されたデータである。なお、図1Cでは、理解を容易にするため、図1Aに示した輝度画像上に領域ラベルを重畳した形で領域ラベルデータを示している。
最後に、画像処理装置1は、領域分割処理を行ったそれぞれの矩形の領域を繋ぎ合わせる(統合する)。これにより、画像処理装置1は、輝度画像に対して領域分割処理を行った最終的な結果を得る。
このようにして画像処理装置1では、同じ頂点画素に属する周辺画素に同じ領域ラベルを付与する領域分割処理を、複数の演算リソースで並列に行う。
次に、画像処理装置1の構成について説明する。図2は、本発明の実施形態における画像処理装置1の概略構成の一例を示したブロック図である。図2に示した画像処理装置1は、画像データ分割部11と、n個の勾配データ生成部12−1〜勾配データ生成部12−nと、n個の勾配データ記憶部13−1〜勾配データ記憶部13と、n個の領域ラベル生成部14−1〜領域ラベル生成部14−nと、n個のラベル統合情報生成部15−1〜ラベル統合情報生成部15−nと、領域ラベル記憶部16と、ラベル統合情報記憶部17と、n個の領域ラベル統合部18−1〜領域ラベル統合部18−nと、領域ラベル統合処理制御部19と、を備えている。
なお、以下の説明において、勾配データ生成部12−1〜勾配データ生成部12−nのそれぞれを区別せずに表すときには、「勾配データ生成部12」という。また、勾配データ記憶部13−1〜勾配データ記憶部13のそれぞれを区別せずに表すときには、「勾配データ記憶部13」という。また、領域ラベル生成部14−1〜領域ラベル生成部14−nのそれぞれを区別せずに表すときには、「領域ラベル生成部14」という。また、ラベル統合情報生成部15−1〜ラベル統合情報生成部15−nのそれぞれを区別せずに表すときには、「ラベル統合情報生成部15」という。また、領域ラベル統合部18−1〜領域ラベル統合部18−nのそれぞれを区別せずに表すときには、「領域ラベル統合部18」という。
画像データ分割部11は、入力された輝度画像の領域を、複数の予め定めた矩形の領域に分割し、分割したそれぞれの矩形の領域の輝度画像を、勾配データ生成部12のそれぞれに分配する。より具体的には、画像データ分割部11は、分割した矩形の領域(以下、「矩形領域」という)を1つの単位として、それぞれの矩形領域の輝度画像に含まれるそれぞれの画素の輝度値を、割り当てた勾配データ生成部12のいずれかに順次出力する。
なお、画像データ分割部11は、輝度画像の領域を分割する際に、隣接するそれぞれの矩形領域の境界部分が互いに3画素分だけ重複(オーバーラップ)するように分割する。図3は、本発明の実施形態における画像処理装置1に備えた画像データ分割部11における輝度画像の分割方法の一例を示した図である。図3には、画像データ分割部11に入力された輝度画像の領域を4つの矩形領域に分割する場合の一例を示している。
より具体的には、例えば、図3に示した輝度画像の領域において実線で示した矩形領域R1は、水平方向に隣接する点線で示した矩形領域R2との境界部分に3画素分だけオーバーラップした領域を設け、垂直方向に隣接する一点鎖線で示した矩形領域R3との境界部分に3画素分だけオーバーラップした領域を設ける。同様に、矩形領域R2、矩形領域R3、および図3において二点鎖線で示した矩形領域R4にも、水平方向および垂直方向に隣接するそれぞれの矩形領域との境界部分に3画素分だけオーバーラップした領域を設ける。
図3に示したように、画像データ分割部11が、入力された輝度画像の領域を複数の矩形領域に分割する際に、隣接する他の矩形領域との境界部分に3画素分だけオーバーラップした領域(以下、「オーバーラップ領域」という)を設けて分割する。これにより、画像処理装置1では、後述する勾配データ生成部12の処理において、分割したそれぞれの矩形領域の輝度画像における繋ぎ目部分の処理を正しく行うことができる。
なお、画像データ分割部11が輝度画像の領域を分割する分割数、すなわち、矩形領域の数は、画像処理装置1に備えた勾配データ生成部12の数によって限定されるものではない。つまり、画像データ分割部11は、入力された輝度画像の領域を、画像処理装置1に備えた勾配データ生成部12の数よりも多くの矩形領域に分割してもよい。この場合、画像データ分割部11は、すでに割り当てられた矩形領域の輝度画像に対する処理を終了した勾配データ生成部12に、割り当てが終了していない矩形領域の輝度画像を順次割り当てる。
勾配データ生成部12−1〜勾配データ生成部12−nのそれぞれは、画像データ分割部11によって割り当てられた矩形領域の輝度画像に対応する勾配データを生成する、画像処理装置1に備えた演算リソースである。より具体的には、勾配データ生成部12のそれぞれは、割り当てられた矩形領域の輝度画像に含まれるそれぞれの画素が頂点画素であるか、周辺画素であるかを判定し、頂点画素に頂点ラベルを、周辺画素に勾配ラベルをそれぞれ付与した勾配データを生成する。そして、勾配データ生成部12のそれぞれは、生成した勾配データを対応する勾配データ記憶部13に出力する。
なお、画像データ分割部11は、入力された輝度画像の領域を、同じ大きさの複数の矩形領域に分割するため、勾配データ生成部12のそれぞれに割り当てられる矩形領域の輝度画像の領域の大きさは、同じ大きさである。従って、それぞれの勾配データ生成部12における勾配データの生成処理の演算負荷は、いずれの勾配データ生成部12も同様である。
勾配データ生成部12による勾配データの生成処理では、割り当てられた矩形領域の輝度画像(以下、「矩形輝度画像」という)に含まれるそれぞれの画素に対する頂点画素であるか周辺画素であるかの判定を順番に行う。このとき、勾配データ生成部12は、判定を行う現在の画素を、「注目画素」とし、この注目画素の輝度値と、注目画素の周囲に位置する8つの画素の輝度値とに基づいて、頂点画素であるか周辺画素であるかの判定を行って勾配データを生成する。このため、勾配データ生成部12による勾配データの生成処理では、それぞれの矩形輝度画像において最も外周(最外周)に位置する画素(以下、「最外周画素」という)を注目画素とした場合には、周囲に位置する8つの画素のいずれかの画素が存在しないことにより、頂点画素であるか周辺画素であるかの判定を行うことができない。つまり、勾配データ生成部12は、最外周画素に対する勾配データを生成することができない。従って、勾配データ生成部12が生成する勾配データの領域は、最外周画素を除いた矩形の領域となる。つまり、勾配データ生成部12が生成する勾配データの領域(以下、「勾配データ領域」という)は、割り当てられた矩形輝度画像の領域の周囲の1画素分が小さくなった領域となる。
しかし、画像データ分割部11は、上述したように、それぞれの勾配データ生成部12に割り当てる矩形輝度画像における境界部分の領域を、隣接する他の矩形輝度画像の領域と3画素分だけオーバーラップさせている。このため、勾配データ生成部12は、それぞれの矩形輝度画像における最外周画素の勾配データを生成することができない場合でも、生成したそれぞれの勾配データ領域は、隣接する勾配データ領域との境界部分に1画素分のオーバーラップ領域を確保することができる。図4は、本発明の実施形態における画像処理装置1に備えた勾配データ生成部12が生成した勾配データの領域(勾配データ領域)の一例を示した図である。図4には、図3に示したように画像データ分割部11によって分割された4つの矩形輝度画像に対して勾配データ生成部12が生成した勾配データ領域の一例を示している。例えば、図4に示した勾配データにおいて実線で示した勾配データ領域I1は、図3に示した矩形領域R1の矩形輝度画像に対して勾配データ生成部12が生成した勾配データ領域を示している。図4に示したように、それぞれの勾配データ領域は、隣接する勾配データ領域のそれぞれとの境界部分に1画素分だけ重複(オーバーラップ)したオーバーラップ領域が確保されている。
より具体的には、例えば、図4に示した勾配データ領域I1は、水平方向に隣接する点線で示した勾配データ領域I2との境界部分に1画素分のオーバーラップ領域が確保され、垂直方向に隣接する一点鎖線で示した勾配データ領域I3との境界部分に1画素分のオーバーラップ領域が確保されている。同様に、勾配データ領域I2、勾配データ領域I3、および図4において二点鎖線で示した勾配データ領域I4にも、水平方向および垂直方向に隣接するそれぞれの勾配データ領域との境界部分に1画素分のオーバーラップ領域が確保されている。
図4に示したように、勾配データ生成部12が生成したそれぞれの勾配データ領域が、隣接する他の勾配データ領域との境界部分に1画素分のオーバーラップ領域が確保されている。これにより、画像処理装置1では、後述するラベル統合情報生成部15において行う、分割したそれぞれの矩形領域の統合を正しく行うことができる。
なお、上記の説明では、勾配データ生成部12による勾配データの生成処理において、それぞれの矩形輝度画像における最外周画素を注目画素とした場合には、周囲に位置する8つの画素のいずれかの画素が存在しないため、勾配データを生成することができないと説明した。このため、画像データ分割部11が、分割するそれぞれの矩形領域にオーバーラップ領域を設けることによって、それぞれの矩形領域の繋ぎ目部分に対して行う勾配データ生成部12による勾配データの生成処理を正しく行えるようにした。しかし、図3に示したように、画像処理装置1に入力された輝度画像、すなわち、画像データ分割部11が分割する前の輝度画像において最外周に位置する画素には、勾配データを生成するためのオーバーラップ領域を設けることができない。従って、勾配データ生成部12は、分割する前の輝度画像において最外周の画素に相当する画素(最外周画素)を注目画素として勾配データの生成処理を行う際には、この注目画素の周囲に位置する8つの画素の内、有効な画素の輝度値のみに基づいて頂点画素であるか周辺画素であるかの判定を行って、勾配データを生成する。
勾配データ記憶部13−1〜勾配データ記憶部13−nのそれぞれは、対応する勾配データ生成部12−1〜勾配データ生成部12−nのそれぞれから出力された勾配データを記憶する。
領域ラベル生成部14−1〜領域ラベル生成部14−nのそれぞれは、対応する勾配データ生成部12が生成した勾配データ領域の勾配データに基づいて、同じ頂点画素に属する周辺画素に領域ラベルを付与する演算を行う、画像処理装置1に備えた演算リソースである。つまり、領域ラベル生成部14−1〜領域ラベル生成部14−nのそれぞれは、対応する勾配データ生成部12に割り当てられた矩形輝度画像に対して、同じ頂点画素に属する周辺画素であることを表す領域ラベルを付与する演算を行う演算リソースである。より具体的には、領域ラベル生成部14のそれぞれは、対応する勾配データ記憶部13に記憶された勾配データに含まれる頂点ラベルを探索し、探索した頂点ラベルが付与された頂点画素に属する周辺画素のそれぞれに、頂点画素に付与された頂点ラベルと同じ値の領域ラベルを付与する。また、領域ラベル生成部14のそれぞれは、領域ラベルを付与したそれぞれの画素の位置を表す情報を生成する。そして、領域ラベル生成部14のそれぞれは、それぞれの画素に付与した領域ラベルと、この領域ラベルを付与したそれぞれの画素の位置を表す情報とを、領域ラベル記憶部16、対応するラベル統合情報生成部15、および領域ラベル統合処理制御部19のそれぞれに出力する。
なお、画像処理装置1では、複数の領域ラベル生成部14が並列に、対応する勾配データ生成部12に割り当てられた矩形輝度画像に対して領域ラベルを付与する演算を行っている。このため、画像処理装置1では、異なる領域ラベル生成部14が、同じ値の領域ラベルをそれぞれの画素に付与しないように、つまり、輝度画像に含まれる異なる頂点画素に属する周辺画素同士で領域ラベルが重複しないように、それぞれの領域ラベル生成部14が付与する領域ラベルの値が排他な値になるように管理する。この領域ラベルの値の管理は、例えば、領域ラベル生成部14がそれぞれの画素に領域ラベルを付与する際に、ラベル統合情報記憶部17に記憶されたラベル統合情報を参照することによって行ってもよい。また、例えば、不図示の領域ラベル管理部によって行ってもよい。
なお、画像データ分割部11は、入力された輝度画像の領域を、同じ大きさの複数の矩形領域に分割し、それぞれの勾配データ生成部12が同じ大きさの矩形輝度画像の勾配データを生成する。従って、それぞれの領域ラベル生成部14における領域ラベルデータの生成処理の演算負荷は、いずれの領域ラベル生成部14も同様である。
ラベル統合情報生成部15−1〜ラベル統合情報生成部15−nのそれぞれは、対応する領域ラベル生成部14から入力された領域ラベルと、この領域ラベルが付与されたそれぞれの画素の位置を表す情報とに基づいて、対応する領域ラベル生成部14が領域ラベルを付与した領域(以下、「ラベル領域」という)と、他の領域ラベル生成部14が領域ラベルを付与したラベル領域とを統合するためのラベル統合情報を生成する。このラベル統合情報は、分割されたそれぞれのラベル領域における領域ラベルの繋がりを表す情報であり、例えば、ルックアップテーブル(LUT)の形式で構成される。そして、ラベル統合情報生成部15のそれぞれは、生成したラベル統合情報を、ラベル統合情報記憶部17に出力する。なお、ラベル統合情報生成部15がラベル統合情報を生成する際には、ラベル統合情報記憶部17に記憶された、他のラベル統合情報生成部15によって生成されたラベル統合情報を参照する。
領域ラベル記憶部16は、領域ラベル生成部14−1〜領域ラベル生成部14−nのそれぞれから出力された領域ラベルを記憶する。また、領域ラベル記憶部16は、最終的な領域ラベルデータを記憶する。
ラベル統合情報記憶部17は、ラベル統合情報生成部15−1〜ラベル統合情報生成部15−nのそれぞれから出力されたラベル統合情報を記憶する。なお、ラベル統合情報記憶部17は、ラベル統合情報生成部15のそれぞれが生成したラベル統合情報をまとめて1つのラベル統合情報として記憶している。このため、それぞれのラベル統合情報生成部15は、ラベル統合情報記憶部17に記憶されたラベル統合情報を、生成したラベル統合情報に更新する。
領域ラベル統合部18−1〜領域ラベル統合部18−nのそれぞれは、ラベル統合情報記憶部17に記憶されたラベル統合情報を参照して、領域ラベル記憶部16に記憶された領域ラベルを、それぞれの矩形輝度画像を統合した領域ラベルに更新する演算を行う、画像処理装置1に備えた演算リソースである。より具体的には、最初に領域ラベル記憶部16に記憶された領域ラベルは、勾配データ生成部12のそれぞれに割り当てられた矩形輝度画像に対する領域ラベル、つまり、分割されたラベル領域の領域ラベルであり、他のラベル領域との繋がりが反映されていない領域ラベルである。このため、領域ラベル記憶部16に記憶された領域ラベルは、同じ頂点画素に属する周辺画素であっても、異なる値が付与されていることがある。そこで、領域ラベル統合部18は、同じ頂点画素に属する周辺画素の領域ラベルを同じ値に更新するラベル統合処理を行うことによって、それぞれのラベル領域の繋がりが反映された、つまり、画像処理装置1に入力された輝度画像に対する領域ラベルを生成する。そして、領域ラベル統合部18は、ラベル統合処理を行った領域ラベルを、最終的な領域ラベルデータとして領域ラベル記憶部16に出力する。これにより、領域ラベル記憶部16には、図1Cに示したような領域ラベルデータが記憶される。
領域ラベル統合処理制御部19は、領域ラベル生成部14のそれぞれから入力された、それぞれの画素に付与した領域ラベルと、この領域ラベルを付与したそれぞれの画素の位置を表す情報とに基づいて、領域ラベル統合部18が行うラベル統合処理の演算負荷がほぼ均等になるように、それぞれの領域ラベル統合部18がラベル統合処理を行う対象のラベル領域を振り分ける(割り当てる)。
なお、領域ラベル統合部18のそれぞれは、分割されたそれぞれのラベル領域における領域ラベルの繋がりを表すラベル統合情報が、ラベル統合情報記憶部17に事前に記憶されているため、いずれのラベル領域に対しても、ラベル統合処理を行うことができる。つまり、領域ラベル統合処理制御部19は、ラベル統合処理を行うラベル領域や、ラベル統合処理を行う順番に制限がなく、それぞれの領域ラベル統合処理制御部19は、互いに関係せずにラベル統合処理を行うことができる。従って、画像処理装置1では、それぞれの領域ラベル統合処理制御部19がいずれのラベル領域に対してどのような順番でラベル統合処理を行っても、最終的に同様の領域ラベルデータを得ることができる。
このような構成によって、画像処理装置1は、入力された輝度画像において同じ頂点画素に属する周辺画素に頂点ラベルと同じ領域ラベルを付与した領域ラベルデータを生成する領域分割処理を、複数の演算リソースで並列に行う。
次に、画像処理装置1に備えたそれぞれの構成要素について説明する。まず、勾配データ生成部12について説明する。勾配データ生成部12のそれぞれは、例えば、画像データ分割部11によって割り当てられた矩形輝度画像の左上に配置された画素からラスター順に注目画素とする。そして、勾配データ生成部12のそれぞれは、上述したように、注目画素の輝度値と、注目画素の周囲に位置する8つの画素(以下、「周囲画素」という)の輝度値とに基づいて、頂点画素であるか周辺画素であるかの判定を行い、判定した結果に応じて、それぞれの注目画素に頂点ラベルまたは勾配ラベルを付与した勾配データを生成する。このときにそれぞれの勾配データ生成部12がそれぞれの注目画素に付与する頂点ラベルや勾配ラベルの値は、注目画素の輝度値と、周囲画素の輝度値との関係に基づいて予め定めている。
図5A〜図5Iは、本発明の実施形態の画像処理装置1において処理を行う画素(注目画素)に付与する頂点ラベルまたは勾配ラベルの一例を説明する図である。図5A〜図5Iのそれぞれには、丸で囲んで示した注目画素の輝度値と、注目画素の周囲に位置する8つの周囲画素の輝度値との関係に基づいて、勾配データ生成部12が注目画素に付与する頂点ラベルまたは勾配ラベルの値の一例を示している。図5A〜図5Hには、注目画素が周辺画素である場合に勾配データ生成部12が付与する勾配ラベルの値の一例を示し、図5Iには、注目画素が頂点画素である場合に勾配データ生成部12が付与する頂点ラベルの値の一例を示している。
上述したように、勾配ラベルは、注目画素の周辺に位置する画素の中で輝度値が高い画素に向かう方向を示すものである。このため、勾配データ生成部12は、注目画素よりも輝度値が高い画素が位置する方向によって、図5A〜図5Hに示したような、8種類の値のいずれか1つの値の勾配ラベルを、注目画素に付与する。例えば、図5Aに示した一例では、注目画素の周囲に位置する8つの周囲画素の内、注目画素の輝度値(=「54」)よりも高い値である周囲画素が4つある。そして、この4つの周囲画素において左斜め上方向に位置する周囲画素の輝度値(=「99」)が最も高い値となっている。この場合、勾配データ生成部12は、注目画素から見た勾配方向が左斜め上方向である、つまり、注目画素は周辺画素であり、この注目画素が属する頂点画素が左斜め上方向に位置すると判定する。注目画素の輝度値と周囲画素の輝度値が図5Aに示したような関係である場合、勾配データ生成部12は、値が「0」である勾配ラベルを注目画素に付与する。
同様に、勾配データ生成部12は、注目画素から見た、高い輝度値の周囲画素が位置する方向に対応する値(「1」〜「7」)の勾配ラベルを、それぞれの注目画素に付与する。図5Bには、勾配データ生成部12が、注目画素が属する頂点画素が上方向に位置すると判定し、値が「1」である勾配ラベルを注目画素に付与する場合の一例を示している。また、図5Cには、勾配データ生成部12が、注目画素が属する頂点画素が右斜め上方向に位置すると判定し、値が「2」である勾配ラベルを注目画素に付与する場合の一例を示している。また、図5Dには、勾配データ生成部12が、注目画素が属する頂点画素が左方向に位置すると判定し、値が「3」である勾配ラベルを注目画素に付与する場合の一例を示している。また、図5Eには、勾配データ生成部12が、注目画素が属する頂点画素が右方向に位置すると判定し、値が「4」である勾配ラベルを注目画素に付与する場合の一例を示している。また、図5Fには、勾配データ生成部12が、注目画素が属する頂点画素が左斜め下方向に位置すると判定し、値が「5」である勾配ラベルを注目画素に付与する場合の一例を示している。また、図5Gには、勾配データ生成部12が、注目画素が属する頂点画素が下方向に位置すると判定し、値が「6」である勾配ラベルを注目画素に付与する場合の一例を示している。また、図5Hには、勾配データ生成部12が、注目画素が属する頂点画素が右斜め下方向に位置すると判定し、値が「7」である勾配ラベルを注目画素に付与する場合の一例を示している。
また、上述したように、頂点ラベルは、注目画素が周辺に位置する画素の中で最も輝度値が高い画素であることを示すものである。このため、勾配データ生成部12は、注目画素が頂点画素である場合、図5Iに示したような、勾配ラベルと異なる値の頂点ラベルを、注目画素に付与する。例えば、図5Iに示した一例では、注目画素の周囲に位置する8つの周囲画素の画素値よりも、注目画素の画素値が高い値となっている。この場合、勾配データ生成部12は、この注目画素が、周辺に位置する画素よりも輝度値が高い頂点画素であると判定する。注目画素の輝度値と周囲画素の輝度値が図5Iに示したような関係である場合、勾配データ生成部12は、値が「8」以上である頂点ラベルを注目画素に付与する。なお、勾配データ生成部12は、それぞれの頂点画素に、異なる値の頂点ラベルを付与する。例えば、次に頂点画素であると判定した注目画素には、値が「9」である頂点ラベルを、その注目画素に付与する。
次に、画像処理装置1に備えた勾配データ生成部12における勾配データの生成処理について説明する。図6は、本発明の実施形態の画像処理装置1に備えた勾配データ生成部12における処理手順を示したフローチャートである。勾配データ生成部12は、画像データ分割部11によって矩形輝度画像が割り当てられると、勾配データの生成処理を開始する。
勾配データの生成を開始すると、勾配データ生成部12は、まず、頂点ラベルの値の初期化を行う(ステップS11)。ここでは、勾配データ生成部12は、頂点ラベルの初期値を、図5Iに示した「8」とする。
続いて、勾配データ生成部12は、ステップS12のループにおいて、割り当てられた矩形輝度画像の左上に配置された画素からラスター順に注目画素として、それぞれの注目画素ごとに、注目画素が頂点画素であるか周辺画素であるかの判定処理を、矩形輝度画像に含まれる全ての画素に対して行う。
勾配データ生成部12における注目画素の判定処理では、まず、注目画素の輝度値と、その注目画素の周囲に位置するそれぞれの周囲画素の輝度値とを矩形輝度画像から取得し、現在の注目画素の輝度値とそれぞれの周囲画素の輝度値とを比較する(ステップS13)。
続いて、勾配データ生成部12は、現在の注目画素の輝度値が、いずれの周囲画素の輝度値よりも高い値であるか否かを判定する(ステップS14)。つまり、勾配データ生成部12は、ステップS14において、現在の注目画素が頂点画素であるか否かを判定する。
ステップS14において、現在の注目画素の輝度値が、いずれの周囲画素の輝度値よりも高い値ではない、つまり、現在の注目画素が周辺画素であると判定した場合(ステップS14の“NO”)、勾配データ生成部12は、ステップS15において、現在の注目画素よりも高い輝度値の周囲画素の中で、最も輝度値が高い周囲画素が位置する方向に対応する値の勾配ラベルを付与した勾配データを生成し、勾配データ記憶部13に出力する。そして、勾配データ生成部12は、ステップS12に戻って、次の注目画素に対する判定処理を行う。
一方、ステップS14において、現在の注目画素の輝度値が、いずれの周囲画素の輝度値よりも高い値である、つまり、現在の注目画素が頂点画素であると判定した場合(ステップS14の“YES”)、勾配データ生成部12は、ステップS16において、現在の注目画素に、現在の値の(最初は初期値(=「8」))の頂点ラベルを付与した勾配データを生成し、勾配データ記憶部13に出力する。例えば、図5Iに示した一例では、値=「8」の頂点ラベルを付与した勾配データを生成して、勾配データ記憶部13に出力する。さらに、勾配データ生成部12は、現在の頂点ラベルの値に「1」を加算して、次の頂点ラベルの値を異なる値(最初は、初期値(=「8」)に「1」を加えた「9」)に変更する。そして、勾配データ生成部12は、ステップS12に戻って、次の注目画素に対する判定処理を行う。
このように、画像処理装置1に備えた複数の勾配データ生成部12のそれぞれは、ステップS12のループで表された注目画素の判定処理を、矩形輝度画像に含まれる全ての画素に対して行って、割り当てられた矩形輝度画像の勾配データを生成する。これにより、勾配データ生成部12のそれぞれに対応する勾配データ記憶部13には、それぞれの画素に勾配ラベルまたは頂点ラベルが付与された1つの矩形輝度画像の勾配データ、つまり、1つの勾配データ領域の勾配データが記憶される。
そして、領域ラベル生成部14のそれぞれは、対応する勾配データ記憶部13に記憶された矩形輝度画像の勾配データ(1つの勾配データ領域の勾配データ)において同じ頂点画素に属する周辺画素に領域ラベルを付与する領域ラベルの生成処理を行う。
次に、画像処理装置1に備えた領域ラベル生成部14の構成および動作について説明する。図7は、本発明の実施形態の画像処理装置1に備えた領域ラベル生成部14の構成を示したブロック図である。図7に示した領域ラベル生成部14は、頂点座標探索部141と、勾配データ読み込み元アドレス生成部142と、最外周データ勾配判定部143と、を備えている。
頂点座標探索部141は、対応する勾配データ記憶部13に記憶された1つの勾配データ領域の勾配データを画素ごとに順次読み出して、読み出した勾配データの中から、頂点ラベルを探索する。つまり、頂点座標探索部141は、勾配データにおいて頂点ラベルが付与された頂点画素を検出する。そして、頂点座標探索部141は、頂点画素を検出すると、検出した頂点画素の位置を表す座標(以下、「頂点座標」という)を、勾配データ読み込み元アドレス生成部142に出力する。
なお、画像処理装置1では、分割した矩形輝度画像ごとに領域ラベルを付与する演算を行う。このため、1つの勾配データ領域に含まれる全ての画素が、同じ勾配データ領域に含まれるいずれかの頂点画素に属するとは限らない。例えば、隣接する勾配データ領域に含まれる頂点画素に属する画素であることもある。そこで、頂点座標探索部141は、勾配データ領域に含まれる頂点画素の検出と共に、勾配データ領域において最も外周(最外周)に位置する最外周画素の内、隣接する勾配データ領域に属する画素の検出も行う。つまり、頂点座標探索部141は、最外周画素の内、勾配データ領域の外側に向かうことを表す勾配ラベルが付与された周辺画素の検出も行う。そして、頂点座標探索部141は、検出した隣接する勾配データ領域に属する最外周画素を仮の頂点画素(以下、「仮頂点画素」という)として、この仮頂点画素の位置を表す座標(以下、「仮頂点座標」という)も、頂点座標と共に勾配データ読み込み元アドレス生成部142に出力する。
また、画像処理装置1では、頂点画素が、勾配データ領域の最外周以外に位置するとは限らない。つまり、頂点画素が最外周画素ではないとは限らない。そこで、頂点座標探索部141では、勾配データ領域の最外周に位置する頂点画素を検出した場合、この頂点画素=最外周画素を、仮頂点画素として扱って、頂点画素に対応する頂点座標を、仮頂点座標として勾配データ読み込み元アドレス生成部142に出力する。
つまり、頂点座標探索部141が勾配データ読み込み元アドレス生成部142に出力する座標には、頂点画素の位置を表す頂点座標と、仮頂点画素の位置を表す仮頂点座標と、仮頂点画素として扱われた頂点画素の位置を表す仮頂点座標とが含まれている。
なお、以下の説明においては、仮頂点画素および仮頂点画素として扱われない頂点画素を「真頂点画素」といい、この真頂点画素の位置を表す頂点座標を「真頂点座標」という。そして、以下の説明において、真頂点画素と仮頂点画素のそれぞれを区別せずに表すときには、「頂点画素」といい、真頂点座標と仮頂点座標とのそれぞれを区別せずに表すときには、「頂点座標」という。
なお、頂点座標探索部141は、勾配データ記憶部13に記憶された勾配データに含まれる全ての頂点画素の検出が終了するまで、頂点ラベルおよび勾配ラベルの探索を継続する。このため、頂点座標探索部141の構成としては、例えば、検出したそれぞれの頂点画素の位置を表す頂点座標を先入れ先出し(FIFO)形式の記憶領域に一旦記憶し、勾配データ読み込み元アドレス生成部142と最外周データ勾配判定部143とによる処理が終了したときに、FIFO形式の記憶領域から、次の頂点座標を勾配データ読み込み元アドレス生成部142に順次出力する構成が考えられる。この構成の場合、頂点座標探索部141は、対応する勾配データに含まれる全ての頂点画素の検出が終了したときに、このことを表す終了信号を勾配データ読み込み元アドレス生成部142に出力することによって、全ての頂点画素の検出が終了したことを勾配データ読み込み元アドレス生成部142に通知することができる。
また、頂点座標探索部141の別の構成としては、例えば、次に頂点座標を勾配データ読み込み元アドレス生成部142に出力する頂点画素の検出までを行って頂点座標を一旦記憶し、勾配データ読み込み元アドレス生成部142と最外周データ勾配判定部143とによる処理が終了して一旦記憶した頂点座標を勾配データ読み込み元アドレス生成部142に出力するまで、その次の頂点画素の検出を待機する構成が考えられる。この構成の頂点座標探索部141でも、終了信号を勾配データ読み込み元アドレス生成部142に出力することによって、対応する勾配データに含まれる全ての頂点画素の検出が終了したことを勾配データ読み込み元アドレス生成部142に通知することができる。
また、頂点座標探索部141のさらに別の構成としては、例えば、次の頂点画素を検出したことを表す、つまり、出力する頂点座標があることを表す通知信号を勾配データ読み込み元アドレス生成部142に出力し、勾配データ読み込み元アドレス生成部142から次の頂点座標の出力を要求する要求信号が入力されたときに、次の頂点画素に対応する頂点座標を出力する構成が考えられる。この構成の場合、頂点座標探索部141は、通知信号を出力しないことによって、対応する勾配データに含まれる全ての頂点画素の検出が終了したことを表すことができる。
なお、頂点座標探索部141の構成は、上述した構成に限定されるものではなく、同様の機能を実現することができる構成であれば、いかなる構成であってもよい。
勾配データ読み込み元アドレス生成部142は、頂点座標探索部141から入力された頂点座標に対応する頂点画素に属するそれぞれの周辺画素に領域ラベルを付与するため、勾配データ記憶部13から勾配ラベルまたは頂点ラベルを読み出すための勾配データ読み込み元アドレスを生成する。なお、勾配データ読み込み元アドレス生成部142が生成する勾配データ読み込み元アドレスは、現在処理を行っている勾配データ領域に対応した記憶領域を表す勾配データ記憶部13のアドレスである。そして、勾配データ読み込み元アドレス生成部142は、生成した勾配データ読み込み元アドレスを勾配データ記憶部13に出力し、この勾配データ読み込み元アドレスに対応する記憶領域に記憶されている勾配ラベルまたは頂点ラベルを、最外周データ勾配判定部143に出力させる。さらに、勾配データ読み込み元アドレス生成部142は、生成した勾配データ読み込み元アドレスを、最外周データ勾配判定部143に出力する。また、勾配データ読み込み元アドレス生成部142は、最外周データ勾配判定部143から入力された勾配判定結果に基づいて、さらに別の勾配データ読み込み元アドレスを生成して、勾配データ記憶部13および最外周データ勾配判定部143に出力する。
最外周データ勾配判定部143は、勾配データ読み込み元アドレス生成部142から入力された勾配データ読み込み元アドレスと、勾配データ記憶部13から入力された勾配ラベルおよび頂点ラベルに基づいて、同じ頂点画素に属するそれぞれの周辺画素を判定する。そして、最外周データ勾配判定部143は、同じ頂点画素に属すると判定した周辺画素の勾配データ読み込み元アドレスを、同じ頂点画素に属すると判定した周辺画素の位置を表す座標を表した勾配判定結果として勾配データ読み込み元アドレス生成部142に出力する。これにより、勾配データ読み込み元アドレス生成部142が、さらに別の勾配ラベルの読み出しを行う。
また、最外周データ勾配判定部143は、頂点画素に対応する領域ラベルと、この頂点画素の位置を表す領域ラベル書き込み先アドレスとを生成し、生成した領域ラベルと領域ラベル書き込み先アドレスとを、領域ラベル記憶部16、対応するラベル統合情報生成部15、および領域ラベル統合処理制御部19のそれぞれに出力する。なお、最外周データ勾配判定部143は、現在処理を行っている頂点画素が真頂点画素であるか仮頂点画素であるかによって異なる値の領域ラベルを生成する。また、最外周データ勾配判定部143が生成する領域ラベル書き込み先アドレスは、現在処理を行っている勾配データ領域に対応した記憶領域を表す領域ラベル記憶部16のアドレスである。
また、最外周データ勾配判定部143は、同じ頂点画素に属するそれぞれの周辺画素の位置を表す領域ラベル書き込み先アドレスを生成し、生成した領域ラベル書き込み先アドレスと、それぞれの周辺画素が属する頂点画素に対応して生成した領域ラベルとを、領域ラベル記憶部16、対応するラベル統合情報生成部15、および領域ラベル統合処理制御部19のそれぞれに出力する。これにより、領域ラベル記憶部16の領域ラベル書き込み先アドレスに対応する記憶領域に、現在処理を行っている勾配データ領域に対応する領域ラベルが記憶される。また、ラベル統合情報生成部15によって、ラベル統合情報が生成される。また、領域ラベル統合処理制御部19によって、ラベル統合処理を行う領域ラベル統合部18の割り当てが制御される。
なお、上述したように、画像処理装置1は、分割した矩形輝度画像に対して領域ラベルを付与する演算を複数の領域ラベル生成部14が並列に行っているため、領域ラベル記憶部16には、分割したそれぞれの矩形輝度画像に対応する複数の領域ラベルデータが記憶される。ここで、領域ラベル記憶部16に記憶されるそれぞれの領域ラベルデータは、隣接するラベル領域との繋がりが反映されていない状態である。このため、画像処理装置1では、上述したように、異なる真頂点画素に属する周辺画素同士で領域ラベルが重複しないように、それぞれの領域ラベル生成部14が付与する領域ラベルの値が排他な値になるように管理している。
図8は、本発明の実施形態の画像処理装置1におけるラベル領域と領域ラベルとの関係を説明する図である。画像処理装置1では、領域ラベル生成部14おいてそれぞれの頂点画素に付与する領域ラベルの値を、画像処理装置1に入力された輝度画像を矩形輝度画像に分割する際の分割数に基づいて、予め決めている。
より具体的には、画像処理装置1では、勾配データ生成部12のそれぞれが、隣接する勾配データ領域との境界部分に1画素分のオーバーラップ領域を確保した状態で勾配データを生成している。このため、それぞれの勾配データに対応した領域ラベル生成部14が生成した領域ラベルデータにも、図8に示したように、隣接するラベル領域との境界部分に1画素分のオーバーラップ領域を含んでいる。このオーバーラップ領域に位置する画素の座標は、画像処理装置1に入力された輝度画像の分割数に応じて一意に対応付けることができる。このため、画像処理装置1では、オーバーラップ領域に位置する真頂点画素または仮頂点画素に付与する領域ラベルの値と、オーバーラップ領域以外の領域に位置する真頂点画素に付与する領域ラベルの値とを分けて考える。
図8に示した一例は、輝度画像を4つの矩形領域に分割して領域ラベルを生成したときに確保されるオーバーラップ領域に存在するそれぞれの画素に割り当てる領域ラベルの一例を示している。より具体的には、図8に示した一例は、輝度画像における垂直方向(縦方向)の画素数を「i」とし、輝度画像における水平方向(横方向)の画素数を「j」とした場合において、オーバーラップ領域に位置する画素が真頂点画素または仮頂点画素であった場合に付与する領域ラベルの一例を示している。
図8に示した一例では、ラベル領域L1およびラベル領域L3と、ラベル領域L2およびラベル領域L4との間の垂直方向の境界部分に存在するそれぞれの画素が真頂点画素または仮頂点画素であった場合に付与する領域ラベルの値として、値=「0」〜値=「i−1」が割り当てられている場合を示している。また、図8に示した一例では、ラベル領域L1およびラベル領域L2と、ラベル領域L3およびラベル領域L4との間の水平方向の境界部分に存在するそれぞれの画素が真頂点画素または仮頂点画素であった場合に付与する領域ラベルの値として、値=「i」〜値=「i+j−2」が割り当てられている場合を示している。つまり、図8に示した一例では、オーバーラップ領域に存在する垂直方向の画素数と水平方向の画素数とを合わせた数の領域ラベルの値が、予め一意に決められている状態を示している。
なお、図8に示したラベル領域L1〜ラベル領域L4の全てのラベル領域に重複する位置に存在する画素P0は、垂直方向の境界部分に存在する画素でもあり、および水平方向の境界部分に存在する画素でもある。そこで、画像処理装置1では、1つの画素に対して2つの領域ラベルの値が割り当てられないように、つまり、1つの画素に対して領域ラベルが重複して割り当てられないようにしている。このため、図8に示した一例では、水平方向の境界部分において、画素P0以降の位置に存在する画素が真頂点画素または仮頂点画素であった場合に付与する領域ラベルの値を「−2」している。例えば、図8に示した一例において、水平方向の境界部分に存在する最後の画素、つまり、ラベル領域L2とラベル領域L4との間の水平方向の境界部分における右端の画素が真頂点画素または仮頂点画素であった場合に付与する領域ラベルの値が、「i+j−2」となっている。
そして、画像処理装置1では、オーバーラップ領域以外の領域に位置する真頂点画素に付与する領域ラベルの値の最小値を、オーバーラップ領域の画素に割り当てられた領域ラベルの値+1の値に、予め決めている。
なお、画像処理装置1では、予め決めた領域ラベルの値と、後述するラベル統合情報におけるアドレスとを対応付けている。そして、画像処理装置1では、領域ラベル統合部18のそれぞれが、ラベル統合情報に基づいて、領域ラベル記憶部16に記憶された領域ラベルを統合するラベル統合処理を行い、最終的な領域ラベルデータを生成する。
ここで、画像処理装置1に備えた領域ラベル生成部14の動作について説明する。図9A〜図9Gは、本発明の実施形態の画像処理装置1に備えた領域ラベル生成部14による領域ラベルの生成処理の一例を模式的に示した図である。図9A〜図9Gには、領域ラベル生成部14が、同じ真頂点画素に属する周辺画素に領域ラベルを付与する処理を、段階的に示している。なお、図9A〜図9Gには、頂点座標探索部141によって真頂点画素が検出され、検出した真頂点画素に対応する真頂点座標が入力された後に勾配データ読み込み元アドレス生成部142と最外周データ勾配判定部143とが行う処理を示している。なお、頂点座標探索部141が仮頂点画素を検出した際の勾配データ読み込み元アドレス生成部142と最外周データ勾配判定部143との処理も、同様に考えることができる。以下の説明においては、説明を容易にするため、頂点座標探索部141が検出した真頂点画素に付与する領域ラベルが、頂点ラベルの値=「8」であるものとして説明する。
図9Aには、勾配データ記憶部13に記憶されている勾配データの一例を示している。図9Aに示した勾配データでは、頂点座標探索部141によって検出された真頂点画素が中心に位置し、その周囲に位置する周辺画素のそれぞれに勾配ラベルが付与されている。なお、図9Aに示した勾配データでは、真頂点画素を「×」印で示し、勾配ラベルを、図1Bに示した勾配データと同様に、矢印で模式的に示している。
勾配データ読み込み元アドレス生成部142は、演算を行う対象の真頂点画素(「×」印)の真頂点座標が入力されると、入力された真頂点座標で表される位置の真頂点画素の頂点ラベルと、その周囲の8画素分の周辺画素の勾配データとを、勾配データ記憶部13から読み出す。これにより、真頂点画素の頂点ラベルと、その周囲の8画素分の周辺画素の勾配データとが、最外周データ勾配判定部143に入力される。そして、最外周データ勾配判定部143は、入力された8つの周辺画素の勾配データにそれぞれ付与されている勾配ラベルが、入力された真頂点画素に向かう勾配方向を表しているか否かを判定する。図9Bに示した一例では、8つの周辺画素の勾配データの内、真頂点画素の右下の周辺画素の勾配データ以外が、真頂点画素に向かう勾配方向を表している状態を示している。
最外周データ勾配判定部143は、真頂点画素に向かう勾配方向を表している勾配データに対応する周辺画素のそれぞれに、真頂点画素の頂点ラベルと同じ値の領域ラベルを付与する。図9Cに示した一例では、真頂点画素に向かう勾配方向を表している周辺画素、つまり、真頂点画素の右下の周辺画素以外に、真頂点画素の頂点ラベルと同じ値(ここでは、丸で囲んだ「8」)の領域ラベルを付与した状態を示している。
その後、最外周データ勾配判定部143は、同じ領域ラベルを付与したそれぞれの周辺画素の位置を表す勾配判定結果を、勾配データ読み込み元アドレス生成部142に出力する。これにより、勾配データ読み込み元アドレス生成部142は、入力された勾配判定結果に含まれるそれぞれの周辺画素を順次中心として、その周囲の8画素分の周辺画素の勾配データを勾配データ記憶部13から読み出す。これにより、最外周データ勾配判定部143は、入力された8つの周辺画素の勾配データにそれぞれ付与されている勾配ラベルが、中心とした周辺画素に向かう勾配方向を表しているか否かを判定する。図9Dに示した一例では、真頂点画素の右上に位置する丸で囲んだ周辺画素を中心として、その周囲の8画素分の周辺画素の勾配データを勾配データ記憶部13から読み出した場合を示している。また、図9Dに示した一例では、読み出した8つの周辺画素の勾配データの内、左側中央の周辺画素の勾配データのみが、中心とした周辺画素に向かう勾配方向を表している状態を示している。
最外周データ勾配判定部143は、中心とした周辺画素に向かう勾配方向を表している勾配データに対応する周辺画素のそれぞれに、中心とした周辺画素に付与した領域ラベルと同じ値の領域ラベルを付与する。図9Eに示した一例では、中心とした周辺画素に向かう勾配方向を表している左側中央の周辺画素のみに、同じ値(ここでは、丸で囲んだ「8」)の領域ラベルを付与した状態を示している。
同様に、最外周データ勾配判定部143が、同じ領域ラベル(図9Cにおいて、丸で囲んだ「8」)を付与したそれぞれの周辺画素を順次中心とし、その中心とした周辺画素に向かう勾配方向を表しているか否かを判定することによって、図9Fに示したような領域の周辺画素に、真頂点画素の頂点ラベルと同じ値(ここでは、丸で囲んだ「8」)の領域ラベルが付与される。
なお、図9Fでは、図9Bにおいて真頂点画素に向かう勾配方向を表している周辺画素ではないと判定された、真頂点画素の右下の周辺画素(網掛けで表した周辺画素)にも、同じ値の領域ラベルが付与されている。これは、真頂点画素の下側中央の周辺画素を中心として、その中心とした周辺画素に向かう勾配方向を表しているか否かを判定した結果、真頂点画素の右下の周辺画素は、真頂点画素の下側中央の周辺画素に向かう勾配方向を表していると判定されたことによるものである。
その後、同様に、最外周データ勾配判定部143は、新たに同じ領域ラベルを付与したそれぞれの周辺画素の位置を表す勾配判定結果を勾配データ読み込み元アドレス生成部142に出力し、勾配データ読み込み元アドレス生成部142が、入力された勾配判定結果に含まれるそれぞれの周辺画素を順次中心として、その周囲の8画素分の周辺画素の勾配データを勾配データ記憶部13から読み出す。そして、同様に、最外周データ勾配判定部143が、新たに入力されたそれぞれの周辺画素を順次中心として、その中心とした周辺画素に向かう勾配方向を表しているか否かの判定を行い、中心とした周辺画素に向かう勾配方向を表していると判定された周辺画素に、同じ値の領域ラベルを付与する。
このように、勾配データ読み込み元アドレス生成部142と最外周データ勾配判定部143とは、中心に位置する真頂点画素から順次、勾配方向を判定する領域を広げていき、現在処理を行っている1つの勾配データ領域の勾配データに含まれる全ての周辺画素が、中心とした周辺画素に向かう勾配方向を表していないと判定された場合に、同じ真頂点画素に属する周辺画素に領域ラベルを付与する処理、つまり、領域ラベルの生成処理を終了する。図9Gには、図9Fにおいて丸で囲んだ周辺画素を順次中心として勾配方向を判定した結果に応じて領域ラベルを付与し、演算を行う対象の真頂点画素(図9A、図9B、および図9Dにおいて「×」印で示した真頂点画素)に対する領域ラベルの生成処理が終了した、現在処理を行っている勾配データ領域に対応する領域ラベルデータの一例を示している。
次に、領域ラベル生成部14に備えたそれぞれの構成要素の動作について説明する。まず、頂点座標探索部141における頂点座標の探索処理について説明する。図10は、本発明の実施形態の画像処理装置1に備えた頂点座標探索部141における処理手順を示したフローチャートである。頂点座標探索部141は、勾配データ生成部12による勾配データの生成が終了し、生成した勾配データが勾配データ記憶部13に記憶されると、頂点座標の探索を開始する。
頂点座標の探索を開始すると、頂点座標探索部141は、ステップS21のループにおいて、例えば、左上に配置された画素からラスター順に、勾配データ記憶部13に記憶された勾配データを読み出し、読み出した勾配データが真頂点画素または仮頂点画素に対応する勾配データであるか否かの判定処理、つまり、真頂点画素および仮頂点画素の検出処理を、勾配データに含まれる全ての画素に対して行う。
頂点座標探索部141における勾配データに対する判定処理では、まず、読み出した勾配データの値が、頂点画素を表す頂点ラベルの値であるか否かを判定する(ステップS22)。例えば、頂点座標探索部141は、ステップS22において、勾配データの値が、頂点ラベルの値=「8」以上の値であるか否かを判定する。
ステップS22において、勾配データの値が頂点ラベルの値である、つまり、読み出した勾配データが頂点画素の勾配データであると判定した場合(ステップS22の“YES”)、頂点座標探索部141は、ステップS23において、現在の頂点ラベルが付与された頂点画素が最外周画素であるか否かを判定する(ステップS23)。
ステップS23において、現在の頂点画素が最外周画素ではない、つまり、勾配データ領域の最外周以外に位置する真頂点画素であると判定した場合(ステップS23の“NO”)、頂点座標探索部141は、ステップS24において、現在の真頂点画素の位置を表す真頂点座標を、勾配データ読み込み元アドレス生成部142に出力する。例えば、図9A〜図9Gにおいて「×」印で示した真頂点画素の位置を表す真頂点座標を、勾配データ読み込み元アドレス生成部142に出力する。そして、頂点座標探索部141は、ステップS21に戻って、次の勾配データに対する判定処理を行う。
一方、ステップS23において、現在の頂点画素が最外周画素である、つまり、読み出した勾配データが頂点画素の勾配データであるが、この頂点画素が勾配データ領域の最外周に位置している仮頂点画素として扱う頂点画素であると判定した場合(ステップS23の“YES”)、頂点座標探索部141は、ステップS25において、現在の頂点画素を仮頂点画素として扱って、現在の仮頂点画素の位置を表す仮頂点座標を、勾配データ読み込み元アドレス生成部142に出力する。そして、頂点座標探索部141は、ステップS21に戻って、次の勾配データに対する判定処理を行う。
一方、ステップS22において、勾配データの値が頂点ラベルの値ではない、つまり、読み出した勾配データが頂点画素の勾配データではないと判定した場合(ステップS22の“NO”)、頂点座標探索部141は、読み出した勾配データが最外周画素の勾配データであり、この勾配データの値が、勾配データ領域の外側に向かうことを表す勾配ラベルの値であるか否かを判定する(ステップS26)。つまり、頂点座標探索部141は、ステップS26において、読み出した勾配データが、隣接する勾配データ領域に属する最外周画素(仮頂点画素)であるか否かを判定する。
ステップS26において、読み出した勾配データが仮頂点画素の勾配データであると判定した場合(ステップS26の“YES”)、頂点座標探索部141は、ステップS25において、現在の勾配ラベルが付与された仮頂点画素の位置を表す仮頂点座標を、勾配データ読み込み元アドレス生成部142に出力する。そして、頂点座標探索部141は、ステップS21に戻って、次の勾配データに対する判定処理を行う。
一方、ステップS26において、読み出した勾配データが仮頂点画素の勾配データではないと判定した場合(ステップS26の“NO”)、頂点座標探索部141は、ステップS21に戻って、次の勾配データに対する判定処理を行う。
このように、頂点座標探索部141は、ステップS21のループで表された勾配データに対する判定処理を、勾配データに含まれる全ての画素に対して行って、勾配データ記憶部13に記憶された勾配データに含まれる全ての真頂点画素および仮頂点画素を検出し、検出した真頂点画素および仮頂点画素のそれぞれに対応する真頂点座標または仮頂点座標を、勾配データ読み込み元アドレス生成部142に出力する。これにより、勾配データ記憶部13に記憶された1つの勾配データ領域の勾配データに対する頂点座標の探索処理が終了する。
そして、勾配データ読み込み元アドレス生成部142および最外周データ勾配判定部143は、勾配データ記憶部13に記憶された勾配データにおいて同じ真頂点画素または仮頂点画素に属する周辺画素に領域ラベルを付与する領域ラベルの生成処理を行う。
続いて、勾配データ読み込み元アドレス生成部142における処理について説明する。図11は、本発明の実施形態の画像処理装置1に備えた勾配データ読み込み元アドレス生成部142における処理手順を示したフローチャートである。なお、勾配データ読み込み元アドレス生成部142における処理は、真頂点画素に対する処理であっても、仮頂点画素に対する処理であっても同様に考えることができる。従って、以下の説明においては、勾配データ読み込み元アドレス生成部142が頂点画素に対して処理を行う場合について説明する。
勾配データ読み込み元アドレス生成部142は、演算を行う対象の頂点画素の位置を表す頂点座標が頂点座標探索部141から入力されると、まず、入力された頂点座標に対応する頂点画素の勾配データを読み出すための勾配データ読み込み元アドレスと、頂点画素の周囲に位置する8画素分の周辺画素の勾配データを読み出すための勾配データ読み込み元アドレスとを生成する。そして、勾配データ読み込み元アドレス生成部142は、生成した勾配データ読み込み元アドレスを、勾配データ記憶部13に出力する(ステップS31)。
これにより、勾配データ記憶部13は、勾配データ読み込み元アドレスで指定された記憶領域に記憶している頂点画素の勾配データ(頂点ラベル)と、頂点画素の周囲に位置する8画素分の周囲画素の勾配データ(勾配ラベル)とを、最外周データ勾配判定部143に出力する。また、勾配データ読み込み元アドレス生成部142は、生成した勾配データ読み込み元アドレスを、最外周データ勾配判定部143に出力する。これにより、最外周データ勾配判定部143は、後述する処理手順によって、頂点画素に向かう勾配方向を表している周辺画素を判定し、勾配判定結果を勾配データ読み込み元アドレス生成部142に出力する。
続いて、勾配データ読み込み元アドレス生成部142は、最外周データ勾配判定部143から出力された勾配判定結果、つまり、同じ頂点画素に属すると判定された周辺画素の位置を表す座標を取得する(ステップS32)。
続いて、勾配データ読み込み元アドレス生成部142は、勾配判定結果に含まれるそれぞれの周辺画素の座標を記憶する(ステップS33)。また、勾配データ読み込み元アドレス生成部142は、勾配判定結果に含まれる周辺画素の座標数を記憶する(ステップS34)。例えば、勾配判定結果が、図9Bに示したように、8つの周辺画素の勾配データの内、頂点画素の右下の周辺画素の勾配データ以外が、頂点画素に向かう勾配方向を表している状態である場合、勾配データ読み込み元アドレス生成部142は、ステップS34の処理において、「7」を、周辺画素の座標数として記憶する。
続いて、勾配データ読み込み元アドレス生成部142は、ステップS35のループにおいて、記憶した周辺画素の座標数分(図9Bに示した一例においては7回)、それぞれの周辺画素を中心とした勾配データ読み込み元アドレスの生成処理を行う。ステップS35のループでは、まず、記憶した周辺画素の座標の内、いずれか1つの周辺画素の座標を読み出す(ステップS36)。
続いて、勾配データ読み込み元アドレス生成部142は、読み出した座標の周辺画素を中心とした場合に、その周囲に位置する8画素分の周辺画素の勾配データを読み出すための勾配データ読み込み元アドレスを生成し、生成した勾配データ読み込み元アドレスを、勾配データ記憶部13に出力する(ステップS37)。例えば、勾配データ読み込み元アドレス生成部142は、図9Dに示したように、いずれか1つの周辺画素を中心とした、周囲に位置する8画素分の周辺画素の勾配データを読み出すための勾配データ読み込み元アドレスを生成して、勾配データ記憶部13に出力する。また、勾配データ読み込み元アドレス生成部142は、生成した勾配データ読み込み元アドレスを、最外周データ勾配判定部143に出力する。
これにより、勾配データ記憶部13は、ステップS31の処理のときと同様に、勾配データ読み込み元アドレスで指定された記憶領域に記憶している周囲画素の勾配データ(勾配ラベル)を、最外周データ勾配判定部143に出力する。そして、最外周データ勾配判定部143は、後述する処理手順によって同様に、中心とした周辺画素に向かう勾配方向を表している周辺画素を判定し、新たな勾配判定結果を勾配データ読み込み元アドレス生成部142に出力する。
続いて、勾配データ読み込み元アドレス生成部142は、最外周データ勾配判定部143から出力された新たな勾配判定結果、つまり、同じ頂点画素に属すると判定されたさらに外周の周辺画素の位置を表す座標を取得する(ステップS38)。
続いて、勾配データ読み込み元アドレス生成部142は、勾配判定結果に含まれるそれぞれの周辺画素の座標を記憶する(ステップS39)。なお、このステップS39の処理において記憶する周辺画素の座標は、ステップS33の処理において記憶した周辺画素の座標に追加して記憶する。この場合、周辺画素の座標を記憶する記憶領域は、例えば、FIFO形式の記憶領域が考えられる。なお、このステップS39の処理において周辺画素の座標を記憶する記憶領域は、ステップS33の処理において周辺画素の座標を記憶した記憶領域と異なる記憶領域であってもよい。
また、勾配データ読み込み元アドレス生成部142は、勾配判定結果に含まれる周辺画素の座標数を記憶する(ステップS310)。例えば、勾配判定結果が、図9Dに示したように、8つの周辺画素の勾配データの内、左側中央の周辺画素の勾配データのみが、中心とした周辺画素に向かう勾配方向を表している状態である場合、勾配データ読み込み元アドレス生成部142は、ステップS310の処理において、「1」を、周辺画素の座標数として記憶する。
なお、このステップS310の処理において記憶する周辺画素の座標数は、ステップS34の処理において記憶した周辺画素の座標数に累積加算して記憶する。従って、ステップS35のループを、ステップS34の処理において記憶した周辺画素の座標数=「7」回繰り返し、図9Cにおいて丸で囲んで示した、領域ラベルを付与した周辺画素の領域の勾配データの読み出しが終了すると、ステップS310の処理において記憶する周辺画素の座標数は、図9Fにおいて丸で囲んで示した周辺画素の数=「11」となる。
なお、周辺画素の座標数を記憶する記憶領域は、例えば、ステップS34の処理において周辺画素の座標数を記憶した記憶領域と異なるカウンタ形式の記憶領域が考えられる。ただし、ステップS34の処理において記憶した周辺画素の座標数が、今回のステップS35のループの処理を開始する際に、ステップS35のループカウンタに移行されて空き状態となる構成である場合には、ステップS310の処理において周辺画素の座標数を記憶する記憶領域と、ステップS34の処理において周辺画素の座標数を記憶した記憶領域と共有してもよい。そして、ステップS310の処理において記憶した周辺画素の座標数は、今回のステップS35のループの処理を終了した後に、ステップS35のループの処理を再度繰り返すか否かの判定に用いられる。
その後、勾配データ読み込み元アドレス生成部142は、ステップS34の処理において記憶した周辺画素の座標数=「7」回のステップS35のループを終了すると、ステップS310の処理において記憶されている周辺画素の座標数が「0」であるか否かを判定する(ステップS311)。
ステップS311において、記憶されている周辺画素の座標数が「0」でない、つまり、同じ頂点画素に属すると判定された周辺画素の勾配データの読み出しが終了していないと判定した場合(ステップS311の“NO”)、勾配データ読み込み元アドレス生成部142は、ステップS35に戻って、周辺画素の勾配データを読み出すための勾配データ読み込み元アドレスの生成を継続する。このとき、ステップS35のループを繰り返す回数は、ステップS310の処理において記憶された周辺画素の座標数分(図9Fに示した一例においては11回)である。これにより、例えば、図9Fにおいて丸で囲んで示した、領域ラベルを付与した周辺画素の領域の勾配データの読み出しを行う。
一方、ステップS311において、記憶されている周辺画素の座標数が「0」である、つまり、同じ頂点画素に属すると判定された周辺画素の勾配データの読み出しが終了したと判定した場合(ステップS311の“YES”)、勾配データ読み込み元アドレス生成部142は、勾配データ読み込み元アドレスを生成する処理を終了する。これにより、例えば、図9Gに示したように領域ラベルを付与した、現在処理を行っている勾配データ領域に対応する領域ラベルデータが生成される。
続いて、最外周データ勾配判定部143における処理について説明する。図12は、本発明の実施形態の画像処理装置1に備えた最外周データ勾配判定部143における処理手順を示したフローチャートである。最外周データ勾配判定部143は、図12に示した処理手順を、図11に示した勾配データ読み込み元アドレス生成部142の処理手順におけるステップS31とステップS37とのそれぞれに対応して実行する。以下の説明においては、最外周データ勾配判定部143が、ステップS31に対応して実行するものとして説明する。なお、最外周データ勾配判定部143における処理は、真頂点画素に対する処理であっても、仮頂点画素に対する処理であっても同様に考えることができる。従って、以下の説明においては、最外周データ勾配判定部143が頂点画素に対して処理を行う場合について説明する。
最外周データ勾配判定部143は、勾配データ記憶部13から、勾配データ読み込み元アドレスに対応した頂点画素の勾配データ(頂点ラベルまたは勾配ラベル)と、頂点画素の周囲に位置する8画素分の周囲画素の勾配データ(勾配ラベル)とを受け取る。また、最外周データ勾配判定部143は、勾配データ読み込み元アドレス生成部142が生成した勾配データ読み込み元アドレスを、頂点画素および周囲画素の位置を表す座標として受け取る(ステップS41)。
その後、最外周データ勾配判定部143は、受け取った頂点画素に対応する領域ラベルを生成し、生成した領域ラベルを記憶する。ここで最外周データ勾配判定部143が生成する領域ラベルは、受け取った頂点画素が真頂点画素である場合には、真頂点画素に対応した値の領域ラベルを生成し、受け取った頂点画素が仮頂点画素である場合には、仮頂点画素に対応した値の領域ラベルを生成する。そして、最外周データ勾配判定部143は、受け取った頂点画素に対応する値の領域ラベルを、現在の頂点画素の領域ラベルとして、領域ラベル記憶部16、対応するラベル統合情報生成部15、および領域ラベル統合処理制御部19のそれぞれに出力する。また、最外周データ勾配判定部143は、領域ラベルを出力する頂点画素の位置を表す座標を、領域ラベル書き込み先アドレスとして領域ラベル記憶部16、対応するラベル統合情報生成部15、および領域ラベル統合処理制御部19のそれぞれに出力する(ステップS42)。
続いて、最外周データ勾配判定部143は、ステップS43のループにおいて、受け取った8画素分の周囲画素の勾配データのそれぞれに対する勾配方向の判定処理を行う。ステップS43のループでは、まず、受け取った8画素分の周囲画素の勾配データの内、いずれか1つの周囲画素の勾配データに付与されている勾配ラベルが、中心の画素に向かう勾配方向を表しているか否か、つまり、同じ頂点画素に属しているか否かを判定する(ステップS44)。
ステップS44において、現在の周囲画素の勾配データに付与されている勾配ラベルが、中心の画素に向かう勾配方向を表していない、つまり、同じ頂点画素に属していないと判定した場合(ステップS44の“NO”)、最外周データ勾配判定部143は、次のいずれか1つの周囲画素に対するステップS43のループの処理を行う。
一方、ステップS44において、現在の周囲画素の勾配データに付与されている勾配ラベルが、中心の画素に向かう勾配方向を表している、つまり、同じ頂点画素に属していると判定した場合(ステップS44の“YES”)、最外周データ勾配判定部143は、ステップS45において、受け取った頂点画素に対応して生成した領域ラベルと同じ値の領域ラベルを、現在の周囲画素の領域ラベルとして領域ラベル記憶部16、対応するラベル統合情報生成部15、および領域ラベル統合処理制御部19のそれぞれに出力する。つまり、ステップS42において生成して記憶した領域ラベルを、現在の周囲画素の領域ラベルとして領域ラベル記憶部16、対応するラベル統合情報生成部15、および領域ラベル統合処理制御部19のそれぞれに出力する。また、最外周データ勾配判定部143は、領域ラベルを出力する周囲画素の位置を表す座標を、領域ラベル書き込み先アドレスとして、領域ラベル記憶部16、対応するラベル統合情報生成部15、および領域ラベル統合処理制御部19のそれぞれに出力する。
続いて、最外周データ勾配判定部143は、領域ラベルを出力する周囲画素の位置を表す座標を、勾配判定結果として勾配データ読み込み元アドレス生成部142に出力する(ステップS46)。そして、最外周データ勾配判定部143は、次のいずれか1つの周囲画素に対するステップS43のループの処理を行う。
このようにして、最外周データ勾配判定部143は、受け取った8画素分の周囲画素の勾配データのそれぞれに対して、勾配方向の判定処理を行う。これにより、例えば、図9C、図9E、図9Fというように、同じ真頂点画素に属する周辺画素に領域ラベルを付与した領域が順次広がっていき、図9Gに示したような、現在処理を行っている1つの勾配データ領域に対応する領域ラベルデータが領域ラベル記憶部16に記憶される。
このような構成および動作によって、領域ラベル生成部14のそれぞれは、対応する勾配データ領域において同じ真頂点画素または仮頂点画素に属する周辺画素に同じ領域ラベルを付与する領域分割処理を行う。この領域分割処理では、領域ラベル生成部14は、真頂点画素または仮頂点画素から周囲画素へと広がるように領域ラベルを付与する。
なお、上述した説明では、図12に示した最外周データ勾配判定部143の処理手順を、図11に示した勾配データ読み込み元アドレス生成部142の処理手順のステップS31に対応して実行する場合について説明した。しかし、上述したように、図12に示した処理手順は、図11に示した勾配データ読み込み元アドレス生成部142の処理手順のステップS31とステップS37とのそれぞれに対応して実行される。図12に示した処理手順が、図11に示した勾配データ読み込み元アドレス生成部142の処理手順のステップS37に対応して実行される場合、最外周データ勾配判定部143は、前回の図12に示した処理手順によって同じ頂点画素に属すると判定した周辺画素を中心としたときの勾配データおよび座標を、頂点画素の勾配データおよび座標として受け取る。このため、受け取った頂点画素に対応する値の領域ラベルは、すでに生成済みである。従って、最外周データ勾配判定部143は、今回のステップS42の処理において、前回の図12に示した処理手順のステップS42の処理において生成した領域ラベルと同じ値の領域ラベルを生成して、領域ラベル記憶部16、対応するラベル統合情報生成部15、および領域ラベル統合処理制御部19のそれぞれに出力する。また、最外周データ勾配判定部143は、今回のステップS45の処理において、前回の図12に示した処理手順のステップS45の処理において出力した領域ラベルと同じ値の領域ラベルを、領域ラベル記憶部16、対応するラベル統合情報生成部15、および領域ラベル統合処理制御部19のそれぞれに出力する。
このようにして、画像処理装置1に備えた領域ラベル生成部14のそれぞれは、対応する勾配データ記憶部13に記憶された1つの勾配データ領域の勾配データに対する領域ラベルの生成処理を行って、1つの矩形輝度画像に対応する領域ラベルデータを生成する。これにより、領域ラベル記憶部16には、それぞれの矩形輝度画像に対応する複数の領域ラベルデータが記憶される。
次に、画像処理装置1に備えたラベル統合情報生成部15の動作について説明する。まず、画像処理装置1が行うラベル統合処理の概念について説明する。図13Aおよび図13Bは、本発明の実施形態の画像処理装置1におけるラベル統合処理の概念を説明する図である。図13Aには、隣接する2つのラベル領域を統合する前の状態を模式的に示している。また、図13Bには、隣接する2つのラベル領域を統合した後の状態を模式的に示している。
図13Aに示したように、それぞれの領域ラベル生成部14が対応する勾配データ領域の勾配データに基づいて領域ラベルを付与したラベル領域L1とラベル領域L2との領域ラベルデータは、隣接するラベル領域との繋がりが反映されていない状態である。
このため、ラベル領域L1に含まれる領域D11と、ラベル領域L2に含まれる領域D21とは、同じ真頂点画素T1に属する周辺画素の領域であるにもかかわらず、別のラベル領域として領域ラベル記憶部16に記憶されている。より具体的には、領域D11は、真頂点画素T1に属する周辺画素の領域として領域ラベル記憶部16に記憶されているが、領域D21は、ラベル領域L2の最外周に位置する仮頂点画素に属する周辺画素の領域として領域ラベル記憶部16に記憶されている。
また、同様に、ラベル領域L1に含まれる領域D12と、ラベル領域L2に含まれる領域D22とも、同じ真頂点画素T2に属する周辺画素の領域であるにもかかわらず、別のラベル領域として領域ラベル記憶部16に記憶されている。より具体的には、領域D22は、真頂点画素T2に属する周辺画素の領域として領域ラベル記憶部16に記憶されているが、領域D12は、ラベル領域L1の最外周に位置する仮頂点画素に属する周辺画素の領域として領域ラベル記憶部16に記憶されている。
これは、上述したように、画像処理装置1では、それぞれの領域ラベルデータを、異なる領域ラベル生成部14が生成することによるものである。そこで、画像処理装置1では、同じ真頂点画素に属する周辺画素に同じ領域ラベルを付与するように、それぞれの周辺画素に付与された領域ラベルを更新するラベル統合処理を行う。このラベル統合処理によって、図13Bに示したように、ラベル領域L1に含まれる領域D11と、ラベル領域L2に含まれる領域D21とのそれぞれが統合され、領域D11と領域D21とは、同じ真頂点画素T1に属することを表す同じ領域ラベルが付与される。また、同様に、ラベル領域L1に含まれる領域D12と、ラベル領域L2に含まれる領域D22とのそれぞれが統合され、領域D12と領域D22とは、同じ真頂点画素T2に属することを表す同じ領域ラベルが付与される。
画像処理装置1では、ラベル統合情報生成部15のそれぞれが、対応する領域ラベル生成部14が領域ラベルを付与したラベル領域と、他の領域ラベル生成部14が領域ラベルを付与した隣接するラベル領域とを統合するためのラベル統合情報を生成する。このラベル統合情報は、対応する領域ラベル生成部14が領域ラベルを付与した画素が、隣接するラベル領域に存在する真頂点画素に属する画素である場合に、この画素に付与される領域ラベルが最終的に、隣接するラベル領域に存在する真頂点画素に付与された頂点ラベルと同じ値となるようにするための情報である。
次に、画像処理装置1に備えたラベル統合情報生成部15が生成するラベル統合情報について説明する。図14は、本発明の実施形態の画像処理装置1に備えたラベル統合情報記憶部17に記憶されるラベル統合情報の構成の一例を示した図である。図14に示したラベル統合情報の構成の一例は、図8に示したラベル領域と領域ラベルの一例に対応したラベル統合情報の一例を示している。
上述したように、領域ラベル記憶部16には、分割したそれぞれの矩形輝度画像に対応する複数の領域ラベルデータが記憶される。そして、それぞれの領域ラベルデータは、隣接するラベル領域との繋がりが反映されていない状態である。ただし、画像処理装置1では、勾配データ生成部12のそれぞれが、隣接する勾配データ領域との境界部分に1画素分のオーバーラップ領域を確保した状態で勾配データを生成しているため、それぞれの勾配データに対応して領域ラベル生成部14が生成した領域ラベルデータにも、図8に示したように、隣接するラベル領域との境界部分に1画素分のオーバーラップ領域を含んでいる。
ラベル統合情報には、それぞれのラベル領域のオーバーラップ領域に存在するそれぞれの画素ごとに、ラベル領域の繋がりを表す情報が含まれている。より具体的には、ラベル統合情報には、オーバーラップ領域に存在するそれぞれの画素の位置をアドレスとし、そのアドレスで表される記憶領域に、オーバーラップ領域に存在する画素に付与される領域ラベルの値が記憶されている。つまり、図8に示したラベル領域と領域ラベルの一例に対応したラベル統合情報には、図14に示したように、オーバーラップ領域に位置する画素が真頂点画素または仮頂点画素であった場合に付与する領域ラベルと同じ数の記憶領域が、ラベル領域の繋がりを表す情報を記憶する記憶領域として予め準備される。
より具体的には、図14に示したアドレス=「0」〜アドレス=「i+j−2」が、オーバーラップ領域に存在するそれぞれの画素に割り当てられたアドレスであり、それぞれのアドレスで表される記憶領域に、オーバーラップ領域に存在する画素に付与される領域ラベルの値が、データとして記憶されている。なお、ラベル統合情報においてそれぞれのアドレスに対応するデータの初期値、つまり、それぞれの領域ラベルの値の初期値は、それぞれのアドレスの値と同じ値である。
このように、ラベル統合情報には、全てのオーバーラップ領域に存在するそれぞれの画素に対して1つのアドレスが割り当てられている。なお、オーバーラップ領域には、仮頂点画素が含まれている。これにより、領域ラベル統合部18は、それぞれのアドレスに対応する記憶領域に記憶されたデータ(領域ラベルの値)を参照することによって、同じ真頂点画素に属する周辺画素の領域ラベルを同じ値に更新するラベル統合処理を行うことができる。つまり、オーバーラップ領域に含まれる仮頂点画素に属する周辺画素の領域ラベルの値を、真頂点画素の領域ラベルの値に更新することができる。
また、ラベル統合情報には、オーバーラップ領域に存在するそれぞれの画素に割り当てられた記憶領域に続いて、真頂点画素に付与する頂点ラベルの値がデータとして記憶されている。上述したように、真頂点画素に付与する頂点ラベルの値の最小値は、オーバーラップ領域の画素に割り当てられた領域ラベルの値+1の値に、予め決めている。そこで、図14に示したラベル統合情報の構成の一例では、オーバーラップ領域に存在する最後の画素に割り当てられたアドレス=「i+j−2」に1を加えたアドレス=「m」に対応するデータを、真頂点画素に付与する頂点ラベルの最小値としている。
なお、上述したように、ラベル統合情報においてそれぞれのアドレスに対応するデータの初期値は、それぞれのアドレスの値であるため、真頂点画素に付与する頂点ラベルの最小値は「m」である。従って、領域ラベル生成部14は、真頂点画素に対応した領域ラベルを生成する場合、「m」以上の値の領域ラベルを生成する。つまり、画像処理装置1に備えたいずれかの領域ラベル生成部14によって最初に検出された真頂点画素には、領域ラベル=「m」が付与される(図12のステップS42参照)。そして、以降、いずれかの領域ラベル生成部14によって検出された真頂点画素には、「m+1」、「m+2」、・・・が、領域ラベルとして付与される。
なお、例えば、不図示の領域ラベル管理部によって領域ラベルの値を管理する場合、領域ラベル生成部14に備えた最外周データ勾配判定部143が領域ラベルを生成する、図12に示したステップS42の処理において、不図示の領域ラベル管理部が、ラベル統合情報を参照することによって、領域ラベルの値を管理してもよい。この場合、まず、ラベル統合情報においてアドレス=「m」以上で表される記憶領域のデータを初期値=「0」としておき、不図示の領域ラベル管理部は、現在の領域ラベルの初期値を「m」とする。そして、不図示の領域ラベル管理部は、領域ラベル生成部14に備えた最外周データ勾配判定部143から領域ラベルの生成(発行)が要求されるごとに、以下のような動作を繰り返す。不図示の領域ラベル管理部は、最初に、現在の領域ラベルの値をアドレスとしたラベル統合情報の記憶領域のデータを、アドレスと同じ値に更新する。これにより、ラベル統合情報において現在の領域ラベルの値をアドレスとした記憶領域のデータ=「0」が、アドレスと同じ値(最初は、「m」)に更新される。続いて、不図示の領域ラベル管理部は、データを更新したラベル統合情報のアドレスの値を、生成した領域ラベルの値として最外周データ勾配判定部143に出力する。最後に、不図示の領域ラベル管理部は、現在の領域ラベルの値に「1」を加算して、領域ラベルの値をインクリメントする。このような動作によって、画像処理装置1に備えたいずれかの領域ラベル生成部14によって最初に検出された真頂点画素には、領域ラベル=「m」が付与され、以降に検出された真頂点画素には、領域ラベル=「m+1」、領域ラベル=「m+2」、・・・が順次付与される。なお、この場合、ラベル統合情報においてアドレスの値とデータの値とが同じ値ではない記憶領域、またはアドレス=「m」以上でデータの値が初期値=「0」である記憶領域を検出することによって、真頂点画素の数を得ることができる。
次に、画像処理装置1に備えたラベル統合情報生成部15におけるラベル統合情報の生成処理について説明する。図15は、本発明の実施形態の画像処理装置1に備えたラベル統合情報生成部15における処理手順を示したフローチャートである。
ラベル統合情報生成部15は、対応する領域ラベル生成部14から、画素に付与した領域ラベルと、この領域ラベルを付与した画素の位置を表す領域ラベル書き込み先アドレスとが入力されると、ラベル統合情報の生成を開始する(ステップS51)。
ラベル統合情報の生成を開始すると、ラベル統合情報生成部15は、領域ラベル生成部14から入力された領域ラベル書き込み先アドレスが、ラベル領域において最外周に位置する最外周画素を表すアドレスであるか否かを判定する(ステップS52)。つまり、ラベル統合情報生成部15は、領域ラベル生成部14から入力された領域ラベルの値が、ラベル領域のオーバーラップ領域に存在する画素の領域ラベルの値であるか否かを判定する。言い換えれば、ラベル統合情報生成部15は、入力された領域ラベルが、仮頂点画素または仮頂点画素として扱われた真頂点画素の領域ラベルであるか否かを判定する。
なお、上述したように、ラベル統合情報においてそれぞれのアドレスに対応するデータ(領域ラベルの値)の初期値は、それぞれのアドレスの値である。従って、このステップS52の判定は、入力された領域ラベルの値と、図14に示したラベル統合情報におけるアドレスの値とを比較することによっても行うことができる。より具体的には、領域ラベルの値がアドレス=「m」以上の値のアドレスである場合には、オーバーラップ領域の画素ではないと判定し、領域ラベルの値がアドレス=「m」よりも小さい値のアドレスである場合には、オーバーラップ領域の画素であると判定することができる。
ステップS52において、入力された領域ラベル書き込み先アドレスが、最外周画素を表すアドレスであると判定した場合(ステップS52の“YES”)、ラベル統合情報生成部15は、ラベル統合情報において領域ラベル書き込み先アドレスに対応する記憶領域に記憶されたデータ(領域ラベルの値)が、真頂点画素を表す領域ラベルの値であるか否かを判定する(ステップS53)。つまり、ラベル統合情報生成部15は、ラベル統合情報において領域ラベル書き込み先アドレスに対応する記憶領域に記憶されたデータが、「m」以上の値であるか否かを判定する。
ステップS53において、領域ラベル書き込み先アドレスに対応する領域ラベルの値が、真頂点画素を表す領域ラベルの値であると判定した場合(ステップS53の“YES”)、ラベル統合情報生成部15は、ステップS55の処理に進む。つまり、ラベル統合情報生成部15は、領域ラベル書き込み先アドレスに対応する領域ラベルの値が、他のラベル統合情報生成部15によってすでに書き換えられた(更新された)真頂点画素を表す領域ラベルの値(「m」以上の値)である場合、領域ラベル書き込み先アドレスに対応する記憶領域に記憶されたデータを書き換えずに、ステップS55の処理に進む。言い換えれば、ラベル統合情報を更新せずに、ステップS55の処理に進む。
一方、ステップS53において、領域ラベル書き込み先アドレスに対応する領域ラベルの値が、真頂点画素を表す領域ラベルの値ではないと判定した場合(ステップS53の“NO”)、ラベル統合情報生成部15は、ステップS54において、入力された領域ラベル書き込み先アドレスに対応するラベル統合情報の記憶領域のデータを、入力された領域ラベルの値に書き換える(更新する)。つまり、ラベル統合情報生成部15は、領域ラベル書き込み先アドレスに対応する領域ラベルの値が、隣接する他のラベル領域に位置する真頂点画素に属することを表す領域ラベルの値である、または真頂点画素ではあるが仮頂点画素として扱われたため、オーバーラップ領域に位置することを表す領域ラベルの値である場合、ラベル統合情報に記憶している領域ラベルの値を更新する。これにより、他のラベル領域に位置する真頂点画素に属する仮頂点画素の領域ラベルの値が、真頂点画素の領域ラベルの値に更新される。そして、ラベル統合情報生成部15は、ステップS55の処理に進む。
なお、入力された領域ラベル書き込み先アドレスが、仮頂点画素として扱われた真頂点画素のアドレスである場合にも、ステップS53の判定結果は“NO”になる。しかし、仮頂点画素として扱われた真頂点画素に付与される領域ラベルは、いずれのラベル統合情報生成部15も、オーバーラップ領域に位置することを表す同じ値の領域ラベルを付与する。従って、ステップS54の処理によってラベル統合情報を更新した場合でも、ラベル統合情報の記憶領域のデータ(領域ラベルの値)は同じである。つまり、ラベル統合情報を更新しないのと同様である。このため、例えば、ラベル統合情報生成部15が、仮頂点画素として扱われた真頂点画素であることを判別することができる場合には、ラベル統合情報を更新せずに、ステップS55の処理に進んでもよい。
一方、ステップS52において、入力された領域ラベル書き込み先アドレスが、最外周画素を表すアドレスではないと判定した場合(ステップS52の“NO”)、ラベル統合情報生成部15は、ステップS55の処理に進む。つまり、ラベル統合情報生成部15は、領域ラベル生成部14から入力された領域ラベルの値が、ラベル領域のオーバーラップ領域以外に存在する真頂点画素を表す領域ラベルの値(「m」以上の値)である場合、領域ラベル書き込み先アドレスに対応する記憶領域に記憶されたデータを書き換えずに(ラベル統合情報を更新せずに)、ステップS55の処理に進む。
続いて、ラベル統合情報生成部15は、対応するラベル領域に含まれる全ての画素に対して判定を完了したか否かを判定する(ステップS55)。
ステップS55において、全ての画素に対する判定を完了していないと判定した場合(ステップS55の“NO”)、ラベル統合情報生成部15は、ステップS51に戻って、対応する領域ラベル生成部14からの領域ラベルと領域ラベル書き込み先アドレスとの入力を待ち、次の領域ラベルと領域ラベル書き込み先アドレスとが入力されると、ステップS52〜ステップS55までのラベル統合情報の生成処理を繰り返す。
一方、ステップS55において、全ての画素に対する判定を完了したと判定した場合(ステップS55の“YES”)、ラベル統合情報生成部15は、ラベル統合情報の生成処理を終了する。
このように、画像処理装置1に備えた複数のラベル統合情報生成部15のそれぞれは、対応する領域ラベル生成部14から入力された領域ラベルと領域ラベル書き込み先アドレスとに基づいて、ラベル統合情報の生成処理(更新処理)を行う。そして、画像処理装置1では、全てのラベル領域に対してラベル統合情報生成部15によるラベル統合情報の生成処理が終了すると、最終的なラベル統合情報が生成される。この最終的なラベル統合情報の記憶領域のデータ(領域ラベルの値)は、更新前のラベル統合情報におけるオーバーラップ領域のデータ、つまり、領域ラベルの初期値が、隣接するラベル領域に位置する真頂点画素に属する周辺画素の領域ラベルの値、または仮頂点画素として扱われた真頂点画素であることを表すオーバーラップ領域の領域ラベルの値となる。
ここで、ラベル統合情報生成部15におけるラベル統合情報の生成処理の一例を説明する。図16A〜図16Cは、本発明の実施形態の画像処理装置1に備えたラベル統合情報生成部15におけるラベル統合情報の生成処理の一例を模式的に示した図である。図16Aには、ラベル統合処理を行う前の隣接する2つのラベル領域の状態の一例を模式的に示している。また、図16Bには、ラベル統合情報生成部15が更新したラベル統合情報の一例を示している。また、図16Cには、ラベル統合処理を行った後の隣接する2つのラベル領域の状態の一例を模式的に示している。
図16Aに示したように、いずれかの領域ラベル生成部14が対応する勾配データ領域の勾配データに基づいて領域ラベルを付与したそれぞれのラベル領域に含まれる画素には、それぞれの画素が属する頂点画素の領域ラベルの値と同じ値の領域ラベルが付与されている。
より具体的には、ラベル領域L1に含まれる周辺画素P11〜周辺画素P13のそれぞれには、仮頂点画素TP1と同じ値の領域ラベルが付与されている。ただし、仮頂点画素TP1は、真頂点画素ではなく、ラベル領域L2に含まれる真頂点画素T2に属する周辺画素であるが、ラベル領域L1の最外周のオーバーラップ領域に位置する画素であるため、領域ラベル生成部14によって仮頂点画素として処理された周辺画素である。従って、仮頂点画素TP1に付与された領域ラベルは、真頂点画素であることを表す値の領域ラベルではなく、オーバーラップ領域に位置することを表す値の領域ラベルとなっている。なお、周辺画素P10は、ラベル領域L1に含まれる異なる真頂点画素に属する周辺画素であるため、仮頂点画素TP1と異なる値の領域ラベルが付与されている。
また、ラベル領域L2に含まれる周辺画素P21および周辺画素P22のそれぞれには、真頂点画素T2と同じ値の領域ラベルが付与されている。つまり、真頂点画素T2は、オーバーラップ領域以外に存在するため、「m」以上の値の領域ラベルが付与されており、周辺画素P21および周辺画素P22のそれぞれには、真頂点画素T2と同じ値の領域ラベルが付与されている。ここで、周辺画素P21は、ラベル領域L2の最外周のオーバーラップ領域に位置する画素であり、仮頂点画素TP1と同じ画素である。
ここで、図16Bに示したように、仮頂点画素TP1に対応するラベル統合情報のアドレスをアドレス=「10」とし、真頂点画素T2に対応するラベル統合情報のアドレスをアドレス=「20」とした場合を考える。なお、上述したように、ラベル統合情報は、オーバーラップ領域に存在するそれぞれの画素に割り当てられた記憶領域と、それぞれの真頂点画素に割り当てられた記憶領域とから構成される。従って、ラベル統合情報には、図16Bに示したように、アドレス=「10」とアドレス=「20」との間で、オーバーラップ領域に存在する画素に割り当てられた記憶領域と、真頂点画素に割り当てられた記憶領域とが区切られている。
そして、いずれかのラベル統合情報生成部15が、ラベル領域L1およびラベル領域L2のそれぞれの領域ラベルおよび領域ラベル書き込み先アドレスに基づいて、上述したラベル統合情報の生成処理を行うと、図16Bに示したようなラベル統合情報が生成される。
より具体的には、ラベル領域L1に対応するラベル統合情報生成部15(以下、「ラベル統合情報生成部15−1」とする)に、図15に示したステップS51において、仮頂点画素TP1に付与した領域ラベルと領域ラベル書き込み先アドレスとが入力されると、ラベル統合情報生成部15−1は、ステップS52において、仮頂点画素TP1がオーバーラップ領域に存在する画素であると判定する(ステップS52の“YES”)。そして、ラベル統合情報生成部15−1は、ステップS53において、仮頂点画素TP1の領域ラベル書き込み先アドレスに対応する記憶領域に記憶された領域ラベルの値が、真頂点画素を表す領域ラベルの値ではないと判定(ステップS53の“NO”)し、ステップS54において、ラベル統合情報のデータを、入力された領域ラベルの値に更新する。しかし、ラベル領域L1に対応するラベル統合情報生成部15−1に入力された領域ラベルの値は、仮頂点画素TP1に対応する値であるため、ラベル統合情報のデータは、更新の前後で変化しない。
一方、ラベル領域L2に対応するラベル統合情報生成部15(以下、「ラベル統合情報生成部15−2」とする)に、ステップS51において、周辺画素P21に付与した領域ラベルと領域ラベル書き込み先アドレスとが入力されると、ラベル統合情報生成部15−2は、ステップS52において、周辺画素P21がオーバーラップ領域に存在する画素であると判定する(ステップS52の“YES”)。そして、ラベル統合情報生成部15−2は、ステップS53において、周辺画素P21の領域ラベル書き込み先アドレス、つまり、仮頂点画素TP1の領域ラベル書き込み先アドレスと同じアドレスに対応する記憶領域に記憶された領域ラベルの値が、真頂点画素を表す領域ラベルの値ではないと判定(ステップS53の“NO”)し、ステップS54において、ラベル統合情報のデータを、入力された領域ラベルの値に更新する。このように、ラベル統合情報は、ラベル領域L2に対応するラベル統合情報生成部15−2によって、周辺画素P21=仮頂点画素TP1の領域ラベル書き込み先アドレスに対応する記憶領域のデータが、周辺画素P21に付与された領域ラベルの値、つまり、真頂点画素T2に付与された領域ラベルと同じ値に更新される。
より具体的には、仮頂点画素TP1に対応するアドレス=「10」のデータが、真頂点画素T2に対応するアドレス=「20」に書き換えられたラベル統合情報が生成される。このラベル統合情報は、ラベル領域L1とラベル領域L2とを統合した場合、図16Cに示したように、オーバーラップ領域に位置する仮頂点画素TP1と周辺画素P21とが共に、真頂点画素T2に属することを表している。
このようにして、画像処理装置1に備えたラベル統合情報生成部15のそれぞれは、対応する領域ラベル生成部14から入力された領域ラベルと領域ラベル書き込み先アドレスとに基づいてラベル統合情報の生成処理を行って、異なるラベル統合情報生成部15によって同じ画素に付与された異なる領域ラベルの値を、真頂点画素の領域ラベルの値に変更するためのラベル統合情報を生成する。これにより、画像処理装置1に備えた領域ラベル統合部18のそれぞれが、領域ラベル生成部14のそれぞれが領域ラベルを付与した異なるラベル領域を統合することができる。つまり、画像処理装置1において輝度画像を分割して処理した領域ラベルを、1つの輝度画像の領域ラベルに統合することができる。
このとき、画像処理装置1に備えた領域ラベル統合部18のそれぞれは、分割されたそれぞれのラベル領域の繋がりを表すラベル統合情報がすでに生成されてラベル統合情報記憶部17に記憶されているため、いずれのラベル領域であっても、ラベル統合処理を行うことができる。このため、画像処理装置1に備えた複数の領域ラベル統合部18のそれぞれは、異なるラベル領域に対するラベル統合処理を並列に行うことができる。
次に、画像処理装置1に備えた領域ラベル統合部18の動作について説明する。図17は、本発明の実施形態の画像処理装置1に備えた領域ラベル統合部18における処理手順を示したフローチャートである。領域ラベル統合部18は、領域ラベル統合処理制御部19によって、処理を行う対象のラベル領域が割り当てられると、領域ラベル統合処理を開始する。
領域ラベル統合処理を開始すると、領域ラベル統合部18は、まず、割り当てられたラベル領域に含まれる領域ラベルを、例えば、左上に配置された画素からラスター順に、領域ラベル記憶部16から読み出す(ステップS61)。
続いて、領域ラベル統合部18は、読み出した領域ラベルの値が、真頂点画素であることを表す値の領域ラベルであるか否かを判定する(ステップS62)。このステップS62の判定は、読み出した領域ラベルの値が、「m」以上の値であるか否かによって判定することができる。より具体的には、領域ラベルの値が「m」以上の値である場合には、真頂点画素であることを表す値の領域ラベルであると判定し、領域ラベルの値が「m」よりも小さい値のアドレスである場合には、真頂点画素であることを表す値の領域ラベルではないと判定することができる。
ステップS62において、読み出した領域ラベルの値が真頂点画素であることを表す値ではない、つまり、現在の領域ラベルの値を変更(更新)する必要があると判定した場合(ステップS62の“NO”)、領域ラベル統合部18は、読み出した領域ラベルの値をラベル統合情報のアドレスにして、対応する記憶領域に記憶されたデータを読み出す(ステップS63)。
続いて、領域ラベル統合部18は、読み出したデータ、つまり、ラベル統合情報に記憶された領域ラベルの値を、バッファに一旦保存する(ステップS64)。
続いて、領域ラベル統合部18は、読み出したデータが、真頂点画素に対応する値であるか否かを判定する(ステップS65)。このステップS65の判定は、アドレスにした領域ラベルの値と、読み出したデータの値とが同じ値であるか否かによって判定する、つまり、アドレスとデータとが一致しているか否かによって判定することができる。より具体的には、アドレスの値と読み出したデータの値とが同じで値である場合には、真頂点画素に対応する値であると判定し、アドレスの値と読み出したデータの値とが異なる値である場合には、真頂点画素に対応する値ではないと判定する。
ステップS65において、読み出したデータが真頂点画素に対応する値ではない、つまり、真頂点画素に対応する値はラベル統合情報の別のアドレスに対応する記憶領域に記憶されていると判定した場合(ステップS65の“NO”)、領域ラベル統合部18は、ステップS63に戻る。そして、領域ラベル統合部18は、読み出したデータ(バッファに一旦保存した領域ラベルの値)をラベル統合情報のアドレスにして、対応する記憶領域に記憶されたデータを読み出し、ステップS63からステップS65の処理を繰り返す。つまり、領域ラベル統合部18は、別のアドレスに対応する記憶領域に記憶されたデータに対して、真頂点画素に対応する値であるか否かの判定を繰り返す。
一方、ステップS65において、読み出したデータが真頂点画素に対応する値であると判定した場合(ステップS65の“YES”)、領域ラベル統合部18は、現在の領域ラベルの値を、バッファに一旦保存したデータ(領域ラベルの値)に変更(更新)する(ステップS66)。これにより、ステップS61において読み出した領域ラベルの値が、真頂点画素の領域ラベルの値に更新される。そして、領域ラベル統合部18は、ステップS67の処理に進む。
一方、ステップS62において、読み出した領域ラベルの値が真頂点画素であることを表す値である、つまり、現在の領域ラベルの値を変更(更新)する必要がないと判定した場合(ステップS62の“YES”)、領域ラベル統合部18は、現在の領域ラベルの値を変更せずに(更新せずに)、ステップS67の処理に進む。
続いて、領域ラベル統合部18は、割り当てられたラベル領域に含まれる全ての画素に対して判定を完了したか否かを判定する(ステップS67)。
ステップS67において、全ての画素に対する判定を完了していないと判定した場合(ステップS67の“NO”)、領域ラベル統合部18は、ステップS61に戻って、割り当てられたラベル領域に含まれる次の領域ラベルを、領域ラベル記憶部16から読み出し、ステップS62〜ステップS67までの領域ラベル統合処理を繰り返す。
一方、ステップS67において、全ての画素に対する判定を完了したと判定した場合(ステップS67の“YES”)、領域ラベル統合部18は、領域ラベル統合処理を終了する。
このように、画像処理装置1に備えた複数の領域ラベル統合部18のそれぞれは、ラベル統合情報記憶部17に記憶されているラベル統合情報に基づいて、領域ラベル統合処理制御部19によって割り当てられたラベル領域の領域ラベルに対する領域ラベル統合処理を行う。そして、画像処理装置1では、全てのラベル領域に対する領域ラベル統合部18による領域ラベル統合処理が終了すると、最終的な領域ラベルデータが領域ラベル記憶部16に記憶される。この最終的な領域ラベルデータ(領域ラベルの値)は、領域ラベル生成部14によって領域ラベル記憶部16に記憶されたそれぞれの矩形輝度画像に対する領域ラベルを統合した領域ラベルデータ、つまり、画像処理装置1に入力された輝度画像に対する領域ラベルデータである。
ここで、領域ラベル統合部18における領域ラベル統合処理の一例を説明する。図18は、本発明の実施形態の画像処理装置1に備えた領域ラベル統合部18における領域ラベル統合処理の一例を模式的に示した図である。図18には、図16A〜図16Cに示した2つのラベル領域を統合する場合の領域ラベル統合処理の一例を模式的に示している。以下の説明においては、ラベル領域L1に含まれる真頂点画素T2に属する周辺画素である周辺画素P11の領域ラベルの値を、真頂点画素T2に付与された領域ラベルの値に更新する動作について説明する。
領域ラベル統合処理制御部19によって、画像処理装置1に備えたいずれかの領域ラベル統合部18に、処理を行うラベル領域L1が割り当てられると、領域ラベル統合部18は、ステップS61において、割り当てられたラベル領域L1に含まれる周辺画素P11の領域ラベルの値を、領域ラベル記憶部16から読み出す。ここでは、周辺画素P11の領域ラベルの値=「10」を読み出す。
そして、領域ラベル統合部18は、ステップS62において、読み出した周辺画素P11の領域ラベルの値=「10」が、真頂点画素であることを表す値の領域ラベルであるか否かを判定する。ここでは、領域ラベル統合部18は、読み出した周辺画素P11の領域ラベルの値=「10」が、真頂点画素であることを表す値ではないと判定する(ステップS62の“NO”)。従って、領域ラベル統合部18は、ステップS63−1において、周辺画素P11の領域ラベルの値=「10」をラベル統合情報のアドレスにして、対応する記憶領域に記憶されたデータ=「20」を読み出す。
そして、領域ラベル統合部18は、ステップS65において、読み出したデータ=「20」が、真頂点画素に対応する値であるか否かを判定する。ここでは、アドレス=「10」であり、データ=「20」であり、異なる値である。このため、領域ラベル統合部18は、読み出したデータが真頂点画素に対応する値ではないと判定する(ステップS65の“NO”)。従って、領域ラベル統合部18は、ステップS63−2において、読み出したデータの値=「20」をラベル統合情報のアドレスにして、対応する記憶領域に記憶されたデータ=「20」を読み出す。
そして、領域ラベル統合部18は、再度ステップS65において、読み出したデータ=「20」が、真頂点画素に対応する値であるか否かを判定する。ここでは、アドレス=「20」であり、データ=「20」であり、同じ値である。このため、領域ラベル統合部18は、読み出したデータが真頂点画素に対応する値であると判定する(ステップS65の“YES”)。従って、領域ラベル統合部18は、ステップS66において、周辺画素P11の領域ラベルの値=「10」を、読み出したデータの値=「20」、つまり、真頂点画素T2に付与された領域ラベルの値に変更(更新)する。
以降、同様に、領域ラベル統合部18は、割り当てられたラベル領域L1に含まれるそれぞれの画素の領域ラベルの値を、領域ラベル記憶部16から順次読み出して、ラベル領域L1に含まれる全ての画素に対して領域ラベル統合処理を行う。
このようにして、画像処理装置1に備えた領域ラベル統合部18のそれぞれは、領域ラベル統合処理制御部19によって割り当てられたラベル領域の領域ラベルに対する領域ラベル統合処理を行って、画像処理装置1に入力された輝度画像を分割して処理した領域ラベルを、最終的に1つの輝度画像に対する領域ラベルデータとして領域ラベル記憶部16に記憶する。
なお、画像処理装置1では、複数の領域ラベル統合部18のそれぞれが、異なるラベル領域に対するラベル統合処理を並列に行うことができる。しかし、それぞれの領域ラベル統合部18がラベル統合処理を行う際の演算負荷は、割り当てられたラベル領域によって異なる。
図19は、本発明の実施形態の画像処理装置1におけるラベル統合処理の一例を模式的に示した図である。図19には、隣接する4つのラベル領域を統合する状態を模式的に示している。
図19に示したように、それぞれのラベル領域を統合するために領域ラベル統合部18がラベル統合処理を行う画素の領域、つまり、領域ラベルの値を変更(更新)する画素の数は、必ずしも全てのラベル領域で同じ数ではない。例えば、領域ラベル統合処理制御部19によって、領域ラベル統合部18−1にラベル領域L1が割り当てられ、領域ラベル統合部18−2にラベル領域L2が割り当てられ、領域ラベル統合部18−3にラベル領域L3が割り当てられ、領域ラベル統合部18−4にラベル領域L4が割り当てられた場合を考える。
領域ラベル統合部18−1がラベル統合処理を行うラベル領域L1に含まれる画素は、全て真頂点画素T1に属することを表す領域ラベルが付与されている。このため、領域ラベル統合部18−1は、ラベル統合処理においていずれの画素の領域ラベルの値も更新しない。
また、領域ラベル統合部18−2がラベル統合処理を行うラベル領域L2には、ラベル領域L1に含まれる真頂点画素T1に属する画素の領域D21と、ラベル領域L4に含まれる真頂点画素T2に属する画素の領域D22とがある。このため、領域ラベル統合部18−2は、ラベル統合処理において全ての画素の領域ラベルの値を更新する。
また、領域ラベル統合部18−3がラベル統合処理を行うラベル領域L3には、ラベル領域L1に含まれる真頂点画素T1に属する画素の領域D31と、ラベル領域L4に含まれる真頂点画素T2に属する画素の領域D32とがある。このため、領域ラベル統合部18−3も、ラベル統合処理において全ての画素の領域ラベルの値を更新する。
また、領域ラベル統合部18−4がラベル統合処理を行うラベル領域L4には、ラベル領域L1に含まれる真頂点画素T1に属する画素の領域D41と、ラベル統合処理を行うラベル領域L4に含まれる真頂点画素T2に属する画素の領域D42とがある。このため、領域ラベル統合部18−4は、ラベル統合処理において一部の画素の領域ラベルの値を更新する。
このように、それぞれの領域ラベル統合部18においてラベル統合処理で領域ラベルの値を更新する画素の領域が異なると、ラベルの値を更新する画素の領域の大きさ(画素の数)に応じて、ラベル統合処理の演算負荷が異なってしまう。そこで、画像処理装置1では、上述したように、領域ラベル統合処理制御部19が、それぞれの領域ラベル統合部18の演算負荷がほぼ均等になるように、ラベル統合処理を行う対象のラベル領域を割り当てる。
次に、画像処理装置1に備えた領域ラベル統合処理制御部19の構成および動作について説明する。図20は、本発明の実施形態の画像処理装置1に備えた領域ラベル統合処理制御部19の構成を示したブロック図である。図20に示した領域ラベル統合処理制御部19は、仮頂点ラベル数計数部191と、仮頂点ラベル数記憶部192と、累積仮頂点ラベル数記憶部193と、ラベル領域割り当て部194と、を備えている。
仮頂点ラベル数計数部191は、画像処理装置1に備えたそれぞれの領域ラベル生成部14から入力された領域ラベル書き込み先アドレスと領域ラベルとに基づいて、仮頂点画素に付与される領域ラベルと同じ値の領域ラベルが付与された画素の数を、それぞれのラベル領域ごとに計数する。
より具体的には、仮頂点ラベル数計数部191は、それぞれの領域ラベル生成部14から入力された領域ラベル書き込み先アドレスに基づいて、入力された領域ラベルがいずれのラベル領域に含まれる領域ラベルであるかを判定する。仮頂点ラベル数計数部191におけるラベル領域の判定は、例えば、領域ラベル書き込み先アドレスの値によって判定することができる。
また、仮頂点ラベル数計数部191は、入力された領域ラベルが、真頂点画素に付与される領域ラベルであるか、仮頂点画素に付与される領域ラベルであるかを判定する。仮頂点ラベル数計数部191における領域ラベルの判定は、入力された領域ラベルが、「m」以上の値であるか否かによって判定することができる。つまり、領域ラベルの値が「m」以上の値である場合には、真頂点画素に付与される領域ラベルであると判定し、領域ラベルの値が「m」よりも小さい値である場合には、仮頂点画素に付与される領域ラベルであると判定することができる。そして、仮頂点ラベル数計数部191は、仮頂点画素に付与される領域ラベルであると判定した領域ラベル(以下、「仮頂点ラベル」という)が付与された画素の数を計数する。
仮頂点ラベル数計数部191は、計数した仮頂点ラベルが付与された画素の数(以下、「仮頂点ラベル数」という)と、仮頂点ラベル数を計数したラベル領域を表す情報とを、仮頂点ラベル数記憶部192に出力する。これにより、仮頂点ラベル数計数部191が現在計数した仮頂点ラベル数が、仮頂点ラベル数記憶部192に備えた対応するラベル領域の記憶領域に記憶される。
なお、仮頂点ラベル数計数部191には、同じ領域ラベル生成部14から連続して領域ラベル書き込み先アドレスと領域ラベルとが入力されるとは限らない。このため、仮頂点ラベル数計数部191の構成としては、例えば、入力された領域ラベル書き込み先アドレスに基づいて判定したラベル領域に対応する以前の仮頂点ラベル数を仮頂点ラベル数記憶部192から読み出し、仮頂点ラベル数を更新して再び仮頂点ラベル数記憶部192に出力する構成が考えられる。しかし、仮頂点ラベル数計数部191の構成は、上述した構成に限定されるものではなく、同様の機能を実現することができる構成であれば、いかなる構成であってもよい。
仮頂点ラベル数計数部191は、全てのラベル領域に対する仮頂点ラベルの計数が終了すると、このことを表す終了信号をラベル領域割り当て部194に出力する。
仮頂点ラベル数記憶部192は、画像処理装置1に入力された輝度画像を矩形輝度画像に分割する分割数の記憶領域、すなわち、ラベル領域の数分の記憶領域を備え、仮頂点ラベル数計数部191から入力された仮頂点ラベル数を、ラベル領域ごとに記憶する。
累積仮頂点ラベル数記憶部193は、画像処理装置1に備えた領域ラベル統合部18の数分の記憶領域を備え、それぞれの領域ラベル統合部18が領域ラベルの値を更新する画素数の累積数を記憶する。
ラベル領域割り当て部194は、仮頂点ラベル数計数部191による全てのラベル領域に対する仮頂点ラベルの計数が終了した後、仮頂点ラベル数記憶部192に記憶されたそれぞれのラベル領域における仮頂点ラベル数に基づいて、それぞれの領域ラベル統合部18がラベル統合処理を行うラベル領域を割り当てる。そして、ラベル領域割り当て部194は、割り当てたラベル領域を表す情報を、それぞれの領域ラベル統合部18に通知する。図20では、割り当てラベル領域情報を、領域ラベル統合部18のそれぞれに出力する構成を示している。これにより、領域ラベル統合部18のそれぞれは、割り当てられたラベル領域に対するラベル統合処理を行う。
なお、ラベル領域割り当て部194がそれぞれの領域ラベル統合部18に割り当てたラベル領域を通知する方法としては、例えば、割り当てるラベル領域の先頭の画素のアドレスの値や、先頭の画素の領域ラベル書き込み先アドレスの値を領域ラベル統合部18に通知する方法などが考えられる。しかし、ラベル領域割り当て部194が割り当てたラベル領域を領域ラベル統合部18に通知する方法は、上述した方法に限定されるものではなく、同様の機能を実現することができる方法であれば、いかなる方法であってもよい。
また、ラベル領域割り当て部194は、割り当てたラベル領域に含まれる仮頂点ラベル数を、領域ラベル統合部18ごとに累積する。そして、ラベル領域割り当て部194は、累積した仮頂点ラベル数(以下、「累積仮頂点ラベル数」という)と、仮頂点ラベル数を累積した領域ラベル統合部18を表す情報とを、累積仮頂点ラベル数記憶部193に出力する。これにより、累積仮頂点ラベル数記憶部193に備えた対応する領域ラベル統合部18の記憶領域に、それぞれの領域ラベル統合部18における累積仮頂点ラベル数、つまり、それぞれの領域ラベル統合部18がラベル統合処理において領域ラベルの値を更新する画素数が記憶される。ラベル領域割り当て部194は、累積仮頂点ラベル数記憶部193に記憶した、それぞれの領域ラベル統合部18の累積仮頂点ラベル数を、それぞれの領域ラベル統合部18における演算負荷として、領域ラベル統合部18ごとに管理する。
次に、領域ラベル統合処理制御部19の動作について説明する。図21A〜図21Dは、本発明の実施形態の画像処理装置1に備えた領域ラベル統合処理制御部19によるラベル領域の振り分け処理の概念を説明する図である。なお、図21Aにおいて、横軸は、画像処理装置1における輝度画像の分割数、つまり、ラベル統合処理を行うラベル領域の数を表し、縦軸は、それぞれのラベル領域における仮頂点ラベル数を表している。また、図21B〜図21Dにおいて、横軸は、画像処理装置1に備えたそれぞれの領域ラベル統合部18を表し、縦軸は、それぞれの領域ラベル統合部18に割り当てられた演算負荷を仮頂点ラベル数の累積(累積仮頂点ラベル数)で表している。図21A〜図21Dには、画像処理装置1に3つの領域ラベル統合部18(領域ラベル統合部18−1〜領域ラベル統合部18−3)を備えている場合において、領域ラベル統合処理制御部19によるラベル領域の振り分け処理の概念の一例を示している。そして、図21B〜図21Dには、領域ラベル統合部18に付与した符号において、「−」に続く数字の部分を、それぞれの領域ラベル統合部18を識別する情報として示している。
仮頂点ラベル数記憶部192には、図21Aに示したように、ラベル領域の数分の仮頂点ラベル数が記憶されている。ラベル領域割り当て部194は、仮頂点ラベル数記憶部192に仮頂点ラベル数が記憶されたそれぞれのラベル領域のラベル統合処理を、領域ラベル統合部18のそれぞれに割り当てる。図21Bには、仮頂点ラベル数記憶部192に仮頂点ラベル数が記憶された1つ目〜3つ目までのラベル領域(例えば、ラベル領域L1〜ラベル領域L3)を、領域ラベル統合部18−1〜領域ラベル統合部18−3のそれぞれに割り当てた状態を示している。より具体的には、1つ目のラベル領域L1を領域ラベル統合部18−1に、2つ目のラベル領域L2を領域ラベル統合部18−2に、3つ目のラベル領域L3を領域ラベル統合部18−3に、それぞれ割り当てた状態を示している。
その後、ラベル領域割り当て部194は、4つ目以降のラベル領域(例えば、ラベル領域L4〜ラベル領域L6)を、領域ラベル統合部18−1〜領域ラベル統合部18−3のいずれかに割り当てる際に、累積仮頂点ラベル数記憶部193に記憶されている累積仮頂点ラベル数が最も少ない、つまり、そのときに最も演算負荷が少ない領域ラベル統合部18に割り当てる。図21Cには、4つ目のラベル領域L4を、その前の段階(図21B参照)において最も演算負荷が少ない領域ラベル統合部18−3に割り当てた状態を示している。
このようにして、ラベル領域割り当て部194は、ラベル統合処理を行うラベル領域を順次、最も演算負荷が少ない領域ラベル統合部18に割り当てる。これにより、画像処理装置1に備えたそれぞれの領域ラベル統合部18がラベル統合処理を行う際の演算負荷(仮頂点ラベル数)の総和、つまり、累積仮頂点ラベル数は、図21Dに示したように、概ね均等になる。
ここで、領域ラベル統合処理制御部19におけるラベル領域の振り分け処理について説明する。図22は、本発明の実施形態の画像処理装置1に備えた領域ラベル統合処理制御部19における処理手順を示したフローチャートである。なお、以下の説明においては、画像処理装置1に、領域ラベル統合部18−1〜領域ラベル統合部18−3の3個の領域ラベル統合部18を備えている場合における領域ラベル統合処理制御部19に備えたラベル領域割り当て部194によるラベル領域の振り分け処理を、図21A〜図21Dを参照して説明する。
ラベル領域割り当て部194は、仮頂点ラベル数計数部191から全てのラベル領域に対する仮頂点ラベルの計数が終了したことを表す終了信号が入力されると、ラベル領域の振り分け処理を開始する。
ラベル領域の振り分け処理を開始すると、ラベル領域割り当て部194は、まず、1つ目のラベル領域の仮頂点ラベル数を、仮頂点ラベル数記憶部192から読み出す(ステップS71)。
ラベル領域割り当て部194は、ラベル領域が割り当てられていない領域ラベル統合部18があるか否かを判定する(ステップS72)。
なお、画像処理装置1では、画像処理装置1に備えた領域ラベル統合部18のそれぞれに対応して、領域ラベル統合部18に割り当てられた演算負荷、すなわち、累積仮頂点ラベル数を記憶する累積仮頂点ラベル数記憶部193を備えている。従って、ステップS72の判定では、それぞれの領域ラベル統合部18に対応する累積仮頂点ラベル数記憶部193に記憶された累積仮頂点ラベル数に基づいて判定する。
より具体的には、ラベル領域割り当て部194は、いずれかの領域ラベル統合部18に対応する累積仮頂点ラベル数記憶部193の記憶領域に記憶された累積仮頂点ラベル数が「0」である場合に、ラベル領域が割り当てられていない領域ラベル統合部18があると判定する。また、ラベル領域割り当て部194は、いずれの領域ラベル統合部18に対応する累積仮頂点ラベル数記憶部193の記憶領域に記憶された累積仮頂点ラベル数も「0」でない場合に、ラベル領域が割り当てられていない領域ラベル統合部18がないと判定する。
ステップS72において、ラベル領域が割り当てられていない領域ラベル統合部18があると判定した場合(ステップS71の“YES”)、ラベル領域割り当て部194は、ラベル領域が割り当てられていない領域ラベル統合部18に対応する累積仮頂点ラベル数記憶部193の記憶領域に、読み出したラベル領域の仮頂点ラベル数を記憶する(ステップS73)。図21Bに示した一例では、まず、領域ラベル統合部18−1に対応する累積仮頂点ラベル数記憶部193の記憶領域[1]に、1つ目のラベル領域L1に対応する仮頂点ラベル数を記憶する。なお、図21B〜図21Dにおいて縦軸に示した演算負荷の大きさを表す累積仮頂点ラベル数は、累積仮頂点ラベル数記憶部193においてそれぞれの領域ラベル統合部18に対応する記憶領域に記憶された累積仮頂点ラベル数を表していることに相当する。
続いて、ラベル領域割り当て部194は、ラベル領域が割り当てられていない領域ラベル統合部18に、ラベル統合処理を行う対象のラベル領域、つまり、割り当てたラベル領域を通知する(ステップS74)。
その後、ラベル領域割り当て部194は、ステップS71に戻って、ステップS71〜ステップS74の処理を繰り返す。これにより、図21Bに示したように、画像処理装置1に備えた領域ラベル統合部18−1〜領域ラベル統合部18−3のそれぞれに、1つ目のラベル領域L1〜3つ目のラベル領域L3までのラベル領域が順次割り当てられる。このとき、例えば、領域ラベル統合部18−2に対応する累積仮頂点ラベル数記憶部193の記憶領域[2]には、2つ目のラベル領域L2に対応する仮頂点ラベル数が記憶される。また、例えば、領域ラベル統合部18−3に対応する累積仮頂点ラベル数記憶部193の記憶領域[3]には、3つ目のラベル領域L3に対応する仮頂点ラベル数が記憶される。
一方、ステップS71において、ラベル領域の仮頂点ラベル数を、仮頂点ラベル数記憶部192から読み出し、ステップS72において、ラベル領域が割り当てられていない領域ラベル統合部18がないと判定した場合(ステップS71の“NO”)、ラベル領域割り当て部194は、ステップS75のループで表されたラベル領域の振り分け処理を行う。
ステップS75のループの処理では、画像処理装置1に備えた領域ラベル統合部18のそれぞれに対応する累積仮頂点ラベル数記憶部193の記憶領域を確認し、仮頂点ラベル数の総和(累積仮頂点ラベル数)が最も少ない、つまり、演算負荷が最も少ない領域ラベル統合部18を検出する。そして、ラベル領域割り当て部194は、累積仮頂点ラベル数が最も少ない領域ラベル統合部18に対応する累積仮頂点ラベル数記憶部193の記憶領域に、読み出したラベル領域の仮頂点ラベル数を加算して記憶する(ステップS76)。ここでは、例えば、4つ目のラベル領域の仮頂点ラベル数を、仮頂点ラベル数記憶部192から読み出してステップS75のループの処理を行うことにより、図21Cに示したように、領域ラベル統合部18−3に対応する累積仮頂点ラベル数記憶部193の記憶領域[3]に、4つ目のラベル領域L4に対応する仮頂点ラベル数を加算して記憶する。
続いて、ラベル領域割り当て部194は、読み出したラベル領域の仮頂点ラベル数を加算して記憶した累積仮頂点ラベル数記憶部193の記憶領域に対応する領域ラベル統合部18、つまり、累積仮頂点ラベル数が最も少なかった領域ラベル統合部18(ここでは、領域ラベル統合部18−3)に、割り当てたラベル領域を通知する(ステップS77)。
続いて、ラベル領域割り当て部194は、仮頂点ラベル数記憶部192から、全てのラベル領域の仮頂点ラベル数を読み出したか否かを判定する(ステップS78)。
ステップS78において、仮頂点ラベル数記憶部192から全てのラベル領域の仮頂点ラベル数を読み出していないと判定した場合(ステップS78の“NO”)、領域割り当て部194は、ステップS79において、次のラベル領域の仮頂点ラベル数を仮頂点ラベル数記憶部192から読み出し、ステップS75のループの処理を繰り返す。
ここでは、ラベル領域割り当て部194が、ステップS79において、例えば、5つ目のラベル領域L5に対応する仮頂点ラベル数を読み出したことによるステップS75のループの処理と、6つ目のラベル領域L6に対応する仮頂点ラベル数を読み出したことによるステップS75のループの処理とを行った場合を考える。この場合、5つ目のラベル領域L5に対するステップS75のループの処理では、ラベル領域割り当て部194は、ステップS76において、図21Dに示したように、領域ラベル統合部18−2に対応する累積仮頂点ラベル数記憶部193の記憶領域[2]に、5つ目のラベル領域L5に対応する仮頂点ラベル数を加算して記憶する。そして、ラベル領域割り当て部194は、ステップS77において、領域ラベル統合部18−2に、5つ目のラベル領域L5を割り当てたことを通知する。また、6つ目のラベル領域L6に対するステップS75のループの処理では、ラベル領域割り当て部194は、ステップS76において、図21Dに示したように、領域ラベル統合部18−1に対応する累積仮頂点ラベル数記憶部193の記憶領域[1]に、6つ目のラベル領域L6に対応する仮頂点ラベル数を加算して記憶する。そして、ラベル領域割り当て部194は、ステップS77において、領域ラベル統合部18−1に、6つ目のラベル領域L6を割り当てたことを通知する。
一方、ステップS78において、仮頂点ラベル数記憶部192から全てのラベル領域の仮頂点ラベル数を読み出したと判定した場合(ステップS78の“YES”)、領域割り当て部194は、ステップS75のループの処理を終了し、ラベル領域の振り分け処理を終了する。
このような構成および動作によって、領域ラベル統合処理制御部19は、画像処理装置1に入力された輝度画像を、画像処理装置1に備えた領域ラベル統合部18の数よりも多くの矩形輝度画像に分割した場合に、それぞれのラベル領域に対するラベル統合処理を、そのときに最も演算負荷が少ない領域ラベル統合部18に割り当てる。これにより、領域ラベル統合処理制御部19は、それぞれのラベル領域をそれぞれの領域ラベル統合部18に割り当てる際に、領域ラベル統合部18のそれぞれが行う演算負荷の総和が概ね均等になるように振り分けることができる。
これにより、画像処理装置1では、画像処理装置1に備えたそれぞれの領域ラベル統合部18を遊休させることなく稼働させ、ラベル統合処理の処理時間を短縮して、画像処理装置1における全体の処理時間の短縮を図ることができる。
本発明の実施形態によれば、入力された画像(輝度画像)の領域を複数の領域(矩形領域)に分割したそれぞれの分割画像(矩形輝度画像)に含まれるそれぞれの画素に対して予め定めたラベル(領域ラベル)を付与したラベルデータ(領域ラベルデータ)を生成する複数のラベルデータ生成部(勾配データ生成部12−1〜勾配データ生成部12−n、勾配データ記憶部13−1〜勾配データ記憶部13−n、および領域ラベル生成部14−1〜領域ラベル生成部14−n)と、ラベルデータ生成部(1つのラベルデータ生成部は、勾配データ生成部12、勾配データ記憶部13、および領域ラベル生成部14で構成される)のそれぞれに対応し、対応するラベルデータ生成部が生成した領域ラベルデータと、他のラベルデータ生成部が生成した領域ラベルデータとを統合するために、それぞれの領域ラベルデータに含まれる領域ラベルの繋がりを表したラベル統合情報を生成する複数のラベル統合情報生成部(ラベル統合情報生成部15−1〜ラベル統合情報生成部15−n)と、ラベル統合情報に基づいて、隣接する矩形輝度画像に対応した領域ラベルデータのそれぞれを統合した統合ラベルデータ(最終的な領域ラベルデータ)を生成する複数のラベル統合部(領域ラベル統合部18−1〜領域ラベル統合部18−n)と、それぞれの領域ラベル統合部18が領域ラベルデータを統合する際の演算の負荷が均等になるように、統合するラベル領域の領域ラベルデータを、領域ラベル統合部18のそれぞれに振り分けるラベル統合処理制御部(領域ラベル統合処理制御部19)と、を備え、ラベル統合情報生成部15は、領域ラベル統合部18がそれぞれのラベル領域の領域ラベルデータを統合する演算を行うより前に、全てのラベル領域の領域ラベルデータに対するラベル統合情報を生成する画像処理装置(画像処理装置1)が構成される。
また、本発明の実施形態によれば、ラベルデータ生成部のそれぞれは、対応する矩形輝度画像の周辺部分(オーバーラップ領域)に配置された他の矩形輝度画像のオーバーラップ領域と重複する画素である重複画素に対して、重複画素が配置された位置に応じて一意に決められた値の領域ラベルである第1のラベル(オーバーラップ領域に位置する真頂点画素または仮頂点画素に付与する領域ラベル)、または矩形輝度画像に含まれるオーバーラップ領域以外の位置に配置された画素に対して排他な値に決められた第1のラベルと異なる領域ラベルである第2のラベル(真頂点画素に付与する領域ラベル)を付与したラベル領域の領域ラベルデータを生成し、ラベル統合情報は、それぞれの矩形輝度画像に含まれるそれぞれの重複画素に対応した第1の記憶領域(オーバーラップ領域に存在する画素に付与される領域ラベルの値が記憶される記憶領域)に、第1のラベルの値(真頂点画素または仮頂点画素に付与する領域ラベルの値)を初期値として記憶し、第1の記憶領域以外の第2の記憶領域(真頂点画素に付与する頂点ラベルの値が記憶される記憶領域)に、それぞれの矩形輝度画像に含まれるオーバーラップ領域以外の位置に配置されたいずれかの真頂点画素に付与された第2のラベルの値(真頂点画素に付与する頂点ラベルの値)を記憶した情報であり、ラベル統合情報生成部15のそれぞれは、対応するラベルデータ生成部によっていずれかの重複画素に第2のラベルが付与された場合、ラベル統合情報において第2のラベルが付与された重複画素に対応する第1の記憶領域に記憶されている第1のラベルの値を、付与された第2のラベルの値に更新し、領域ラベル統合部18のそれぞれは、初期値と異なる値に更新されている第1の記憶領域に対応する重複画素に対して一意に決められた値と同じ値の第1のラベルが付与されている画素に付与された第1のラベルの値を、第1の記憶領域に記憶されている更新された値に変更する画像処理装置1が構成される。
また、本発明の実施形態によれば、ラベルデータ生成部のそれぞれは、対応する矩形輝度画像に含まれるそれぞれの画素に順次注目し、注目した画素(注目画素)の輝度値と、注目画素の周囲に位置する他の画素(周囲画素)の輝度値とに基づいて、輝度値が高い画素に向かう方向を示す値の第3のラベル(勾配ラベル)、または周囲に位置する全ての画素(周囲画素)よりも輝度値が高いことを示す値の第4のラベル(頂点ラベル)で、矩形輝度画像に含まれるそれぞれの画素を表した勾配データを生成する複数の勾配データ生成部(勾配データ生成部12)と、頂点ラベルで表された注目画素のそれぞれを頂点画素とし、頂点画素の位置を表す頂点座標に基づいて、矩形輝度画像内の領域を、同じ頂点画素に属する画素(周辺画素)が含まれる領域に分割し、分割した領域に含まれるそれぞれの周辺画素を、同じ頂点画素に属する画素であることを示す一意に決められた値の第5のラベル(領域ラベル)で表した領域ラベルデータを、ラベル領域の領域ラベルデータとして生成する複数の領域ラベル生成部(領域ラベル生成部14)と、を備え、領域ラベル生成部14のそれぞれは、頂点画素が、重複画素である場合、真頂点画素または仮頂点画素に付与する領域ラベルを領域ラベルとし、頂点画素が、オーバーラップ領域以外の位置に配置された画素である場合、真頂点画素に付与する頂点ラベルを領域ラベルとする画像処理装置1が構成される。
また、本発明の実施形態によれば、領域ラベル統合処理制御部19は、ラベル領域の領域ラベルデータに含まれる第1のラベルが付与された画素(仮頂点ラベルが付与された画素)の数を、それぞれのラベル領域の領域ラベルデータごとに計数し、計数したそれぞれの画素の数を、それぞれのラベル領域の領域ラベルデータのラベル数(仮頂点ラベル数)として出力するラベル数計数部(仮頂点ラベル数計数部191)と、それぞれの仮頂点ラベル数に基づいて、統合する演算を行う対象のラベル領域の領域ラベルデータを領域ラベル統合部18のそれぞれに割り当て、割り当てたラベル領域の領域ラベルデータをそれぞれの領域ラベル統合部18に通知するラベル領域割り当て部(ラベル領域割り当て部194)と、を備える画像処理装置1が構成される。
また、本発明の実施形態によれば、ラベル領域割り当て部194は、ラベル領域の領域ラベルデータが割り当てられていない領域ラベル統合部18にラベル領域の領域ラベルデータを順次割り当て、ラベル領域の領域ラベルデータが割り当てられていない領域ラベル統合部18がない場合には、割り当てたラベル領域の領域ラベルデータの仮頂点ラベル数の累積(累積仮頂点ラベル数)が最も小さい領域ラベル統合部18に、ラベル領域の領域ラベルデータを順次割り当てる画像処理装置1が構成される。
また、本発明の実施形態によれば、領域ラベル生成部14のそれぞれは、勾配データに含まれる頂点ラベルが付与された頂点画素を検出し、検出した頂点画素の位置を表す頂点座標を出力する頂点座標探索部(頂点座標探索部141)と、頂点座標に対応する頂点画素を表す勾配データと、頂点画素を中心とし、頂点画素の周囲に位置するそれぞれの画素(周辺画素)を表すそれぞれの勾配データとを取得する勾配データ取得部(勾配データ読み込み元アドレス生成部142)と、取得した勾配データに含まれる頂点画素を領域ラベルで表すと共に、取得した勾配データに含まれる頂点画素の周囲に位置するそれぞれの周辺画素を表す勾配ラベルの値が、頂点画素に向かう方向を示す値であるか否かを判定し、頂点画素に向かう方向を示す値の勾配ラベルで表された周辺画素を、頂点画素と同じ値の領域ラベルで表した領域ラベルデータ(ラベル領域の領域ラベルデータ)を生成する勾配判定部(最外周データ勾配判定部143)と、を備える画像処理装置1が構成される。
また、本発明の実施形態によれば、勾配データ読み込み元アドレス生成部142は、最外周データ勾配判定部143によって頂点画素に向かう方向を示す値の勾配ラベルであると判定されたそれぞれの周辺画素を順次中心とし、中心とした周辺画素の周囲に位置するそれぞれの画素(周辺画素)を表すそれぞれの勾配データをさらに取得し、最外周データ勾配判定部143は、さらに取得した勾配データに含まれるそれぞれの画素を表す勾配ラベルの値が、中心とした画素に向かう方向を示す値であるか否かを順次判定し、中心とした周辺画素に向かう方向を示す値の勾配ラベルで表された周辺画素を、中心とした周辺画素と同じ値の領域ラベルで表した領域ラベルデータを順次生成する画像処理装置1が構成される。
また、本発明の実施形態によれば、勾配データ読み込み元アドレス生成部142は、順次中心とするそれぞれの周辺画素の領域が、頂点画素に対応する頂点座標の位置から順次外周の周辺画素に広がるように、それぞれの周辺画素を表すそれぞれの勾配データを取得し、最外周データ勾配判定部143は、頂点画素と同じ値の領域ラベルで表した領域が、頂点画素に対応する頂点座標の位置から順次外周の周辺画素に広がる領域ラベルデータを生成する画像処理装置1が構成される。
また、本発明の実施形態によれば、矩形輝度画像は、入力された輝度画像の領域を予め定めた同じ大きさの矩形の領域(矩形領域)に分割した画像であり、それぞれの矩形領域は、オーバーラップ領域に配置された画素が、隣接する他の矩形輝度画像の矩形領域のオーバーラップ領域に配置された画素と3画素分が重複する領域である画像処理装置1が構成される。
また、本発明の実施形態によれば、ラベルデータ生成部のそれぞれは、対応する矩形輝度画像のオーバーラップ領域の最外周の位置に配置された画素を除く、隣接する他の矩形輝度画像に対応した領域ラベルデータのオーバーラップ領域に配置された画素と1画素分が重複した領域の領域ラベルデータを生成する画像処理装置1が構成される。
また、本発明の実施形態によれば、ラベルデータ生成部のそれぞれは、対応する矩形輝度画像に対するラベル領域の領域ラベルデータの生成が終了すると、他の矩形輝度画像に対するラベル領域の領域ラベルデータの生成を順次開始する画像処理装置1が構成される。
このように、本発明の実施形態の画像処理装置1では、入力された輝度画像を予め定めた複数の矩形輝度画像に分割し、分割したそれぞれの矩形輝度画像に対応する勾配データの生成を、複数の勾配データ生成部12で並列に行う。そして、本発明の実施形態の画像処理装置1では、それぞれの勾配データ生成部12が生成した勾配データに基づいた領域分割処理を、複数の領域ラベル生成部14で並列に行う。このとき、本発明の実施形態の画像処理装置1では、それぞれの領域ラベル生成部14が生成した領域ラベルデータを統合するためのラベル統合情報を、画像処理装置1に備えた領域ラベル統合部18がラベル統合処理を行う前に事前に生成しておく。これにより、本発明の実施形態の画像処理装置1では、事前に生成されたラベル統合情報を参照することによって、画像処理装置1に備えた複数の領域ラベル統合部18が、いずれのラベル領域の領域ラベルデータに対しても、ラベル統合処理を行うことができる。
また、本発明の実施形態の画像処理装置1では、領域ラベル統合処理制御部19が、それぞれの領域ラベル統合部18が行うラベル統合処理の演算負荷の総和、つまり、それぞれの領域ラベル統合部18が領域ラベルの値を更新する画素数(仮頂点ラベル数)の総和が概ね均等になるように、演算を行う対象のラベル領域を振り分ける(割り当てる)。これにより、本発明の実施形態の画像処理装置1では、それぞれの領域ラベル統合部18を遊休させることなく稼働させ、画像処理装置1における全体の処理時間の短縮を図ることができる。
(ラベル領域の振り分け処理の第1の変形例)
なお、画像処理装置1では、ラベル領域割り当て部194が、図21A〜図21Dに示したように、累積仮頂点ラベル数が最も少ない領域ラベル統合部18にそれぞれのラベル領域を割り当てる場合について説明した。しかし、ラベル領域割り当て部194がそれぞれのラベル領域を割り当てる方法は、図21A〜図21Dに示した方法、すなわち、図22に示した処理手順に限定されるものではない。例えば、ラベル領域割り当て部194が、予め定めた順番で、それぞれの領域ラベル統合部18に、それぞれのラベル領域を割り当てる方法であってもよい。
ここで、この場合のラベル領域割り当て部194の動作について説明する。図23A〜図23Dは、本発明の実施形態の画像処理装置1に備えた領域ラベル統合処理制御部19によるラベル領域の振り分け処理の別の方法を説明する図である。なお、図23A〜図23Cにおいて、横軸は、ラベル統合処理を行うラベル領域を表し、縦軸は、それぞれのラベル領域における仮頂点ラベル数を表している。また、図23Dにおいて、横軸は、画像処理装置1に備えたそれぞれの領域ラベル統合部18を表し、縦軸は、それぞれの領域ラベル統合部18に割り当てられた演算負荷(累積仮頂点ラベル数)を表している。図23A〜図23Dも、画像処理装置1に3つの領域ラベル統合部18−1〜領域ラベル統合部18−3を備えている場合における領域ラベル統合処理制御部19によるラベル領域の振り分け処理の概念の一例を示している。
ラベル領域割り当て部194は、仮頂点ラベル数記憶部192から仮頂点ラベル数を読み出す。このときラベル領域割り当て部194が読み出したそれぞれの仮頂点ラベル数を読み出した順番に並べて表すと、図23Aに示したように、仮頂点ラベル数は、それぞれのラベル領域で一定の数ではない。そこで、ラベル領域割り当て部194は、それぞれのラベル領域を、仮頂点ラベル数が大きい順番に並べ替える(ソートする)。これにより、図23Bに示したように、それぞれのラベル領域が、仮頂点ラベル数が大きい順に並べ替えられる。
そして、ラベル領域割り当て部194は、並べ替えた順番で、それぞれのラベル領域のラベル統合処理を、領域ラベル統合部18のそれぞれに割り当てる。図23Cに示した一例では、領域ラベル統合部18に付与した符号の「−」に続く数字の部分を、割り当てるラベル領域に対応付けて示している。図23Cに示した一例では、領域ラベル統合部18の順番が昇順と降順とを交互に繰り返すように、並べ替えられたそれぞれのラベル領域を順番に割り当てている場合を示している。
より具体的には、図23Cに示した一例では、並べ替えた1つ目〜3つ目までのラベル領域を、領域ラベル統合部18−1〜領域ラベル統合部18−3に昇順に割り当て、並べ替えた4つ目〜6つ目までのラベル領域を、領域ラベル統合部18−3〜領域ラベル統合部18−1に降順に割り当てている。これにより、図23Cに示した一例では、並べ替えた1つ目のラベル領域と6つ目のラベル領域とが領域ラベル統合部18−1に割り当てられ、並べ替えた2つ目のラベル領域と5つ目のラベル領域とが領域ラベル統合部18−2に割り当てられ、並べ替えた3つ目のラベル領域と4つ目のラベル領域とが領域ラベル統合部18−3に割り当てられる。
図23Cに示したように、それぞれのラベル領域を、仮頂点ラベル数が大きい順番に並べ替えた後に割り当てることにより、それぞれの領域ラベル統合部18の演算負荷(累積仮頂点ラベル数)の総和が概ね均等になる。図23Dには、図23Cに示した一例のようにそれぞれのラベル領域が割り当てられた場合における領域ラベル統合部18−1〜領域ラベル統合部18−3の演算負荷を、累積仮頂点ラベル数で表している。図23Cに示した一例のように、最も仮頂点ラベル数が大きいラベル領域と最も仮頂点ラベル数が小さいラベル領域というように組み合わせてそれぞれの領域ラベル統合部18に割り当てることによって、図23Dに示したように、それぞれの領域ラベル統合部18の演算負荷の総和が概ね均等になる。
ここで、この場合の領域ラベル統合処理制御部19におけるラベル領域の振り分け処理について説明する。図24は、本発明の実施形態の画像処理装置1に備えた領域ラベル統合処理制御部19における別の処理手順を示したフローチャートである。なお、以下の説明においては、画像処理装置1に、n個の領域ラベル統合部18(領域ラベル統合部18−1〜領域ラベル統合部18−n)を備えているものとして説明する。
ラベル領域割り当て部194は、仮頂点ラベル数計数部191から全てのラベル領域に対する仮頂点ラベルの計数が終了したことを表す終了信号が入力されると、ラベル領域の振り分け処理を開始する。
ラベル領域の振り分け処理を開始すると、ラベル領域割り当て部194は、まず、全てのラベル領域に対する仮頂点ラベル数を、仮頂点ラベル数記憶部192から読み出す。そして、ラベル領域割り当て部194は、読み出した仮頂点ラベル数を、大きい順番に並べ替える(ステップS81)。なお、仮頂点ラベル数を並べ替えた結果は、ラベル領域割り当て部194に備えたバッファに一旦保存してもよいし、仮頂点ラベル数記憶部192に一旦書き戻してもよい。
続いて、ラベル領域割り当て部194は、ラベル領域を振り分ける領域ラベル統合部18を表す振り分け信号の値の初期化を行う(ステップS82)。ここでは、ラベル領域割り当て部194は、振り分け信号の初期値を「0」とする。
続いて、ラベル領域割り当て部194は、ステップS83のループにおいて、並べ替えた後のラベル領域の順番を表すラベル領域のループカウンタiを「0」にクリアする。
続いて、ラベル領域割り当て部194は、ループカウンタiに対応するラベル領域「i」を、振り分け信号の値(ここでは、初期値=「0」)に対応する領域ラベル統合部18(図23A〜図23Dに示した一例では、領域ラベル統合部18−1)に割り当てる。そして、ラベル領域割り当て部194は、ラベル領域「i」を割り当てたことを対象の領域ラベル統合部18に通知する(ステップS84)。
続いて、ラベル領域割り当て部194は、ループカウンタiの値を、領域ラベル統合部18の個数nで除算(i÷n)した整数部が、偶数であるか否かを判定する(ステップS85)。
ステップS85において、(i÷n)の整数部が偶数である場合(ステップS85の“YES”)、ラベル領域割り当て部194は、現在の振り分け信号の値に「1」を加算して、振り分け信号の値をインクリメントする(ステップS86)。
続いて、ラベル領域割り当て部194は、インクリメントした振り分け信号の値が領域ラベル統合部18の個数n以上である場合、インクリメントした振り分け信号の値から「1」を減算し、振り分け信号の値を、個数n−1に固定(クリップ)する(ステップS87)。なお、インクリメントした振り分け信号の値が領域ラベル統合部18の個数n以上でない場合には、このステップS87の処理は行わない。そして、ラベル領域割り当て部194は、ステップS83に戻って、次のラベル領域に対するラベル領域の振り分け処理を行う。
一方、ステップS85において、(i÷n)の整数部が偶数でない、つまり、奇数である場合(ステップS85の“NO”)、ラベル領域割り当て部194は、現在の振り分け信号の値から「1」を減算して、振り分け信号の値をデクリメントする(ステップS88)。
続いて、ラベル領域割り当て部194は、デクリメントした振り分け信号の値が「0」以下である場合、デクリメントした振り分け信号の値に「1」を加算して、振り分け信号の値を、「0」に固定(クリップ)する(ステップS89)。なお、デクリメントした振り分け信号の値が「0」以下でない場合には、このステップS89の処理は行わない。そして、ラベル領域割り当て部194は、ステップS83に戻って、次のラベル領域に対するラベル領域の振り分け処理を行う。
ラベル領域割り当て部194は、ステップS83のループで表されたラベル領域の振り分け処理を、並べ替えた後の全てのラベル領域に対して行って、ラベル統合処理を行う対象のラベル領域を、それぞれの領域ラベル統合部18に通知する。
このような動作によって、領域ラベル統合処理制御部19は、図23Dに示したように、それぞれのラベル領域に対するラベル統合処理の演算負荷が、それぞれの領域ラベル統合部18で概ね均等になるように、ラベル領域を振り分けることができる。これにより、画像処理装置1では、それぞれの領域ラベル統合部18を効率的に稼働させ、画像処理装置1における全体の処理時間の短縮を図ることができる。
本発明の実施形態におけるラベル領域の振り分け処理の第1の変形例によれば、ラベル領域割り当て部(ラベル領域割り当て部194)は、ラベル領域の領域ラベルデータを、予め定めた順番でラベル統合部(領域ラベル統合部18)のそれぞれに割り当てる画像処理装置(画像処理装置1)が構成される。
また、本発明の実施形態におけるラベル領域の振り分け処理の第1の変形例によれば、ラベル領域割り当て部194は、それぞれのラベル領域の領域ラベルデータを、ラベル数(仮頂点ラベル数)に基づいて予め定めた順番に並べ替え、並べ替えた後のラベル領域の領域ラベルデータを順次、領域ラベル統合部18のそれぞれに割り当てる画像処理装置1が構成される。
また、本発明の実施形態におけるラベル領域の振り分け処理の第1の変形例によれば、ラベル領域割り当て部194は、それぞれのラベル領域の領域ラベルデータを割り当てる領域ラベル統合部18の順番が昇順と降順とを交互に繰り返すように、ラベル領域の領域ラベルデータを領域ラベル統合部18のそれぞれに割り当てる画像処理装置1が構成される。
(ラベル領域の振り分け処理の第2の変形例)
なお、本発明の実施形態の画像処理装置1におけるラベル領域の振り分け処理の第1の変形例では、ラベル領域割り当て部194が、図23Cに示したように、領域ラベル統合部18の順番が昇順と降順とを交互に繰り返すように、それぞれのラベル領域を割り当てる場合について説明した。しかし、ラベル領域割り当て部194がそれぞれのラベル領域を領域ラベル統合部18に割り当てる際の順番は、図23Cに示した順番、すなわち、図24に示した処理手順に限定されるものではない。例えば、ラベル領域割り当て部194が、領域ラベル統合部18の順番として昇順または降順のいずれか一方を繰り返すように、それぞれのラベル領域を割り当てるようにしてもよい。
ここで、この場合のラベル領域割り当て部194の動作について説明する。図25A〜図25Dは、本発明の実施形態の画像処理装置1に備えた領域ラベル統合処理制御部19によるラベル領域の振り分け処理のさらに別の方法を説明する図である。図25A〜図25Cにおいても、図23A〜図23Cと同様に、横軸は、ラベル統合処理を行うラベル領域を表し、縦軸は、それぞれのラベル領域における仮頂点ラベル数を表している。また、図25Dにおいても、図23Dと同様に、横軸は、それぞれの領域ラベル統合部18を表し、縦軸は、それぞれの領域ラベル統合部18に割り当てられた演算負荷(累積仮頂点ラベル数)を表している。なお、図25Aおよび図25Bは、図23Aおよび図23Bと同様であるため、詳細な説明は省略する。
図25Cに示した一例では、ラベル領域割り当て部194が、領域ラベル統合部18の順番として昇順を繰り返すように、並べ替えたそれぞれのラベル領域を順番に割り当てている場合を示している。より具体的には、図25Cに示した一例では、並べ替えた1つ目〜3つ目までのラベル領域を、領域ラベル統合部18−1〜領域ラベル統合部18−3に昇順に割り当て、並べ替えた4つ目〜6つ目までのラベル領域を、領域ラベル統合部18−1〜領域ラベル統合部18−3に昇順に割り当てている。これにより、図25Cに示した一例では、並べ替えた1つ目のラベル領域と4つ目のラベル領域とが領域ラベル統合部18−1に割り当てられ、並べ替えた2つ目のラベル領域と5つ目のラベル領域とが領域ラベル統合部18−2に割り当てられ、並べ替えた3つ目のラベル領域と6つ目のラベル領域とが領域ラベル統合部18−3に割り当てられる。
図25Cに示したようにそれぞれのラベル領域を割り当てることによっても、それぞれの領域ラベル統合部18の演算負荷(累積仮頂点ラベル数)の総和が概ね均等になる。図25Dには、図25Cに示した一例のようにそれぞれのラベル領域が割り当てられた場合における領域ラベル統合部18−1〜領域ラベル統合部18−3の演算負荷を、累積仮頂点ラベル数で表している。ただし、図23Dに示した一例と図25Dに示した一例とを比べてわかるように、図23Dに示した一例の方が、演算負荷(累積仮頂点ラベル数)の総和がより均等に近い。しかし、図25Cに示したように振り分けるための処理手順は、図23Cに示したように振り分けるための処理手順(図24参照)よりも、より簡易な処理手順である。
(ラベル領域の振り分け処理の第3の変形例)
なお、本発明の実施形態の画像処理装置1では、ラベル領域割り当て部194が、仮頂点ラベル数計数部191が計数して仮頂点ラベル数記憶部192に記憶した仮頂点ラベル数に基づいて、ラベル領域に対してラベル統合処理を行う領域ラベル統合部18を割り当てる方法について説明した。つまり、ラベル領域割り当て部194が、仮頂点ラベル数に基づいて領域ラベル統合部18の演算負荷を推定することによって、ラベル統合処理を行うラベル領域を割り当てる方法について説明した。しかし、ラベル領域割り当て部194がラベル領域を領域ラベル統合部18に割り当てる方法は、図21A〜図25Dに示した方法および処理手順に限定されるものではない。例えば、ラベル領域割り当て部194が、仮頂点ラベル数を予め定めた任意の数の閾値と比較することによって、領域ラベル統合部18の演算負荷の簡易的な推定を離散的に行ってもよい。つまり、ラベル領域割り当て部194が、領域ラベル統合部18の演算負荷を予め定めた範囲ごとに切り分けて推定してもよい。
この場合の処理手順について説明する。図26は、本発明の実施形態の画像処理装置1に備えた領域ラベル統合処理制御部19におけるさらに別の処理手順を示したフローチャートである。なお、図26に示したラベル領域割り当て部194における演算負荷の推定処理では、予め定めた演算負荷の閾値として、複数の演算負荷O(以下、「推定演算負荷O」という)が離散的に設定されている。なお、推定演算負荷Oは、領域ラベルの値を更新する画素数に比例して大きくなる値である。このため、ラベル領域割り当て部194は、それぞれのラベル領域における仮頂点ラベル数と、推定演算負荷Oで表される領域ラベルの値を更新する画素数とを比較することによって、それぞれのラベル領域に対してラベル統合処理を行う際の演算負荷を、推定演算負荷Oのいずれかに推定する。以下の説明においては、n個の推定演算負荷O(推定演算負荷O0〜推定演算負荷On,O0<On)が設定されているものとし、仮頂点ラベル数計数部191による仮頂点ラベルの計数が終了した後に、それぞれのラベル領域における領域ラベルの値を更新する際の演算負荷を、いずれかの推定演算負荷Oに推定する場合について説明する。
仮頂点ラベル数計数部191が、それぞれのラベル領域における仮頂点ラベル数の計数が終了し、仮頂点ラベルの計数が終了したことを表す終了信号が入力されると、ラベル領域割り当て部194は、演算負荷の推定処理を開始する。
演算負荷の推定処理を開始すると、ラベル領域割り当て部194は、まず、1つ目のラベル領域の仮頂点ラベル数が、推定演算負荷O0で表される画素数以下であるか否かを判定する(ステップS91)。ステップS91において、仮頂点ラベル数が、推定演算負荷O0で表される画素数以下であると判定した場合(ステップS91の“YES”)、ラベル領域割り当て部194は、ステップS92において、この1つ目のラベル領域の演算負荷は、推定演算負荷O0と同等であると推定する。つまり、ラベル領域割り当て部194は、ステップS91およびステップS92において、推定演算負荷O0以下の演算負荷は、推定演算負荷O0と同等であると推定する。そしてラベル領域割り当て部194は、推定した演算負荷の情報(=推定演算負荷O0)を、この1つ目のラベル領域に紐付けて、ラベル領域割り当て部194に備えたバッファに保存、または仮頂点ラベル数記憶部192に書き戻して、演算負荷の推定処理を終了する。
一方、ステップS91において、仮頂点ラベル数が、推定演算負荷O0で表される画素数よりも多い、つまり、この1つ目のラベル領域の演算負荷は、推定演算負荷O0よりも大きいと判定した場合(ステップS91の“NO”)、ラベル領域割り当て部194は、ステップS93の処理に進む。
続いて、ラベル領域割り当て部194は、1つ目のラベル領域の仮頂点ラベル数が、推定演算負荷O1で表される画素数以下であるか否かを判定する(ステップS93)。ステップS93において、仮頂点ラベル数が、推定演算負荷O1で表される画素数以下であると判定した場合(ステップS93の“YES”)、ラベル領域割り当て部194は、ステップS94において、この1つ目のラベル領域の演算負荷は、推定演算負荷O1と同等であると推定する。つまり、ラベル領域割り当て部194は、ステップS93およびステップS94において、推定演算負荷O0よりも大きく、推定演算負荷O1以下の範囲の演算負荷は、推定演算負荷O1と同等であると推定する。そしてラベル領域割り当て部194は、推定した演算負荷の情報(=推定演算負荷O1)を、この1つ目のラベル領域に紐付けて保存し、演算負荷の推定処理を終了する。
一方、ステップS93において、仮頂点ラベル数が、推定演算負荷O1で表される画素数よりも多い、つまり、この1つ目のラベル領域の演算負荷は、推定演算負荷O1よりも大きいと判定した場合(ステップS93の“NO”)、ラベル領域割り当て部194は、ステップS95の処理に進む。
同様に、ラベル領域割り当て部194は、仮頂点ラベル数と、推定演算負荷O2〜推定演算負荷On−2で表される画素数との比較を行う。
続いて、ラベル領域割り当て部194は、1つ目のラベル領域の仮頂点ラベル数が、推定演算負荷On−1で表される画素数以下であるか否かを判定する(ステップS95)。ステップS95において、仮頂点ラベル数が、推定演算負荷On−1で表される画素数以下であると判定した場合(ステップS95の“YES”)、ラベル領域割り当て部194は、ステップS96において、この1つ目のラベル領域の演算負荷は、推定演算負荷On −1と同等であると推定する。つまり、ラベル領域割り当て部194は、ステップS95およびステップS96において、推定演算負荷On−2よりも大きく、推定演算負荷On −1以下の範囲の演算負荷は、推定演算負荷On−1と同等であると推定する。そしてラベル領域割り当て部194は、推定した演算負荷の情報(=推定演算負荷On−1)を、この1つ目のラベル領域に紐付けて保存し、演算負荷の推定処理を終了する。
一方、ステップS95において、仮頂点ラベル数が、推定演算負荷On−1で表される画素数よりも多い、つまり、この1つ目のラベル領域の演算負荷は、推定演算負荷On− 1よりも大きいと判定した場合(ステップS95の“NO”)、ラベル領域割り当て部194は、ステップS97において、この1つ目のラベル領域の演算負荷は、推定演算負荷Onと同等であると推定する。つまり、ラベル領域割り当て部194は、ステップS95およびステップS97において、推定演算負荷On−1よりも大きい演算負荷は、推定演算負荷Onと同等であると推定する。そしてラベル領域割り当て部194は、推定した演算負荷の情報(=推定演算負荷On)を、この1つ目のラベル領域に紐付けて保存し、演算負荷の推定処理を終了する。
このように、ラベル領域割り当て部194は、予め定めた推定演算負荷Oで表される画素数を閾値として、それぞれのラベル領域における仮頂点ラベル数と比較することによって、領域ラベル統合部18がラベル統合処理を行う際の演算負荷を予め定めた範囲ごとに切り分けて簡易的に推定することができる。これにより、ラベル領域割り当て部194は、推定した演算負荷に基づいて、演算負荷が少ない領域ラベル統合部18に、それぞれのラベル領域を割り当てることができる。
より具体的には、ラベル領域割り当て部194は、バッファまたは仮頂点ラベル数記憶部192にラベル領域に紐付けて保存された演算負荷の情報(=推定演算負荷O)に基づいて、領域ラベル統合部18のそれぞれが行うラベル統合処理の演算負荷の総和が概ね均等になるように、それぞれのラベル領域を領域ラベル統合部18のそれぞれに割り当てることができる。
本発明の実施形態におけるラベル領域の振り分け処理の第3の変形例によれば、ラベル領域割り当て部(ラベル領域割り当て部194)は、ラベル領域の領域ラベルデータのラベル数(仮頂点ラベル数)と、予め定めた複数のラベル数の閾値とに基づいて、それぞれのラベル統合部(領域ラベル統合部18)の演算の負荷を推定し、推定した結果に基づいて、ラベル領域の領域ラベルデータを領域ラベル統合部18のそれぞれに割り当てる画像処理装置(画像処理装置1)が構成される。
このような動作によっても、領域ラベル統合処理制御部19は、それぞれの領域ラベル統合部18におけるラベル統合処理の演算負荷が概ね均等になるように、ラベル領域を振り分けることができる。これにより、遊休する領域ラベル統合部18の発生を抑制し、それぞれの領域ラベル統合部18を効率的に稼働させ、画像処理装置1においてラベル統合処理に要する全体の処理時間の短縮を図ることができる。
上記に述べたように、本発明の各実施形態によれば、入力された輝度画像の領域を予め定めた矩形の複数の領域に分割し、分割したそれぞれの矩形の領域の輝度画像ごとの勾配データの生成を、複数の演算リソースで並列に行う。また、本発明の各実施形態では、それぞれの勾配データに基づいて、複数の演算リソースが並列に、分割したそれぞれの矩形の領域の輝度画像に対する領域分割処理を行う。また、本発明の各実施形態では、分割して領域分割処理が行われたそれぞれの矩形の領域を統合する統合処理を行う前に、それぞれの矩形の領域を統合するための統合情報を生成しておく。そして、本発明の各実施形態では、事前に生成した統合情報に基づいて、領域分割処理が行われたそれぞれの矩形の領域を統合する統合処理を、複数の演算リソースで並列に行うことによって、入力された輝度画像に対する領域分割処理の結果を得る。
このとき、本発明の各実施形態では、事前の統合情報を生成しているため、それぞれの演算リソースは、いずれの矩形の領域であっても、統合処理を行うことができる。つまり、本発明の各実施形態では、対応する矩形の領域に制限がなく、いずれの演算リソースも統合処理を行うことができる。このため、本発明の各実施形態では、それぞれの演算リソースにおける統合処理の演算負荷に応じて、それぞれの演算リソースの演算負荷の総和が概ね均等になるように、対応する矩形の領域を振り分けることができる。このことにより、本発明の各実施形態では、統合処理を行う際に遊休する演算リソースの発生を抑制して効率的に稼働させ、かつ、それぞれの演算リソースの演算負荷の差を少なくして、領域分割処理に要する全体の処理時間の短縮を図ることができる。
なお、本発明の各実施形態では、入力された輝度画像に対して領域分割処理を行うために、輝度画像に含まれるそれぞれの画素に領域ラベルを付与する画像処理装置の構成を示した。しかし、入力された画像に対してラベルを付与する画像処理は、各実施形態で示した領域分割処理に限定されるものではない。つまり、入力された画像の領域を複数に分割し、分割したそれぞれの領域の画像に対してラベルを付与した後に統合することによって、入力された画像に対してラベルを付与する画像処理を行う画像処理装置であれば同様に、本発明の考え方を適用することができる。
また、本発明の各実施形態では、領域ラベル統合処理制御部19に備えたラベル領域割り当て部194が、それぞれの領域ラベル統合部18にラベル領域を割り当てるいくつかの方法(ラベル領域の振り分け処理)を説明したが、ラベル領域をそれぞれの領域ラベル統合部18に割り当てる方法は、各実施形態で示した方法に限定されるものではない。
また、本発明の各実施形態では、例えば、頂点座標のように、画素の位置を座標で表す場合について説明したが、画素の位置を表す情報は、各実施形態で示したような座標に限定されるものではない。
以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態およびその変形例に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更が可能である。
また、本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。