画像処理方法及び画像処理装置
【課題】簡易な方法で境界で囲まれた異物の領域を効率よく塗りつぶす
【解決手段】
異物を表す2値化画素配列表の走査始点から異物の境界を追跡して目印画素配列を形成し、前記目印画素配列から境界を特定し、前記特定した境界内の画素にラベリングを施してラベリング画素配列を形成し、かつラベリングされた領域を塗りつぶす。上記ラベリング及び塗りつぶしは、境界を特定した後、上記境界の外接矩形を設定し前記外接矩形内で行う。
【解決手段】
異物を表す2値化画素配列表の走査始点から異物の境界を追跡して目印画素配列を形成し、前記目印画素配列から境界を特定し、前記特定した境界内の画素にラベリングを施してラベリング画素配列を形成し、かつラベリングされた領域を塗りつぶす。上記ラベリング及び塗りつぶしは、境界を特定した後、上記境界の外接矩形を設定し前記外接矩形内で行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理方法及び画像処理装置、とくに2値化配列表が与えられたときに、1本の境界によって閉じかつ孔を含む領域を全て塗りつぶす塗りつぶしを実施する画像処理方法及び画像処理装置に関する。
【背景技術】
【0002】
画像処理分野において、取得した画像について様々な判断を行う前段階の処理として、例えば撮像画像の背景差分やフレーム間差分処理が行われている。
これらの差分処理では現在の画像と基準とする画像の差分をとり、差分が一定の閾値を超えた画素を1、超えなければ0というように、差分の結果を2値化することで後段の処理を簡略化して処理時間を減らす工夫がなされている。
また、差分処理により得られた差分画像から異物の面積を求め、それにより何らかの処理をする場合には、差分画素が繋がっている部分は同じものとして同一の番号を付与するラベリング操作を行い、それによって面積を測定するのが一般的である。
【0003】
この操作を行うための従来の手法は次の手順による。
(1)撮像画像の背景(フレーム間)差分と2値化を行い、(2)境界(画素)を追跡して境界画素のラベリングを行う、(3)未ラベリング画素を塗りつぶす。
この従来の手順によれば、差分が終わってから塗りつぶしを終えるまでに、全体画像を2回走査しなければならない。また、異物を塗りつぶす場合、水平走査をして塗りつぶす方法が速く一般的手順であるが、従来の奇数番目に見付けた端点(画素)を開始点として偶数番目に見付けた端点(画素)を終止点とする方法では、異物の頂点や括れた部分など1画素しか厚みがない部分では、端点の判断ができず別の条件を入れて異物の頂点やくびれ部分の判断を行う必要がある(特許文献1参照)。またそればかりではなく、複雑に絡み合った図形では、その絡み合った図形を識別するために、別の条件を入れて判断しなければならないため、処理が煩雑である。
【0004】
また、異物に囲まれた異物を同じものとして処理しようとしても、前記従来の手法ではそれらは違うものとして処理されてしまう。その対策として、一度別物として処理されたものを後から同じものであるとして関係付けをする必要があり、煩雑である。また、異物の中にできる孔を塗り潰そうとしても、求めた境界が必ずしも左端や右端にあるとは限らないため、別の条件を入れて右端か左端かを判断しなければならない。
【特許文献1】特開平3−71377号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、従来の画像処理方法における上記のような問題を解決するためになされたものであって、その目的は、簡易な方法で境界(ここでは境界となる画素を指す)で囲まれた内部領域を確実に塗りつぶし、しかも、塗りつぶしに当たって走査範囲を限定することで処理時間を短縮し、かつ、従来は別工程で実施していた塗りつぶしと塗りつぶした領域の面積の取得を同時に行えるようにする画像処理方法及び装置を提供することである。
【課題を解決するための手段】
【0006】
請求項1の発明は、画像処理方法であって、異物を表す2値化配列表の走査始点から異物の境界を追跡して目印画素配列を形成する工程と、前記目印画素配列から境界を特定する工程と、前記特定した境界内の画素にラベリングを施してラベリング画素配列を形成する工程と、ラベリングされた領域を塗りつぶす工程とを有することを特徴とする。
請求項2の発明は、請求項1に記載された画像処理方法において、前記ラベリング工程は、境界の外接矩形を設定し、前記外接矩形内で行うことを特徴とする。
請求項3の発明は、請求項1又は2に記載された塗りつぶし方法において、前記2値化配列表を走査して境界を追跡する工程は、2値化配列表を走査して異物画素を検出したとき、当該画素を走査基準点として、当該画素の近傍画素を所定の回転方向に走査し、最初に検出した異物画素へ前記走査基準点を移動させ、以下同様に走査基準点を移動させながら走査を行い、最初の移動元画素に戻るまで走査を行う工程である、ことを特徴とする。
請求項4の発明は、画像処理方法であって、請求項1ないし3のいずれかに記載された画像処理方法において、前記基準点の通過画素が境界画素に該当するか否かを判断する工程は、前記目印画素配列から当該画素が異物画像の左右端画素であるか否かに基づき行うことを特徴とする。
請求項5の発明は、請求項4に記載された画像処理方法において、前記基準点の通過画素が境界画素に該当するか否かの判断は、前記走査基準点の移動方向に基づき移動先画素と移動元画素に付与した正又は負の特定の値を各画素毎に加算し、その加算結果に基づき行うことを特徴とする。
請求項6の発明は、請求項5に記載された画像の塗りつぶし方法において、前記ラベリング工程は、前記加算値が正である画素から水平方向に加算値が負である画素までの区域、及び前記加算値が0である画素にラベリングを施すことを特徴とする。
請求項7の発明は、請求項1ないし6のいずれかに記載された画像処理方法において、前記塗りつぶした画素領域の画素数からその面積を得る工程を有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、複数の異物を含む任意の画像に対して、塗りつぶしを正確に行うことができ、孔を含んだ画像を塗りつぶしをする場合に、従来の方法に比して迅速に処理できるだけではなく、全体の走査を終了する前に、異物面積を確定することができる。
そのため、異物の大きさからその異物の大凡の種類を迅速に知ることができ、防犯や安全対策に有効に利用することができる。
【発明を実施するための最良の形態】
【0008】
本願発明の実施形態に係る塗りつぶし行うためのアルゴリズム、即ち2値化配列表が与えられたとき、1本の曲線によって閉じた孔を含む領域を全て塗りつぶすアルゴリズムについて説明する。
まず、このアルゴリズムを実行するために必要な前提について説明する。
【0009】
ステップ1;本実施形態に係る塗りつぶし方法を実施するために予め必要な画像
(1)2値化画素配列表(又は画像)
従来と同様に、差分処理で現在の画像と基準となる画像の差分をとり、差分が一定の閾値を超えた画素を1、超えなければ0というように、差分の結果を2値化することで得た2値化画素配列から成る2値化画素配列表。
ここでは、0・・・異物なし
1・・・異物あり
とする。
(2)目印配列表(画像)
上記2値化画素配列表の異物の境界を同定するため境界追跡を行って追跡画素に加点した目印付きセルで構成され、この目印(加点数)を基に上記2値化画素配列表の異物の境界を判断する。
初期値 0、
正又は負の所定の整数・・・境界
とする。
(3)ラベル値配列表(画像)
上記2値化画素配列表及び目印配列表に基づき作成する塗りつぶし処理用のラベル値の配列表であって、ここでは、境界で囲まれた領域及び境界をラベリングしたセルで構成される。ここでは、初期値を−1とする。
−1・・・非境界(画素が境界でない)
0・・・境界
1〜・・・異物のラベル値(塗りつぶしの際にラベリングするときのポイント:ここでは1以上の整数とする)
【0010】
ステップ2 :境界(画素)追跡
2値化画素配列表の左下を原点とし、左方向へ進みながら異物画素を探索する。右端まで着いたら1行上の左端へ移動し、以下これを繰り返して境界追跡を行う。
【0011】
ステップ3 :外側境界追跡工程(ここでは8近傍とする)
2値化画素配列表で異物を発見したら、その画素を始点として境界追跡を行う。追跡方法としては、始点画素の周りの8画素(8近傍)のうち、例えば左回りで最初に探索した異物画素を移動先とし、次に、この移動先画素を始点として同様に8近傍の画素について左回りで異物画素を探索する。この場合、ラベリングは行わず、代わりにルールにしたがって数値を加算して目印配列表を形成し、その加算値から境界画素が左端なのか右端なのかを判別する。
具体的には、境界追跡中に、移動先画素と移動元画素(始点画素)のそれぞれについて、左周りで8近傍の追跡を行う場合、下記の表1に示すポイントを加算する。
【0012】
ステップ4 :塗りつぶし工程
境界追跡が終了したら処理時間を削減するために、境界画素の外接矩形内に限って塗りつぶしを行う。
塗りつぶし手順は、
(1)外接矩形内を左下から右方に向かって塗りつぶし走査をする。
(2)左端(2値化画素配列表が1、ラベルが0、目印が正の値)の画素(異物画素)を見つけたら、その画素よりも右側に右端(2値化画素配列表が1、ラベルが0、目印が負の値)の画素が必ず存在するので、左端画素を含め右端画素までを全てラベリングして塗りつぶす。ラベリングが終了したら右端の画素の右隣から、再度塗りつぶし走査を開始する。
(3)くびれ(2値化画素配列表が1、ラベルが0、目印が0)の画素を見つけたら、その画素のみラベリングして、再度右隣の画素から塗りつぶし走査を再開する。
【0013】
ステップ5: 境界追跡走査の再開
(1)未ラベル配列表のラベル値を初期値「−1」にする。
(2)境界追跡のスタート画素から、ステップ1の走査を再開する。
【0014】
以上で説明した塗りつぶしのためのアルゴリズムにしたがった画像の処理について、図面を参照して以下具体的に説明する。
(実施例)
図1は、本実施形態の塗りつぶし方法を説明するための異物を含んだ2値化画素配列表(画像)の1例である。
本実施例では、まずこの2値化画素配列表についてステップ2の走査を行う。
走査は、図2に示すように画像の左下を始点として、右方向へ進みながら異物画素(図中「編目画素」)を検索する。
【0015】
ステップ3 : 外側境界追跡(8近傍)
走査の結果、異物を発見したら(図2の矢印先端画素)、図3〜図8に示すようにその画素を始点とした境界追跡を行う。その際、境界画素のラベリングは行わず、代わりに境界追跡した画素に下記表1にしたがった数値を加算し、目印配列表を作成し、後述のようにその境界画素が左端なのか右端なのか等の判断を行う。
【0016】
【表1】
【0017】
即ち、境界(画素)追跡中の移動先と移動元のそれぞれの画素について、その画素に対応して目印配列表にポイントを加算する(ここでは、目印を付けるともいう)。図3〜図8は、左回りで8近傍の追跡を行った場合の各境界画素に付与されたポイント(値)を示す。
即ち、図3Aのスタート画素から左周りで、ここでは当該画素の周りの8画素(「8近傍」又は「4近傍」でもよい)で最初に検知された異物画素は左上の画素であり、この画素は表1の移動先画素に当たるから+1を加点する。また、同時に移動元の始点画素にも+1を加点する。これを表したのが図3Aである(セル内の数字が加点した数値を示す)。
【0018】
次に、今度は移動先画素から左回りで8近傍の画素で検出した異物画素は、更にその左上であるから、その移動先画素に+1を加え、同時に移動元の画素にも+1を加える。その結果を示したのが図3Bである。以下同様に、図3C、図4Aと進み、図4Aでは、スタートから6番目の画素では、左回りで8近傍の画素で最初に検知した異物画素は右上になるから7番目の画素に+1を、また移動元である6番目の画素にも+1を与えて6番目の画素のポイントが2になることを示している。次に、図4Bでは、移動元が第8番目の画素では移動先の第9番目の画素は右下にあるから、図4Aの数値に対して表1からそれぞれ−1が加算される。その結果、第8番目の画素は0となり、第9番目の画素は−1となる。
以下、同様の処理を繰り返し、その結果、図4B〜図7を経て、最後に図8の状態になり、境界追跡が終了する。
なお、図6〜図8の図中の矢印は走査基準点の移動軌跡を示す。
【0019】
このようにして得られた目印配列表から、そのセル内の数値が正の整数(ここでは2)が異物画素領域の左端を、また負の整数(ここでは−2)が同右端を示し、数値0は境界又はくびれ部分を示すことが判別できるため、境界画素が特定(同定)できる。
ここで、図9に示すように、境界追跡の結果得られた境界画素のラベルを0にし、その他の画素にはラベル値−1を付与したラベル配列表を作成する。
【0020】
ステップ4:塗りつぶし処理
ここでは、2値化画素配列表、目印配列表及びラベル配列表を用いて、目印配列表のセル内が正又は負の整数及び0である画素にラベリングを行って塗りつぶし処理を行う。
図10は、上記目印配列表から外接矩形で切り出した塗りつぶし処理の対象となる目印配列表であり、図11、図12はこの目印配列表における塗りつぶしのためのラベリングの手順を示す図である。ここで、セル上の数字は目印値で、「斜線」模様はラベリング中、「点」模様はラベリング済み、「格子」模様はラベル0(境界ラベル)、白はラベル−1(境界以外で未ラベル)を示す。
【0021】
境界画像の追跡が終了した段階で、境界追跡を行った画素の外接矩形を2値化画素配列表内に設定し、この外接矩形内に限って塗りつぶし処理を行う。このようにすることにより塗りつぶしのためのラベリング走査の範囲を限定するため、従来のように2値化画素配列表(画像)内全てを走査するものに比べて効率的に塗りつぶし処理を行うことができる。
【0022】
外接矩形内で左端の異物画素は2値化画素配列表では1、ラベル配列表では0、目印配列表では正の値(図11B:ここでは2)であるから、この画素を見つけたらそれが左端画素である。左端画素が存在すれば、その画素よりも右側に右端画素(2値化画素配列表が1、ラベルが0、目印が負の値(図11B、ここでは−2)の画素が必ず存在するので、左端画素を含め右端画素までを全てラベリングする。さらに、右端の画素の右隣から、塗りつぶしのための走査を再開する。
【0023】
ここで、検知した画素は、2値化画素配列表では1、ラベル配列表では0、目印配列表では0で画素のくびれであるから、その画素のみラベリングして、右隣の画素から塗りつぶし走査を再開する。後は、以上で説明した内容の繰り返しとなる。
【0024】
図11Aは、目印配列表を走査したとき最初にヒットした画素の目印は0なので、その画素だけラベルを付与する。
図11Bは、図11Aの状態からそのまま右方向に走査を続け、次に同様の画素を検出したので、同様にラベルを付与している状態を示す。
【0025】
図11Cは、走査中に目印値2の画素を発見したので、隣の−2の画素までラベルを付与している状態を示す。以下同様にして、図12Aでは、目印値2の画素から同−2の画素までに無印の画素が並んでいる場合に、その全ての画素にラベルを付すことを示している。
図12Bは、目印値2の画素を発見したので、先の−2まで全ての画素にラベルを付与する。この場合、目印値2と同−2との間に目印値0の画素があるが上述のようにその全ての画素にラベルを付すことを示している。
【0026】
さらに図12Cは、図右上隅の部分で目印値0の画素を検知したが、ラベル配列表でのラベル値は「−1」で、これが境界ではないことが分かるので、無視して走査を続けることを示している。
これにより、最初に設定した外接矩形内での走査を終了し、同時に画素を塗りつぶす処理も終了する。その際、塗りつぶした画素の数を計数することにより画素の面積を同時に得ることができる。即ち、撮像画像の全体の塗りつぶし処理が終了する前に、塗りつぶし処理が終了した部分からその塗りつぶした異物の面積を得ることができる。
図13は、上記塗りつぶし処理が終了したときのラベリング配列表を示す。塗りつぶした画素部分は1にそれ以外は−1にラベリングされている。
【0027】
図14は、最初の外接矩形内での塗りつぶしに続き、以上で説明した走査の最初に戻って、改めて走査を開始した状態を示している。
即ち、今回の走査では、既にラベリング済みの画素(ラベリング「1」)は無視して走査を続け、図右上の画素を検知したら、そこから既に説明した境界追跡を開始し、以上で説明した各ステップの処理を行い塗りつぶしを実行する。以上の処理を継続することで、撮像画像について、異なる穴あきの異物が複数存在しても、その異物毎に塗りつぶしを実行することができる。また、夫々の異物の面積も同時に得ることができる。
【0028】
この異物画像の塗りつぶしアルゴリズムは、文字のように境界の内側を空白にしておく必要があるものには適さないが、例えば、特定の領域に浸入する車両や人など、境界の内側が空白でない物体や動物などの検知に好適であり、その塗りつぶし面積からその大きさを知ることができるため、対象が大凡何であるかの判断を行うことができる。
【0029】
以上の実施形態では、画素配列表として、(1)2値化画素配列表、(2)ラベル用配列表、(3)目印配列表の3つの配列表を用いて異物の境界内の塗りつぶしを行ったが、3つの配列表が用意できない場合であっても、数値の領域を使い分けることにより、2値化画素配列表の配列だけでも同様の塗りつぶしを実現することができる。
次に、その場合のアルゴリズムを説明するが、基本的には既に説明した実施例の場合と同様である。
この場合は、数値として、
2値化画素配列表用には、0、1
ラベル用には、 50以上の数値
目印用には、 −49〜+49(但し、0、1は除く)
この場合の目印テーブルは表2に示す。
【0030】
【表2】
【0031】
但し、境界追跡のとき2値化画素配列表のセルの初期値は1なので、移った先が1ならば加算前に0に初期化する。
また、塗りつぶしの条件は、上記実施例を以下のように変更する。
左端(2値化画素配列表が+18〜+49)の画素を見つけたら、その画素よりも右側に右端(2値化画素配列表が−49〜−8)画素が必ず存在するので、左端画像を含む右端画素までを全てラベリング(50以上の数値を付す)する。
右端の画素の右隣から、塗りつぶし走査を再開する。
くびれ(2値画素が+2〜+6)の画素を見つけたら、その画素のみラベリングして、右隣から塗りつぶし走査を開始する。
【0032】
図15は、以上で説明した塗りつぶし方法を実施するための装置構成を示したブロック図である。
画像処理装置10は、CPU100と、塗りつぶし処理のためのプログラムを格納するROM101と、ROM101から読み出したプログラムや、当該プログラムの稼働のために必要となるデータ等を一時記憶するRAM102とからなるコンピュータと、データやコマンドの入力等を行う入力部103と、出力データ等の表示部104と、撮像画像、2値化画素配列表、目印配列表、ラベル値配列表等を記憶する記憶部105で構成されている。
【0033】
また、本願発明の画像処理装置10を構成する走査手段と、境界追跡画素に加点による目印を付与する手段と、2値化画素配列表を走査して異物画素を検出したとき、当該画素を走査基準点として、当該画素の近傍画素を所定の回転方向に走査し、最初に検出した異物画素へ前記走査基準点を移動させ、以下同様に走査基準点を移動させながら走査を行い、最初の移動元画素に戻るまで走査手段を制御する手段と、前記目印画素配列から当該画素が異物画像の左右端画素であるか否かに基づき前記基準点の通過画素が境界画素に該当するか否かを判断する手段と、境界を特定した後、当該境界で規定される異物画像の外接矩形を設定する手段と、前記加算値が正である画素から水平方向に加算値が負である画素までの区域、及び前記加算値が0である画素にラベリングを施す前記ラベリング手段と、ラベリングされた領域を塗りつぶす処理を行う手段と、前記塗りつぶした画素領域の画素数からその面積を得る手段は、いずれも上記ROM101に格納された塗りつぶし処理のための画像処理プログラムを上記CPU100、ROM101及びRAM102で構成された制御部のコンピュータで実行することにより得られる機能実現手段である。
【図面の簡単な説明】
【0034】
【図1】異物画像の2値化画素配列表の1例である。
【図2】図1と同様の図で、異物画像における走査を説明する図である。
【図3】境界追跡を説明するための図である。
【図4】境界追跡を説明するための図である。
【図5】境界追跡を説明するための2値化画素配列表を示す図である。
【図6】境界追跡を説明するための2値化画素配列表を示す図である。
【図7】境界追跡を説明するための2値化画素配列表を示す図である。
【図8】境界追跡を説明するための2値化画素配列表を示す図である。
【図9】ラベル値配列表を示す。
【図10】外接矩形で切り出したラベリング対象となる2値化画素配列表である。
【図11】塗りつぶし処理の手順を示す図である。
【図12】塗りつぶし処理の手順を示す図である。
【図13】塗りつぶし処理のためのラベリングを施した2値化画素配列表を示す図である。
【図14】図1と同様の図であり、設定された外接矩形の塗りつぶし工程終了後に、再度塗りつぶしプロセスを開始する状態を示す。
【図15】塗りつぶし方法を実施するための装置構成を示したブロック図である。
【符号の説明】
【0035】
10・・・画像処理装置、100・・・CPU、101・・・ROM、102・・・RAM、103・・・入力部、104・・・表示部104105・・・記憶部。
【技術分野】
【0001】
本発明は画像処理方法及び画像処理装置、とくに2値化配列表が与えられたときに、1本の境界によって閉じかつ孔を含む領域を全て塗りつぶす塗りつぶしを実施する画像処理方法及び画像処理装置に関する。
【背景技術】
【0002】
画像処理分野において、取得した画像について様々な判断を行う前段階の処理として、例えば撮像画像の背景差分やフレーム間差分処理が行われている。
これらの差分処理では現在の画像と基準とする画像の差分をとり、差分が一定の閾値を超えた画素を1、超えなければ0というように、差分の結果を2値化することで後段の処理を簡略化して処理時間を減らす工夫がなされている。
また、差分処理により得られた差分画像から異物の面積を求め、それにより何らかの処理をする場合には、差分画素が繋がっている部分は同じものとして同一の番号を付与するラベリング操作を行い、それによって面積を測定するのが一般的である。
【0003】
この操作を行うための従来の手法は次の手順による。
(1)撮像画像の背景(フレーム間)差分と2値化を行い、(2)境界(画素)を追跡して境界画素のラベリングを行う、(3)未ラベリング画素を塗りつぶす。
この従来の手順によれば、差分が終わってから塗りつぶしを終えるまでに、全体画像を2回走査しなければならない。また、異物を塗りつぶす場合、水平走査をして塗りつぶす方法が速く一般的手順であるが、従来の奇数番目に見付けた端点(画素)を開始点として偶数番目に見付けた端点(画素)を終止点とする方法では、異物の頂点や括れた部分など1画素しか厚みがない部分では、端点の判断ができず別の条件を入れて異物の頂点やくびれ部分の判断を行う必要がある(特許文献1参照)。またそればかりではなく、複雑に絡み合った図形では、その絡み合った図形を識別するために、別の条件を入れて判断しなければならないため、処理が煩雑である。
【0004】
また、異物に囲まれた異物を同じものとして処理しようとしても、前記従来の手法ではそれらは違うものとして処理されてしまう。その対策として、一度別物として処理されたものを後から同じものであるとして関係付けをする必要があり、煩雑である。また、異物の中にできる孔を塗り潰そうとしても、求めた境界が必ずしも左端や右端にあるとは限らないため、別の条件を入れて右端か左端かを判断しなければならない。
【特許文献1】特開平3−71377号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、従来の画像処理方法における上記のような問題を解決するためになされたものであって、その目的は、簡易な方法で境界(ここでは境界となる画素を指す)で囲まれた内部領域を確実に塗りつぶし、しかも、塗りつぶしに当たって走査範囲を限定することで処理時間を短縮し、かつ、従来は別工程で実施していた塗りつぶしと塗りつぶした領域の面積の取得を同時に行えるようにする画像処理方法及び装置を提供することである。
【課題を解決するための手段】
【0006】
請求項1の発明は、画像処理方法であって、異物を表す2値化配列表の走査始点から異物の境界を追跡して目印画素配列を形成する工程と、前記目印画素配列から境界を特定する工程と、前記特定した境界内の画素にラベリングを施してラベリング画素配列を形成する工程と、ラベリングされた領域を塗りつぶす工程とを有することを特徴とする。
請求項2の発明は、請求項1に記載された画像処理方法において、前記ラベリング工程は、境界の外接矩形を設定し、前記外接矩形内で行うことを特徴とする。
請求項3の発明は、請求項1又は2に記載された塗りつぶし方法において、前記2値化配列表を走査して境界を追跡する工程は、2値化配列表を走査して異物画素を検出したとき、当該画素を走査基準点として、当該画素の近傍画素を所定の回転方向に走査し、最初に検出した異物画素へ前記走査基準点を移動させ、以下同様に走査基準点を移動させながら走査を行い、最初の移動元画素に戻るまで走査を行う工程である、ことを特徴とする。
請求項4の発明は、画像処理方法であって、請求項1ないし3のいずれかに記載された画像処理方法において、前記基準点の通過画素が境界画素に該当するか否かを判断する工程は、前記目印画素配列から当該画素が異物画像の左右端画素であるか否かに基づき行うことを特徴とする。
請求項5の発明は、請求項4に記載された画像処理方法において、前記基準点の通過画素が境界画素に該当するか否かの判断は、前記走査基準点の移動方向に基づき移動先画素と移動元画素に付与した正又は負の特定の値を各画素毎に加算し、その加算結果に基づき行うことを特徴とする。
請求項6の発明は、請求項5に記載された画像の塗りつぶし方法において、前記ラベリング工程は、前記加算値が正である画素から水平方向に加算値が負である画素までの区域、及び前記加算値が0である画素にラベリングを施すことを特徴とする。
請求項7の発明は、請求項1ないし6のいずれかに記載された画像処理方法において、前記塗りつぶした画素領域の画素数からその面積を得る工程を有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、複数の異物を含む任意の画像に対して、塗りつぶしを正確に行うことができ、孔を含んだ画像を塗りつぶしをする場合に、従来の方法に比して迅速に処理できるだけではなく、全体の走査を終了する前に、異物面積を確定することができる。
そのため、異物の大きさからその異物の大凡の種類を迅速に知ることができ、防犯や安全対策に有効に利用することができる。
【発明を実施するための最良の形態】
【0008】
本願発明の実施形態に係る塗りつぶし行うためのアルゴリズム、即ち2値化配列表が与えられたとき、1本の曲線によって閉じた孔を含む領域を全て塗りつぶすアルゴリズムについて説明する。
まず、このアルゴリズムを実行するために必要な前提について説明する。
【0009】
ステップ1;本実施形態に係る塗りつぶし方法を実施するために予め必要な画像
(1)2値化画素配列表(又は画像)
従来と同様に、差分処理で現在の画像と基準となる画像の差分をとり、差分が一定の閾値を超えた画素を1、超えなければ0というように、差分の結果を2値化することで得た2値化画素配列から成る2値化画素配列表。
ここでは、0・・・異物なし
1・・・異物あり
とする。
(2)目印配列表(画像)
上記2値化画素配列表の異物の境界を同定するため境界追跡を行って追跡画素に加点した目印付きセルで構成され、この目印(加点数)を基に上記2値化画素配列表の異物の境界を判断する。
初期値 0、
正又は負の所定の整数・・・境界
とする。
(3)ラベル値配列表(画像)
上記2値化画素配列表及び目印配列表に基づき作成する塗りつぶし処理用のラベル値の配列表であって、ここでは、境界で囲まれた領域及び境界をラベリングしたセルで構成される。ここでは、初期値を−1とする。
−1・・・非境界(画素が境界でない)
0・・・境界
1〜・・・異物のラベル値(塗りつぶしの際にラベリングするときのポイント:ここでは1以上の整数とする)
【0010】
ステップ2 :境界(画素)追跡
2値化画素配列表の左下を原点とし、左方向へ進みながら異物画素を探索する。右端まで着いたら1行上の左端へ移動し、以下これを繰り返して境界追跡を行う。
【0011】
ステップ3 :外側境界追跡工程(ここでは8近傍とする)
2値化画素配列表で異物を発見したら、その画素を始点として境界追跡を行う。追跡方法としては、始点画素の周りの8画素(8近傍)のうち、例えば左回りで最初に探索した異物画素を移動先とし、次に、この移動先画素を始点として同様に8近傍の画素について左回りで異物画素を探索する。この場合、ラベリングは行わず、代わりにルールにしたがって数値を加算して目印配列表を形成し、その加算値から境界画素が左端なのか右端なのかを判別する。
具体的には、境界追跡中に、移動先画素と移動元画素(始点画素)のそれぞれについて、左周りで8近傍の追跡を行う場合、下記の表1に示すポイントを加算する。
【0012】
ステップ4 :塗りつぶし工程
境界追跡が終了したら処理時間を削減するために、境界画素の外接矩形内に限って塗りつぶしを行う。
塗りつぶし手順は、
(1)外接矩形内を左下から右方に向かって塗りつぶし走査をする。
(2)左端(2値化画素配列表が1、ラベルが0、目印が正の値)の画素(異物画素)を見つけたら、その画素よりも右側に右端(2値化画素配列表が1、ラベルが0、目印が負の値)の画素が必ず存在するので、左端画素を含め右端画素までを全てラベリングして塗りつぶす。ラベリングが終了したら右端の画素の右隣から、再度塗りつぶし走査を開始する。
(3)くびれ(2値化画素配列表が1、ラベルが0、目印が0)の画素を見つけたら、その画素のみラベリングして、再度右隣の画素から塗りつぶし走査を再開する。
【0013】
ステップ5: 境界追跡走査の再開
(1)未ラベル配列表のラベル値を初期値「−1」にする。
(2)境界追跡のスタート画素から、ステップ1の走査を再開する。
【0014】
以上で説明した塗りつぶしのためのアルゴリズムにしたがった画像の処理について、図面を参照して以下具体的に説明する。
(実施例)
図1は、本実施形態の塗りつぶし方法を説明するための異物を含んだ2値化画素配列表(画像)の1例である。
本実施例では、まずこの2値化画素配列表についてステップ2の走査を行う。
走査は、図2に示すように画像の左下を始点として、右方向へ進みながら異物画素(図中「編目画素」)を検索する。
【0015】
ステップ3 : 外側境界追跡(8近傍)
走査の結果、異物を発見したら(図2の矢印先端画素)、図3〜図8に示すようにその画素を始点とした境界追跡を行う。その際、境界画素のラベリングは行わず、代わりに境界追跡した画素に下記表1にしたがった数値を加算し、目印配列表を作成し、後述のようにその境界画素が左端なのか右端なのか等の判断を行う。
【0016】
【表1】
【0017】
即ち、境界(画素)追跡中の移動先と移動元のそれぞれの画素について、その画素に対応して目印配列表にポイントを加算する(ここでは、目印を付けるともいう)。図3〜図8は、左回りで8近傍の追跡を行った場合の各境界画素に付与されたポイント(値)を示す。
即ち、図3Aのスタート画素から左周りで、ここでは当該画素の周りの8画素(「8近傍」又は「4近傍」でもよい)で最初に検知された異物画素は左上の画素であり、この画素は表1の移動先画素に当たるから+1を加点する。また、同時に移動元の始点画素にも+1を加点する。これを表したのが図3Aである(セル内の数字が加点した数値を示す)。
【0018】
次に、今度は移動先画素から左回りで8近傍の画素で検出した異物画素は、更にその左上であるから、その移動先画素に+1を加え、同時に移動元の画素にも+1を加える。その結果を示したのが図3Bである。以下同様に、図3C、図4Aと進み、図4Aでは、スタートから6番目の画素では、左回りで8近傍の画素で最初に検知した異物画素は右上になるから7番目の画素に+1を、また移動元である6番目の画素にも+1を与えて6番目の画素のポイントが2になることを示している。次に、図4Bでは、移動元が第8番目の画素では移動先の第9番目の画素は右下にあるから、図4Aの数値に対して表1からそれぞれ−1が加算される。その結果、第8番目の画素は0となり、第9番目の画素は−1となる。
以下、同様の処理を繰り返し、その結果、図4B〜図7を経て、最後に図8の状態になり、境界追跡が終了する。
なお、図6〜図8の図中の矢印は走査基準点の移動軌跡を示す。
【0019】
このようにして得られた目印配列表から、そのセル内の数値が正の整数(ここでは2)が異物画素領域の左端を、また負の整数(ここでは−2)が同右端を示し、数値0は境界又はくびれ部分を示すことが判別できるため、境界画素が特定(同定)できる。
ここで、図9に示すように、境界追跡の結果得られた境界画素のラベルを0にし、その他の画素にはラベル値−1を付与したラベル配列表を作成する。
【0020】
ステップ4:塗りつぶし処理
ここでは、2値化画素配列表、目印配列表及びラベル配列表を用いて、目印配列表のセル内が正又は負の整数及び0である画素にラベリングを行って塗りつぶし処理を行う。
図10は、上記目印配列表から外接矩形で切り出した塗りつぶし処理の対象となる目印配列表であり、図11、図12はこの目印配列表における塗りつぶしのためのラベリングの手順を示す図である。ここで、セル上の数字は目印値で、「斜線」模様はラベリング中、「点」模様はラベリング済み、「格子」模様はラベル0(境界ラベル)、白はラベル−1(境界以外で未ラベル)を示す。
【0021】
境界画像の追跡が終了した段階で、境界追跡を行った画素の外接矩形を2値化画素配列表内に設定し、この外接矩形内に限って塗りつぶし処理を行う。このようにすることにより塗りつぶしのためのラベリング走査の範囲を限定するため、従来のように2値化画素配列表(画像)内全てを走査するものに比べて効率的に塗りつぶし処理を行うことができる。
【0022】
外接矩形内で左端の異物画素は2値化画素配列表では1、ラベル配列表では0、目印配列表では正の値(図11B:ここでは2)であるから、この画素を見つけたらそれが左端画素である。左端画素が存在すれば、その画素よりも右側に右端画素(2値化画素配列表が1、ラベルが0、目印が負の値(図11B、ここでは−2)の画素が必ず存在するので、左端画素を含め右端画素までを全てラベリングする。さらに、右端の画素の右隣から、塗りつぶしのための走査を再開する。
【0023】
ここで、検知した画素は、2値化画素配列表では1、ラベル配列表では0、目印配列表では0で画素のくびれであるから、その画素のみラベリングして、右隣の画素から塗りつぶし走査を再開する。後は、以上で説明した内容の繰り返しとなる。
【0024】
図11Aは、目印配列表を走査したとき最初にヒットした画素の目印は0なので、その画素だけラベルを付与する。
図11Bは、図11Aの状態からそのまま右方向に走査を続け、次に同様の画素を検出したので、同様にラベルを付与している状態を示す。
【0025】
図11Cは、走査中に目印値2の画素を発見したので、隣の−2の画素までラベルを付与している状態を示す。以下同様にして、図12Aでは、目印値2の画素から同−2の画素までに無印の画素が並んでいる場合に、その全ての画素にラベルを付すことを示している。
図12Bは、目印値2の画素を発見したので、先の−2まで全ての画素にラベルを付与する。この場合、目印値2と同−2との間に目印値0の画素があるが上述のようにその全ての画素にラベルを付すことを示している。
【0026】
さらに図12Cは、図右上隅の部分で目印値0の画素を検知したが、ラベル配列表でのラベル値は「−1」で、これが境界ではないことが分かるので、無視して走査を続けることを示している。
これにより、最初に設定した外接矩形内での走査を終了し、同時に画素を塗りつぶす処理も終了する。その際、塗りつぶした画素の数を計数することにより画素の面積を同時に得ることができる。即ち、撮像画像の全体の塗りつぶし処理が終了する前に、塗りつぶし処理が終了した部分からその塗りつぶした異物の面積を得ることができる。
図13は、上記塗りつぶし処理が終了したときのラベリング配列表を示す。塗りつぶした画素部分は1にそれ以外は−1にラベリングされている。
【0027】
図14は、最初の外接矩形内での塗りつぶしに続き、以上で説明した走査の最初に戻って、改めて走査を開始した状態を示している。
即ち、今回の走査では、既にラベリング済みの画素(ラベリング「1」)は無視して走査を続け、図右上の画素を検知したら、そこから既に説明した境界追跡を開始し、以上で説明した各ステップの処理を行い塗りつぶしを実行する。以上の処理を継続することで、撮像画像について、異なる穴あきの異物が複数存在しても、その異物毎に塗りつぶしを実行することができる。また、夫々の異物の面積も同時に得ることができる。
【0028】
この異物画像の塗りつぶしアルゴリズムは、文字のように境界の内側を空白にしておく必要があるものには適さないが、例えば、特定の領域に浸入する車両や人など、境界の内側が空白でない物体や動物などの検知に好適であり、その塗りつぶし面積からその大きさを知ることができるため、対象が大凡何であるかの判断を行うことができる。
【0029】
以上の実施形態では、画素配列表として、(1)2値化画素配列表、(2)ラベル用配列表、(3)目印配列表の3つの配列表を用いて異物の境界内の塗りつぶしを行ったが、3つの配列表が用意できない場合であっても、数値の領域を使い分けることにより、2値化画素配列表の配列だけでも同様の塗りつぶしを実現することができる。
次に、その場合のアルゴリズムを説明するが、基本的には既に説明した実施例の場合と同様である。
この場合は、数値として、
2値化画素配列表用には、0、1
ラベル用には、 50以上の数値
目印用には、 −49〜+49(但し、0、1は除く)
この場合の目印テーブルは表2に示す。
【0030】
【表2】
【0031】
但し、境界追跡のとき2値化画素配列表のセルの初期値は1なので、移った先が1ならば加算前に0に初期化する。
また、塗りつぶしの条件は、上記実施例を以下のように変更する。
左端(2値化画素配列表が+18〜+49)の画素を見つけたら、その画素よりも右側に右端(2値化画素配列表が−49〜−8)画素が必ず存在するので、左端画像を含む右端画素までを全てラベリング(50以上の数値を付す)する。
右端の画素の右隣から、塗りつぶし走査を再開する。
くびれ(2値画素が+2〜+6)の画素を見つけたら、その画素のみラベリングして、右隣から塗りつぶし走査を開始する。
【0032】
図15は、以上で説明した塗りつぶし方法を実施するための装置構成を示したブロック図である。
画像処理装置10は、CPU100と、塗りつぶし処理のためのプログラムを格納するROM101と、ROM101から読み出したプログラムや、当該プログラムの稼働のために必要となるデータ等を一時記憶するRAM102とからなるコンピュータと、データやコマンドの入力等を行う入力部103と、出力データ等の表示部104と、撮像画像、2値化画素配列表、目印配列表、ラベル値配列表等を記憶する記憶部105で構成されている。
【0033】
また、本願発明の画像処理装置10を構成する走査手段と、境界追跡画素に加点による目印を付与する手段と、2値化画素配列表を走査して異物画素を検出したとき、当該画素を走査基準点として、当該画素の近傍画素を所定の回転方向に走査し、最初に検出した異物画素へ前記走査基準点を移動させ、以下同様に走査基準点を移動させながら走査を行い、最初の移動元画素に戻るまで走査手段を制御する手段と、前記目印画素配列から当該画素が異物画像の左右端画素であるか否かに基づき前記基準点の通過画素が境界画素に該当するか否かを判断する手段と、境界を特定した後、当該境界で規定される異物画像の外接矩形を設定する手段と、前記加算値が正である画素から水平方向に加算値が負である画素までの区域、及び前記加算値が0である画素にラベリングを施す前記ラベリング手段と、ラベリングされた領域を塗りつぶす処理を行う手段と、前記塗りつぶした画素領域の画素数からその面積を得る手段は、いずれも上記ROM101に格納された塗りつぶし処理のための画像処理プログラムを上記CPU100、ROM101及びRAM102で構成された制御部のコンピュータで実行することにより得られる機能実現手段である。
【図面の簡単な説明】
【0034】
【図1】異物画像の2値化画素配列表の1例である。
【図2】図1と同様の図で、異物画像における走査を説明する図である。
【図3】境界追跡を説明するための図である。
【図4】境界追跡を説明するための図である。
【図5】境界追跡を説明するための2値化画素配列表を示す図である。
【図6】境界追跡を説明するための2値化画素配列表を示す図である。
【図7】境界追跡を説明するための2値化画素配列表を示す図である。
【図8】境界追跡を説明するための2値化画素配列表を示す図である。
【図9】ラベル値配列表を示す。
【図10】外接矩形で切り出したラベリング対象となる2値化画素配列表である。
【図11】塗りつぶし処理の手順を示す図である。
【図12】塗りつぶし処理の手順を示す図である。
【図13】塗りつぶし処理のためのラベリングを施した2値化画素配列表を示す図である。
【図14】図1と同様の図であり、設定された外接矩形の塗りつぶし工程終了後に、再度塗りつぶしプロセスを開始する状態を示す。
【図15】塗りつぶし方法を実施するための装置構成を示したブロック図である。
【符号の説明】
【0035】
10・・・画像処理装置、100・・・CPU、101・・・ROM、102・・・RAM、103・・・入力部、104・・・表示部104105・・・記憶部。
【特許請求の範囲】
【請求項1】
異物を表す2値化配列表の走査始点から異物の境界を追跡して、追跡画素に加点による目印を付与する工程と、前記加点情報から境界を特定する工程と、前記特定した境界及び境界内の画素にラベリングを施す工程と、ラベリングされた領域を塗りつぶす工程とを有することを特徴とする画像処理方法。
【請求項2】
請求項1に記載された画像処理方法において、
前記ラベリング工程は、境界の外接矩形を設定し、前記外接矩形内で行うことを特徴とする画像処理方法。
【請求項3】
請求項1又は2に記載された画像処理方法において、
前記2値化配列表を走査して境界を追跡する工程は、2値化配列表を走査して異物画素を検出したとき、当該画素を走査基準点として、当該画素の近傍画素を所定の回転方向に走査し、最初に検出した異物画素へ前記走査基準点を移動させ、以下同様に走査基準点を移動させながら走査を行い、最初の移動元画素に戻るまで走査を行う工程である、ことを特徴とする画像処理方法。
【請求項4】
請求項1ないし3のいずれかに記載された画像処理方法において、
前記基準点の通過画素が境界画素に該当するか否かを判断する工程は、前記目印画素配列から当該画素が異物画像の左右端画素であるか否かに基づき行うことを特徴とする画像処理方法。
【請求項5】
請求項4に記載された画像処理方法において、
前記目印画素配列から当該画素が異物画像の左右端画素であるか否かの判断は、前記走査基準点の移動方向に基づき移動先画素と移動元画素に付与した正又は負の特定の値を各画素毎に加算し、その加算結果に基づき行うことを特徴とする画像処理方法。
【請求項6】
請求項5に記載された画像の塗りつぶし方法において、
前記ラベリング工程は、前記加算値が正である画素から水平方向に加算値が負である画素までの区域、及び前記加算値が0である画素にラベリングを施すことを特徴とする画像処理方法。
【請求項7】
請求項1ないし6のいずれかに記載された画像処理方法において、
前記塗りつぶした画素領域の画素数からその面積を得る工程を有することを特徴とする画像処理方法。
【請求項1】
異物を表す2値化配列表の走査始点から異物の境界を追跡して、追跡画素に加点による目印を付与する工程と、前記加点情報から境界を特定する工程と、前記特定した境界及び境界内の画素にラベリングを施す工程と、ラベリングされた領域を塗りつぶす工程とを有することを特徴とする画像処理方法。
【請求項2】
請求項1に記載された画像処理方法において、
前記ラベリング工程は、境界の外接矩形を設定し、前記外接矩形内で行うことを特徴とする画像処理方法。
【請求項3】
請求項1又は2に記載された画像処理方法において、
前記2値化配列表を走査して境界を追跡する工程は、2値化配列表を走査して異物画素を検出したとき、当該画素を走査基準点として、当該画素の近傍画素を所定の回転方向に走査し、最初に検出した異物画素へ前記走査基準点を移動させ、以下同様に走査基準点を移動させながら走査を行い、最初の移動元画素に戻るまで走査を行う工程である、ことを特徴とする画像処理方法。
【請求項4】
請求項1ないし3のいずれかに記載された画像処理方法において、
前記基準点の通過画素が境界画素に該当するか否かを判断する工程は、前記目印画素配列から当該画素が異物画像の左右端画素であるか否かに基づき行うことを特徴とする画像処理方法。
【請求項5】
請求項4に記載された画像処理方法において、
前記目印画素配列から当該画素が異物画像の左右端画素であるか否かの判断は、前記走査基準点の移動方向に基づき移動先画素と移動元画素に付与した正又は負の特定の値を各画素毎に加算し、その加算結果に基づき行うことを特徴とする画像処理方法。
【請求項6】
請求項5に記載された画像の塗りつぶし方法において、
前記ラベリング工程は、前記加算値が正である画素から水平方向に加算値が負である画素までの区域、及び前記加算値が0である画素にラベリングを施すことを特徴とする画像処理方法。
【請求項7】
請求項1ないし6のいずれかに記載された画像処理方法において、
前記塗りつぶした画素領域の画素数からその面積を得る工程を有することを特徴とする画像処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2009−80776(P2009−80776A)
【公開日】平成21年4月16日(2009.4.16)
【国際特許分類】
【出願番号】特願2007−251426(P2007−251426)
【出願日】平成19年9月27日(2007.9.27)
【出願人】(304020498)サクサ株式会社 (678)
【Fターム(参考)】
【公開日】平成21年4月16日(2009.4.16)
【国際特許分類】
【出願日】平成19年9月27日(2007.9.27)
【出願人】(304020498)サクサ株式会社 (678)
【Fターム(参考)】
[ Back to top ]