(57)【特許請求の範囲】
【請求項１】
被測定物を撮影することにより被測定物の濃淡画像データを得るＣＣＤカメラと、該ＣＣＤカメラにて得られた前記濃淡画像データを格納する濃淡画像メモリと、該濃淡画像メモリに格納された前記濃淡画像データに対して演算処理を行うＣＰＵと、を有する画像処理システムにおいて、
前記ＣＰＵでは以下の一連の演算処理、すなわち、
前記濃淡画像メモリに格納された前記濃淡画像データに対して微分処理を施すことにより微分画像を作成し、
該微分画像上を走査し、走査された画素の微分値の中から最も値の大きいものを抽出し、この最大の微分値を有する画素の位置をピーク位置とし、
該ピーク位置の近傍の微分画像に対して非線形演算を行い、
該非線形演算により得られた分布曲線に対して近似曲線とのマッチング処理を施すことにより被測定物のエッジ位置を算出する、一連の演算処理が行われることを特徴とする画像処理システム。
【請求項２】
前記非線形演算は前記微分画像の微分値の二乗を演算することを特徴とする請求項１に記載の画像処理システム。
【請求項３】
前記非線形演算は前記微分画像の微分値が大きいほど大きな定数を乗算することを特徴とする請求項１に記載の画像処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理システムに関し、特に、画質に左右されることなく、被測定物のエッジ位置を正確かつ安定して検出することを可能にした画像処理システムに関する。
【０００２】
【従来の技術】
ＣＣＤカメラなどで撮像された被測定物の濃淡画像に含まれるエッジ部の位置検出を行う場合、まず、濃淡画像を微分することにより微分画像を作成し、この微分画像のピーク位置（微分ピーク位置）を求め、この微分ピーク位置近傍の微分曲線に対して近似曲線を当てはめ、この近似曲線のピーク位置をエッジ位置とする方法が広く知られている。この方法は、微分ピーク位置近傍の微分値分布が急峻である場合には有効であるが、微分ピーク位置近傍の微分値分布がなだらかな場合や撮像された濃淡画像のピントが外れていた場合などでは、微分ピークが相対的に低くなり、なだらかな丘のような形状の微分曲線となる。この結果、微分ピーク位置近傍の微分値がほぼ等しくなり、撮像条件によっては微分ピーク位置が一定しなくなるため、安定してエッジ位置を検出することができないという問題があった。特に、コントラストが低い場合は、ピーク位置の濃度値と左右のすそ野領域の濃度値の差が小さく、近似曲線に近似する場合に、すそ野領域の濃度ばらつき（雑音）の影響が大きくなり、ピーク位置検出の安定性が低下する問題があった。
【０００３】
そこで、特開平９−２５７４２２号公報に開示する方法では、まず、被測定対象の濃淡画像に含まれるエッジのおおよその位置（エッジ概略位置）を検出し、次に、濃淡画像を微分した微分画像においてエッジ概略位置の近傍から微分ピーク位置を探索し、続いて、微分画像のピーク値のレベルに対して所定の割合のレベルを閾値として設定し、このピーク値の周辺の微分値分布を構成する画素のうち前記閾値を超えるレベルの画素の数が所定値を下回ったときに当該微分値分布が急峻であると判別し、一方、前記閾値を超える画素の数が所定値以上であるとき、あるいは前記微分ピーク値が閾値を下回るときに当該微分値分布がなだらかであると判別する。そして、微分分布が急峻であると判別したときは、前記微分ピーク位置近傍に近似曲線を当てはめそのピーク位置をエッジ位置とし、また、なだらかであると判別したときは前記微分ピーク位置近傍の重心計算を行い、その重心位置をエッジ位置とし、エッジ検出を行うようにしている。これにより、微分ピーク位置近傍の微分値分布がなだらかな場合でも、エッジ位置を検出可能にするとされている。
【０００４】
【発明が解決しようとする課題】
しかし、特開平９−２５７４２２号公報で開示されている方式では、微分ピーク値により２つの方法のエッジ位置検出方法を切り替えているため、微分ピーク値や微分ピーク位置近傍の微分値分布形状によっては、この２つの方法のどちらが選択されるかわからず、したがって、この２つの方法の遷移部分でのエッジ位置を安定して求めることができないという問題がある。
【０００５】
本発明は、この従来技術の問題点を解決するためになされたものであり、エッジ部近傍の微分値分布が急峻である場合だけでなく、ピントが外れたりエッジ部近傍の微分値分布がなだらかな場合でも、撮影された濃淡画像に含まれるエッジ位置を、切り替え処理のない１つの画像処理シーケンスにより、正確かつ安定して検出することが可能な画像処理システムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、請求項１にかかる発明では、被測定物を撮影することにより被測定物の濃淡画像データを得るＣＣＤカメラと、このＣＣＤカメラにて得られた濃淡画像データを格納する濃淡画像メモリと、この濃淡画像メモリに格納された濃淡画像データに対して演算処理を行うＣＰＵと、を有する画像処理システムにおいて、前記ＣＰＵでは以下の一連の演算処理、すなわち、前記濃淡画像メモリに格納された濃淡画像データに対して微分処理を施すことにより微分画像を作成し、この微分画像上を走査し、走査された画素の微分値の中から最も値の大きいものを抽出し、この最大の微分値を有する画素の位置をピーク位置とし、このピーク位置の近傍の微分画像に対して非線形演算を行い、この非線形演算により得られた分布曲線に対して近似曲線とのマッチング処理を施すことにより被測定物のエッジ位置を算出する、一連の演算処理が行われることを特徴とする画像処理システムを提供した。
【０００７】
かかる構成によれば、非線形演算により得られた分布曲線はその元になった微分画像の分布曲線に比して、分布曲線のピーク領域がより大きく、一方、分布曲線のすそ野領域はより小さくなるので、すそ野領域の変動の影響が相対的に小さくなり、その結果、安定してエッジ位置を検出できるようになる。
【０００８】
なお、前記非線形演算は、具体的には、微分画像の微分値の二乗を演算してもよいし（請求項２）、微分画像の微分値が大きいほど大きな定数を乗算するようにしてもよい（請求項３）。
【０００９】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態について説明する。図２は、本発明の一実施形態に係る画像処理システムを示すブロック図である。この画像処理システムは、ＣＣＤカメラ１、コンピュータ本体２、マウス３、キーボード４、及びＣＲＴ画面８により構成されている。ＣＣＤカメラ１により撮像された濃淡画像データは、インターフェース（以下「Ｉ／Ｆ」と記す）５を介して濃淡画像メモリ６に格納される。濃淡画像メモリ６に格納された濃淡画像データは、表示制御部７を介してＣＲＴ画面８に表示される。一方、データ入力機器としてのマウス３及びキーボード４から入力される位置情報は、それぞれＩ／Ｆ９、Ｉ／Ｆ１０を介してＣＰＵ１１に入力される。ＣＰＵ１１では後述するエッジ検出方法にかかる一連の演算処理が行われる。なお、プログラムメモリ１２にはＣＰＵ１１にて演算される処理を規定するプログラムが格納されており、また、ワークメモリ１２にはＣＰＵ１１における演算過程で使用されるデータが一時的に格納される。
【００１０】
図１は、前述の図２で示した画像処理システムにおいて行われるエッジ検出の演算フローである。また、図３〜６は、演算フローの各段階における具体的な画像処理データを示したものである。ここで、○、●は画素毎にサンプリングした画素値を表す。
【００１１】
まず、図２のＣＣＤカメラ１からＩ／Ｆ５を経由して濃淡画像メモリ６に濃淡画像が記録される（図１のステップ▲１▼）。このときの濃淡画像及び濃度値分布を図３に示す。なお、この濃度値分布において、横軸は濃淡画像の横方向のＸ座標、縦軸は濃度値をそれぞれ示す。
【００１２】
次に、ＣＰＵ１１において、濃淡画像メモリ６に記録されている濃淡画像データに対して微分フィルタ処理を施すことにより微分画像を作成し（図１のステップ▲２▼）、これをワークメモリ１２に一時的に記憶する。このときの微分画像及び微分値分布を図４に示す。なお、この微分値分布において、横軸は濃淡画像の横方向のＸ座標、縦軸は微分値をそれぞれ示す。
【００１３】
さらに、この微分画像上をＸ軸方向に走査し、微分値のピーク位置Ｘ0 を探索する（図１のステップ▲３▼）。ここでの探索は、走査された画素の微分値の中から最も値の大きいものを抽出し、この最大の微分値を有する画素の位置をピーク位置Ｘ0 とする。
【００１４】
次に、ステップ▲２▼で求められた図４の微分値分布で示される波形において、ステップ▲３▼で求められたピーク位置Ｘ0 の近傍のｎ個の画素に対して、非線形演算を行う（図１のステップ▲４▼）。ただし、このとき微分値の値が大きいほど、より演算結果が大きくなるような非線形演算処理を行う。このときの演算結果の分布を図５に示す。この図５の例では、微分後の各画素の値を二乗することでその効果を出すようにしている。図５において、横軸は濃淡画像の横方向のＸ座標、縦軸は微分値の二乗をそれぞれ示す。この結果、ピークを含むピーク近傍領域はその領域以外に比して波形の急峻度が増し、ピーク濃度値とすそ野領域のダイナミックレンジが拡大することになる。
【００１５】
最後に、この結果すなわち図５に示した分布曲線に対して図６に示すような近似曲線とのマッチング処理を行うことによりピーク位置を計算すると、エッジの位置を正確に算出することができる（図１のステップ▲５▼）。例えば、近似曲線をガウス分布曲線とすると、算出すべきエッジ位置ＸMAX は式（１）から求められる。
【００１６】
【数１】
0003728184.tif 000002
【００１７】
式（１）において、Ｘ0 はステップ▲３▼で求められたピーク位置、ｆ0 はステップ▲４▼で求められたピーク位置Ｘ0 における微分値の二乗（以下「画素値」と記す）をそれぞれ示す。また、ｆ1 及びｆ2 はそれぞれピーク位置Ｘ0 からプラス方向に１画素分及び２画素分離れた画素における画素値、ｆ-1及びｆ-2はそれぞれピーク位置Ｘ0 からマイナス方向に１画素分及び２画素分離れた画素における画素値である。
【００１８】
以下、上述のエッジ検出アルゴリズムにガウス近似を採用する場合を例にして、本実施形態の効果を述べる。ここで、ランダムな雑音αが各画素値（ｆi 、ｉ＝０、±１、±２）に重畳していると仮定すると、雑音による誤差の最大値は式（２）で表される。
【００１９】
【数２】
0003728184.tif 000003
【００２０】
一方、本実施形態におけるステップ▲４▼での非線形演算終了後の雑音による誤差の最大値は式（３）で表される。
【００２１】
【数３】
0003728184.tif 000004
【００２２】
次いで、式（２）から求められるＮａと式（３）から求められるＮｂとを比較するわけであるが、「ｆ0 >>α」（ｆ0 がαに比して非常に大きい）という条件を考慮すると、式（２）及び式（３）はそれぞれ式（２）′及び式（３）′のように書き直すことができる。
【００２３】
【数４】
0003728184.tif 000005
【００２４】
さらに、画像の性質上、「ｆ0 ＞（ｆ-1、ｆ1 ）＞（ｆ-2、ｆ2 ）」であるから、式（４）が成り立つ。
【００２５】
【数５】
0003728184.tif 000006
【００２６】
この式（４）の関係を前記式（３）′に適用し、式（２）′から求められるＮａ′と式（３）′から求められるＮｂ′とを比較すると、「Ｎａ′＞Ｎｂ′」となり、結局「Ｎａ＞Ｎｂ」となる。ゆえに、本実施形態における非線形演算終了後の雑音による誤差の最大値の方が小さくなるので、本実施形態を適用することにより雑音の影響度が小さくなり、その結果、エッジ測定の再現性すなわち安定性が向上することになる。
【００２７】
以上、本発明の一実施形態について説明した。上記実施形態では、非線形演算の例として二乗演算を紹介したが、本発明の趣旨は画像の微分値のダイナミックレンジを拡大して雑音成分の影響を小さくすることであるので、非線形演算の方法は二乗演算に限定するものではない。例えば、式（５）に示すような演算テーブルを使用しても同じような効果が得られる。
【００２８】
【数６】
0003728184.tif 000007
【００２９】
すなわち、式（５）に示す演算テーブルでは、各画素の濃度値の微分値ｆi が大きいほど定数Ｋの値を大きく設定するようにしている。
【００３０】
【発明の効果】
本発明によれば、非線形演算により得られた分布曲線はその元になった微分画像の分布曲線に比して、分布曲線のピーク領域がより大きく、一方、分布曲線のすそ野領域はより小さくなったので、すそ野領域の変動の影響が相対的に小さくなり、その結果、エッジ部近傍の微分値分布が急峻である場合だけでなく、ピントが外れたりエッジ部近傍の微分値分布がなだらかな場合でも、撮影された濃淡画像に含まれるエッジ位置を、切り替え処理のない１つの画像処理シーケンスにより、正確かつ安定して検出することができるものとなった。
【図面の簡単な説明】
【図１】画像処理システムにおいて行われるエッジ検出の演算フローである。
【図２】本発明の一実施形態に係る画像処理システムを示すブロック図である。
【図３】濃淡画像メモリ６に記録された濃淡画像及び濃度値分布を示した図である。
【図４】微分フィルタ処理を施すことにより作成された微分画像及び微分値分布を示した図である。
【図５】非線形演算処理を施すことにより得られた分布を示した図である。
【図６】近似曲線とのマッチング処理を示した図である。
【符号の説明】
１  ＣＣＤカメラ
２  パソコン本体
３  マウス
４  キーボード
５  Ｉ／Ｆ
６  濃淡画像メモリ
７  表示制御部
８  ＣＲＴ画面
９  Ｉ／Ｆ
１０  Ｉ／Ｆ
１１  ＣＰＵ
１２  プログラムメモリ
１３  ワークメモリ
【図１】
0003728184.tif 000008
【図２】
0003728184.tif 000009
【図３】
0003728184.tif 000010
【図４】
0003728184.tif 000011
【図５】
0003728184.tif 000012
【図６】
0003728184.tif 000013