(57)【要約】【課題】簡易な方法で境界で囲まれた異物の領域を効率よく塗りつぶす【解決手段】  異物を表す２値化画素配列表の走査始点から異物の境界を追跡して目印画素配列を形成し、前記目印画素配列から境界を特定し、前記特定した境界内の画素にラベリングを施してラベリング画素配列を形成し、かつラベリングされた領域を塗りつぶす。上記ラベリング及び塗りつぶしは、境界を特定した後、上記境界の外接矩形を設定し前記外接矩形内で行う。【選択図】    図８
2009080776.tif 000002
【特許請求の範囲】
【請求項１】
異物を表す２値化配列表の走査始点から異物の境界を追跡して、追跡画素に加点による目印を付与する工程と、前記加点情報から境界を特定する工程と、前記特定した境界及び境界内の画素にラベリングを施す工程と、ラベリングされた領域を塗りつぶす工程とを有することを特徴とする画像処理方法。
【請求項２】
請求項１に記載された画像処理方法において、
前記ラベリング工程は、境界の外接矩形を設定し、前記外接矩形内で行うことを特徴とする画像処理方法。
【請求項３】
請求項１又は２に記載された画像処理方法において、
前記２値化配列表を走査して境界を追跡する工程は、２値化配列表を走査して異物画素を検出したとき、当該画素を走査基準点として、当該画素の近傍画素を所定の回転方向に走査し、最初に検出した異物画素へ前記走査基準点を移動させ、以下同様に走査基準点を移動させながら走査を行い、最初の移動元画素に戻るまで走査を行う工程である、ことを特徴とする画像処理方法。
【請求項４】
請求項１ないし３のいずれかに記載された画像処理方法において、
前記基準点の通過画素が境界画素に該当するか否かを判断する工程は、前記目印画素配列から当該画素が異物画像の左右端画素であるか否かに基づき行うことを特徴とする画像処理方法。
【請求項５】
請求項４に記載された画像処理方法において、
前記目印画素配列から当該画素が異物画像の左右端画素であるか否かの判断は、前記走査基準点の移動方向に基づき移動先画素と移動元画素に付与した正又は負の特定の値を各画素毎に加算し、その加算結果に基づき行うことを特徴とする画像処理方法。
【請求項６】
請求項５に記載された画像の塗りつぶし方法において、
前記ラベリング工程は、前記加算値が正である画素から水平方向に加算値が負である画素までの区域、及び前記加算値が０である画素にラベリングを施すことを特徴とする画像処理方法。
【請求項７】
請求項１ないし６のいずれかに記載された画像処理方法において、
前記塗りつぶした画素領域の画素数からその面積を得る工程を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理方法及び画像処理装置、とくに２値化配列表が与えられたときに、１本の境界によって閉じかつ孔を含む領域を全て塗りつぶす塗りつぶしを実施する画像処理方法及び画像処理装置に関する。
【背景技術】
【０００２】
画像処理分野において、取得した画像について様々な判断を行う前段階の処理として、例えば撮像画像の背景差分やフレーム間差分処理が行われている。
これらの差分処理では現在の画像と基準とする画像の差分をとり、差分が一定の閾値を超えた画素を１、超えなければ０というように、差分の結果を２値化することで後段の処理を簡略化して処理時間を減らす工夫がなされている。
また、差分処理により得られた差分画像から異物の面積を求め、それにより何らかの処理をする場合には、差分画素が繋がっている部分は同じものとして同一の番号を付与するラベリング操作を行い、それによって面積を測定するのが一般的である。
【０００３】
この操作を行うための従来の手法は次の手順による。
（１）撮像画像の背景（フレーム間）差分と２値化を行い、（２）境界（画素）を追跡して境界画素のラベリングを行う、（３）未ラベリング画素を塗りつぶす。
この従来の手順によれば、差分が終わってから塗りつぶしを終えるまでに、全体画像を２回走査しなければならない。また、異物を塗りつぶす場合、水平走査をして塗りつぶす方法が速く一般的手順であるが、従来の奇数番目に見付けた端点（画素）を開始点として偶数番目に見付けた端点（画素）を終止点とする方法では、異物の頂点や括れた部分など１画素しか厚みがない部分では、端点の判断ができず別の条件を入れて異物の頂点やくびれ部分の判断を行う必要がある（特許文献１参照）。またそればかりではなく、複雑に絡み合った図形では、その絡み合った図形を識別するために、別の条件を入れて判断しなければならないため、処理が煩雑である。
【０００４】
また、異物に囲まれた異物を同じものとして処理しようとしても、前記従来の手法ではそれらは違うものとして処理されてしまう。その対策として、一度別物として処理されたものを後から同じものであるとして関係付けをする必要があり、煩雑である。また、異物の中にできる孔を塗り潰そうとしても、求めた境界が必ずしも左端や右端にあるとは限らないため、別の条件を入れて右端か左端かを判断しなければならない。
【特許文献１】特開平３−７１３７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、従来の画像処理方法における上記のような問題を解決するためになされたものであって、その目的は、簡易な方法で境界（ここでは境界となる画素を指す）で囲まれた内部領域を確実に塗りつぶし、しかも、塗りつぶしに当たって走査範囲を限定することで処理時間を短縮し、かつ、従来は別工程で実施していた塗りつぶしと塗りつぶした領域の面積の取得を同時に行えるようにする画像処理方法及び装置を提供することである。
【課題を解決するための手段】
【０００６】
請求項１の発明は、画像処理方法であって、異物を表す２値化配列表の走査始点から異物の境界を追跡して目印画素配列を形成する工程と、前記目印画素配列から境界を特定する工程と、前記特定した境界内の画素にラベリングを施してラベリング画素配列を形成する工程と、ラベリングされた領域を塗りつぶす工程とを有することを特徴とする。
請求項２の発明は、請求項１に記載された画像処理方法において、前記ラベリング工程は、境界の外接矩形を設定し、前記外接矩形内で行うことを特徴とする。
請求項３の発明は、請求項１又は２に記載された塗りつぶし方法において、前記２値化配列表を走査して境界を追跡する工程は、２値化配列表を走査して異物画素を検出したとき、当該画素を走査基準点として、当該画素の近傍画素を所定の回転方向に走査し、最初に検出した異物画素へ前記走査基準点を移動させ、以下同様に走査基準点を移動させながら走査を行い、最初の移動元画素に戻るまで走査を行う工程である、ことを特徴とする。
請求項４の発明は、画像処理方法であって、請求項１ないし３のいずれかに記載された画像処理方法において、前記基準点の通過画素が境界画素に該当するか否かを判断する工程は、前記目印画素配列から当該画素が異物画像の左右端画素であるか否かに基づき行うことを特徴とする。
請求項５の発明は、請求項４に記載された画像処理方法において、前記基準点の通過画素が境界画素に該当するか否かの判断は、前記走査基準点の移動方向に基づき移動先画素と移動元画素に付与した正又は負の特定の値を各画素毎に加算し、その加算結果に基づき行うことを特徴とする。
請求項６の発明は、請求項５に記載された画像の塗りつぶし方法において、前記ラベリング工程は、前記加算値が正である画素から水平方向に加算値が負である画素までの区域、及び前記加算値が０である画素にラベリングを施すことを特徴とする。
請求項７の発明は、請求項１ないし６のいずれかに記載された画像処理方法において、前記塗りつぶした画素領域の画素数からその面積を得る工程を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、複数の異物を含む任意の画像に対して、塗りつぶしを正確に行うことができ、孔を含んだ画像を塗りつぶしをする場合に、従来の方法に比して迅速に処理できるだけではなく、全体の走査を終了する前に、異物面積を確定することができる。
そのため、異物の大きさからその異物の大凡の種類を迅速に知ることができ、防犯や安全対策に有効に利用することができる。
【発明を実施するための最良の形態】
【０００８】
本願発明の実施形態に係る塗りつぶし行うためのアルゴリズム、即ち２値化配列表が与えられたとき、１本の曲線によって閉じた孔を含む領域を全て塗りつぶすアルゴリズムについて説明する。
まず、このアルゴリズムを実行するために必要な前提について説明する。
【０００９】
ステップ１；本実施形態に係る塗りつぶし方法を実施するために予め必要な画像
（１）２値化画素配列表（又は画像）
従来と同様に、差分処理で現在の画像と基準となる画像の差分をとり、差分が一定の閾値を超えた画素を１、超えなければ０というように、差分の結果を２値化することで得た２値化画素配列から成る２値化画素配列表。
ここでは、０・・・異物なし
１・・・異物あり
とする。
（２）目印配列表（画像）
上記２値化画素配列表の異物の境界を同定するため境界追跡を行って追跡画素に加点した目印付きセルで構成され、この目印（加点数）を基に上記２値化画素配列表の異物の境界を判断する。
初期値  ０、
正又は負の所定の整数・・・境界
とする。
（３）ラベル値配列表（画像）
上記２値化画素配列表及び目印配列表に基づき作成する塗りつぶし処理用のラベル値の配列表であって、ここでは、境界で囲まれた領域及び境界をラベリングしたセルで構成される。ここでは、初期値を−１とする。
−１・・・非境界（画素が境界でない）
０・・・境界
１〜・・・異物のラベル値（塗りつぶしの際にラベリングするときのポイント：ここでは１以上の整数とする）
【００１０】
ステップ２  ：境界（画素）追跡
２値化画素配列表の左下を原点とし、左方向へ進みながら異物画素を探索する。右端まで着いたら１行上の左端へ移動し、以下これを繰り返して境界追跡を行う。
【００１１】
ステップ３  ：外側境界追跡工程（ここでは８近傍とする）
２値化画素配列表で異物を発見したら、その画素を始点として境界追跡を行う。追跡方法としては、始点画素の周りの８画素（８近傍）のうち、例えば左回りで最初に探索した異物画素を移動先とし、次に、この移動先画素を始点として同様に８近傍の画素について左回りで異物画素を探索する。この場合、ラベリングは行わず、代わりにルールにしたがって数値を加算して目印配列表を形成し、その加算値から境界画素が左端なのか右端なのかを判別する。
具体的には、境界追跡中に、移動先画素と移動元画素（始点画素）のそれぞれについて、左周りで８近傍の追跡を行う場合、下記の表１に示すポイントを加算する。
【００１２】
ステップ４  ：塗りつぶし工程
境界追跡が終了したら処理時間を削減するために、境界画素の外接矩形内に限って塗りつぶしを行う。
塗りつぶし手順は、
（１）外接矩形内を左下から右方に向かって塗りつぶし走査をする。
（２）左端（２値化画素配列表が１、ラベルが０、目印が正の値）の画素（異物画素）を見つけたら、その画素よりも右側に右端（２値化画素配列表が１、ラベルが０、目印が負の値）の画素が必ず存在するので、左端画素を含め右端画素までを全てラベリングして塗りつぶす。ラベリングが終了したら右端の画素の右隣から、再度塗りつぶし走査を開始する。
（３）くびれ（２値化画素配列表が１、ラベルが０、目印が０）の画素を見つけたら、その画素のみラベリングして、再度右隣の画素から塗りつぶし走査を再開する。
【００１３】
ステップ５：  境界追跡走査の再開
（１）未ラベル配列表のラベル値を初期値「−１」にする。
（２）境界追跡のスタート画素から、ステップ１の走査を再開する。
【００１４】
以上で説明した塗りつぶしのためのアルゴリズムにしたがった画像の処理について、図面を参照して以下具体的に説明する。
（実施例）
図１は、本実施形態の塗りつぶし方法を説明するための異物を含んだ２値化画素配列表（画像）の１例である。
本実施例では、まずこの２値化画素配列表についてステップ２の走査を行う。
走査は、図２に示すように画像の左下を始点として、右方向へ進みながら異物画素（図中「編目画素」）を検索する。
【００１５】
ステップ３  ：  外側境界追跡（８近傍）
走査の結果、異物を発見したら（図２の矢印先端画素）、図３〜図８に示すようにその画素を始点とした境界追跡を行う。その際、境界画素のラベリングは行わず、代わりに境界追跡した画素に下記表１にしたがった数値を加算し、目印配列表を作成し、後述のようにその境界画素が左端なのか右端なのか等の判断を行う。
【００１６】
【表１】
2009080776.tif 000003
【００１７】
即ち、境界（画素）追跡中の移動先と移動元のそれぞれの画素について、その画素に対応して目印配列表にポイントを加算する（ここでは、目印を付けるともいう）。図３〜図８は、左回りで８近傍の追跡を行った場合の各境界画素に付与されたポイント（値）を示す。
即ち、図３Ａのスタート画素から左周りで、ここでは当該画素の周りの８画素（「８近傍」又は「４近傍」でもよい）で最初に検知された異物画素は左上の画素であり、この画素は表１の移動先画素に当たるから＋１を加点する。また、同時に移動元の始点画素にも＋１を加点する。これを表したのが図３Ａである（セル内の数字が加点した数値を示す）。
【００１８】
次に、今度は移動先画素から左回りで８近傍の画素で検出した異物画素は、更にその左上であるから、その移動先画素に＋１を加え、同時に移動元の画素にも＋１を加える。その結果を示したのが図３Ｂである。以下同様に、図３Ｃ、図４Ａと進み、図４Ａでは、スタートから６番目の画素では、左回りで８近傍の画素で最初に検知した異物画素は右上になるから７番目の画素に＋１を、また移動元である６番目の画素にも＋１を与えて６番目の画素のポイントが２になることを示している。次に、図４Ｂでは、移動元が第８番目の画素では移動先の第９番目の画素は右下にあるから、図４Ａの数値に対して表１からそれぞれ−１が加算される。その結果、第８番目の画素は０となり、第９番目の画素は−１となる。
以下、同様の処理を繰り返し、その結果、図４Ｂ〜図７を経て、最後に図８の状態になり、境界追跡が終了する。
なお、図６〜図８の図中の矢印は走査基準点の移動軌跡を示す。
【００１９】
このようにして得られた目印配列表から、そのセル内の数値が正の整数（ここでは２）が異物画素領域の左端を、また負の整数（ここでは−２）が同右端を示し、数値０は境界又はくびれ部分を示すことが判別できるため、境界画素が特定（同定）できる。
ここで、図９に示すように、境界追跡の結果得られた境界画素のラベルを０にし、その他の画素にはラベル値−１を付与したラベル配列表を作成する。
【００２０】
ステップ４：塗りつぶし処理
ここでは、２値化画素配列表、目印配列表及びラベル配列表を用いて、目印配列表のセル内が正又は負の整数及び０である画素にラベリングを行って塗りつぶし処理を行う。
図１０は、上記目印配列表から外接矩形で切り出した塗りつぶし処理の対象となる目印配列表であり、図１１、図１２はこの目印配列表における塗りつぶしのためのラベリングの手順を示す図である。ここで、セル上の数字は目印値で、「斜線」模様はラベリング中、「点」模様はラベリング済み、「格子」模様はラベル０（境界ラベル）、白はラベル−１（境界以外で未ラベル）を示す。
【００２１】
境界画像の追跡が終了した段階で、境界追跡を行った画素の外接矩形を２値化画素配列表内に設定し、この外接矩形内に限って塗りつぶし処理を行う。このようにすることにより塗りつぶしのためのラベリング走査の範囲を限定するため、従来のように２値化画素配列表（画像）内全てを走査するものに比べて効率的に塗りつぶし処理を行うことができる。
【００２２】
外接矩形内で左端の異物画素は２値化画素配列表では１、ラベル配列表では０、目印配列表では正の値（図１１Ｂ：ここでは２）であるから、この画素を見つけたらそれが左端画素である。左端画素が存在すれば、その画素よりも右側に右端画素（２値化画素配列表が１、ラベルが０、目印が負の値（図１１Ｂ、ここでは−２）の画素が必ず存在するので、左端画素を含め右端画素までを全てラベリングする。さらに、右端の画素の右隣から、塗りつぶしのための走査を再開する。
【００２３】
ここで、検知した画素は、２値化画素配列表では１、ラベル配列表では０、目印配列表では０で画素のくびれであるから、その画素のみラベリングして、右隣の画素から塗りつぶし走査を再開する。後は、以上で説明した内容の繰り返しとなる。
【００２４】
図１１Ａは、目印配列表を走査したとき最初にヒットした画素の目印は０なので、その画素だけラベルを付与する。
図１１Ｂは、図１１Ａの状態からそのまま右方向に走査を続け、次に同様の画素を検出したので、同様にラベルを付与している状態を示す。
【００２５】
図１１Ｃは、走査中に目印値２の画素を発見したので、隣の−２の画素までラベルを付与している状態を示す。以下同様にして、図１２Ａでは、目印値２の画素から同−２の画素までに無印の画素が並んでいる場合に、その全ての画素にラベルを付すことを示している。
図１２Ｂは、目印値２の画素を発見したので、先の−２まで全ての画素にラベルを付与する。この場合、目印値２と同−２との間に目印値０の画素があるが上述のようにその全ての画素にラベルを付すことを示している。
【００２６】
さらに図１２Ｃは、図右上隅の部分で目印値０の画素を検知したが、ラベル配列表でのラベル値は「−１」で、これが境界ではないことが分かるので、無視して走査を続けることを示している。
これにより、最初に設定した外接矩形内での走査を終了し、同時に画素を塗りつぶす処理も終了する。その際、塗りつぶした画素の数を計数することにより画素の面積を同時に得ることができる。即ち、撮像画像の全体の塗りつぶし処理が終了する前に、塗りつぶし処理が終了した部分からその塗りつぶした異物の面積を得ることができる。
図１３は、上記塗りつぶし処理が終了したときのラベリング配列表を示す。塗りつぶした画素部分は１にそれ以外は−１にラベリングされている。
【００２７】
図１４は、最初の外接矩形内での塗りつぶしに続き、以上で説明した走査の最初に戻って、改めて走査を開始した状態を示している。
即ち、今回の走査では、既にラベリング済みの画素（ラベリング「１」）は無視して走査を続け、図右上の画素を検知したら、そこから既に説明した境界追跡を開始し、以上で説明した各ステップの処理を行い塗りつぶしを実行する。以上の処理を継続することで、撮像画像について、異なる穴あきの異物が複数存在しても、その異物毎に塗りつぶしを実行することができる。また、夫々の異物の面積も同時に得ることができる。
【００２８】
この異物画像の塗りつぶしアルゴリズムは、文字のように境界の内側を空白にしておく必要があるものには適さないが、例えば、特定の領域に浸入する車両や人など、境界の内側が空白でない物体や動物などの検知に好適であり、その塗りつぶし面積からその大きさを知ることができるため、対象が大凡何であるかの判断を行うことができる。
【００２９】
以上の実施形態では、画素配列表として、（１）２値化画素配列表、（２）ラベル用配列表、（３）目印配列表の３つの配列表を用いて異物の境界内の塗りつぶしを行ったが、３つの配列表が用意できない場合であっても、数値の領域を使い分けることにより、２値化画素配列表の配列だけでも同様の塗りつぶしを実現することができる。
次に、その場合のアルゴリズムを説明するが、基本的には既に説明した実施例の場合と同様である。
この場合は、数値として、
２値化画素配列表用には、０、１
ラベル用には、    ５０以上の数値
目印用には、      −４９〜＋４９（但し、０、１は除く）
この場合の目印テーブルは表２に示す。
【００３０】
【表２】
2009080776.tif 000004
【００３１】
但し、境界追跡のとき２値化画素配列表のセルの初期値は１なので、移った先が１ならば加算前に０に初期化する。
また、塗りつぶしの条件は、上記実施例を以下のように変更する。
左端（２値化画素配列表が＋１８〜＋４９）の画素を見つけたら、その画素よりも右側に右端（２値化画素配列表が−４９〜−８）画素が必ず存在するので、左端画像を含む右端画素までを全てラベリング（５０以上の数値を付す）する。
右端の画素の右隣から、塗りつぶし走査を再開する。
くびれ（２値画素が＋２〜＋６）の画素を見つけたら、その画素のみラベリングして、右隣から塗りつぶし走査を開始する。
【００３２】
図１５は、以上で説明した塗りつぶし方法を実施するための装置構成を示したブロック図である。
画像処理装置１０は、ＣＰＵ１００と、塗りつぶし処理のためのプログラムを格納するＲＯＭ１０１と、ＲＯＭ１０１から読み出したプログラムや、当該プログラムの稼働のために必要となるデータ等を一時記憶するＲＡＭ１０２とからなるコンピュータと、データやコマンドの入力等を行う入力部１０３と、出力データ等の表示部１０４と、撮像画像、２値化画素配列表、目印配列表、ラベル値配列表等を記憶する記憶部１０５で構成されている。
【００３３】
また、本願発明の画像処理装置１０を構成する走査手段と、境界追跡画素に加点による目印を付与する手段と、２値化画素配列表を走査して異物画素を検出したとき、当該画素を走査基準点として、当該画素の近傍画素を所定の回転方向に走査し、最初に検出した異物画素へ前記走査基準点を移動させ、以下同様に走査基準点を移動させながら走査を行い、最初の移動元画素に戻るまで走査手段を制御する手段と、前記目印画素配列から当該画素が異物画像の左右端画素であるか否かに基づき前記基準点の通過画素が境界画素に該当するか否かを判断する手段と、境界を特定した後、当該境界で規定される異物画像の外接矩形を設定する手段と、前記加算値が正である画素から水平方向に加算値が負である画素までの区域、及び前記加算値が０である画素にラベリングを施す前記ラベリング手段と、ラベリングされた領域を塗りつぶす処理を行う手段と、前記塗りつぶした画素領域の画素数からその面積を得る手段は、いずれも上記ＲＯＭ１０１に格納された塗りつぶし処理のための画像処理プログラムを上記ＣＰＵ１００、ＲＯＭ１０１及びＲＡＭ１０２で構成された制御部のコンピュータで実行することにより得られる機能実現手段である。
【図面の簡単な説明】
【００３４】
【図１】異物画像の２値化画素配列表の１例である。
【図２】図１と同様の図で、異物画像における走査を説明する図である。
【図３】境界追跡を説明するための図である。
【図４】境界追跡を説明するための図である。
【図５】境界追跡を説明するための２値化画素配列表を示す図である。
【図６】境界追跡を説明するための２値化画素配列表を示す図である。
【図７】境界追跡を説明するための２値化画素配列表を示す図である。
【図８】境界追跡を説明するための２値化画素配列表を示す図である。
【図９】ラベル値配列表を示す。
【図１０】外接矩形で切り出したラベリング対象となる２値化画素配列表である。
【図１１】塗りつぶし処理の手順を示す図である。
【図１２】塗りつぶし処理の手順を示す図である。
【図１３】塗りつぶし処理のためのラベリングを施した２値化画素配列表を示す図である。
【図１４】図１と同様の図であり、設定された外接矩形の塗りつぶし工程終了後に、再度塗りつぶしプロセスを開始する状態を示す。
【図１５】塗りつぶし方法を実施するための装置構成を示したブロック図である。
【符号の説明】
【００３５】
１０・・・画像処理装置、１００・・・ＣＰＵ、１０１・・・ＲＯＭ、１０２・・・ＲＡＭ、１０３・・・入力部、１０４・・・表示部１０４１０５・・・記憶部。
【図１】
2009080776.tif 000005
【図２】
2009080776.tif 000006
【図３】
2009080776.tif 000007
【図４】
2009080776.tif 000008
【図５】
2009080776.tif 000009
【図６】
2009080776.tif 000010
【図７】
2009080776.tif 000011
【図８】
2009080776.tif 000012
【図９】
2009080776.tif 000013
【図１０】
2009080776.tif 000014
【図１１】
2009080776.tif 000015
【図１２】
2009080776.tif 000016
【図１３】
2009080776.tif 000017
【図１４】
2009080776.tif 000018
【図１５】
2009080776.tif 000019