(57)【要約】　　　（修正有）【課題】　コントラストの低い画像、ノイズを含む画像であっても安定した画像処理を行なえるようにする。【解決手段】　グレイ・レベル画像において、画素ごとにレベル勾配の方向と大きさを求める。レベル勾配の大きさが所定値を超える画素について、その画素から、または画素から所定距離はなれた位置から、レベル勾配の方向に所定長さの線分Ｌを描画する。線分の輝度レベルはレベル勾配の大きさに対応させる。数多くの線分が重なっている箇所、線分が密集している箇所を検出し、画像上に現れている対象物の中心、角等を認識する。【選択図】　図２
2004070949.tif 000002
【特許請求の範囲】
【請求項１】
　複数の画素を含み，各画素がレベル・データを持つ，所与の画像データにおいて，処理単位のレベル勾配の少なくとも方向を算出する勾配算出手段，
　上記勾配算出手段によって算出されたレベル勾配の方向に対応する方向と所与の長さとを持つ線分を表わす線分画像データを生成する線分生成手段，および
　上記線分生成手段によって生成された線分画像データを記憶する線分画像記憶手段，
　を備えた画像処理装置。
【請求項２】
　上記所与の画像データを記憶する画像記憶手段をさらに備えた請求項１に記載の画像処理装置。
【請求項３】
　入力画像データにおいて設定された処理領域内の画像データを取出して上記勾配算出手段に与える画像データ取出手段をさらに備えた請求項１または請求項２に記載の画像処理装置。
【請求項４】
　上記処理領域を設定する手段をさらに備えた請求項３に記載の画像処理装置。
【請求項５】
　上記線分生成手段はグレイ・レベルの線分画像データを生成するものである，請求項１から請求項４のいずれか１項に記載の画像処理装置。
【請求項６】
　上記線分生成手段は２値レベルの線分画像データを生成するものである，請求項１から請求項４のいずれか１項に記載の画像処理装置。
【請求項７】
　上記勾配算出手段はレベル勾配の方向に加えてレベル勾配の大きさを算出するものであり，
　上記線分生成手段は，上記勾配算出手段が算出したレベル勾配の大きさが所定しきい値レベル以上である場合にのみ線分画像データを生成するものである，請求項１から請求項６のいずれか１項に記載の画像処理装置。
【請求項８】
　上記線分画像記憶手段は，各画素において，既に記憶している線分画像データに，新たな線分画像データを加算し，加算結果を記憶するものである，請求項１から請求項７のいずれか１項に記載の画像処理装置。
【請求項９】
　上記線分画像記憶手段は，新たな線分画像データを加算処理することなく，記憶するものである，請求項１から請求項７のいずれか１項に記載の画像処理装置。
【請求項１０】
　上記線分生成手段は，処理単位の位置から，算出されたレベル勾配の方向に対応する方向に，所定長さの線分を生成する，請求項１から請求項９のいずれか１項に記載の画像処理装置。
【請求項１１】
　上記線分生成手段は，処理単位の位置から始点までの距離および処理単位から終点までの距離が与えられているときに，算出されたレベル勾配の方向に対応する方向に，上記始点から上記終点までの線分を生成する，請求項１から請求項９のいずれか１項に記載の画像処理装置。
【請求項１２】
　線分の長さを設定する手段を備えた，請求項10に記載の画像処理装置。
【請求項１３】
　処理単位から始点までの距離および処理単位から終点までの距離の少なくともいずれか一方を設定する手段を備えた，請求項11に記載の画像処理装置。
【請求項１４】
　上記線分画像記憶手段に記憶された線分画像データによって表わされる線分が密集して存在する箇所を検出する手段をさらに備えた，請求項１から請求項13のいずれか１項に記載の画像処理装置。
【請求項１５】
　上記線分画像記憶手段に記憶された線分画像データ・レベルのうち最大レベルを示す画素の位置を検出する手段をさらに備えた，請求項１から請求項13のいずれか１項に記載の画像処理装置。
【請求項１６】
　上記最大レベルが所与のしきい値レベルを超えているかどうかを判定する手段をさらに備えた，請求項15に記載の画像処理装置。
【請求項１７】
　画像データを生成し，上記勾配算出手段に与えるカメラを含む画像入力手段を備えた，請求項１から請求項16のいずれか１項に記載の画像処理装置。
【請求項１８】
　上記線分生成手段によって生成された線分画像データまたは上記線分画像記憶手段に記憶された線分画像データによって表わされる線分画像を表示する表示装置をさらに備えた，請求項１から請求項13および請求項17のうちのいずれか１項に記載の画像処理装置。
【請求項１９】
　上記表示装置は上記所与の画像データによって表わされる画像を上記線分画像と重ねて表示するものである，請求項18に記載の画像処理装置。
【請求項２０】
　上記所与の画像データによって表わされる画像のエッジを抽出する手段をさらに備え，
　上記表示装置は抽出されたエッジによって表わされる画像を上記線分画像に重ねて表示するものである，請求項18に記載の画像処理装置。
【請求項２１】
　上記検出手段によって検出された密集箇所を示すマークを，上記画像データによって表わされる画像に重ねて表示する表示装置を備えた，請求項14に記載の画像処理装置。
【請求項２２】
　上記検出手段によって検出された最大レベルを示す画素の位置にその旨を示すマークを，上記画像データによって表わされる画像に重ねて表示する表示装置を備えた，請求項15に記載の画像処理装置。
【請求項２３】
　上記判定手段によってしきい値を超えていると判定された最大レベルを示す画素の位置に，その旨を示すマークを，上記画像データによって表わされる画像に重ねて表示する表示装置を備えた，請求項16に記載の画像処理装置。
【請求項２４】
　上記画像データによって表わされる画像のエッジを抽出する手段を備え，
　上記表示装置は上記画像データによって表わされる画像に加えて，または代えて，上記エッジ抽出手段に抽出されたエッジの画像を表示する，請求項21から請求項23のいずれか１項に記載の画像処理装置。
【請求項２５】
　上記表示装置は上記線分画像データによって表わされる線分画像をさらに重ねて表示する，請求項24に記載の画像処理装置。
【請求項２６】
　与えられた画像データにおいて，処理単位のレベル勾配の少なくとも方向を算出し，算出したレベル勾配の方向に対応する方向を持つ線分を表わす線分画像データを生成する画像処理手段，および
　上記画像処理手段によって生成された線分画像データによって表わされる線分画像を表示する表示手段，
　を備えた画像処理装置。
【請求項２７】
　上記表示装置は上記画像データによって表わされる画像を上記線分画像に重ねて表示する，請求項26に記載の画像処理装置。
【請求項２８】
　上記画像データによって表わされる画像のエッジを抽出する手段を備え，
　上記表示装置は上記画像データによって表わされる画像に加えて，または代えて，上記エッジ抽出手段に抽出されたエッジの画像を表示する，請求項27に記載の画像処理装置。
【請求項２９】
　複数の画素を含み，各画素がレベル・データを持つ，所与の画像データにおいて，処理単位のレベル勾配の少なくとも方向を算出し，
　算出したレベル勾配の方向に対応する方向と所与の長さとを持つ線分を表わす線分画像データを生成し，
　生成した線分画像データを記憶手段に記憶させる，
　画像処理方法。
【請求項３０】
　複数の画素を含み，各画素がレベル・データを持つ，所与の画像データにおいて，処理単位のレベル勾配の少なくとも方向を算出し，
　算出したレベル勾配の方向に対応する方向と所与の長さとを持つ線分を表わす線分画像データを生成し，
　生成された線分画像データを記憶手段に記憶するようにコンピュータを制御するプログラムを記憶した媒体。
【請求項３１】
　与えられた画像データにおいて，処理単位のレベル勾配の少なくとも方向を算出し，算出したレベル勾配の方向に対応する方向を持つ線分を表わす線分画像データを生成し，
　生成した線分画像データによって表わされる線分画像を表示装置に表示する，
　画像処理方法。
【請求項３２】
　与えられた画像データにおいて，処理単位のレベル勾配の少なくとも方向を算出し，算出したレベル勾配の方向に対応する方向を持つ線分を表わす線分画像データを生成し，
　生成した線分画像データによって表わされる線分画像を表示装置に表示するようにコンピュータを制御するプログラムを記憶した媒体。
【請求項３３】
　与えられた画像データにおいて，レベル勾配が所定値以上である複数のエッジを抽出する手段，
　抽出されたエッジの方向に対応する方向にのびる線分を各エッジについて設定する手段，および
　複数の線分の交点の有無とその位置を検出する手段，
　を備えた画像処理装置。
【請求項３４】
　線分の方向がエッジの方向に直交する方向またはエッジの方向と同じ方向である，請求項33に記載の画像処理装置。
【請求項３５】
　検査対象物を表わす画像データを入力する画像入力手段，
　上記入力画像データにおいて，処理単位のレベル勾配の少なくとも方向を算出し，算出したレベル勾配の方向に対応する方向を持つ線分を表わす線分画像データを生成する手段，および
　生成された線分画像データに基づいて，線分画像が密集または重なった箇所の有無と位置を検出する手段，
　を備えた検査装置。
【請求項３６】
　上記のレベル勾配の方向に対応する方向が，レベル勾配の方向またはレベル勾配の方向に垂直な方向である，請求項35に記載の検査装置。
【請求項３７】
　上記線分画像データに基づいて，線分画像を表示する表示装置を備えている，請求項35または請求項36に記載の検査装置。
【請求項３８】
　上記表示装置は上記入力画像データによって表わされる対象物の画像を線分画像に重ねて表示するものである，請求項37に記載の検査装置。
【請求項３９】
　検出された，線分画像が密集または重なった箇所の位置を，上記入力画像データによって表わされる対象物の画像または上記入力画像データから抽出されたエッジ画像上に表示する表示装置を備えた，請求項35または請求項36に記載の検査装置。
【請求項４０】
　線分の長さ，または線分の始点と終点に関するデータを入力する手段をさらに備えた，請求項35から請求項39のいずれか１項に記載の検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
　この発明はグレイ・レベル画像の画像処理装置および方法，画像処理のためのプログラムを記憶した媒体，ならびに対象物の有無，位置，形状，方向等の検査装置に関する。
【背景技術】
【０００２】
　グレイ・レベル画像上で所与の輪郭形状を有する対象物を認識処理する場合，従来，認識対象のグレイ・レベル画像を所定のしきい値で２値化する方法がある。この２値化データに基づく認識処理は，照明変動やシェーディングなどの影響を受けやすい。特に基板上のはんだ付け部位のボイド検査のようにＸ線透過画像を処理する場合には，画像上に多数のノイズがのって対象物と背景部分とのコントラストが悪くなり，認識不可能な状態に陥ることもある。
【０００３】
　グレイ・レベル画像に対し対象物のモデル画像を用いて正規化相関演算処理を実施し，対象物の位置を認識する方法がある。正規化相関演算を用いた認識処理は，あらかじめ対象物のモデル画像を設定する必要があるため，対象物の大きさが種々変動するような場合には不向きである。また画像上の各走査位置において，正規化相関演算を実施する必要があるため，ハードウェア構成や処理時間の増大を招く。特に対象物の向きを計測するには，モデル画像を所定角度ずつ回転させて，各回転角度位置毎に正規化相関演算を実施する必要があり，装置構成や処理がますます複雑化するという問題がある。
【０００４】
　基板上のチップ部品のように，角を有する輪郭形状の対象物の位置や向きを計測するために，画像上のエッジを追跡して対象物の輪郭線に相当する直線を特定し，その後，各直線の方程式を求め，さらにこれら方程式により求められる複数の直線の交点位置を，部品の位置として認識する方法を用いることもある。しかし，この方法もエッジ追跡，方程式の演算等，処理が複雑になる。
【０００５】
　境界線の形状が点対称となる対象物や，少なくとも２組の向かい合う辺が平行となる多角形のような対象物について，画像上に現れる各エッジのエッジ方向を用いて対象物の位置や形状を計測する方法が提案されている（特許文献１）。
【特許文献１】特開平９−２２９６４６号公報
【０００６】
　この方法によれば，照明変動の影響を受けたり，装置構成を複雑化させることなく，対象物の代表点を精度良く抽出することができる。しかしながらこの方法では，点対称または少なくとも２組の向かい合う辺が平行となる多角形に認識対象が限定されるので，輪郭形状が非対称となる対象物を認識するのは不可能である。また最終的に求められる代表点は対象物の輪郭内部の点であるので，多角形の対象物の角の抽出や，対象物の向きを計測するための処理への適用は困難である。
【発明の開示】
【０００７】
　この発明は，コントラストの低い画像，ノイズを含む画像であっても安定した画像処理を行なえるようにすることを目的とする。
【０００８】
　この発明はまた，モデル画像の設定が不要となり，オペレータによる操作を簡便にすることを目的とする。
【０００９】
　この発明はさらに，構成および処理を簡素にすることを目的とする。
【００１０】
　この発明はさらに対象物の制限をできるだけ少なくすることを目的とする。
【００１１】
　この発明による画像処理装置は，複数の画素を含み，各画素がレベル・データを持つ，所与の画像データにおいて，処理単位のレベル勾配の少なくとも方向を算出する勾配算出手段，上記勾配算出手段によって算出されたレベル勾配の方向に対応する方向と所与の長さとを持つ線分を表わす線分画像データを生成する線分生成手段，および上記線分生成手段によって生成された線分画像データを記憶する線分画像記憶手段を備えているものである。
【００１２】
　各画素のレベル・データとは，２ビット以上で表わされるグレイ・レベル・データである。
【００１３】
　処理単位とは基本的には画素であるが，複数の画素からなるブロックでもよい。
【００１４】
　画素のレベル・データは，それが輝度データであれば，明るさ（暗さ），または濃度を表わす。したがって，レベル勾配は明るさの勾配，暗さの勾配，濃度の勾配等の用語を用いて表現することもできる。画像データは輝度データに限らず，色（たとえば，赤，緑，青）を表わすデータでもよい。この場合にはレベル勾配は色の濃度の変化を表すことになろう。いずれにしてもレベル勾配の方向とは最大勾配（勾配の大きさが正または負の最大値を示す）の方向である。
【００１５】
　レベル勾配の方向に対応する方向には，画像処理の目的に応じて様々な態様がある。その一はレベルが増加する方向（正の方向）であり，その二はレベルが減少する方向（負の方向）である。その三は，レベル勾配の方向に垂直な方向である。レベル勾配の方向に垂直な方向には２方向存在するが，いずれか一方向でもよいし，両方向でもよい。
【００１６】
　一例を示すと，図１(A) に示すように，円（またはそれに近い形）を表わす画像（対象物の画像）があり，円の内部が相対的に明るく，背景が相対的に暗いとする。円の輪郭線Ｃの位置（画素）またはその付近で零でないレベル勾配が算出される。（作図の都合上，輪郭線Ｃは破線で明瞭に示されているが，一般的には輪郭線Ｃの付近で画像データの表わすレベル（明るさ，暗さ，濃度）が他の部分よりも急激に変化していると理解されたい。また，このレベルの変化は輪郭線Ｃの接線方向に垂直な方向に最大値を示すものと仮定している。このことは，後述する他の例についても同じである。）画像が明るい方が画像データのレベルが高いと仮定する（実際にはこの逆も，もちろんありうる）。零でないレベル勾配が算出された画素からレベルが増加する方向（正の方向）に所定の長さ（後述する）の線分を生成したとすると，図１(B) に示すように，輪郭線Ｃから円の中心に向かう多数の線分Ｌが描画される。これにより，輪郭線Ｃの位置または円の存在が明瞭になる。線分Ｌをもっと長くすれば円の中心が分る。逆に，零でないレベル勾配が算出された画素からレベルが減少する方向（負の方向）に適当な長さの線分を生成したとすると，図２(A) に示すように，輪郭線Ｃから放射状に円の外方に向かう多数の線分Ｌが描画される。輪郭線Ｃの位置または円の存在が明瞭になる。
【００１７】
　もう一つの例を示すと，図３(A) に示すように，方形を表わす画像（対象物の画像）があり，方形の内部が相対的に明るく，背景が相対的に暗いとする。方形の輪郭線Ｃを表わす画素において零でないレベル勾配が算出される。零でないレベル勾配の方向は輪郭線Ｃに垂直な方向である。零でないレベル勾配が算出された画素からレベル勾配の方向に垂直な２つの方向に所定の長さの線分Ｌを生成したとすると，図３(B) に示すように，輪郭線Ｃと重なる線分Ｌや輪郭線Ｃの延長上に延びる線分Ｌが描画される。方形の存在，その輪郭線Ｃの位置，方形の方向等が明瞭になる。
【００１８】
　線分画像記憶手段に記憶された線分画像データに基づいて画像処理，たとえば，後述する対象画像の検出または認識（存在の検出，位置の検出，方向の検出），線分画像の表示が行なわれる。
【００１９】
　この発明によると，所与の画像上において処理単位（たとえば画素）ごとに画像データのレベル勾配が算出され，算出されたレベル勾配の方向に対応する方向と所与の長さとを持つ線分を表わす線分画像が得られる。輪郭が必ずしも明瞭でない画像であっても明瞭な線分が得られる。したがって，コントラストの低い画像，ノイズを含む画像であっても，安定な画像処理が可能となる。構成または処理も比較的簡素である。基本パターン（モデル画像）の設定も不要である。
【００２０】
　この発明の一実施態様においては，上記所与の画像データを記憶する画像記憶手段が設けられる。上記勾配算出手段は上記画像記憶手段に記憶された画像データについて処理単位ごとにレベル勾配を算出する。
【００２１】
　もっとも，すべての画像データを一時的に記憶する画像記憶手段は必ずしも設けなくてもよい。たとえば，互いに隣接する複数の走査線に沿う画像データを複数のライン・メモリ上をシフトさせながら実時間でレベル勾配を算出する形態とすることもできる。
【００２２】
　上述した所与の画像データはビデオ・カメラ（またはテレビ・カメラ）（スチル・カメラを含む）によって撮像された一画面分の画像データでもよいし，メモリに記憶されている一画面分の画像データでもよいし，一画面分の画像データから取出された一部の領域内の画像データでもよい。この領域は一般的にはウインドウを設定することにより規定されよう。
【００２３】
　この発明の一実施態様においては，画像処理装置には，入力画像データにおいて設定された処理領域内の画像データを取出して上記勾配算出手段に与える画像データ取出手段がさらに設けられる。
【００２４】
　入力画像データはビデオ・カメラによって対象物を撮像することによって得られる画像データ，メモリにストアされている画像データ，他の装置から伝送される画像データ等を含む。
【００２５】
　この発明の好ましい一実施態様においては，上記の処理領域を設定する手段がさらに設けられる。
【００２６】
　この設定手段には種々の形態がある。その一は，表示装置上に入力画像データによって表わされる画像を表示し，この表示画面上において，処理の対象となる部分（対象画像を含む領域）をカーソル等を用いて指定するものである。設定手段は表示装置と，カーソルを移動させる入力を与える入力装置とから構成されよう。
【００２７】
　その二は，あらかじめ定められた位置にあらかじめ定められた（または入力された）大きさの領域を設定するものである。この場合には設定手段は位置および大きさを記憶する手段と，この記憶手段に基づいて処理領域を画像データ上で定める手段とから構成されよう。
【００２８】
　線分生成手段によって生成される線分はグレイ・レベル（２ビット以上）の画像データによって表わすこともできるし，２値レベルの画像データによって表わすこともできる。線分をグレイ・レベルで表わした場合にそのレベルは固定でも，可変でもよい。２値レベルの場合には，線分画像データは１または０のいずれかの値をとる。線分画像データは，線分の始点（座標），終点（座標）およびレベル（値）を表わすデータによっても表現することができる。
【００２９】
　好ましい実施態様においては，上記勾配算出手段はレベル勾配の方向に加えてレベル勾配の大きさを算出する。この場合に，線分生成手段は，算出されたレベル勾配の大きさに応じたレベル（明るさ，暗さ，または濃度（色の濃度を含む））を持つ線分画像データを生成するものであることが好ましい。このことによって，レベル勾配の大きさに応じたレベルで線分が描画される。
【００３０】
　さらに好ましい実施態様においては，上記勾配算出手段によって算出されたレベル勾配の大きさと所定しきい値レベルとを比較し，レベル勾配が所定しきい値レベル以上である場合にのみ，線分画像を生成する（線分画像のレベルは固定でも，上述のようにレベル勾配の大きさに応じた値でもよい）。レベル勾配は上述のように正または負の値を持つから，ここでは，レベル勾配の絶対値が所定しきい値レベル（正の値）以上であるかどうかを判断すると理解されたい。
【００３１】
　算出されたレベル勾配が小さい場合には線分画像は生成されないから，小さいレベル変化やノイズによる影響を受けないようにすることができる。所定しきい値レベルは，外乱として処理対象から除外するかどうかという観点から定めればよい。
【００３２】
　図１(B) においては線分の長さが短く設定されている。線分の長さを円の半径よりも大きくした場合には，図２(B) に示すように，多数の線分が中心およびその付近で重なって描画される。（図２(B) および図４(B) においては分りやすくするために，線分の数を少なくしてある。）
【００３３】
　多数の線分の画像を記憶する線分画像記憶手段への線分画像データの記憶のやり方には２通りある。
【００３４】
　その一は，各画素について，既に記憶している線分画像データ（レベル・データ）（０を含む）に，新たな線分画像データ（レベル・データ）を加算し，加算結果を記憶するものである。線分画像記憶手段は加算手段を含むことになる。このやり方は，線分画像データをグレイ・レベルで表わした場合，２値レベルで表わした場合のいずれにも適用できる。上記の加算とは，新たな線分画像データを換算して（たとえば係数を乗じるなど）加算することを含む。線分が重なって描画される画素については，線分が重なる毎に画像データのレベルが増大して（累積されて）いく。
【００３５】
　その二は，加算処理をすることなく新たな線分画像データを記憶するものである。結果として，線分画像データを表わす画像データ（０を除く）が既に記憶されている画素については記憶データはそのまま維持される（新たな線分画像データを上書きしても，書込まなくてもよい）。画像データが記憶されていない（０である）画素についてのみ，結果的に，その画素についての新たな線分画像データが新たに書込まれることになる。このやり方も，線分画像データをグレイ・レベルで表わした場合，２値レベルで表わした場合のいずれにも適用できるが，特に２値レベルで表わした場合に有効である。たとえば，線分画像データを２値レベルの１で表現した場合に，線分が密集して描画される部分では１の画像データが密集している。
【００３６】
　零でない勾配レベルが算出されたときに，どの程度の長さの線分を，またはどの位置からどの位置までの線分を生成するかということについては，いくつかの態様がある。
【００３７】
　その一は，図１(B) から図２(B) 等を参照して説明したように，処理単位の位置（画素またはブロックの中心）から，算出された勾配の方向に対応する方向に，所与の長さをもつ線分を生成するものである。この場合には，線分の長さをあらかじめ設定しておくか，入力すればよい。
【００３８】
　その二は，図４(A) に示すように，処理単位の位置（画素またはブロックの中心）ｅから線分Ｌの始点までの距離ｄと，処理単位の位置ｅから線分Ｌの終点までの距離Ｄとを与えるものである。この場合には，線分生成手段は，与えられた距離ｄとＤと算出されたレベル勾配の方向とを用いて始点と終点の位置を算出し，算出されたレベル勾配の方向に対応する方向に，算出された始点から終点までの線分Ｌを生成する。
【００３９】
　図４(B) は距離ｄとして円の半径よりも小さく０ではない値を採用し，距離Ｄとして円の半径よりも大きくかつ直径よりも小さい値を採用した場合に描画される線分Ｌの例を示している。図５(A) は，距離ｄとＤをともに円の半径に等しい値に設定した例を示している。生成される線分Ｌは点（１画素）となる（点も線分に含まれることとする）。図５(B) 図はｄ＝０，Ｄ＝∞（無限大）とした場合で，かつ線分を円の外側に描いた例である。円を内部に含む処理領域Ｗが設定されており，処理領域Ｗの境界が距離＝無限大の位置である。処理単位の位置から長さ無限大の線分を描くと表現することもできる。
【００４０】
　線分の長さ，距離ｄ，Ｄ等は処理目的に応じて定めればよい。
【００４１】
　好ましい実施態様では，線分の長さ，距離ｄ，Ｄ等を設定または入力する手段がさらに設けられる。利用者はこれらの値を設定または入力する操作で足りるので，操作が容易である。もちろん，これらの値は処理目的に応じてあらかじめ設定しておいてもよい。
【００４２】
　特定の形状または大きさ（許容された範囲内の形状または大きさ）を持つ対象画像の存在の有無の検出，その方向またはその中心位置の検出等を行うために，好ましい実施態様においては，画像処理装置は，上記線分画像記憶手段に記憶された線分画像データによって表わされる線分が密集して存在する箇所を検出する手段を備えている。この検出手段は，線分画像記憶手段に線分画像データを加算しながら書込む場合と，加算しないで書込む場合のいずれにも適用できるが，特に，２値で表わされた線分画像データを加算しないで記憶する線分画像記憶手段に対して有効である。
【００４３】
　一例を挙げると，適当な大きさの領域（たとえば10×10画素）において，線分が存在する（線分を描画している画素，または線分を表わすデータを持つ画素）の数が多い場合（所定しきい値を超える場合）に，その領域は線分の密集箇所といえる。上記の領域は処理範囲（領域）にわたってスキャニングされる。
【００４４】
　他の好ましい実施態様においては，画像処理装置は，上記線分画像記憶手段に記憶された線分画像データ・レベルのうち最大レベルを示す画素の位置を検出する手段を備えている。この検出手段は線分画像データを加算しながら記憶する線分画像記憶手段に対して有効である。
【００４５】
　線分画像データの加算結果（累積結果）の最大レベルが所定のしきい値を超えているかどうかを判定する手段をさらに備えることが好ましい。
【００４６】
　これらの検出手段による線分の密集箇所の存在（位置）の検出，最大レベルの画素の位置の検出，または所定しきい値を超える最大レベルの存在（位置）の検出は各種の検査に応用される。しきい値は検査の目的に応じて試行錯誤により定められよう。
【００４７】
　たとえば図４(B) の例では，ある半径（またはそれに近い値をもつ半径）をもつ円またはそれに近い形状（そのような形状をもつ対象物）の存在と位置が検出される。半径がａからｂ（ａ＜ｂ）までの円形またはそれに近い形状を検出する場合には，処理単位（画素等）から線分の始点までの距離ｄとして半径ａを採用し（ｄ＝ａ），処理単位（画素等）から線分の終点までの距離Ｄとして半径ｂを採用すればよい（Ｄ＝ｂ）。円形状（対象物）の半径がａからｂまでの場合に限り，線分がその中心付近で密集する，または最大レベルがしきい値を超えるので，その箇所を中心とする円（またはそれに近い形状）が存在すると判定される。同様に円弧状の輪郭をもつ形状または対象物を検出できる。
【００４８】
　図５(A) に示す例では半径ｒがｒ＝ｄ＝Ｄである円（またはそれに近い形状）が存在する場合に，その中心に線分（点）が密集する，または最大レベルがしきい値を超えるので，そのような円の存在と中心位置を確認することができる。中心位置の検査のみならず，半径検査，真円度検査に適用することができる。
【００４９】
　したがって，後述するように，被検査対象についての画像を表わす画像データを，特定の形状を持つ対象物の存在と位置，画像データ・レベルの変化として現れる欠陥領域の存在と位置等の検査に用いることができる。
【００５０】
　上記の画像処理装置によると，円形または対象物の位置は必ずしも充分に正確に特定されるとは限らない。しかしながら，所定の円形または対象物の少なくとも存在とそのおおよその位置が判明するので，正確な位置，形状を特定することが必要であれば，エッジ抽出法等の他の方法を用いればよい。
【００５１】
　さらに他の応用例としては，角が丸く面取りされた対象物の面取り半径（曲率半径）の検査がある。この場合には，面取り半径の公差の最小値をｄ，最大値をＤとすればよい。このことにより，面取り半径が公差内にある場合にのみ，線分が密集する，または最大レベルが所定しきい値を超える。
【００５２】
　図３(B) に示す例においては，方形の輪郭線および角において線分が密集する，または最大レベルがしきい値を超える。したがって，方形または対象物の直線状の輪郭，角で代表される２つ以上の直線の交点の存在と位置，配置方向等を検出することができる。これは，寸法検査，面積検査，重心位置検査，方向（主軸方向，辺の方向，対角線の方向）検査等に応用できる。
【００５３】
　累積された線分画像データを記憶する線分画像記憶手段に記憶された各画素の画像データのレベルを所定のしきい値と比較し，しきい値を超えるレベルのデータをもつ画素が表わす形状を生成（描画）するようにすることもできる。ノイズ等の外乱の影響を排除できる。
【００５４】
　上述した各種の検査においては，好ましくは，対象物がカメラによって撮像され，この撮像によって得られた画像データが勾配算出手段に与えられる。画像処理装置はカメラのような撮像手段を持つ。
【００５５】
　さらに好ましい実施態様においては，上記線分生成手段によって生成された線分を表わす線分画像データ，または線分画像記憶手段に記憶された線分画像データによって表わされる線分画像を表示する表示装置が設けられる。この表示をみることにより，上記勾配算出手段，線分生成手段または線分画像記憶手段による処理過程を視覚によって確認またはチェックすることができる。所定しきい値以上のレベルを持つ線分の部分のみを表示するようにしてもよい。
【００５６】
　表示装置の表示画面には，線分画像に加えて，撮像手段によって撮像された画像（対象画像）または勾配算出手段の処理対象である画像データによって表わされる画像（対象画像）を重ねて表示することが好ましい。さらに，これらの対象画像のエッジを抽出し，エッジ画像を線分画像に重ねて表示してもよい。望ましくは，対象画像を表示する，しない，エッジ画像を表示する，しない，を選択できるようにする。対象画像とエッジ画像の両方を線分画像に重ねて表示してもよいのはいうまでもない。
【００５７】
　この発明の望ましい実施態様においては，上述のようにして検出された密集箇所，最大レベルを持つ画素，またはしきい値を超える最大レベルを持つ画素の位置を示すマークを対象画像またはエッジ画像に重ねて表示する。対象画像とエッジ画像を重ねて表示してもよい。対象画像とエッジ画像のいずれかを表示するように切換えることもできる。線分画像をさらに重ねて表示してもよい。
【００５８】
　この発明はさらに，与えられた画像データにおいて，処理単位のレベル勾配の少なくとも方向を算出し，算出したレベル勾配の方向に対応する方向を持つ線分を表わす線分画像データを生成する画像処理手段，および上記画像処理手段によって生成された線分画像データによって表わされる線分画像を表示する表示手段を備えた画像処理装置を提供している。
【００５９】
　画像処理手段による処理過程を表示装置に表示された線分画像を通して視覚的に確認またはチェックすることができる。
【００６０】
　上記画像データによって表わされる画像（対象画像）を上記線分画像に重ねて表示するとよい。または，上記画像データによって表わされる画像のエッジを抽出し，上記画像データによって表わされる対象画像に加えて，または代えて，抽出されたエッジの画像を表示することが好ましい。対象画像表示とエッジ画像表示を切替える手段を設けることもできる。
【００６１】
　この発明はさらに，上述したすべての画像処理を実行する方法，および上述したすべての画像処理をコンピュータに実行させるようにコンピュータを制御するプログラムを記録した媒体を提供している。
【００６２】
　この発明による画像処理装置を別の観点から規定すると，次のように表現される。すなわち，この発明による画像処理装置は，与えられた画像データにおいて，レベル勾配が所定値以上である複数のエッジを抽出する手段，抽出されたエッジの方向に対応する方向にのびる線分を各エッジについて設定する手段，および複数の線分の交点の有無とその位置を検出する手段を備えているものである。
【００６３】
　線分の方向は，代表的には，エッジの方向に直交する方向またはエッジの方向と同じ方向である。
【００６４】
　画像上の少なくとも２点についてエッジを検出し，線分を設定することによりその交点の有無を判別することができ，交点が有る場合にはその位置を算出することができる。一または複数の交点を検出することによって対象画像の形状，位置，方向等を判別できる。
【００６５】
　この発明はさらに，上述した各種の検査を行なうのに適した検査装置を提供している。
【００６６】
　この検査装置は，検査対象物を表わす画像データを入力する画像入力手段，上記入力画像データにおいて，処理単位のレベル勾配の少なくとも方向を算出し，算出したレベル勾配の方向に対応する方向を持つ線分を表わす線分画像データを生成する手段，および生成された線分画像データに基づいて，線分画像が密集または重なった箇所の有無と位置を検出する手段を備えているものである。
【００６７】
　上記のレベル勾配の方向に対応する方向は，代表的には，レベル勾配の方向またはレベル勾配の方向に垂直な方向である。レベル勾配の大きさが所定値以上のものについてのみ線分を生成することが好ましい。
【００６８】
　線分画像が密集している箇所とは先に述べた通りである。線分画像が重なった箇所とは，線分の交点の画素，線分画像データの累積値が所定しきい値を超えた画素，累積値が最大の画素，累積値が最大であってかつ所定しきい値を超えた画素などいう。
【００６９】
　この発明による検査装置は，そのオペレータが基準パターン（モデル画像）の設定が不要であるなど，操作が簡便であるとともに，構成，処理が簡素である。検査対象の形状，大きさ等についての制限も殆どない。照明変動，ノイズ等の外乱の影響を受けにくく，またコントラストの低い不鮮明な画像にも適用できる。
【００７０】
　一実施態様では，上記線分画像データに基づいて，線分画像を表示する表示装置が設けられる。線分画像の生成過程が視覚的に明らかになる。
【００７１】
　上記表示装置には上記入力画像データによって表わされる対象物の画像を線分画像に重ねて表示することが好ましい。
【００７２】
　他の実施態様では，検出された，線分画像が密集した，または重なった箇所の位置を，上記入力画像データによって表わされる対象物の画像または上記入力画像データから抽出されたエッジ画像上に表示する表示装置が設けられる。
【００７３】
　種々の検査目的に適合させるために，線分の長さ，または線分の始点と終点に関するデータを入力する手段がさらに設けられる。
【００７４】
　この発明の検査装置は，対象物における欠陥領域の有無と位置の検査，対象物における円形または円弧形状の有無と位置の検査，円または円弧の中心位置の検出，半径の測定，真円度の検査，対象物の辺や角の有無と位置の検査，寸法，面積，重心位置，方向等の検査に利用できる。
【００７５】
　この発明のさらに他の特徴は図面を参照した実施例の説明において一層明らかになるであろう。
【実施例】
【００７６】
　この実施例はＢＧＡ（ball grid array ），すなわち下面にはんだボールの端子をアレイ状に配置したＬＳＩ（Large Scale Integration ）のパッケージを実装（搭載）した基板のＸ線透過画像を処理するものである。はんだボール（はんだバンプを含む）が溶融したものもこの実施例でははんだボールというものとする。この画像処理装置ははんだボール内にボイドが存在していないかどうかを検査するものである。
【００７７】
　図６は，画像処理装置に供給される画像データを生成するための構成を示すものである。
【００７８】
　検査対象の基板18は，支持機構（図示略）によりＸ線照射部16とＸ線変換部17との間に支持されており，Ｘ線変換部17の下方位置にはカメラ20が配置されている。Ｘ線照射部16は，微小なＸ線発生源より基板18に対しＸ線を照射する。基板18を透過したＸ線はＸ線変換部17で可視光線に変換される。カメラ20は，変換された可視光線を撮像して，各はんだボールの内部状態を表わすＸ線透過画像を表わす画像データを生成し，画像処理装置に供給する。
【００７９】
　図７は画像処理装置の電気的構成を示すものである。
【００８０】
　画像処理装置は，画像入力部２，画像メモリ３，画像出力部４，線分画像メモリ５，文字メモリ６，制御部11，タイミング制御部12，モニタ表示装置13，Ｉ／Ｏポート14などにより構成される。
【００８１】
　画像入力部２は，カメラ20からのアナログ映像信号をディジタル画像データに変換するためのＡ／Ｄ変換器などを備えている。画像入力部２において生成されたディジタル・グレイ・レベル画像データは画像メモリ３に格納され，次の画像データ入力時まで保存される。
【００８２】
　線分画像メモリ５は，後述する線分画像を表わす線分画像データを記憶するものである。このメモリ５の線分画像データはボイドの検出処理や線分画像のモニタ表示装置13への表示等のために用いられる。後述する線分画像の輝度レベルが８ビットで表わされる場合には，このメモリ５は１画素当り16ビットまたは32ビットを記憶できるものである。
【００８３】
　文字メモリ６には検査結果などモニタ表示装置13上に表示するためのテキスト・データ，その表示位置を示すデータ等が格納されている。
【００８４】
　これらメモリ５，６および画像メモリ３は，それぞれアドレス／データ・バスを介して制御部11に接続されており，制御部11からの指令およびタイミング制御部12からのタイミング信号に応じて，記憶データを画像出力部４へ出力する。
【００８５】
　画像出力部４は，各メモリ３，５，６からの出力データを合成処理する画像合成回路や，Ｄ／Ａ変換回路を備え，これら回路により検査結果表示用の画像信号を生成してモニタ表示装置13へ出力する。
【００８６】
　制御部11は，主にＣＰＵ７，ＲＯＭ８およびＲＡＭ９により構成される。制御部11はさらに検査のための一連の手順をＣＰＵ７に実行させるための制御プログラムがインストールされたハードディスク10を備えている。ＣＰＵ７は，ハードディスク10にインストールされた制御プログラムに基づいて，アドレス／データバスを介して上述したメモリ３，５および６にアクセスして，検査対象である基板上の各はんだボールの良否の判定処理を実施し，その結果をモニタ表示装置13に出力する。
【００８７】
　Ｉ／Ｏポート14は，キーボードやマウスなどの入力部や，外部記憶装置，伝送部のような出力部を接続するためのものである。入力部からは，後述する検査条件や検査領域の設定データが入力される。出力部へは，ファイル化された最終検査結果が出力される。
【００８８】
　図８は画像メモリ３に格納されているグレイ・レベル画像データによって表わされる画像の一例を示すものである。複数個のはんだボール21の画像が背景（基板の画像）よりも明るく現れている。はんだボール21の画像の中には，はんだボール内部のボイド22の画像が映っているものもある。ボイド22の画像ははんだボール21の画像よりもやや暗い。
【００８９】
　ＣＰＵ７は，図８に示されるような入力画像において，はんだボールごとにそれを囲む大きさの検査領域ｒk （ｋ＝１〜６）を設定する。各検査領域ｒk において，画素ごとに，グレイ・レベル画像データのレベル勾配の方向と大きさを算出する。ＣＰＵ７はさらに，算出したレベル勾配の方向に沿う方向を持ち，所定の長さの線分を生成する（後述するように，レベル勾配の大きさが所定値以上の場合についてのみ線分が生成される）。線分の画像もグレイ・レベル画像であり，そのレベルは算出したレベル勾配の大きさに対応する。このようにして生成された線分画像データは線分画像メモリ５に格納される（後述するように，レベルは画素ごとに累積されていく）。線分画像データは画素ごとにレベル・データを持つ画像データであってもよいし，線分の始点，終点およびレベルを表わすデータによって構成することもできる。
【００９０】
　各検査領域内のすべての画素についてのレベル勾配の算出，必要な線分画像の作成が終了すると，ＣＰＵ７は線分画像の密集の度合い，または最大レベルをもつ画素の検出，最大レベルと所定のしきい値レベルとの比較を行い，最終的に検査領域内にボイド22の画像が存在するかどうかを判定する。
【００９１】
　画像処理装置における具体的な処理手順を説明する前に，線分画像の生成処理，および線分画像に基づくボイドの有無の判定原理について説明する。
【００９２】
　画像データにおけるレベル勾配の算出処理では，検査領域内の各画素ごとに，その画素を中心とする所定大きさの局所領域において微分処理を行って，Ｘ，Ｙ各軸方向のレベル勾配を算出し，これら算出した値を用いて最終的に各画素におけるレベル勾配を求める。
【００９３】
　たとえば図９に示すように，座標位置（ｘ，ｙ）にある画素ｇに対し，３×３の局所領域を設定する。ソーベル手法による微分処理では，各軸方向のレベル勾配ｄｘ（ｘ，ｙ），ｄｙ（ｘ，ｙ）は，それぞれ，各画素の輝度（明るさ）レベルＩを用いて，式(1) ，(2) により算出される。
【００９４】
　dx(x,y)=[I(x+1,y-1)+2・I(x+1,y)+I(x+1,y+1)]
　　　　　-[I(x-1,y-1)+2・I(x-1,y)+I(x-1,y+1)]　　　　　　　　　　　…式(1)
【００９５】
　dy(x,y)=[I(x-1,y+1)+2・I(x,y+1)+I(x+1,y+1)]
　　　　　-[I(x-1,y-1)+2・I(x,y-1)+I(x+1,y-1)]　　　　　　　　　　　…式(2)
【００９６】
　Ｘ軸，Ｙ軸方向へのレベル勾配は，それぞれｄｘ（ｘ，ｙ），ｄｙ（ｘ，ｙ）の大きさを持ち，Ｘ軸，Ｙ軸方向に向かうベクトルにより表わされる。したがって，画素ｇにおけるレベル勾配はこれらＸ軸，Ｙ軸方向へのベクトルの合成によって表わされる。合成ベクトルの大きさＥi （ｘ，ｙ）は次式で与えられ，方向は最大の勾配を示す方向となる。
【００９７】
　Ei(x,y)=［(dx(x,y))2+(dy(x,y))2］1/2　　　　　　　…式(3)
【００９８】
　図10(A) から図10(H) は，画素ｇe とその近傍の画素の輝度レベル分布によってレベル勾配の方向がどのようになるかを種々の例をもって示すものである。ハッチングされている部分の方が輝度値が高い（明るい）。
【００９９】
　ベクトルＦはＸ軸およびＹ軸方向へのレベル勾配のベクトルの合成ベクトルである。図示の例ではベクトルＦは輝度レベルの高い方から低い方に向かっているが，レベル勾配の正の方向をどちらに選ぶかに応じてベクトルＦの向きは決まる。
【０１００】
　画素ｇe からＸ軸の正方向に沿うベクトルＢを０度として，合成ベクトルＦのベクトルＢに対する反時計回り方向の角度Ｅc （ｘ，ｙ）によりレベル勾配の方向を表現する。
【０１０１】
　Ｘ，Ｙ各軸方向のレベル勾配の大きさ（正，負または零）に応じて，ベクトルＦは，基準ベクトルＢに対し，０〜90度， 90〜180度，180〜270度，270〜360度のいずれかの角度範囲に設定される。レベル勾配の方向を示す角度Ｅc （ｘ，ｙ）は，レベル勾配の大きさｄｘ（ｘ，ｙ），ｄｙ（ｘ，ｙ）による条件に応じて，つぎの式(4) 〜式(9) のいずれかにより算出される（単位は度である）。また画素ｇe におけるレベル勾配の大きさはベクトルＦの長さに相当するから，上述した式(3) により算出される。
【０１０２】
　dx(x,y)＜0 かつ dy(x,y)＞0 ならば
　　Ec(x,y)=-arctan(dx(x,y)/dy(x,y))　　　　　　　　　…式(4)
【０１０３】
　dx(x,y)＞0 かつ dy(x,y)≠0 ならば
　　Ec(x,y)=180-arctan(dx(x,y)/dy(x,y))                …式(5)
【０１０４】
　dx(x,y)≦0 かつ dy(x,y)＜0 ならば
　　Ec(x,y)=360-arctan(dx(x,y)/dy(x,y))                  …式(6)
【０１０５】
　dx(x,y)＞0 かつ dy(x,y)＝0 ならば
　　Ec(x,y)=180                          …式(7)
【０１０６】
　dx(x,y)≦0 かつ dy(x,y)＝0 ならば
　　Ec(x,y)=0                            …式(8)
【０１０７】
　dx(x,y)＝0 かつ dy(x,y)＞0 ならば
　　Ec(x,y)=90　　　　　　　　　　　　　…式(9)
【０１０８】
　図11は，図８に示す入力画像のうち，検査領域ｒ2 内の画像の輪郭線のみを抽出して示すものであり，はんだボールの画像の輪郭線とボイドの画像の輪郭線とが示されている。この輪郭線上の代表点ｅ1，ｅ2について算出されるレベル勾配を表わすベクトルＦ1 ，Ｆ2 もあわせて示されている。
【０１０９】
　はんだボールの画像は背景部分よりも輝度レベルが高いから，はんだボールの輪郭線上の点ｅ1 では，この点ｅ1 から背景側へ向かうベクトルＦ1 が得られる。一方，ボイドの画像ははんだボールの画像よりも輝度レベルが低いから，ボイドの輪郭線上の点ｅ2 におけるレベル勾配は，点ｅ2 の位置から内側に向かうベクトルＦ2 により表わされる。
【０１１０】
　図12は図11に示すはんだボールの輪郭線およびボイドの輪郭線上のすべての（図示できる範囲で）点（画素）について，レベル勾配の方向を表わす線分を描いたものである（線分画像のレベルを一定と仮定している）。
【０１１１】
　はんだボールの輪郭線上においては，すべての線分Ｌ1 が外方（背景側）へ向かっている。
【０１１２】
　これに対して，ボイドの輪郭線上においてはすべての線分Ｌ2 がボイドの内部に向かっている。すべての線分Ｌ2 はボイドの内部において交わり，ないしは重なり合っている。線分Ｌ2 の交わり，ないしは重なりが，検査領域内にボイドの画像が存在するか否かを判定するに重要である。この意味で，線分の長さ，または線分の始点と終点の位置は重要である。
【０１１３】
　図11および図12は輪郭線がはっきりとしていることを前提として描いたものであるが，実際の画像では画像の各部分（背景，はんだボール，ボイド）の境界は鮮明でないことが多いので，線分の方向はきれいな放射状とはならず，線分の始点も円周の上に存在するとは限らない。しかしながら，上述のようにして描かれる線分は鮮明であり，かつその全体的な像から境界が明瞭に浮び上る。
【０１１４】
　図13(A) から図13(D) は長さ，始点と終点がそれぞれ異なる線分の例を示すものであり，円形の輪郭線上に代表点ｅp とｅq をとって，それらの点についてレベル勾配を求めた結果得られる線分を示している。
【０１１５】
　図13(A) では２つの線分Ｌp とＬq はその線分を作成するためのレベル勾配算出の対象となった画素ｅp ，ｅq から始まり，円の直径よりも長い長さを持つ。輪郭線上のすべての点について線分を描いた場合に，それらの線分は互いに重なり，これらの線分が表わす全体像は円（輪郭線）よりも大きくなる。円の存在は検出可能であるが，その大きさ，中心等の検出は困難である。
【０１１６】
　図13(B) では画素ｅq から線分Ｌq の始点までの距離ｄは円の半径よりも大きく，画素ｅq から線分Ｌq の終点までの距離Ｄは円の直径よりも大きい（線分Ｌp についても同じ）。線分は円の輪郭を中心として円環状に密集することになる。この場合にも円の存在は検知できるが，その中心や大きさの検出は困難である。
【０１１７】
　図13(C) では，線分Ｌp ，Ｌq は画素ｅp ，ｅq を始点とし，その長さは円の半径よりも短い。したがって，線分は円の内側に沿って密集し，円の中心には存在しない。この場合にも円の存在の検知は可能であるが，その中心の検出は困難である。
【０１１８】
　図13(D) では，画素ｅq から線分Ｌq の始点までの距離ｄが円の半径よりも小さく，画素ｅq から線分Ｌq の終点までの距離Ｄは円の半径よりも大きくかつ円の直径よりも小さい。この場合には線分は円の中心付近に密集する。線分が重なっている画素については，その画素を通るすべての線分の輝度レベルを加算（累積）すると，円の中心で最大数の線分が重なるから，加算値は円の中心で最大となる。このように加算値の最大レベルを検出することにより，円の中心を検出することが可能である。これは図４(B) を用いて先に説明したのと同じである。
【０１１９】
　したがって，あらかじめ不良と判定すべきボイドの大きさに応じて，画素と線分の始点の位置関係（距離ｄ），およびライン長さ（距離Ｄ）を設定しておく必要がある。
【０１２０】
　各画素を通る線分の輝度レベルを加算せずに，単に線分が有るか無いか（密集の度合い）によってもボイドの検出は可能である。すなわち，局所領域（たとえば，10画素×10画素）において線分が描画されている画素数の割合が高いところほど線分が密集していると判断する。
【０１２１】
　このような考え方は，対象物が略円形である場合に，ある範囲の半径を有するものだけを抽出する用途に利用することができる。たとえば，半径がａからｂまでの対象物を抽出したい場合には，キーボードからａとｂの値を入力する。画像処理装置は画素の位置から線分の始点までの距離をａ（ｄ＝ａ），画素の位置から線分の終点までの距離をｂ（Ｄ＝ｂ）に設定する。そうすると対象物の半径がａからｂまでの場合に限り線分の密集が発生するので，線分の密集が検出できれば，その場所に目的の対象物が存在すると判定することができる。
【０１２２】
　距離ｄとＤとを同一の値に設定することもできる。この場合には線分の長さは０である。実際には１画素だけが線分となる。このようにすると，図５(A) に示すように，対象物が設定した値（ｄ＝Ｄ）の半径を持つ円の場合は非常に狭い領域に線分（点）が集中し，それ以外の場合は線分（点）が分散するので，その分散の程度により円の目標半径からの誤差の程度または真円の程度を知ることができる。
【０１２３】
　画素から線分の終点までの距離Ｄは無限大でもよい。これは，実際には線分画像メモリで表現される領域の端に行き着くまで線分を引くことを意味する。ｄ＝０，Ｄ＝∞をデフォルト値としておけば，半径の大きさにかかわりなく，円や円弧が存在することについての検出ができる。特に図５(B) に示すように，線分を円の外側に向かって引く場合に有効である。
【０１２４】
　この実施例では，上述した原理に基づき，画素の位置から線分の終点までの距離Ｄと，画素の位置から線分の始点までの距離ｄとを，検査条件として設定することにより，所定値以上の大きさのボイドを，検出対象として検出するようにしている。また，この検査条件を必要に応じて変更して再度検査を実施することも可能である。
【０１２５】
　図14および図15は画像処理装置において，カメラ20から入力された１枚の画像に対する制御手順を示す。検査条件となる画素の位置から線分の終点までの距離Ｄ，および画素の位置から線分の始点までの距離ｄは，この手順の実行に先立って入力され，ＲＡＭ９内に記憶されているものとする。
【０１２６】
　まずステップST0 で，カメラ20からの画像信号がディジタル変換されて画像メモリ３に格納されると，ＣＰＵ７は，この入力画像を画像出力部４を介してモニタ13に表示させる。
【０１２７】
　オペレータが，マウスなどを用いて，表示画像上で，はんだボールのうちの任意の１個を含むように検査領域を指定する。ＣＰＵ７はこの指定位置に基づき，検査領域の設定位置（はんだボールとの相対位置関係）や領域の大きさを認識する。基板上の各はんだボールの位置（たとえば基板の座標原点を基準とする位置）は，あらかじめ，またはこの時点で既に入力されているものとする。ＣＰＵ７は，検査領域の指定を受けた以外のはんだボールについても，はんだボールと検査領域との位置関係を用いて，検査領域をそれぞれ設定する（ステップST1 ）（図８参照）。検査領域の位置は，その領域の左上，右下の頂点の座標（ｘk1，ｙk1），（ｘk2，ｙk2）により表わされる。
【０１２８】
　ＣＰＵ７は，ステップST2 へ移行して，線分画像メモリ５内の各画素のレベル・データを０にクリアし，その後，検査領域ごとに，ステップST3 〜ST19の処理を繰り返し実行する。
【０１２９】
　ステップST3 では，着目画素ｇの初期位置が検査領域の左上頂点の位置（ｘk1，ｙk1）に定められる。ステップST4 では，式(1) ，(2) に基づいて，着目画素ｇにおけるＸ軸，Ｙ軸方向のレベル勾配ｄｘ（ｘ，ｙ），ｄｙ（ｘ，ｙ）が算出される。ｄｘ，ｄｙがともに０の場合にはステップST6 〜ST10をスキップする。ｄｘ，ｄｙのいずれかが０でなければ，式(4) 〜(9) のいずれかｄｘ，ｄｙに適合するものにしたがって，レベル勾配の方向を示す角度Ｅc （ｘ，ｙ）およびレベル勾配の大きさＥi （ｘ，ｙ）が算出される（ステップST6 ）。
【０１３０】
　続いて算出したレベル勾配の大きさＥi （ｘ，ｙ）が所定のしきい値ＥiLB より大きいかどうかがチェックされる（ステップST7 ）。レベル勾配の大きさＥi （ｘ，ｙ）がしきい値ＥiLB 以下であれば，線分を生成するステップST8 〜ST10の処理は行われない。入力画像における輝度むら等の検出すべき対象ではないものについては線分を生成しないことにより，無駄な処理を省き，誤った検査結果が得られるのを防ぎ，全体として処理の高速化を図る。
【０１３１】
　ＣＰＵ７は，着目画素ｇの位置（ｘ，ｙ）において，反時計回りの方向にＥc （ｘ，ｙ）の方向を線分の方向として定める。この設定方向において，着目画素ｇから距離ｄ，Ｄそれぞれ離れた各点を，着目画素ｇに対応する線分の始点，終点として設定し，線分画像メモリ５において，これらの点に相当する座標（ｘo ，ｙo ），（ｘT ，ｙT ）を認識または算出する（ステップST8 ）。ＣＰＵ７は，次のステップST9 で線分画像メモリ５において，上記の始点および終点により規定される線分上のすべての画素の座標を算出または認識し，認識した各画素に対し，それぞれの画素が現在保有する（その画素に対応して記憶されている）レベル値にステップST6 で算出されたレベル勾配の大きさＥi （ｘ，ｙ）に相当するレベル値を加算し記憶する（ステップST10）。
【０１３２】
　ステップST11〜ST14は，検査領域内の画像の着目位置を順次ずらす処理を示すものである。以下同様にして，検査領域内でレベル勾配の大きさがしきい値ＥiLB を超える画素毎に，そのレベル勾配の方向に沿い，かつレベル勾配の大きさに相当するレベルを有する線分が設定されて，線分画像が生成されていく。
【０１３３】
　線分画像メモリ５内で線分上に存在するとして認識された画素のレベル値には，新たに設定される線分のレベルに応じた値が加算されてゆくから，線分が重なっている画素は他の画素よりも高いレベル値を保有するようになる。レベル勾配の大きさＥi （ｘ，ｙ）が大きいほど，高いレベル値を持つ線分が設定される。また一般に，画像上のはんだボールやボイドの輪郭ではレベル勾配は大きいから，ボイドの輪郭に沿う部分において生成された線分はボイドの内部で数多く重なることになり，ボイドの内部で画素のレベル値はきわめて高くなる。
【０１３４】
　ＣＰＵ７は，検査領域内のすべての画素について処理を終えると，処理対象の検査領域内における画素の持つレベルの最大値Ｄmax を抽出する（ステップST15）。検出されたレベルの最大値Ｄmax は，ステップST16で所定の基準値ＤLBと比較される。Ｄmax がＤLBを上回るときは，検査領域内にボイドの画像が存在すると判定され，さらにレベルの最大値Ｄmax が得られる画素の位置が認識される（ステップST17，ST19）。またＤmax がＤLB以下である場合には，検査領域内にはボイドの画像はないものと判断される（ステップST18）。
【０１３５】
　同様にしてすべての検査領域についての処理が終了すると，ステップST20で「YES 」となってステップST21へと移行する。ＣＰＵ７は，線分画像メモリ５内の各画素のレベル値を順次読み出して，式(10)により，各レベル値Ｐ（ｘ，ｙ）を８ビット構成で表示可能な値になるように正規化する。
【０１３６】
　P(x,y)←P(x,y)×255／Dmax　　　　　　　　…式(10)
【０１３７】
　この後，ＣＰＵ７は，正規化された線分画像データを，原入力画像データや判定結果を示すテキスト・データなどとともに画像出力部４に出力して合成処理させ，モニタ表示装置13へ出力させる（ステップST22）。対象の輪郭を抽出して輪郭を表示してもよい。
【０１３８】
　上記のステップST21では検査領域ごとに線分画像データを最大輝度レベルＤmax で正規化しているので，すべての領域において正規化後の最大輝度は同じである。他方，すべての検査領域内における最大輝度レベルを検出し，この最大輝度レベルですべての検査領域の画像データを正規化すると，ボイドの存在しない検査領域ではその領域全体の輝度が小さいから暗く見え，ボイドが存在しないことが明瞭に分かるようになる。もちろん，あらかじめ定めたレベルを用いて全領域の画像データを正規化してもよいし，正規化を行わないようにしてもよい。
【０１３９】
　上記実施例では，各線分画像に，そのレベル勾配の大きさに応じたレベル値をもたせるようにしているが，これに限らず，すべての線分を同一のレベルで表わすようにしてもよい。しかしながら，輝度むらなどのノイズによるレベル勾配に対応する線分と，輪郭におけるレベル勾配に対応する線分とが同一の条件で生成されると，誤検出が生じるおそれがあるので，ステップST7 のようにレベル勾配の大きさが所定のしきい値以下のものは，線分生成処理対象から除外するのが望ましい。
【０１４０】
　図16(A) および図16(B) は，上述した制御手順により生成された判定結果の表示例を示す。図16(A) に示す例では，線分画像の中からレベル値がしきい値ＤLBを超える部分の画像30だけが抽出されて高い輝度を持つようにレベル変換され，原入力画像上に重ね合わせて表示されている。また画面の左上の位置には，ボイドの存在により不良と判定されたはんだボールの個数を示す文字情報31が表示されている。
【０１４１】
　図16(B) の表示例は，抽出されたボイドの位置を報知するようにしたもので，原入力画像に，ステップST19の処理で最大のレベル値Ｄmax が得られる画素の位置を示すマーク32が入力画像に重ね合わせて表示されている。
【０１４２】
　検査結果の表示例は上記に限らず，線分画像そのものを表示するようにしてもよく，また図16(A) ，図16(B) に示すような画像，エッジ画像，Ｅi （ｘ，ｙ）＞ＥiLB を満たす画素による画像，線分画像などを適宜切り換えて表示して，検査の過程を確認できるようにしてもよい。
【０１４３】
　また上記実施例では，はんだボール毎に検査領域を設定しているが，これに限らず，画像上のすべてのはんだボールを含むように検査領域を設定してもよい。この場合，検査領域内の画像データについて，図14のステップST4 〜ST10と同様の処理を一度実行した後，しきい値ＤLBを超えるレベル値を有する画素を検索し，その画素の位置を各はんだボールの配置位置と照合することにより，ボイドを有するはんだボールを認識することができる。
【０１４４】
　また上記の実施例では，検出対象のボイドの輝度レベルが周囲の輝度レベルよりも低くなるため，各線分をボイドの内側に向かって設定しているが，はんだボールのように周囲よりも高い輝度レベルを有する対象物を検出対象とする場合には，線分を外方に向かって設定する必要がある。
【０１４５】
　さらに勾配算出処理の誤差などによる影響を考慮して，線分を設定すべき方向に加えて，その方向から±２度の方向にも線分を引き，合計３本の線分を設定するようにすれば，対象物の検出精度をさらに向上させることができる。
【０１４６】
　上記実施例では，はんだボールのＸ線透過画像に基づいて内部のボイドの有無を検査しているが，基板を通常の照明下で撮像した画像を用いてはんだ表面のピンホールの有無を検出する場合にも，上記と同じ方法を適用することができる。
【０１４７】
　さらに検査対象は円形状のものに限らない。たとえば輪郭形状の一部のみが円弧の形状をとるような対象物について，上記実施例と同様の方法で線分を設定すると，生成される線分が円弧の中心位置付近で重なり合うようになる。また，物品の角を丸く面取りする場合に，面取り半径の公差の最小値をｄ，最大値をＤとして上述した処理を行なうと，面取り半径が公差内である場合だけ線分の密集が発生するので，面取り半径の検査を簡単に行うことができる。
【０１４８】
　また上記実施例の画像処理装置によれば，矩形状の輪郭を有する対象物や，角を有する対象物を抽出することも可能である。この場合には，図３(B) に示すように，レベル勾配の方向に垂直な２方向を向く線分を生成することにより，線分の交点を角の位置として抽出することになる。したがって方向の特定が可能な形状のものを処理対象物とする場合，この処理結果により，対象物の位置のみならず，対象物がいずれの方向を向いて位置しているかも確認することが可能となる。
【０１４９】
　図17は，十字型の輪郭形状を有する対象物のグレイ・レベル画像の例を示すもので，対象物の画像は背景の画像よりも高い輝度レベルをもって現れている。
【０１５０】
　図18は，図17に示す対象物の輪郭の部分で算出されるレベル勾配の方向を示すもので，レベル勾配の方向は各辺に垂直で背景に向かう。
【０１５１】
　図19は，図７の画像処理装置に図17のグレイ・レベル画像を入力して，対象物の位置や傾きを計測する手順を示す。画像処理装置には，対象物を通常の照明下で撮像して得られた画像データが供給される。
【０１５２】
　まずステップST30で，カメラからの画像データが入力されると，ＣＰＵ７は，図14の手順と同様に，画像上での検査領域の指定を受け，指定された領域の左上，右下の各頂点位置の座標（ｘ1 ，ｙ1 ），（ｘ2 ，ｙ2 ）を取り込み，検査領域の設定位置として認識する（ステップST31）。ＣＰＵ７は，つぎのステップST32で，線分画像メモリ５の各画素のエリアをクリアし，その後，検査領域内の各画素に順次着目し，各画素毎にステップST34〜ST43の処理を実行する。
【０１５３】
　上記ループにおいて，ＣＰＵ７は，図14，図15の手順と同様に，着目画素ｇ（ｘ，ｙ）のＸ，Ｙ方向の濃度勾配ｄｘ（ｘ，ｙ），ｄｙ（ｘ，ｙ）を算出する。各画素について，それぞれレベル勾配の方向Ｅc （ｘ，ｙ）およびレベル勾配の大きさＥi （ｘ，ｙ）を算出する（ステップST34〜ST36）。算出したレベル勾配の大きさＥi （ｘ，ｙ）がしきい値ＥiLB よりも大きければ（ステップST37），ステップST38で，検出されたレベル勾配の方向Ｅc （ｘ，ｙ）に対し，反時計回りに90度の角度をなす方向に沿って第１の線分を設定し，さらにステップST39で，この第１の線分と反対の方向，すなわち上記レベル勾配の方向Ｅc （ｘ，ｙ）に対し，反時計回りに 270度の角度をなす方向に沿って第２の線分を設定する。
【０１５４】
　このステップST38，ST39における各ラインの設定処理は，いずれも前記図14のステップST8 〜ST10に示したのと同様の手順により行われる。
【０１５５】
　検査領域内のすべての画素に対する処理が完了すると（ステップST40〜ST43），ＣＰＵ７は，線分画像メモリ５内の各画素のレベル値をチェックし，検査領域内において所定のしきい値Ｄth以上のレベル値をとる画素を抽出する（ステップST44）。
【０１５６】
　図17に示すグレイ・レベル画像上の対象物について，そのレベル勾配の方向に垂直な２方向に沿って線分を設定すると，図20に示すように，対象物の輪郭を構成する各辺の長さ方向に沿って，線分が重なり合う線分画像が生成される。この場合，各方向の線分により形成される16個の交点のうち，対象物の角に対応する12の交点（図中●印で示す）において最も多くのラインが集中するから，これらの交点において得られるレベル値と，他の交点（図中×印で示す）において得られるレベル値との間に前記しきい値Ｄthを設定することにより，前記ステップST44において，対象物の角に相当する画素を検出することができる。
【０１５７】
　このようにして対象物の角に相当する画素が検出されると，つぎのステップST45で，ＣＰＵ７は，各検出位置の座標を用いて，重心など対象物の位置を表わす代表点の座標を算出するとともに，検出位置の位置関係から対象物の主軸（２軸ある）を特定して，その軸方向がいずれの向きを向いているかを算出する。
【０１５８】
　この後，上記算出結果をモニタ表示装置13などへ出力したり，算出結果から画像の位置ずれや回転ずれを認識して，対象物の詳細な認識処理を実施するなど，目的に応じた処理が実施される。
【０１５９】
　図14，図15，図19に示す処理は，いずれもカメラにより生成された画像を画像処理装置内に直接取り込んで処理するようにしているが，これに限らず，離れた場所で生成されたディジタル画像データをＩ／Ｏポート14を介して入力して，処理することも可能である。
【０１６０】
　図14，図15，図19に示す処理は，いずれもハードディスク10にインストールされた制御プログラムに基づきＣＰＵ７により実行されるが，このうち一部の処理を，ハードウェアにより実施するようにすれば，ＣＰＵ７の負担を減らして，処理をさらに高速化することができる。
【０１６１】
　図21は，画像処理装置の他の構成例を示すもので，図７に示す構成に加え，レベル勾配計測部25および重なり抽出部26が付加された構成をとる。
【０１６２】
　レベル勾配計測部25は，画像メモリ３に格納された入力画像上の各画素データを順次取り込んでＸ，Ｙ方向レベル勾配ｄｘ（ｘ，ｙ），ｄｙ（ｘ，ｙ）を算出する微分処理回路や，これらレベル勾配ｄｘ（ｘ，ｙ），ｄｙ（ｘ，ｙ）からレベル勾配の大きさＥi （ｘ，ｙ）やレベル勾配の方向を示す角度ＥC （ｘ，ｙ）を算出するための演算回路を具備する。また重なり抽出部26は，線分画像メモリ５の各画素を順次取り込んで，輝度レベルの最大値をとる画素を抽出したり，その最大値をしきい値ＤBLまたはしきい値Ｄthと比較するための回路構成を具備する。
【０１６３】
　ＣＰＵ７は，レベル勾配計測部25を用いて検査領域内のレベル勾配の大きさやレベル勾配の方向を算出し，その後，これら算出結果を用いて，所定の大きさ以上のレベル勾配について，検査すべき対象物の形状に応じた方向に線分を設定する。そしてこの線分生成処理が完了すると，重なり抽出部26を作動させて，線分画像の重なりを検索させ，その検索結果に応じて，対象物の有無の判定，位置や傾きの計測処理を実施する。
【０１６４】
　画像処理装置の構成は，上記の実施例に限らず，例えば，線分画像の生成処理をハードウェアにより実施することも可能である。
【図面の簡単な説明】
【０１６５】
【図１】(A) は対象画像の例を，(B) はこの対象画像について生成された線分画像の例を示すものである。
【図２】(A) ，(B) は図１(A) の対象画像について生成された線分画像の例を示すものである。
【図３】(A) は対象画像の他の例を，(B) はこの対象画像について生成された線分画像の例を示すものである。
【図４】(A) は線分の引き方を説明するもの，(B) は生成された線分画像の例を示すものである。
【図５】(A) ，(B) は生成された線分画像の例を示すものである。
【図６】画像処理装置に供給するＸ線透過画像を生成するための構成を示す。
【図７】この発明の一実施例の画像処理装置の電気的構成を示すブロック図である。
【図８】入力画像の一例を示す。
【図９】レベル勾配の算出のための局所領域の一例を示す。
【図１０】(A) から(H) は着目画素とその周囲の画像データとレベル勾配の方向との関係を示す。
【図１１】検査領域内におけるレベル勾配の方向の例を示すものである。
【図１２】検査領域内で生成された線分画像を示す。
【図１３】(A) から(D) は線分の引き方の例を示す。
【図１４】画像処理装置における処理手順を示すフローチャートである。
【図１５】画像処理装置における処理手順を示すフローチャートである。
【図１６】(A) および(B) は検査結果の表示例を示す。
【図１７】十字型の輪郭を有する対象物のグレイ・レベル画像の例を示す。
【図１８】図17の対象物について，画像の輪郭線上におけるレベル勾配の方向の例を示す。
【図１９】画像処理装置における処理手順の他の例を示すフローチャートである。
【図２０】線分画像の交点の位置を示す。
【図２１】画像処理装置の他の電気的構成例を示すブロック図である。
【符号の説明】
【０１６６】
　２　画像入力部
　３　画像メモリ
　４　画像出力部
　５　線分画像メモリ
　11　制御部
　13　モニタ表示装置
　25　レベル勾配計測部
　26　重なり抽出部
【図１】
2004070949.tif 000003
【図２】
2004070949.tif 000004
【図３】
2004070949.tif 000005
【図４】
2004070949.tif 000006
【図５】
2004070949.tif 000007
【図６】
2004070949.tif 000008
【図７】
2004070949.tif 000009
【図８】
2004070949.tif 000010
【図９】
2004070949.tif 000011
【図１０】
2004070949.tif 000012
【図１１】
2004070949.tif 000013
【図１２】
2004070949.tif 000014
【図１３】
2004070949.tif 000015
【図１４】
2004070949.tif 000016
【図１５】
2004070949.tif 000017
【図１６】
2004070949.tif 000018
【図１７】
2004070949.tif 000019
【図１８】
2004070949.tif 000020
【図１９】
2004070949.tif 000021
【図２０】
2004070949.tif 000022
【図２１】
2004070949.tif 000023