JP2009211331A - 画像処理方法 - Google Patents
画像処理方法 Download PDFInfo
- Publication number
- JP2009211331A JP2009211331A JP2008052731A JP2008052731A JP2009211331A JP 2009211331 A JP2009211331 A JP 2009211331A JP 2008052731 A JP2008052731 A JP 2008052731A JP 2008052731 A JP2008052731 A JP 2008052731A JP 2009211331 A JP2009211331 A JP 2009211331A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- temporary
- block
- column
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
【課題】入力画像中における連結画素成分に対するラベリング処理を高速に実行可能な画像処理方法を提供する。
【解決手段】ラベリング処理を1次元SIMD型プロセッサおよび汎用プロセッサを用いて行う画像処理方法であって、1次元SIMD型プロセッサの複数のプロセッサエレメント(PE)に対して、入力画像30の画素配列32における行方向または列方向の複数の画素ライン(PL)を並列に割当て、各PL上での画素成分同士の連結関係を判定し、各PL上の連結画素ブロック(ブロック)毎に、画素配列上での開始位置および終了位置を示す位置情報を取得する第1の仮ラベリング処理と、汎用プロセッサを用いて、位置情報に基づいて、隣接するPL間でのブロック同士の連結関係を判定し、ブロック毎に、画素配列上での開始位置にある画素成分に連結関係に基づく仮ラベルを付する第2の仮ラベリング処理と、を含む。
【選択図】図18
【解決手段】ラベリング処理を1次元SIMD型プロセッサおよび汎用プロセッサを用いて行う画像処理方法であって、1次元SIMD型プロセッサの複数のプロセッサエレメント(PE)に対して、入力画像30の画素配列32における行方向または列方向の複数の画素ライン(PL)を並列に割当て、各PL上での画素成分同士の連結関係を判定し、各PL上の連結画素ブロック(ブロック)毎に、画素配列上での開始位置および終了位置を示す位置情報を取得する第1の仮ラベリング処理と、汎用プロセッサを用いて、位置情報に基づいて、隣接するPL間でのブロック同士の連結関係を判定し、ブロック毎に、画素配列上での開始位置にある画素成分に連結関係に基づく仮ラベルを付する第2の仮ラベリング処理と、を含む。
【選択図】図18
Description
本発明は、画像処理方法に関する。
2値画像の画像処理として、連結画素成分毎に異なるラベルを付するラベリング処理が知られている。図25は、縦横斜め方向の連結を判定する8連結のラベリング処理の概念を示す説明図である。
図25に示す入力画像の例では、まず、図25(B)に点線で示す処理順序に従って画素に対して順次仮ラベルを付す。ここで、図25(C)に示すように、異なる仮ラベル(画素Pのラベル)を付された画素が連結画素であると判定されると、その旨を示すために、異なる仮ラベル<1、2>を同一ラベル情報として保持する仮ラベリング処理を行う。そして、仮ラベルおよび同一ラベル情報に基づいて、図25(D)に示すように、最終的なラベルを付する再ラベリング処理を行う。
このような仮ラベリング処理および再ラベリング処理からなるラベリング処理において、1次元SIMD(Single Instruction stream Multiple Data stream)型プロセッサにより仮ラベリング処理を行い、汎用プロセッサにより再ラベリング処理を行うことが知られている。ここで、1次元SIMD型プロセッサは、一般に、1次元状に配列された複数のプロセッサエレメント(以下、PEと略称する。)を有し、各PEが同時に同一の命令を処理するように構成されている。このため、SIMD型プロセッサは、並列処理に優れるが、複数のPEによる同時処理に際して、同時処理の結果を複数のPE間で相互参照する場合には、通常の並列処理時に比して処理速度が低下してしまうという処理特性を有する。
例えば下記特許文献1には、SIMD型プロセッサによる仮ラベリング処理の従来技術が記載されている。この従来技術は、SIMD型プロセッサの複数のPEに対して、入力画像の画素配列における斜め方向の複数の画素ライン(以下、PLとも称する。)を並列に割当て、各PL上の画素について隣接画素との連結関係を逐次判定して仮ラベリング処理を行うものである。
前述した従来技術では、仮ラベリング処理において、画素配列の斜め方向にPLを設定するので、各PEに割当てる画素を画像メモリ上でアドレス指定するための処理が煩雑となり、処理ミスの発生、処理時間の低下をもたらす場合がある。また、再ラベリング処理において、汎用プロセッサを用いて処理を行うので、処理時間の低下が生じる場合がある。
さらに、仮ラベリング処理において、画素配列に含まれる画素毎に、隣接画素との連結関係を逐次判定し、全ての画素に仮ラベルを付するので、仮ラベリング処理の高速化を図ることができない場合がある。
例えば、縦横方向の連結を判定する4連結の仮ラベリング処理では、画素毎に上側および左側にある2つの隣接画素との連結関係を逐次判定し、8連結の仮ラベリング処理では、画素毎に上側、左側、右上側および左上側にある4つの隣接画素との連結関係を逐次判定する。このため、入力画像の特性に応じては、連結関係の判定処理に処理時間を費やしてしまう場合がある。特に、8連結の仮ラベリング処理では、4連結の仮ラベリング処理に比して、連結関係の判定処理の回数が2倍となり、多くの処理時間を費やすことになる。
本発明は上記問題点に鑑みてなされたものであり、その目的は、入力画像中における連結画素成分に対するラベリング処理を高速に実行可能な、新規かつ改良された画像処理方法を提供することにある。
上記課題を解決するために、本発明のある観点によれば、入力画像中における連結画素成分に対するラベリング処理を1次元SIMD型プロセッサおよび汎用プロセッサを用いて行う画像処理方法が提供される。本画像処理方法は、1次元SIMD型プロセッサの複数のプロセッサエレメントに対して、入力画像の画素配列における行方向または列方向の複数の画素ラインを並列に割当て、各画素ライン上での画素成分同士の連結関係を判定し、各画素ライン上の連結画素ブロック毎に、画素配列上での開始位置および終了位置を示す位置情報を取得する第1の仮ラベリング処理と、汎用プロセッサを用いて、第1の仮ラベリング処理の結果に基づいて、隣接する画素ライン間での連結画素ブロック同士の連結関係を判定し、連結画素ブロック毎に、画素配列上での開始位置にある画素成分に連結関係に基づく仮ラベルを付する第2の仮ラベリング処理と、を含む。
かかる構成によれば、第1の仮ラベリング処理では、画素配列の行方向または列方向にPLを設定するので、各PEに画素を割当てる際のアドレス指定が容易となる。また、各PL上での画素成分同士の連結関係を判定し、各PL上の連結画素ブロック(以下、ブロックとも称する。)毎に位置情報を取得するので、SIMD型プロセッサの処理特性に基づいて、各PL上でブロックの特定処理を高速に行うことができる。第2の仮ラベリング処理では、位置情報に基づいて、隣接するPL間でのブロック同士の連結関係を判定し、ブロック毎に開始位置にある画素成分に連結関係に基づく仮ラベルを付する。これにより、隣接画素同士の連結関係を逐次判定する代わりに、隣接するPL間でのブロック同士の連結関係を判定し、ブロックの開始位置にある画素成分に仮ラベルを付するので、仮ラベリング処理の高速化を図ることができる。特に、8連結のラベリング処理を行う場合、または、PL上のブロックが多数の画素成分からなる場合には、従来技術に比して、仮ラベリング処理の大幅な高速化を図ることができる。
また、上記画像処理方法は、1次元SIMD型プロセッサの複数のプロセッサエレメントに対して、入力画像の画素配列における行方向または列方向の複数の画素ラインを並列に割当て、第1および第2の仮ラベリング処理の結果に基づいて、各画素ライン上の連結画素ブロック毎に、画素配列上での開始位置以外にある画素成分にラベルを付する再ラベリング処理、を含むようにしてもよい。これにより、再ラベリング処理では、位置情報および仮ラベリング処理の結果に基づいて、ブロック毎に開始位置以外にある画素成分にラベルを付するので、SIMD型プロセッサの処理特性に基づいて、再ラベリング処理の高速化を図ることができる。
また、上記第2の仮ラベリング処理は、隣接する画素ライン間で連結関係にある連結画素ブロック同士の画素配列上での開始位置にある画素成分に付された仮ラベルのうち、互いに異なる仮ラベルを同一の仮ラベルに変更する処理を含むようにしてもよい。これにより、隣接するPL間で連結関係にあるブロック同士において、ブロック毎に開始位置にある画素成分に同一の仮ラベルを付することができる。
本発明によれば、入力画像中における連結画素成分に対するラベリング処理を高速に実行可能な画像処理方法を提供することができる。
以下に、添付した図面を参照しながら、本発明の好適な実施形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
図1は、本発明に係る画像処理方法が適用される画像処理装置の構成例を示すブロック図である。画像処理装置は、第1の仮ラベリング処理部12、第2の仮ラベリング処理部14、および再ラベリング処理部16からなる。
第1の仮ラベリング処理部12は、例えば2値画像からなる入力画像の画素配列に対して、各PL上での画素同士の連結関係を判定し、各PL上の連結画素ブロック(以下、ブロックとも称する。)毎に、画素配列上での開始位置および終了位置を示す位置情報を取得する。第2の仮ラベリング処理部14は、まず、第1の仮ラベリング処理の結果に基づいて、隣接するPL間でのブロック同士の連結関係を判定し、ブロック毎に、画素配列上での開始位置にある画素に連結関係に基づく仮ラベルを付する。第2の仮ラベリング処理部14は、次に、隣接するPL間で連結関係にあるブロック同士の画素配列上での開始位置にある画素に付された仮ラベルのうち、互いに異なる仮ラベルを同一の仮ラベルに変更する。再ラベリング処理部16は、第1および第2の仮ラベリング処理の結果に基づいて、各画素ライン上のブロック毎に、画素配列上での開始位置以外にある画素にラベルを付する。
第1の仮ラベリング処理部12および再ラベリング処理部16は、1次元SIMD型プロセッサを用いて、複数のPEに対して画素配列における行方向または列方向の複数のPLを並列に割当てて処理を行う。第2の仮ラベリング処理部14は、汎用プロセッサを用いて処理を行う。
画像処理装置は、終了列番号E、次列番号N、終了列番号テーブルET、次列番号テーブルNT、仮ラベルテーブルTLT、重複ラベルテーブルOLT,再ラベルテーブルFLTの記憶領域を含むメモリを有する。
終了列番号Eおよび次列番号Nは、PL上のブロック毎に、当該ブロックの終了位置および当該ブロックに後続する他のブロックの開始位置からなる位置情報を取得するために用いられる。終了列番号テーブルETおよび次列番号テーブルNTには、終了列番号Eおよび次列番号Nに基づいて取得される位置情報が記憶される。
仮ラベルテーブルTLTには、終了列番号テーブルETおよび次列番号テーブルNTを用いて判定される、隣接するPL間でのブロックの連結関係に基づいて、ブロック毎に開始位置にある画素に付される仮ラベルが記憶される。重複ラベルテーブルOLTには、画素に付された仮ラベルの変更を処理するために、画素に付された仮ラベルが記憶される。再ラベルテーブルFLTには、終了列番号テーブルETおよび仮ラベルテーブルTLTを参照することで、画素配列中の全ての画素に付されたラベルが記憶される。
図2は、1次元SIMD型プロセッサの構造例を示す説明図である。SIMD型プロセッサは、複数のPEからなるPE群22、PE数と同一数の転送段からなる、データ入力レジスタ群24およびデータ出力レジスタ群26からなる。
図3は、本実施形態の説明に用いる入力画像を示す説明図である。図4は、入力画像の画素ライン(PL)を示す説明図である。本実施形態における入力画像30は、図3(A)に示す4行4列の画素配列からなる2値画像であり、後述するラベリング処理によって、図3(B)に示すラベリング結果40が得られる。図4に示すように、入力画像30の画素配列32には、画素が存在する配列に「1」が格納され、画素が存在しない配列に「0」が格納されている。画素配列の行方向にPL1〜4が設定され、後述する第1の仮ラベリング処理および再ラベリング処理では、PL1〜4にSIMD型プロセッサのPE1〜4が割当てられる。また、入力画像30の画素配列32は、0列目および5列目の列33、34を付加されることで、処理用画素配列として構成される。
(第1の仮ラベリング処理)
まず、本発明の一実施形態に係る画像処理方法のうち第1の仮ラベリング処理について説明する。図5は、第1の仮ラベリング処理の流れを示すフロー図である。図6〜10は、第1の仮ラベリング処理の過程を示す説明図である。
まず、本発明の一実施形態に係る画像処理方法のうち第1の仮ラベリング処理について説明する。図5は、第1の仮ラベリング処理の流れを示すフロー図である。図6〜10は、第1の仮ラベリング処理の過程を示す説明図である。
第1の仮ラベリング処理では、SIMD型プロセッサの各PEに対して、PL1〜4が並列に割当てられる。第1の仮ラベリング処理では、終了列番号E、次列番号N、終了列番号テーブルET、次列番号テーブルNTの記憶領域が用いられる。EおよびNの記憶領域は、PL1〜4毎に1つずつ設けられる。ETおよびNTの記憶領域は、入力画像30の画素配列32の行数、列数+1の配列テーブル(本例の場合、0列目〜4列目を有する4行5列)として設けられる。
図6は、4列目の処理を示す説明図である。図6には、処理用画素配列のうち4列目および5列目の部分(A)、処理用列番号C1、C2(B)、EおよびN(C)、4列目の処理が終了した時点でのEおよびN(D)、ET(E)、NT(F)が示されている。以下では、4列目の処理について図5および図6を参照しながら説明する。
ステップS102(以下では、ステップを「S」と略称する。)では、対象列番号X、C1、C2、E、Nが初期化される。対象列番号Xは、処理の対象となる列番号であり、本例では、入力画像30の画素配列32の水平画素数(NH)として初期値4が入力される。C1、C2は、各列の処理で用いられる列番号であり、C1にはX=4が入力され、C2にはX+1=5が入力される。EおよびNにはX+1=5が各々に入力される。
S104では、図5(A)に示す画素配列から対象列Xの画素値L1、次列X+1の画素値L2が取得される。ここで、例えばPL1では、PL1を割当てられたPEによって、L1に4列目の値1が入力され、L2に5列目の値0が入力される。
S106、S110では、L1およびL2が判定され、L1≠0かつL2=0の場合には、EがC1に変更され(S108)、L1=0かつL2≠0の場合には、NがC2に変更される(S112)。ここで、例えばPL1では、L1=1、L2=0であるので、EがC1=4に変更される。
S114では、L1およびEが判定され、L1≠0かつE≠0の場合には、ETにEが格納され(S116)、それ以外の場合には、ETに値0が格納される(S118)。ここで、例えばPL1では、L1=1、E=4であるので、ETにE=4が格納される。
S120では、L1およびNが判定され、L1≠0かつN≠0の場合には、NTにNが格納され(S122)、それ以外の場合には、NTに値0が格納される(S124)。ここで、例えばPL1では、L1=1、N=5であるので、NTにN=5が格納される。
S126では、C1がC1−1に更新され、C2がC2−1に更新され、XがX−1に更新される。ここで、C1=4、C2=5、X=4であるので、C1がC1−1=3に更新され、C2がC2−1=4に更新され、XがX−1=3に更新される。
以上により4列目の処理が終了する。4列目の処理によって、図6(E)、(F)に示すように、画素が存在するPL1、4では、ETにブロックの終了列番号E=4が格納され、NTに次ブロックの開始列番号N=5が格納される。ここで、入力画像30の画素配列32が4行4列で構成されるので、次ブロックの開始列番号Nとして便宜的に値5が格納される。一方、画素が存在しないPL2、3では、ETおよびNTに値が格納されない。
S128では、Xが判定され、X<0である場合には、第1の仮ラベリング処理が終了し、それ以外の場合には、S104に復帰して次列の処理が行われる。ここで、X=3であるので、S104に復帰して3列目の処理が行われる。なお、4列目の処理で変更/格納されたE、N、ET、NTの値については、3列目以降の処理で参照される。
図7〜10は、3列目〜0列目の処理を示す説明図である。以下では、4列目以外の処理について説明するが、4列目の処理と重複する説明は省略する。
3列目の処理によって、図7(E)、(F)に示すように、画素が存在するPL2では、ETにブロックの終了列番号E=3が格納され、NTに次ブロックの開始列番号N=5が格納される。
2列目の処理によって、図8(E)、(F)に示すように、画素が存在するPL3では、ETにブロックの終了列番号E=2が格納され、NTに次ブロックの開始列番号N=5が格納される。
以下では、1列目の処理について図5および図9を参照しながら説明する。例えばPL1において、S104の処理では、L1に1が入力され、L2に0が入力される。S106の処理では、L1=1、L2=0であるので、EがC1=1に変更される(S108)。S114の処理では、L1=1、E=1であるので、ETにE=1が格納される(S116)。S120の処理では、L1=1、N=4であるので、NTにN=4が格納される(S122)。
また、例えばPL3において、S104の処理では、L1に1が入力され、L2に1が入力される。S106、S110の処理では、L1=1、L2=1であり判定条件を満たさないので、EおよびNが変更されない。S114の処理では、L1=1、E=2であるので、ETにE=2が格納される(S116)。S120の処理では、L1=1、N=5であるので、NTにN=5が格納される(S122)。
以上説明したように、1列目の処理によって、PL1、2、4では、隣接する2列目に画素が存在せず、1列目の画素が新たなブロックを構成することになるので、ETにブロックの終了列番号E=1が格納される。また、PL1では4列目に、PL2では3列目に、PL4では4列目に、次ブロックが各々に存在するので、NTには、これらの列番号が次ブロックの開始列番号Nとして格納される。一方、PL3では、隣接する2列目に画素が存在し、1列目の画素が既存ブロックの一部を構成することになるので、ETにブロックの終了列番号E=2が格納される。また、PL3では、1、2列目の画素からなるブロックの次ブロックが存在しないので、NTに終了列番号E=5が格納される。
0列目の処理によって、図10(E)、(F)に示すように、0列目のPL1〜4に画素が存在しないので、ETにブロックの終了列番号Eが格納されず、1列目のPL1〜4に画素が存在するので、NTに次ブロック(最初のブロック)の開始列番号N=1が格納される。
以上により第1の仮ラベリング処理が完了し、図10(E)、(F)のET、NTに示すように、PL1〜4上のブロック毎に、当該ブロックの終了位置および当該ブロックに後続する他のブロックの開始位置からなる位置情報が取得される。
第1の仮ラベリング処理では、PE1〜4に対してPL1〜4を並列に割当て、例えば4列目の処理結果に基づいて3列目の処理を行うように、同一PL上で先に処理された画素の処理結果に基づいて後続の画素が処理される。これにより、SIMD型プロセッサの処理特性に基づいて、各PL上でブロックの特定処理を高速に行うことができる。
(第2の仮ラベリング処理)
次に、本発明の一実施形態に係る画像処理方法のうち第2の仮ラベリング処理について説明する。図11〜図13は、第2の仮ラベリング処理の流れを示すフロー図である。図14〜19は、第2の仮ラベリング処理の過程を示す説明図である。
次に、本発明の一実施形態に係る画像処理方法のうち第2の仮ラベリング処理について説明する。図11〜図13は、第2の仮ラベリング処理の流れを示すフロー図である。図14〜19は、第2の仮ラベリング処理の過程を示す説明図である。
第2の仮ラベリング処理では、汎用プロセッサが用いられる。また、第2の仮ラベリング処理では、終了列番号テーブルET、次列番号テーブルNT、仮ラベルテーブルTLT、重複ラベルテーブルOLTの記憶領域が用いられる。ETおよびNTの記憶領域は、第1の仮ラベリング処理で取得された位置情報を記憶している。TLTの記憶領域は、入力画像30の画素配列32の行数、列数の配列テーブル(本例の場合、4行4列)として設けられる。OLTの記憶領域は、入力画像30の画素配列32に応じて可変の1次元テーブルとして設けられる。
<PL1の処理>
図14は、PL1の処理を示す説明図である。図14には、ET(A)およびNT(B)、PL1の処理が終了した時点でのTLT(C)およびOLT(D)が示されている。以下では、PL1の処理について図11および図14を参照しながら説明する。
図14は、PL1の処理を示す説明図である。図14には、ET(A)およびNT(B)、PL1の処理が終了した時点でのTLT(C)およびOLT(D)が示されている。以下では、PL1の処理について図11および図14を参照しながら説明する。
S202では、対象行番号Y、対象列番号X、仮ラベル番号Lが初期化される。対象行番号Yは、処理の対象となる行番号であり、PL1の処理では値1が入力される。対象列番号Xは、処理の対象となる列番号であり、初期値0が入力される。仮ラベル番号Lは、入力画像30の画素配列32に含まれる画素に付する仮ラベルの番号であり、初期値1が入力される。
S204では、NX=NT(X、Y)が入力画像30の画素配列32の水平画素数NHと比較され、NX≦NHの場合には、S208の処理が行われ、それ例外の場合には、S206の処理によりYの値が更新される。ここで、X=0、Y=1であり、NX=NT(0、1)=1、NH=4であるので、S208の処理が行われる。
S208では、NXにNT(X、Y)が入力される。ここで、NXにNT(0、1)=1が入力される。
S210では、Yが判定され、Y=1の場合には、S212の処理が行われ、それ以外の場合には、S222から開始する2行目以降の処理が行われる。
S212では、TLT(NX、Y)にLが格納され、OLT(L)にLが格納され、LがL+1に更新される。ここで、NX=1、Y=1、L=1であるので、TLT(1、1)にL=1が仮ラベル「1」として格納され、OLT(1)にL=1が格納され、LがL+1=2に更新される。
S214では、XがNT(X、Y)に更新される。ここで、X=0、Y=1であるので、XがNT(0、1)=1に更新される。
そして、処理がS204に復帰し、S208では、X=1、Y=1であるので、NXにNT(1、1)=4が入力される。S212では、NX=4、Y=1、L=2であるので、TLT(4、1)にL=2が仮ラベル「2」として格納され、OLT(2)にL=2が格納され、LがL+1=3に更新される。S214では、X=1、Y=1であるので、XがNT(1、1)=4に更新される。
そして、処理がS204に復帰し、X=4、Y=1であり、NT(4、1)=5、NH=4であるので、S206の処理によりYがY+1=2に更新される。そして、S210では、Y=2であるので、PL1の処理が終了し、PL2の処理に移行する。
PL1の処理では、図14(C)、(D)に示すように、PL1上の2つのブロックにおいて、各ブロックの開始位置にある画素に互いに異なる仮ラベルが付される。つまり、PL1に対応するTLTの記憶領域において、第1のブロックの開始位置である1列目に仮ラベル「1」が格納され、第2のブロックの開始位置である4列目に仮ラベル「2」が格納される。また、PL1の処理では、仮ラベル「1」、「2」が使用されるので、仮ラベル「1」、「2」がOLTの記憶領域の格納位置1,2に各々に格納される。
<PL2の処理>
以下では、PL2〜PL4の処理について図12および図13、および図15〜図18を参照しながら説明する。まず、PL2の処理について説明するが、PL1の処理と重複する説明は省略する。
以下では、PL2〜PL4の処理について図12および図13、および図15〜図18を参照しながら説明する。まず、PL2の処理について説明するが、PL1の処理と重複する説明は省略する。
S222では、対象行Yの対象列番号X1、前行Y−1の対象列番号X2、前行Y−1の前列番号X3が初期化される。対象列番号X1は、対象行Yで処理の対象となる列番号であり、PL毎の処理で初期値0が入力される。前行の対象列番号X2は、対象行Yの前行Y−1で処理の対象となる列番号であり、初期値0が入力される。前行の前列番号X3は、前行Y−1で処理の対象となる列X2の前列の列番号であり、初期値X2=0が入力される。
S224では、NX1にNT(X1、Y)の値が入力される。ここで、X1=0、Y=2であるので、NX1にNT(0、2)=1が入力される。
S226では、NX1が入力画像30の水平画素数NHと比較され、NX1≦NHの場合には、S228の処理が行われ、それ例外の場合には、S254の処理が行われる。ここで、NX1=1、NH=4であるので、S228の処理により、更新フラグFが初期化(F=1)される。
S230では、対象行Yにおける注目ブロックの開始位置X1minおよび終了位置X1maxが取得される。つまり、X1minにNT(X1、Y)(=NX1)が入力され、X1maxにET(NX1、Y)が入力される。ここで、NX1=1、Y=2であるので、PL2の第1ブロック(1列目の画素)の位置情報として、X1minにNX1=1が入力され、X1maxにET(1、2)=1が入力される。
S232では、NX2にNT(X2、Y−1)の値が入力される。ここで、X2=0、Y=2であるので、NX2にNT(0、1)=1が入力される。
S234では、NX2がNHと比較され、NX2≦NHの場合には、S236の処理が行われ、それ例外の場合には、S248の処理が行われる。ここで、NX2=1、NH=4であるので、S236の処理が行われる。
S236では、前行Y−1における注目ブロックの開始位置X2minおよび終了位置X2maxが取得される。つまり、X2minにNT(X2、Y−1)(=NX2)が入力され、X2maxにET(NX2、Y−1)が入力される。ここで、NX2=1、Y=2であるので、PL1の第1ブロック(1列目の画素)の位置情報として、X2minにNX2=1が入力され、X2maxにET(1、1)=1が入力される。
S238では、対象行Yの注目ブロックと前行Y−1の注目ブロックとの連結関係が判定され、判定結果に応じて後続の処理が決定される。つまり、X1min≦X2max+1、かつ、X2min−1≦X1maxの場合には、隣接行間で注目ブロック同士が連結関係にあるので、図13に示すS262から開始される処理が行われる。ここで、X1min=1、X1max=1、X2min=1、X2max=1であり、隣接行間で注目ブロック同士(PL1の第1ブロックおよびPL2の第1ブロック)が連結関係にあるので、処理がS262に移行する。
S262では、現在行Yおよび前行Y−1における注目ブロックの開始位置の仮ラベル番号L1、L2が取得される。つまり、NX1にTLT(NX1、Y)の値が入力され、NX2にTLT(NX2、Y−1)の値が入力される。ここで、NX1=1、NX2=1、Y=2であるので、L1にTLT(1、2)=0が入力され、L2にTLT(1、1)=1が入力される。
S264では、L1が判定され、L1=0であれば、S266の処理が行われ、それ以外の場合には、S268の処理が行われる。ここで、L1=0であるので、S266の処理が行われる。
S266では、TLT(NX1、Y)にL2が格納される。ここで、NX1=1、Y=2、L2=1であるので、TLT(1、2)にL2=1が仮ラベル「1」として格納される。そして、処理がS242に移行する。S242では、Fが値0に更新される。
S244では、X3にX2が入力され、X2がNT(X2、Y−1)に更新される。ここで、X2=0、Y=2であるので、X3にX2=0が入力され、X2がNT(0、1)=1に更新される。そして、処理がS232に復帰する。
S232では、X2=1、Y=2であるので、NX2にNT(1、1)=4が入力される。S236では、NX2=4、Y=2であるので、PL1の第2ブロック(4列目の画素)の位置情報として、X2minにNX2=4が入力され、X2maxにET(4、1)=4が入力される。S238では、X1min=1、X1max=1、X2min=4、X2max=4であり、隣接行間で注目ブロック同士(PL1の第2ブロックおよびPL2の第1ブロック)が連結関係にないので、S246の処理が行われる。
S246では、X1maxおよびX2min−1が比較され、X1max<X2min―1の場合には、S248の処理が行われ、それ以外の場合には、S244の処理が行われる。ここで、X1max=1、X2min=4であるので、S248の処理が行われる。
S248では、Fが判定され、F=1である場合には、S250の処理が行われ、それ以外の場合には、S252の処理が行われる。ここで、F=0であるので、S252の処理が行われる。
S252では、X1がNT(X1、Y)に更新される。ここで、X1=0、Y=2であるので、X1にNT(0、2)=1が入力される。そして、処理がS224に復帰する。
S224では、X1=1、Y=2であるので、NX1にNT(1、2)=3が入力される。S228では、Fが初期化(F=1)される。S230では、対象行Yの次の注目ブロックのX1min、X1maxが取得される。ここで、NX1=3、Y=2であるので、PL2の第2ブロック(3列目の画素)の位置情報として、X1minにNX1=3が入力され、X1maxにET(3、2)=3が入力される。
S232では、X2=1、Y=2であるので、NX2にNT(1、1)=4が入力される。S236では、前行の注目ブロックのX2min、X2maxが取得される。ここで、NX2=4、Y=2であるので、PL1の第2ブロック(4列目の画素)の位置情報として、X2minにNX2=4が入力され、X2maxにET(4、1)=4が入力される。
S238では、X1min=3、X1max=3、X2min=4、X2max=4であり、隣接行間で注目ブロック同士(PL1の第2ブロックおよびPL2の第2ブロック)が連結関係にあるので、処理がS262に移行する。
S262では、NX1=3、NX2=4、Y=2であるので、L1にTLT(3、2)=0が入力され、L2にTLT(4、1)=2が入力される。S266では、NX1=3、Y=2、L2=2であるので、TLT(3、2)にL2=2が仮ラベル「2」として格納される。そして、処理がS242に移行する。
S242では、Fが値0に更新される。S244では、X2=1、Y=2であるので、X3にX2=1が入力され、X2がNT(1、1)=4に更新される。そして、処理がS232に復帰する。
S232では、X2=4、Y=2であるので、NX2にNT(4、1)=5が入力される。S234では、NX2=5、NH=4であるので、S248の処理が行われる。S248では、F=0であるので、処理がS252に移行する。S252では、X1=1、Y=2であるので、X1にNT(1、2)=3が入力される。そして、処理がS224に復帰する。
S224では、X1=3、Y=2であるので、NX1にNT(3、2)=5が入力される。S226では、NX1=5、NH=4であるので、処理がS254に移行する。
S254では、YがY+1に更新される。ここで、Y=2であるので、YがY+1=3に更新される。S256では、Yが画素配列の垂直画素数NVと比較され、NV<Yの場合には、処理がS222に復帰し、それ以外の場合には、S262から開始される仮ラベル変更処理が行われる。ここで、Y=3、NV=4であるので、処理がS222に復帰する。
以上によりPL2の処理が終了する。PL2の処理では、図15(C)、(D)に示すように、PL2に対応するTLTの記憶領域において、第1ブロックの開始位置である1列目には、連結関係にあるPL1の第1ブロックと同一の仮ラベル「1」が格納され、第2ブロックの開始位置である3列目には、連結関係にあるPL1の第2ブロックと同一の仮ラベル「2」が格納される。また、PL2の処理では、仮ラベル「1」、「2」が使用されているので、仮ラベル「1」、「2」がOLTの記憶領域の格納位置1,2に各々に格納される。
<PL3の処理>
次に、PL3の処理について説明するが、PL2の処理と重複する説明は省略する。
次に、PL3の処理について説明するが、PL2の処理と重複する説明は省略する。
S222では、X1、X2、X3の値がX1=0、X2=0、X3=0に初期化される。S224では、X1=0、Y=3であるので、NX1にNT(0、3)=1が入力される。S228では、Fが初期化(F=1)される。S230では、PL3における注目ブロックの開始位置および終了位置が取得される。ここで、NX1=1、Y=3であるので、PL3の第1ブロック(1列目の画素)の位置情報として、X1minにNX1=1が入力され、X1maxにET(1、3)=2が入力される。
S232では、X2=0、Y=3であるので、NX2にNT(0、2)=1が入力される。S236では、PL2における注目ブロックの開始位置および終了位置が取得される。ここで、NX2=1、Y=3であるので、PL2の第1ブロック(1列目の画素)の位置情報として、X2minに値NX2=1が入力され、X2maxにET(1、2)=1が入力される。
S238では、PL3の注目ブロックとPL2の注目ブロックとの連結関係が判定される。ここで、X1min=1、X1max=2、X2min=1、X2max=1であり、隣接行間で注目ブロック同士(PL2の第1ブロックおよびPL3の第1ブロック)が連結関係にあるので、処理がS262に移行する。
S262では、PL3およびPL2における注目ブロックの開始位置の仮ラベル番号L1、L2が取得される。ここで、NX1=1、NX2=1、Y=3であるので、L1にTLT(1、3)=0が入力され、L2にTLT(1、2)=1が入力される。S266では、NX1=1、Y=3、L2=1であるので、TLT(1、3)にL2=1が仮ラベル「1」として格納される(図16(C)、(D))。そして、処理がS242に移行する。
S242では、Fが値0に更新される。S244では、X2=0、Y=3であるので、X3にX2=0が入力され、X2がNT(0、2)=1に更新される。そして、処理がS232に復帰する。
S232では、X2=1、Y=3であるので、NX2にNT(1、2)=3が入力される。S236では、NX2=3、Y=3であるので、PL2の第2ブロック(3列目の画素)の位置情報として、X2minにNX2=3が入力され、X2maxにET(3、2)=3が入力される。S238では、X1min=1、X1max=2、X2min=3、X2max=3であり、隣接行間で注目ブロック同士(PL2の第2ブロックおよびPL3の第1ブロック)が連結関係にあるので、処理がS262に移行する。
S262では、NX1=1、NX2=3、Y=3であるので、L1にTLT(1、3)=1が入力され、L2にTLT(3、2)=2が入力される。S264では、L1=1であるので、S268の処理が行われる。
S268では、L1およびL2が判定され、L1<L2の場合には、S270の処理が行われ、それ以外の場合には、S272の処理が行われる。ここで、L1=1、L2=2であるので、S270の処理が行われる。
S270では、TLT(NX1、Y)にL1が格納され、OLTの記憶領域に格納されているL2がL1に変更される。ここで、NX1=1、Y=3、L1=1、L2=2であるので、TLT(1、3)にL1=1が仮ラベル「1」として格納される。また、OLT(2)に値2が格納されているので、OLT(2)が値1に変更される。そして、処理がS242に移行する。
ここで、第2の仮ラベリング処理では、ブロックの開始位置にある画素に仮ラベルが付されるので、PL3の第1ブロックでは、1列目の画素に仮ラベル「1」が付され、1列目の画素に連結する2列目の画素には仮ラベルが付されない。また、隣接するPL間でブロック同士の連結関係が判定され、ブロック同士の連結関係がないと判定されると、仮ラベルを付するための処理が行われない。このため、特に、PL上のブロックが多数の画素からなる場合には、仮ラベルを付するための処理が大幅に削減される。
S242では、Fが値0に更新される。S244では、X2=1、Y=3であるので、X3にX2=1が入力され、X2がNT(1、2)=3に更新される。そして、処理がS232に復帰する。
S232では、X2=3、Y=3であるので、NX2にNT(3、2)=5が入力される。S234では、NX2=5、NH=4であるので、S248の処理が行われる。S248では、F=0であるので、処理がS252に移行する。S252では、X1=0、Y=3であるので、X1にNT(0、3)=1が入力される。そして、処理がS224に復帰する。
S224では、X1=1、Y=3であるので、NX1にNT(1、3)=5が入力される。S226では、NX1=5、NH=4であるので、処理がS254に移行する。S254では、Y=3であるので、YがY+1=4に更新される。S256では、Y=4、NV=4であるので、処理がS222に復帰する。
以上によりPL3の処理が終了する。PL3の処理では、図17(C)、(D)に示すように、PL3に対応するTLTの記憶領域において、第1ブロックの開始位置である1列目には、連結関係にあるPL2の第1ブロックと同一の仮ラベル「1」が格納される。ここで、第1ブロックの開始位置以外である2列目には、仮ラベルが格納されない。また、PL3の処理では、2列目の画素がPL2の第2ブロックと連結関係にあることが確認されることで、仮ラベル「2」が格納されていたOLT(2)の記憶領域に仮ラベル「1」が格納される。
<PL4の処理>
次に、PL4の処理について説明するが、PL2、3の処理と重複する説明は省略する。
次に、PL4の処理について説明するが、PL2、3の処理と重複する説明は省略する。
S222では、X1、X2、X3の値がX1=0、X2=0、X3=0に初期化される。S224では、X1=0、Y=4であるので、NX1にNT(0、4)=1が入力される。S228では、Fが初期化(F=1)される。S230では、PL4における注目ブロックの開始位置および終了位置が取得される。ここで、NX1=1、Y=4であるので、PL4の第1ブロック(1列目の画素)の位置情報として、X1minにNX1=1が入力され、X1maxにET(1、4)=1が入力される。
S232では、X2=0、Y=4であるので、NX2にNT(0、3)=1が入力される。S236では、PL3における注目ブロックの開始位置および終了位置が取得される。ここで、NX2=1、Y=4であるので、PL3の第1ブロック(1、2列目の画素)の位置情報として、X2minにNX2=1が入力され、X2maxにET(1、3)=2が入力される。
S238では、PL4の注目ブロックとPL3の注目ブロックとの連結関係が判定される。ここで、X1min=1、X1max=1、X2min=1、X2max=2であり、隣接行間で注目ブロック同士(PL3の第1ブロックおよびPL4の第1ブロック)が連結関係にあるので、処理がS262に移行する。
S262では、PL4およびPL3における注目ブロックの開始位置の仮ラベル番号L1、L2が取得される。ここで、NX1=1、NX2=1、Y=4であるので、L1にTLT(1、4)=0が入力され、L2にTLT(1、3)=1が入力される。
S266では、NX1=1、Y=4、L2=1であるので、TLT(1、4)にL2=1が仮ラベル「1」として格納される。そして、処理がS242に移行する。
S242では、Fが値0に更新される。S244では、X2=0、Y=4であるので、X3にX2=0が入力され、X2がNT(0、3)=1に更新される。そして、処理がS232に復帰する。
S232では、X2=1、Y=4であるので、NX2にNT(1、3)=5が入力される。S234では、NX2=5、NH=4であるので、処理がS248に移行する。S248では、F=0であるので、処理がS252に移行する。S252では、X1=0、Y=4であるので、X1にNT(0、4)=1が入力される。そして、処理がS224に復帰する。
S224では、X1=1、Y=4であるので、NX1にNT(1、4)=4が入力される。S228では、Fが初期化(F=1)される。S230では、PL4における注目ブロックの開始位置および終了位置が取得される。ここで、NX1=4、Y=4であるので、PL4の第2ブロック(4列目の画素)の位置情報として、X1minにNX1=4が入力され、X1maxにET(4、4)=4が入力される。
S250では、TLT(NX1、Y)にLが格納され、OLT(L)にLが格納され、Lの値がL+1に更新される。NX1=4、Y=4、L=3であるので、TLT(4、4)にL=3が仮ラベル「3」として格納され、OLT(3)にL=3が格納され、LがL+1=4に更新される。
S252では、X1=1、Y=4であるので、X1にNT(1、4)=4が入力される。そして、処理がS224に復帰する。
S224では、X1=4、Y=4であるので、NX1にNT(4、4)=5が入力される。S226では、NX1=5、NH=4であるので、処理がS254に移行する。S254では、Y=4であるので、Yが値Y+1=5に更新される。S256では、Y=5、NV=4であるので、処理がS262に移行する。
以上によりPL4の処理が終了する。PL4の処理では、図18(C)、(D)に示すように、PL4に対応するTLTの記憶領域において、第1のブロックの開始位置である1列目には、連結関係にあるPL3の第1ブロックと同一の仮ラベル「1」が格納され、第2ブロックの開始位置である4列目には、PL3の第1ブロックと連結関係にないので、新たな仮ラベル「3」が格納される。また、PL3の処理では、仮ラベル「3」が使用されているので、仮ラベル「3」がOLTの記憶領域の格納位置3に格納される。
図19は、仮ラベルを変更するための仮ラベル変更処理を示す説明図である。仮ラベル変更処理では、前述した仮ラベルテーブルTLTおよび重複ラベルテーブルOLTの記憶領域が用いられる。図19には、前述の処理で取得されたTLT(A)およびOLT(B)、仮ラベル変更処理が終了した時点でのTLT(C)が示されている。
OLTの記憶領域上の格納位置は、TLTに格納されている仮ラベルのインデックスを示し、各々の格納位置に格納されている値は、仮ラベル変更処理により変更されるべき仮ラベルを示している。つまり、図19に示す場合では、TLTには、仮ラベル「1」、「2」、「3」が格納されており、仮ラベル「2」が仮ラベル「1」に変更され、仮ラベル「3」が仮ラベル「2」に変更されるべきであることを示している。
図3に示すように、PL1の第1および第2ブロック(1列目、4列目の画素)、PL2の第1および第2ブロック(1列目、3列目の画素)、PL3の第1ブロック(1、2列目の画素)、PL4の第1ブロック(1列目の画素)は、8連結の連結関係にある。一方、図19(A)に示すTLTでは、連結関係にある画素に互いに異なる仮ラベル「1」、「2」が付されている。つまり、連結関係にあるブロック同士の画素に付された仮ラベルが異なっている。
このため、仮ラベル変更処理では、まず、TLTの記憶領域上において、仮ラベル「2」が格納されている配列要素に仮ラベル「1」を格納し、仮ラベル「3」が格納されている配列要素に仮ラベル「2」を格納する。これにより、図19(C)に示すように、連結関係にあるブロック同士の画素に付された仮ラベルが同一の仮ラベルに変更される。
以上により第2の仮ラベリング処理が完了し、図19(C)に示すように、連結関係にあるブロック同士で同一の仮ラベルがブロック毎に開始位置にある画素に付された仮ラベルテーブルTLTが取得される。
第2の仮ラベリング処理では、第1の仮ラベリング処理で取得された位置情報に基づいて、隣接するPL間でのブロック同士の連結関係が判定され、ブロック毎に開始位置にある画素に連結関係に基づく仮ラベルが付される。このため、隣接画素同士の連結関係が逐次判定される代わりに、隣接するPL間でのブロック同士の連結関係が判定され、ブロックの開始位置にある画素に仮ラベルが付されるので、仮ラベリング処理の高速化を図ることができる。
(再ラベリング処理)
最後に、本発明の一実施形態に係る画像処理方法のうち再ラベリング処理について説明する。図20は、再ラベリング処理の流れを示すフロー図である。図21〜24は、再ラベリング処理の過程を示す説明図である。
最後に、本発明の一実施形態に係る画像処理方法のうち再ラベリング処理について説明する。図20は、再ラベリング処理の流れを示すフロー図である。図21〜24は、再ラベリング処理の過程を示す説明図である。
再ラベリング処理では、SIMD型プロセッサの各PEに対して、PL1〜4が並列に割当てられる。再ラベリング処理では、終了列番号テーブルET、仮ラベルテーブルTLT、再ラベルテーブルFLTの記憶領域が用いられる。ETの記憶領域は、第1の仮ラベリング処理で取得された位置情報を記憶している。TLTの記憶領域は、第2の仮ラベリング処理で取得された仮ラベルを記憶している。FLTの記憶領域は、入力画像30の画素配列32の行数、列数+1の配列テーブル(本例の場合、0列目〜4列目を有する4行5列)として設けられる。
図21は、1列目の処理を示す説明図である。図21には、ET(A)およびTLT(B)、1列目の処理が終了した時点でのFLT(C)が示されている。以下では、1列目の処理について図20および図21を参照しながら説明する。
S302では、対象列番号Xおよびラベル番号Lが初期化される。Xには、初期値1が入力され、Lには、初期値0が入力される。
S304では、ETから対象列Xの終了列番号Eが取得され、TLTから前列X−1および対象列Xの仮ラベル番号L1およびL2が取得される。ここで、例えばPL1では、PL1を割当てられたPEによって、ETから1列目のE=1が取得され、TLTから0列目のL1=0および1列目のL2=1が取得される。また、PL3では、PL3を割当てられたPEによって、ETからE=2が取得され、TLTからL1=0およびL2=1が取得される。
S306では、L1およびL2が判定され、L1=0かつL2≠0の場合には、S308の処理が行われ、それ以外の場合には、S310の処理が行われる。ここで、例えばPL1、PL3では、L1=0かつL2=1であるので、S308の処理が行われる。
S308では、LにL2が入力される。ここで、例えばPL1、PL3では、L2=1であるので、Lには、L2=1が入力される。
S310では、EおよびLが判定され、E≠1かつL≠0の場合にはS312の処理が行われ、それ以外の場合には、S314の処理が行われる。ここで、例えばPL1、PL3では、E≠1かつL=1であるので、S312の処理が行われる。
S312では、FLTのX列目にLが格納される。一方、S314では、FLTのX列目に値0が格納される。ここで、例えばPL1、PL3では、X=1、L=1であるので、FLTの1列目にL=1が格納される。
S316では、XがX+1に更新される。ここで、X=1であるので、XがX+1=2に更新される。S318では、Xおよび入力画像30の画素配列32の水平画素数NHが比較され、X<NHの場合には、処理がS304に復帰し、それ以外の場合には、再ラベリング処理が完了する。
以上説明したように、1列目の処理によって、図21(C)に示すように、PL1〜4に対応するFLTの記憶領域において、第1ブロックの開始位置にラベル「1」が格納される。
以下では、図20および図22〜24を参照しながら、2列目〜4列目の処理について説明するが、1列目の処理と重複する説明は省略する。
2列目の処理において、例えばPL1では、S304の処理により、ETから2列目のE=0が取得され、TLTから1列目のL1=1および2列目のL2=0が取得される。そして、E=0、L=1であるので、S314の処理によりFLTの2列目に値0が格納される。
また、例えばPL3では、S304の処理により、ETから2列目のE=2が取得され、TLTから1列目のL1=1および2列目のL2=0が取得される。そして、E≠0、L=1であるので、S312の処理によりFLTの2列目にL=1が格納される。
3列目の処理において、例えばPL1では、S304の処理により、ETから3列目のE=0が取得され、TLTから2列目のL1=0および3列目のL2=0が取得される。そして、E=0、L=1であるので、S314の処理によりFLTの3列目に値0が格納される。
また、例えばPL2では、S304の処理により、ETから3列目のE=3が取得され、TLTから2列目のL1=0および3列目のL2=1が取得される。そして、L1=0、L2=1であるので、S308の処理によりLにL2=1が入力される。また、E≠0、L=1であるので、S312の処理によりFLTの3列目にL=1が格納される。これにより、図22(C)に示すように、PL3上の第1ブロックに含まれる画素のうち、ブロックの開始位置以外にある2列目の画素にラベル「1」が付される。
4列目の処理において、例えばPL4では、S304の処理により、ETから4列目のE=4が取得され、TLTから3列目のL1=0および4列目のL2=2が取得される。そして、L1=0、L2=2であるので、S308の処理によりLにL2=2が入力される。また、E≠0、L=2であるので、S312の処理によりFLTの4列目にL=2が格納される。
以上により再ラベリング処理が完了し、図24(C)のFLTに示すように、画素配列の画素毎にラベルが付された再ラベルテーブルFLTが取得され、ラベリング処理が完了する。
再ラベリング処理でも、第1の仮ラベリング処理と同様に、PE1〜4に対してPL1〜4を並列に割当て、同一PL上で先に処理された画素の処理結果に基づいて後続の画素が処理される。これにより、SIMD型プロセッサの処理特性に基づいて、再ラベリング処理の高速化を図ることができる。
以上説明したように、本実施形態に係る画像処理方法によれば、仮ラベリング処理および再ラベリング処理からなるラベリング処理全体を高速に実行することができる。
つまり、第1の仮ラベリング処理では、画素配列の行方向または列方向にPLを設定するので、各PEに画素を割当てる際のアドレス指定が容易となる。また、各PL上での画素成分同士の連結関係を判定し、各PL上のブロック毎に位置情報を取得するので、SIMD型プロセッサの処理特性に基づいて、各PL上でブロックの特定処理を高速に行うことができる。
また、第2の仮ラベリング処理では、位置情報に基づいて、隣接するPL間でのブロック同士の連結関係を判定し、ブロック毎に開始位置にある画素成分に連結関係に基づく仮ラベルを付する。これにより、隣接画素同士の連結関係を逐次判定する代わりに、隣接するPL間でのブロック同士の連結関係を判定し、ブロックの開始位置にある画素成分に仮ラベルを付するので、仮ラベリング処理の高速化を図ることができる。特に、8連結のラベリング処理を行う場合、または、PL上のブロックが多数の画素成分からなる場合には、従来技術に比して、仮ラベリング処理の大幅な高速化を図ることができる。また、仮ラベル変更処理では、隣接するPL間で連結関係にあるブロック同士において、ブロック毎に開始位置にある画素成分に同一の仮ラベルを付することができる。
また、再ラベリング処理では、位置情報および仮ラベリング処理の結果に基づいて、ブロック毎に開始位置以外にある画素成分にラベルを付するので、SIMD型プロセッサの処理特性に基づいて、再ラベリング処理の高速化を図ることができる。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されない。当業者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、前述した実施形態では、8連結のラベリング処理の場合について説明した。しかし、本実施形態は、第2の仮ラベリング処理のS238における連結関係の判定条件を変更することで、4連結のラベリング処理の場合についても同様に適用することができる。
また、前述した実施形態では、画素配列の行方向にPLが設定される場合について説明した。しかし、本実施形態は、第1および第2の仮ラベリング処理、再ラベリング処理において、行方向および列方向の処理を相互に変更することで、画素配列の列方向にPLが設定される場合についても同様に適用することができる。
12 第1の仮ラベリング処理部
14 第2の仮ラベリング処理部
16 再ラベリング処理部
30 入力画像
32 入力画像の画素配列
14 第2の仮ラベリング処理部
16 再ラベリング処理部
30 入力画像
32 入力画像の画素配列
Claims (3)
- 入力画像中における連結画素成分に対するラベリング処理を1次元SIMD型プロセッサおよび汎用プロセッサを用いて行う画像処理方法であって、
1次元SIMD型プロセッサの複数のプロセッサエレメントに対して、前記入力画像の画素配列における行方向または列方向の複数の画素ラインを並列に割当て、前記各画素ライン上での画素成分同士の連結関係を判定し、前記各画素ライン上の連結画素ブロック毎に、前記画素配列上での開始位置および終了位置を示す位置情報を取得する第1の仮ラベリング処理と、
汎用プロセッサを用いて、前記第1の仮ラベリング処理の結果に基づいて、隣接する前記画素ライン間での前記連結画素ブロック同士の連結関係を判定し、前記連結画素ブロック毎に、前記画素配列上での開始位置にある画素成分に前記連結関係に基づく仮ラベルを付する第2の仮ラベリング処理と、
を含むことを特徴とする、画像処理方法。 - 1次元SIMD型プロセッサの複数のプロセッサエレメントに対して、前記入力画像の前記画素配列における行方向または列方向の複数の前記画素ラインを並列に割当て、前記第1および第2の仮ラベリング処理の結果に基づいて、前記各画素ライン上の連結画素ブロック毎に、前記画素配列上での開始位置以外にある画素成分にラベルを付する再ラベリング処理を含むことを特徴とする、請求項1に記載の画像処理方法。
- 前記第2の仮ラベリング処理は、隣接する前記画素ライン間で連結関係にある前記連結画素ブロックの前記画素配列上での開始位置にある画素成分に付された前記仮ラベルのうち、互いに異なる仮ラベルを同一の仮ラベルに変更する処理を含むことを特徴とする、請求項1に記載の画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008052731A JP2009211331A (ja) | 2008-03-03 | 2008-03-03 | 画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008052731A JP2009211331A (ja) | 2008-03-03 | 2008-03-03 | 画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009211331A true JP2009211331A (ja) | 2009-09-17 |
Family
ID=41184414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008052731A Withdrawn JP2009211331A (ja) | 2008-03-03 | 2008-03-03 | 画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009211331A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063270A (zh) * | 2013-03-22 | 2014-09-24 | 大日本网屏制造株式会社 | 加标签方法、加标签装置以及缺陷检查装置 |
KR101521725B1 (ko) * | 2013-03-22 | 2015-05-19 | 가부시키가이샤 스크린 홀딩스 | 라벨링 방법, 라벨링 장치 및 결함 검사 장치 |
-
2008
- 2008-03-03 JP JP2008052731A patent/JP2009211331A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063270A (zh) * | 2013-03-22 | 2014-09-24 | 大日本网屏制造株式会社 | 加标签方法、加标签装置以及缺陷检查装置 |
KR101521725B1 (ko) * | 2013-03-22 | 2015-05-19 | 가부시키가이샤 스크린 홀딩스 | 라벨링 방법, 라벨링 장치 및 결함 검사 장치 |
CN104063270B (zh) * | 2013-03-22 | 2017-06-23 | 斯克林集团公司 | 加标签方法、加标签装置以及缺陷检查装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10085056B2 (en) | Method and system for improving application sharing by dynamic partitioning | |
US9741092B2 (en) | Method and system for image resizing based on interpolation enhanced seam operations | |
US20140362127A1 (en) | Display device, pixel array, and color compensating method | |
US20110285753A1 (en) | Image processing method and display device using the same | |
CN105247568A (zh) | 用带有色滤器的传感器生成改进的彩色图像的方法和装置 | |
US10504419B2 (en) | Data converting method and apparatus, and computer-readable storage medium | |
CN104750837A (zh) | 增长型时间序列数据的可视化方法和系统 | |
CN102567950A (zh) | 一种图像缩放方法及系统 | |
CN105657386A (zh) | 基于fpga的图像色彩校正方法及装置 | |
CN116798336B (zh) | 亚像素单元排布结构、显示器、虚拟像素结构和复用方法 | |
JP2009211331A (ja) | 画像処理方法 | |
JP6251029B2 (ja) | 制御装置、画像処理装置、制御方法、およびプログラム | |
CN113596581B (zh) | 一种图像格式转换方法、装置、计算机设备和存储介质 | |
CN112069282B (zh) | 一种道路的斑马线的生成方法、电子设备和存储介质 | |
JP2010108205A (ja) | 超解像画像作成方法 | |
JP4163199B2 (ja) | 検査装置、検査方法 | |
US20100150444A1 (en) | Method of grouping pixels in 2d digital image | |
CN109658332B (zh) | 一种基于流式数据处理的图像放大方法及终端 | |
US20110110591A1 (en) | Multi-point image labeling method | |
CN101739696A (zh) | 用于对凸多边形进行栅格化的系统及方法 | |
WO2012077395A1 (ja) | エッジ補間装置またはその方法 | |
US6891968B2 (en) | Method to upscale single-pixel wide text without loss of image sharpness | |
JP2005293361A (ja) | 画像処理装置 | |
JP2007286412A (ja) | Ledユニットの点灯制御方法 | |
CN108805846B (zh) | 二值图像处理优化的方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110510 |