(57)【要約】【課題】  画像中のオブジェクトに対応する連結成分を抽出し、連結成分の特徴量に従って連結成分の像を配置する効率的な方法を提供する。【解決手段】  濃淡画像を２値画像に変換する２値化ステップと、２値画像上の連結成分の画素に連結成分ごとに定まった番号を割り振られたラベル画像を生成するラベリングステップと、ラベル画像を参照して、各連結成分を囲む最小の長方形を設定する窓枠ステップと、各連結成分の特徴量を算出する特徴抽出ステップと、特徴量に従って連結成分をソートするソートステップと、ソートされた順に連結成分の像の一覧を表示する連結成分一覧画像を生成する描画ステップと、から連結成分一覧を作成する。【選択図】  図６
2006268339.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを使用して画像連結成分の一覧を作成する方法において、
画像を濃淡に関する２値画像に変換する２値化ステップと、
前記２値画像上の連結成分の画素に連結成分毎に定まった番号が割り振られたラベル画像を生成するラベリングステップと、
該ラベル画像を参照して、各連結成分を囲む最小の長方形からなる窓枠を設定する窓枠設定ステップと、
前記窓枠内において各連結成分の特徴量を算出する特徴量抽出ステップと、
前記特徴量に基づいて前記各連結成分をソートするソートステップと、
ソートされた順に前記各連結成分の像の一覧を表示する連結成分一覧を生成するステップと
を有することを特徴とする画像連結成分一覧作成方法。
【請求項２】
上記窓枠ステップにおいて、
まず、各連結成分iについて
変数ｘｉｍｉｎに十分大きな初期値を設定し、変数ｘｉｍａｘに十分小さな初期値を設定し、変数ｙｉｍｉｎに十分大きな初期値を設定し、変数ｙｉｍａｘに十分小さな初期値を設定し、
次に、ラベル画像をラスタ走査して、現在の位置(x, y)が連結成分i上であれば、xがｘｉｍｉｎより小さい時、ｘｉｍｉｎにxの値を代入し、xがｘｉｍａｘより大きい時、ｘｉｍａｘにxの値を代入し、yがｙｉｍｉｎより小さい時、ｙｉｍｉｎにyの値を代入し、yがｙｉｍａｘより大きい時、ｙｉｍａｘにyの値を代入し、各連結成分を囲む最小の長方形を設定することを特徴とする請求項１に記載の画像連結成分一覧作成方法。
【請求項３】
画素の濃度の大小に基づいて画像を２値化する２値化モジュールと、
連結している画素同士に同じラベルを付すラベリングモジュールと、
同じラベルが付された各連結成分を囲む最小の長方形からなる窓枠を設定する窓枠モジュールと、
前記窓枠内において各連結成分の特徴量を算出する特徴量抽出モジュールと、
前記特徴量に基づいて前記各連結成分をソートするソートモジュールと、
ソートされた順に前記各連結成分の像の一覧を表示する連結成分一覧を生成する連結成分一覧生成モジュールと
を備えた画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関し、特にコンピュータを使用して画像連結成分の一覧を作成する方法において、画像中のオブジェクトに対応する画像の連結成分の一覧を作成する技術に関する。
【背景技術】
【０００２】
一般に、多数のオブジェクトが存在する画像を、人手で解析しカウントしたり分類したりするのは、多くの場合、困難である。この問題を解決するために、コンピュータに作業を支援させることが考えられる。
【０００３】
薬の錠剤などのようにオブジェクトの形状・大きさが強く制限されている場合については、コンピュータにより自動的にカウントする方法が知られている（例えば特許文献１、特許文献２参照）。
【０００４】
【特許文献１】特開平09-231342号公報
【特許文献２】特開平07-282219号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、複雑な形状のオブジェクトについての処理については未開拓である。
【０００６】
例えば、食品を扱う工場や販売店では、衛生管理のために、常時、害虫の調査を行っている。従来は、接着剤を塗った紙、いわゆる捕虫紙を一定の期間、所定の場所に配置し、捕虫紙により捕らえられた虫を人手により分類していた。このような、虫を分類する作業は時間がかかるとともに、経験や能力の個人差が大きいことから、結果にばらつきが生じることが問題となっていた。そこで、コンピュータを用いて分類作業を半自動化することが望まれていた。
【０００７】
また、衛星画像を利用した交通量観測についても同様な問題がある。交通量観測作業は、交通量を把握し、渋滞状況の情報を各車輌に与えて渋滞を避けさせるなどにより渋滞を緩和するための有効な手段である。衛星画像を使った交通量観測は、道路にセンサを設置して交通量を観測する方法に比べて、コストが安いという利点があり、各方面からその実現が期待されている。しかしながら、衛星画像から車輌を全自動的に検出することは現在の技術では不可能である。したがって、人手で衛星画像を解析する必要があるが、直接、この画像を解析するのは困難であるため、何らかの方法によって画像解析を支援することが望まれている。
【０００８】
本発明の目的は、複雑な形状のオブジェクトについても画像中のオブジェクトに対応する連結成分を抽出し、連結成分の特徴量に従って連結成分の像を配置する効率的な方法を求めることである。
【課題を解決するための手段】
【０００９】
画像中に多数のオブジェクトが存在する場合に、オペレータがオブジェクトを識別するには、背景の影響を避けるなどのために、画像から個々のオブジェクトを抽出し、適当な基準に従ってオブジェクトを並べて表示することが効果的である。例えば、捕虫紙をカメラで撮影し、その画像をコンピュータで処理し、虫を大きさの順に並べることにより、虫の分類作業効率が向上する。
【００１０】
図１は、捕虫紙を撮影した画像である。捕虫紙上には多数の大小様々な形状の虫が捕らえられている。図３は捕虫紙上の虫を切り取って、虫の占める面積の広い順に並べた図である。矢印の方向にいくに従って虫の面積が狭くなる。図１又はそれを２値化した図２を利用するよりは、図３を使う方が能率的に虫の分類を行うことができる。
【００１１】
また、衛星画像についても同様の処理を行って、交通量の観測を容易にすることができる。図４(a)は処理対象の衛星画像であり、この画像中の車輌の数をカウントする。図４(c)は衛星画像中のオブジェクトを面積の広い順に並べた画像である。より具体的には、矢印の指す方向に向けてオブジェクトの面積が狭くなる。この画像には車輌の他に交通標識や車線の断片などのオブジェクトが紛れ込んでいるが、オペレータは図４(c)を使えば、図４(a)またはそれを２値化した図４(b)を使うより、より容易にオブジェクトの形状から車輌を選び出してカウントすることができる。
【００１２】
より詳細には、本発明は、濃淡画像を２値画像に変換する２値化ステップと、２値画像上の連結成分の画素に連結成分ごとに定まった番号を割り振られたラベル画像を生成するラベリングステップと、ラベル画像を参照して、各連結成分を囲む最小の長方形を設定する窓枠ステップと、各連結成分の特徴量を算出する特徴抽出ステップと、特徴量に従って連結成分をソートするソートステップと、ソートされた順に連結成分の像の一覧を表示する連結成分一覧画像を生成する描画ステップと、からなることを特徴とする連結成分一覧作成方法である。
【００１３】
上記窓枠ステップにおいて、まず、各連結成分iについて変数ｘｉｍｉｎ に十分大きな初期値を設定し、変数ｘｉｍａｘに十分小さな初期値を設定し、変数ｙｉｍｉｎに十分大きな初期値を設定し、変数ｙｉｍａｘに十分小さな初期値を設定し、次に、ラベル画像をラスタ走査して、現在の位置(x, y)が連結成分i上であれば、xがｘｉｍｉｎより小さい時、ｘｉｍｉｎにxの値を代入し、xがｘｉｍａｘより大きい時、ｘｉｍａｘ にxの値を代入し、yがｙｉｍｉｎより小さい時、ｙｉｍｉｎにyの値を代入し、yがｙｉｍａｘより大きい時、ｙｉｍａｘにyの値を代入して各連結成分を囲む最小の長方形を設定することを特徴とする連結成分一覧作成方法による。
【００１４】
図５(a)は処理対象である画像を濃淡により表した図である。図５（ａ）に示される数字は画素の濃度を示す。図５(b)は濃淡画像に対して閾値を５として２値化された２値画像である。すなわち、濃淡画像中の濃度が５以上の画素は領域に、５未満の画素は背景に変換されている。２値画像の数字１は領域の画素であること、また、数字０は背景の画素を意味する。尚、図１のようにオブジェクトが濃淡画像の濃度が低い領域に対応している場合は、濃淡画像を濃度の反転した画像に変換した後に２値化を行う。図５(b)の２値画像の中には三つの連結成分がある。画素の連結性は注目している画素の上下左右とともに斜め方向も考慮した、いわゆる、８連結で定義されたものを採用している。図５(c)は２値画像に対してラベリングの処理を施した結果のラベル画像である（非特許文献１参照）。
【００１５】
【非特許文献１】八木伸行・他７名：C言語で学ぶ実践画像処理、第７章、pp.95−108：オーム社（平成４年）
【００１６】
尚、ラベリングとは連結している画素同士には同一の番号を割り当て、分離している画素に対しては異なった番号を割り付ける処理のことである。ラベル画像中で背景の画素の値は０に設定され、三つの連結成分の画素は１から３までの数字で連結成分ごとに番号付けされている。図５(d)はラベル画像中の各連結成分に窓枠を設定した様子を示す図である。本命最初において、「窓枠」は、連結成分を囲む最小の長方形を意味し、この長方形の左上の画素と右下の画素の座標によって窓枠の位置が定義される。窓枠５０１が“１”、窓枠５０２が“２”、窓枠５０３が“３”の数字（番号）を付した連結成分に関する窓枠である。次に、連結成分の特徴量を抽出する。特徴量には、例えば面積、周囲長、円形度など様々な特徴量があるが、ここでは特徴量として面積を対象としている。
【００１７】
連結成分１（窓枠１）、連結成分２（窓枠２）、連結成分３（窓枠３）の面積は、それぞれ８画素、６画素、９画素である。図５(e)は連結成分をその面積の順に左から右、上から下に並べた画像である。すなわち、この画像中の左上に連結成分３が、その右に連結成分１が、左下に連結成分２が配置されている。各連結成分の画素の値は元の濃淡画像での濃度（輝度）を表している。
【発明の効果】
【００１８】
本発明の画像中のオブジェクトに対応する連結成分を抽出し、連結成分の特徴量に従って連結成分の像を配置する方法によれば、オペレータが容易にオブジェクトをカウントしたり、分類したりすることができるようになる。また、窓枠を使うことにより、連結成分の情報を高速に抽出することが可能である。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施の形態による連結成分一覧作成方法について説明を行う。図６は本発明の一実施の形態による連結成分一覧作成を行う画像処理システムの例を示す機能ブロック図である。本実施の形態による画像処理システムは、入力装置と、出力装置と、処理装置と、記憶装置と、を有している。入力装置は、例えばキーボード６０１又はマウスである。キーボード６０１、マウスは、パラメータの入力やコマンドの起動などに使われる。出力装置は、例えばＬＣＤディスプレイ６１５が備えられている。ディスプレイ６１５は、各種の画像の表示やデータ処理の確認などに利用される。処理装置６０２は、２値化モジュール６０３と、ラベリングモジュール６０４と、窓枠モジュール６０５と、面積算出モジュール６０６と、ソートモジュール６０７と、描画モジュール６０８と、例えば６つのモジュールを含む。
【００２０】
記憶装置６０９は、２値化モジュール６０３と描画モジュール６０８の入力である濃淡画像６１０と、２値化モジュール６０３の出力でラベリングモジュール６０４の入力である２値画像６１１と、ラベリングモジュール６０４の出力で窓枠モジュール６０５の入力であるラベル画像６１２と、描画モジュール６０８の出力である作業用画像６１３と、窓枠モジュール６０５の出力である領域配列６１４と、を記憶するそれぞれの記憶領域を含む。
【００２１】
図７は、図６の窓枠モジュール６０５における処理の詳細な流れを示すフローチャート図である。このフローチャート図には、領域配列と呼ばれる配列rが含まれている。領域配列rの要素r[i]は連結成分iについての情報を持つ構造体であり、図９(b)に示すように、id、xmin、xmax、ymin、ymax、sの六つのメンバを含む。idは連結成分iの識別子であり、xmin・xmax・ymin・ymaxは連結成分iを囲む窓枠を指定する。sは連結成分iの面積を表す。
【００２２】
図７に示すように、本実施の形態による窓枠モジュール６０５における処理は、１）ステップ７０１からステップ７０８までの処理であって領域配列rに初期値を設定する処理部分と、２）ステップ７０９からステップ７２４までの処理であって領域配列rに窓枠の情報をセットする部分と、に分かれる。フローチャートの前半の部分（上記１））では、ラベル画像中の連結成分の個数をnRegionとすると、変数iを１からnRegionまで変えながら、ステップ７０４において領域配列の要素r[i]のメンバidにiを、ステップ７０５においてメンバxminに適当に大きな数bigNを、ステップ７０６においてメンバxmaxに適当に小さな数smallNを、ステップ７０７においてメンバyminに適当に大きな数bigNを、ステップ７０８においてメンバymaxに適当に小さな数smallNをそれぞれ代入する。
【００２３】
画像のx軸の方向は、紙面上において左から右へ向いており、y軸の方向は紙面において上から下へ向いている。画像のx軸方向のサイズをＷで、y軸方向のサイズをＨで表す。フローチャートの後半の部分ではステップ７０９からステップ７１４までにおいて、ラベル画像を左から右へ、上から下へ走査する。ステップ７１５で座標(x, y)のラベル画像の画素の値を変数iに代入する。この画素が連結成分の画素であるか否かをチェックするために、ステップ７１６において変数iの値が０か否かを判定する。変数iの値が０であれば、連結成分の画素ではないためステップ７１４に進み、走査を繰り返す。変数iの値が０でなければ、連結成分の画素であるため、ステップ７１７に進む。そこで領域配列の要素r[i]のメンバxminがxより大きいか否かを判定し、大きい場合は（ＹＥＳ）、ステップ７１８でメンバxminにxを代入する。ステップ７１９でメンバxmaxがxより小さいか否かを判定し、小さければ（ＹＥＳ）、ステップ７２０でメンバxmaxにxを代入する。同様の処理をメンバyminとメンバymaxとについてステップ７２１からステップ７２４までのステップにおいて行う。走査を終了すると、領域配列の要素r[i]のメンバxminは連結成分iの左端のx座標の値を、メンバxmaxは右端のx座標の値を、メンバyminは上端のy座標の値を、メンバymaxは下端のy座標の値をそれぞれ持つことになる。本実施の形態によるフローチャート図の表すアルゴリズムを用いると、ラベル画像を一度走査するだけで処理が行えるため極めて効率が良いという利点がある。
【００２４】
図８は、図６の面積算出モジュール６０６における処理の詳細を示すフローチャート図である。このフローチャート図には、ステップ８０１からステップ８０３までの変数iについてのループと、ステップ８０５からステップ８０７までの変数yについてのループと、ステップ８０８からステップ８１０までの変数xについてのループが含まれる。最初のループでは、変数iは連結成分を表し、１からnRegionまで変わる。後の二つのループでは変数yはr[i].yminからr[i].ymaxまで変わり、変数xはr[i].xminからr[i].xmaxまで変わる。すなわち、これらのループでは、連結成分iを囲む窓枠を左から右へ、上から下へ走査する。図８において、全ての連結成分iについて、領域配列の要素のメンバr[i].sを０に初期化し（ステップ８０４）、連結成分iを囲む窓枠内のラベル画像の画素が連結成分iの画素であれば（ステップ８１１）、メンバr[i].sの値を一つ増やして（ステップ８１２）連結成分iの面積を算出する。この窓枠を使った面積算出アルゴリズムにおいては最小限の画素にアクセスするだけで良いため、算出処理の効率が良いという利点がある。
【００２５】
次に図６のソートモジュール６０７が連結成分をその面積が大きい順にソートする。図９(a)はソートで使われる配列orderの要素の構造を示したものである。図９（ａ）に示すように、要素はメンバsとメンバidからなる構造体である。order[i].sとorder[i].idの初期値はそれぞれr[i].sとr[i].idである。図９(c)は図５(d)の窓枠付きラベル画像と領域配列rと配列orderの関係を示した図である。図９(c)の左側の配列orderはソート前の状態を示し、右側の配列orderはソート後の状態を示す。ソートの結果、連結成分３・連結成分１・連結成分２の順に配列orderの要素を並べることができる。
【００２６】
図１０は図６の描画モジュール６０８の処理の詳細を示すフローチャート図である。描画モジュール６０８は、連結成分を面積の大きい順に出力画像の左から右に並べて描画する。一行に収まりきれない場合には改行を行う。変数xと変数yとは連結成分を出力画像中に配置した時の連結成分を囲む窓枠の左上の点のx座標とy座標を意味する。変数dyは一行の連結成分中でy方向の最も大きいサイズを求めるための変数である。
【００２７】
図１０に示すように、まず、ステップ１００１からステップ１００３までにおいて、変数x、変数y、および、変数dyに初期値０を設定する。次に、ステップ１００４において変数iに１を代入する。ステップ１００５においてiが連結成分の個数nRegion以下か否かを判定する。nRegion以下でないなら（ＮＯ）、処理を終了する（ｒｅｔｕｒｎ）。nRegion以下なら（ＹＥＳ）、ステップ１００６においてi番目に面積の大きい連結成分の識別子を得るために、order[i].idの値を変数idに代入する。次に、ステップ１００７において連結成分idを出力画像中に配置した時の右端のx座標xRightを算出する。ステップ１００８においてxRightが出力画像の幅Wより大きいか否かを判定する。大きくなければ（ＮＯ）、ステップ１０１３において連結成分idを出力画像中に配置した時の下端のy座標yLowを算出する。ステップ１０１４においてyLowが出力画像の高さHより大きいか否かを判定する。大きければ（ＹＥＳ）、処理を終了する（ｒｅｔｕｒｎ）。大きくなければ（ＮＯ）、ステップ１０１５において手続きdraw(id, x, y)を呼んで、連結成分idを描き込む。次に、ステップ１０１６とステップ１０１７とにおいてdyと連結成分idの高さを比較して、dyの方が小さければ、dyに連結成分idの高さを代入する。
【００２８】
次に、ステップ１０１８において、変数xをxRightと連結成分間の間隔SPACEを加算した値にする。ステップ１０１９において変数iの値を１つ増やし、ステップ１００５に戻ってループする。ステップ１００８で大きければ（ＹＥＳ）、改行の処理を行う。すなわち、ステップ１００９において変数xの値を０にし、ステップ１０１０において変数ｙの値をy + dy + SPACEにする。ステップ１０１１において変数dyの値を０にする。ステップ１０１２において変数yが出力画像の高さHより大きいか否かを判定する。変数yが出力画像の高さHより大きければ（ＹＥＳ）、処理を終了する。変数yが出力画像の高さHより大きくなければ（ＮＯ）、ステップ１００５に戻り、ループする。
【００２９】
図１１は、図１０のステップ１０１５で呼んでいる手続きdraw(id, x, y)の詳細を示すフローチャート図である。図１１に示すフローチャート図には、ステップ１１０１からステップ１１０３までの変数y1についてのループと、ステップ１１０４からステップ１１０６までの変数x1についてのループがある。二つのループでは変数y1はr[id].yminからr[id].ymaxまで変わり、変数x1はr[id].xminからr[id].xmaxまで変わる。すなわち、これらのループでは連結成分idを囲む窓枠を左から右へ、上から下へ走査する。ステップ１１０７で座標(x1, y1)のラベル画像の画素が連結成分idの画素であるか否かを判定する。座標(x1, y1)のラベル画像の画素が連結成分idの画素でなければ（ＮＯ）、直接、ステップ１１０６へ進む。座標(x1, y1)のラベル画像の画素が連結成分idの画素であれば（ＹＥＳ）、ステップ１１０８とステップ１１０９とで連結成分idを囲む窓枠の左上の点(r[id].xmin, r[id].ymin)を点(x, y)に対応させる平行移動によって、点(x1, y1)を点(x2, y2)に変換する。ステップ１１１０で入力画像imgInの座標(x1, y1)の画素の値を出力画像imgOutの座標(x2, y2)の画素に代入する。次にステップ１１０６へ進む。ステップ１１０６では変数x1の値を一つ増やし、ステップ１１０５に戻ってループする。
【００３０】
この窓枠を使ったアルゴリズムは最小限の画素にアクセスするので、効率が良い。従来の方法（非特許文献１p.108）では、一つの連結成分を描く毎に画像全体を走査する必要があるため、全体で連結成分の個数だけ画像全体を走査する。一方、本実施の形態による窓枠を使ったアルゴリズムでは、連結成分の窓枠内だけを走査すればよいので、全ての連結成分を描くのに高々一回の画像全体の走査で済む。
【００３１】
尚、上記の例では、虫や常在などの画像解析を例にして説明したが、例えば、天体写真、星の明るさなどに関する解析にも利用できることは言うまでもない。また、上記各処理をコンピュータに実行させるためのプログラムも本発明の範疇に入るものである。
【００３２】
以上、本実施の形態による画像処理技術における連結成分一覧作成方法においては、画像中のオブジェクトに対応する連結成分を抽出し、連結成分の特徴量に従って連結成分の像を配置する方法により、オペレータが容易にオブジェクトをカウントしたり、分類したりすることができるようになった。また、窓枠を使うことにより、連結成分の情報を高速に抽出することができるという利点がある。
【産業上の利用可能性】
【００３３】
本発明は画像処理技術に利用可能である。
【図面の簡単な説明】
【００３４】
【図１】捕虫紙の濃淡画像の例を示す図である。
【図２】捕虫紙の２値画像の例を示す図である。
【図３】捕虫紙の連結成分一覧を示す図である。
【図４】道路の衛星画像の処理例を示す図である。
【図５】本実施の形態による濃淡画像の処理例を示す図である。
【図６】本実施の形態による画像処理ハードウェアシステムのブロック図を示す図である。
【図７】窓枠モジュール６０５の処理の詳細を示すフローチャート図である。
【図８】面積算出モジュール６０６の処理の詳細を示すフローチャート図である。
【図９】窓枠付きラベル画像と領域配列rと配列orderとの関係を示す図である。
【図１０】描画モジュール６０８の詳細を示すフローチャート図である。
【図１１】手続きdraw(id, x, y)の詳細を示すフローチャート図である。
【符号の説明】
【００３５】
６０１・・・キーボード、６０２・・・処理装置、６０３・・・２値化モジュール、６０４・・・ラベリングモジュール、６０５・・・窓枠モジュール、６０６・・・面積算出モジュール、６０７・・・ソートモジュール、６０８・・・描画モジュール、６０９・・・記憶装置、６１０・・・濃淡画像、６１１・・・２値画像、６１２・・・ラベル画像、６１３・・・作業用画像、６１４・・・領域配列、６１５・・・ディスプレイ。
【図１】
2006268339.tif 000003
【図２】
2006268339.tif 000004
【図３】
2006268339.tif 000005
【図４】
2006268339.tif 000006
【図５】
2006268339.tif 000007
【図６】
2006268339.tif 000008
【図７】
2006268339.tif 000009
【図８】
2006268339.tif 000010
【図９】
2006268339.tif 000011
【図１０】
2006268339.tif 000012
【図１１】
2006268339.tif 000013