(57)【特許請求の範囲】
【請求項１】
濃淡画像上に複数画素数分の幅をもって出現する線状体を検出するための方法であって、
濃淡画像上の一方向に沿う検索範囲の幅を指定する数値の入力を受け付けて、入力された数値を前記検索範囲の設定用のパラメータとして登録する設定モードを実行し、
処理対象の濃淡画像に対してエッジ画素を抽出し、抽出されたエッジ画素に順次着目して、着目中のエッジ画素毎に、当該エッジ画素におけるエッジ方向に直交する方向またはこの方向から所定角度回転した方向に沿って、前記登録されたパラメータが表す幅を持つ検索範囲を設定する第１のステップと、この検索範囲内で前記着目中のエッジ画素とは濃度勾配方向が反対方向になると認定できるエッジ画素を検索する第２のステップとを実行し、さらに前記検索範囲で認定条件を満たすエッジ画素が抽出されたとき、抽出されたエッジ画素から前記着目中のエッジ画素に至るまでの所定位置を通り、前記着目中のエッジ画素におけるエッジ方向に平行な線分を設定する第３のステップを実行し、
着目すべきエッジ画素がなくなったとき、設定された線分の連結体の画像を、線状体の検出結果として表示する、
ことを特徴とする画像処理方法。
【請求項２】
請求項１に記載された画像処理方法であって、
前記設定モードでは、検索を開始する画素から検索を終了する画素までの距離に相当する画素数の入力を受け付けて、これを前記検索範囲の設定用のパラメータとして登録し、
前記第１のステップでは、着目中のエッジ画素から検索範囲を設定する方向に沿って前記登録されたパラメータが表す画素数の分だけ離れた画素までの範囲を、前記検索範囲として設定する、画像処理方法。
【請求項３】
請求項１に記載された画像処理方法であって、
前記設定モードでは、検索を開始する画素および検索を終了する画素について、それぞれ着目中のエッジ画素からの距離に相当する画素数の入力を受け付けて、これらを前記検索範囲の設定用のパラメータとして登録し、
前記第１のステップでは、着目中のエッジ画素を基準に検索範囲を設定する方向に前記登録された２つのパラメータを適用して検索を開始する画素および検索を終了する画素を特定することによって、検索範囲を設定する、画像処理方法。
【請求項４】
請求項１〜３のいずれかに記載された画像処理方法であって、
前記設定モードでは、検索範囲の設定用のパラメータとして、さらにエッジ方向に直交する方向に対する回転角度を表す数値の入力を受け付けて登録し、
前記第１のステップでは、着目中のエッジ画素におけるエッジ方向に直交する方向から前記登録されたパラメータによる角度分回転した方向に前記検索範囲を設定する、画像処理方法。
【請求項５】
請求項１に記載された画像処理方法であって、
前記設定モードでは、さらに前記線分の長さを表す数値の入力を受け付けて、その数値を前記線分の設定用パラメータとして登録し、
前記第３のステップでは、登録されたパラメータが表す長さの線分を設定する、画像処理方法。
【請求項６】
請求項１または５に記載された画像処理方法であって、
着目すべきエッジ画素がなくなったとき、設定された各線分の構成画素の中から、所定数以上の線分が重ね合わせられた画素を抽出し、これら抽出された画素と他の画素とが切り分けられた２値画像を生成し、この２値画像を前記線分の連結体の画像として表示する、画像処理方法。
【請求項７】
請求項１または５に記載された画像処理方法であって、
各構成画素の濃度値がそれぞれゼロに初期設定された画像を用意し、
第３のステップでは、前記用意された画像を対象として、設定すべき線分の構成画素の濃度値に着目中のエッジ画素のエッジ強度に応じた数値を加算する処理を実行し、
着目すべきエッジ画素がなくなったとき、前記第３のステップの実行により生成された分の設定結果を表す画像を所定のしきい値により２値化し、得られた２値画像を前記線分の連結体の画像として表示する、画像処理方法。
【請求項８】
請求項１に記載された画像処理方法であって、
前記第２のステップにおいて前記認定条件を満たすエッジ画素が抽出されたとき、このステップに続く第３のステップにより線分を設定した後に、抽出されたエッジ画素を着目済のエッジ画素とする画像処理方法。
【請求項９】
請求項１〜８のいずれかに記載された画像処理方法であって、
前記設定モードでは、前記入力された数値をパラメータとしてモデルの濃淡画像を処理することにより線分の連結体の画像を表示し、この表示に対して確定操作が行われたとき、表示された画像の生成に適用された各パラメータを登録する、画像処理方法。
【請求項１０】
濃淡画像上に複数画素数分の幅をもって出現する線状体を検出するための方法であって、
濃淡画像上の一方向に沿う検索範囲の幅を指定する数値の入力を受け付けて、入力された数値を前記検索範囲の設定用のパラメータとして登録する設定モードを実行し、
処理対象の濃淡画像に対してエッジ画素を抽出し、抽出されたエッジ画素に順次着目して、着目中のエッジ画素毎に、当該エッジ画素におけるエッジ方向に直交する方向またはこの方向から所定角度回転した方向に沿って、前記登録されたパラメータが表す幅を持つ検索範囲を設定する第１のステップと、この検索範囲内で前記着目中のエッジ画素とは濃度勾配方向が反対方向になると認定できるエッジ画素を検索する第２のステップとを実行し、さらに前記検索範囲で認定条件を満たすエッジ画素が抽出されたとき、抽出されたエッジ画素から前記着目中のエッジ画素に至るまでの所定位置を通り、前記着目中のエッジ画素におけるエッジ方向に平行な線分を設定する第３のステップを実行し、
着目すべきエッジ画素がなくなったとき、設定された線分の連結体の位置または大きさを計測し、この計測結果により濃淡画像上の線状体の位置またはこの線状体の大きさを特定する、
ことを特徴とする画像処理方法。
【請求項１１】
濃淡画像上に複数画素分の幅をもって出現する線状体を検出するための装置であって、
前記線状体の検出処理に使用するパラメータを入力するための入力手段と、
前記入力手段から濃淡画像上の一方向に沿う検索範囲の幅を指定する数値の入力を受け付けて、入力された数値を前記検索範囲の設定用のパラメータとして登録する登録手段と、
処理対象の濃淡画像を入力する画像入力手段と、
前記入力された濃淡画像に対する線状体の検出結果を表示するための表示手段と、
前記濃淡画像上のエッジ画素を検出するエッジ画素検出手段と、
所定のエッジ画素に着目して、このエッジ画素におけるエッジ方向に直交する方向またはこの方向から所定角度回転した方向に沿って、前記登録手段に登録されたパラメータが表す幅を持つ検索範囲を設定し、この検索範囲内で、前記着目中のエッジ画素とは濃度勾配方向が反対になると認定できるエッジ画素を検索する検索手段と、
前記検索手段により前記認定条件を満たすエッジ画素が抽出されたとき、抽出された画素から前記着目中のエッジ画素に至るまでの所定位置に前記着目中のエッジ画素におけるエッジ方向に平行な線分を設定する線分設定手段と、
前記エッジ画素検出手段により検出されたエッジ画素を順に着目画素として、前記検索手段および線分設定手段を動作させ、着目すべきエッジ画素がなくなったとき、前記線分設定手段により設定された線分の連結体の画像を前記表示手段に表示させる制御手段とを具備して成る画像処理装置。
【請求項１２】
請求項１１に記載された画像処理装置であって、
前記登録手段は、さらにエッジ方向に直交する方向に対する回転角度を表す数値の入力を受け付けて、その数値を検索範囲の設定用のパラメータとして登録し、
前記検索手段は、着目中のエッジ画素におけるエッジ方向に直交する方向から前記登録手段に登録されたパラメータによる角度分回転した方向に前記検索範囲を設定する、画像処理装置。
【請求項１３】
請求項１１に記載された画像処理装置であって、
前記登録手段は、前記入力手段より線分の長さを表す数値の入力を受け付けて、その数値を前記線分の設定用パラメータとして登録し、
前記線分設定手段は、前記登録手段に登録されたパラメータが表す長さの線分を設定する、画像処理装置。
【請求項１４】
請求項１１または１３に記載された画像処理装置であって、
前記制御手段は、着目すべきエッジ画素がなくなったとき、前記線分設定手段によって設定された各線分の構成画素の中から、所定数以上の線分が重ね合わせられた画素を抽出し、これら抽出された画素と他の画素とが切り分けられた２値画像を生成して前記表示手段に表示する、画像処理装置。
【請求項１５】
請求項１１または１３に記載された画像処理装置であって、
前記線分設定手段は、各構成画素の濃度値がそれぞれゼロに初期設定された画像を対象に、設定すべき線分の構成画素の濃度値に着目中のエッジ画素のエッジ強度に応じた数値を加算することによって、前記線分の連結体の画像を生成し、
前記制御手段は、着目すべきエッジ画素がなくなったとき、前記線分の集合体を示す画像を所定のしきい値により２値化し、得られた２値画像を前記表示手段に表示する、画像処理装置。
【請求項１６】
請求項１１に記載された画像処理装置であって、
前記制御手段は、前記検索手段により前記認定条件を満たすエッジ画素が抽出されたとき、前記線分設定手段による線分の設定処理が終了した後に、前記抽出されたエッジ画素を着目済のエッジ画素とする着目済設定手段を、さらに含んで成る画像処理装置。
【請求項１７】
請求項１１に記載された画像処理装置であって、
前記線分設定手段により設定された線分の連結体の位置または大きさを計測し、この計測結果により前記濃淡画像上の線状体の位置またはこの線状体の大きさを特定する線状体特定手段を、さらに含んで成る画像処理装置。
【請求項１８】
請求項１７に記載された画像処理装置であって、
前記線状体特定手段の特定結果に基づき、線状体の有無を判別する判別手段と、前記判別手段による有無判別結果を出力する出力手段とを、さらに含んで成る画像処理装置。
【請求項１９】
請求項１１〜１３のいずれかに記載された画像処理装置であって、
前記登録手段は、前記画像入力手段から入力されたモデルの濃淡画像に対し、前記入力手段より入力された数値をパラメータとして、前記エッジ画素検出手段、検索手段、線分設定手段、および制御手段に処理を実行させることによって線分の連結体の画像を前記表示手段に表示し、この表示に対して入力手段から確定操作を受け付けたとき、表示された画像の生成に適用された各パラメータを登録する、画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、コンピュータにより濃淡画像データを処理する分野に属するもので、特に、線状のキズ、髪の毛、糸くずなどの線状の対象物（この明細書では、「線状体」と総称する。）を検出するための画像処理方法および画像処理装置に関する。
【０００２】
【従来の技術】
従来、直線状の欠陥を検出するための画像処理として、ラインカメラをその撮像素子の並びに直交する方向に走査しながら順に撮像を行い、毎時得られる１ライン分の画像を処理する方法が存在する。この方法では、１ライン分の画像を２値化して濃度が変動する位置を検出したり、ライン毎の濃度和をとって、１ライン分の濃度和を前後のラインでの濃度和と比較するなどの方法により、各ラインに線状の欠陥が含まれているか否かを判別するようにしている。
【０００３】
また出願人は、近年、濃淡画像上に含まれるエッジ画素について、その画素におけるエッジ方向を示す角度データ（エッジコード）を求め、このエッジコードを用いた画像処理により、直線状の輪郭線（エッジ）を高い確度で検出する画像処理方法を開発した。この方法では、エッジコードの値毎に、その値に対応するエッジ画素の度合いを示すヒストグラムを作成し、このヒストグラム上のピークに対応する角度に対応するエッジ画素にそれぞれ前記ピークに固有のラベルを割り当てる。さらにこのラベル付けにより発生したラベル画像において、同じラベルが連続するエッジ画素の集合を線分に相当するものと認定して、各集合にそれぞれ固有のラベルを割り当て、種々の特徴量を算出したり、線分の統合処理を行うなどした後、抽出条件に応じた線分を特定する処理を実行する（特許文献１参照。）。
【０００４】
【特許文献１】
特開２００２−２３０５６２号公報（段落［００４１］〜［００８８］  図２〜図１３）
【０００５】
特に、上記特許文献１の段落［００８６］および図１３には、抽出条件に応じた線分を特定する際の一手法として、平行な線分の組を抽出する方法が開示されている。さらに、この段落［００８６］には、抽出すべき線分間の距離をきわめて小さく設定すれば、パッケージ上に生じた直線キズのような微小な幅の対象物を抽出できる点が示唆されている。
【０００６】
【発明が解決しようとする課題】
上記した１番目の方法のように、ラインカメラにより得た画像を２値化したり、ライン毎の濃度和を比較することで欠陥を検出する場合には、欠陥以外の背景部分の濃度が均一であり、欠陥部分の濃度が背景部分の濃度と大きく異なることが前提となる。したがって、コントラストの低い画像や、汚れや模様などにより背景の濃度が均一でない画像では、欠陥の検出は困難となる。
【０００７】
これに対し、特許文献１に示した方法によれば、画像のコントラストが低くなったり、背景の濃度のばらつきが大きくなっても、検出を行うことができる。しかしながらこの方法では、同じエッジコードが連続する画素の集合体を検出することを基本とするので、直線状の輪郭線しか検出できず、髪の毛，糸くずのように湾曲する線状体を検出するのは困難である。またクラックのように、細かい凹凸がある線状体では、この凹凸部分でエッジコードが頻繁に変動するため、同様に検出が困難となる。
【０００８】
つぎに、特許文献１の方法によれば、コントラストの低い画像において、線状体のエッジを断片的にしか抽出できなかった場合にも、線分の統合処理により抽出できなかった部分を補完することが可能である。しかしながらこの統合処理では、抽出された各線分の特徴量を用いて、各線分が統合可能であるかどうかを順次確認していく必要があるため、制御負担が大きくなり、コンベアを流れる製品を順に撮像して高速で欠陥検査を行うような用途で使用するのは、困難である。
【０００９】
この発明は、上記問題に着目してなされたもので、直線状の線状体のみならず、湾曲した線状体や、凹凸のある線状体であっても、簡単かつ精度良く検出できるようにすることを、目的とする。
加えて、この発明では、線状体のエッジ抽出精度が悪い画像に対しても、線状体を高速かつ精度良く検出できるようにすることを、目的とする。
【００１０】
またこの発明は、線状体の検出処理に使用されるパラメータを設定する際に、その設定値が適切であるかどうかを簡単に判別できるようにして、最適なパラメータを簡単に設定できるようにすることを、目的とする。
【００１１】
さらにこの発明は、所定数の線状体のモデルの画像を用いて、線状体の検出処理に使用されるパラメータを自動的に設定できるようにすることを目的とする。
【００１２】
【課題を解決するための手段】
この発明では、濃淡画像上に含まれるエッジ画素を抽出し、これらエッジ画素のエッジ方向や濃度勾配方向を用いた画像処理を実行する。
エッジ画素とは、濃淡画像において対象物の輪郭線を構成する画素である。このエッジ画素を抽出するには、濃淡画像上の各画素の濃度勾配の大きさ（この明細書では、「エッジ強度」と呼ぶ。）を求めた上で、このエッジ強度が所定の値よりも大きくなる画素をエッジ画素とするのが望ましい。
【００１３】
濃度勾配方向とは、前記エッジ画素を境にして濃度が変化する方向であり、前記エッジ画素およびその周囲近傍の所定数の画素データを用いた微分処理によって求めることができる。エッジ方向は、前記した特許文献１と同じく、濃度勾配方向を＋９０°または−９０°回転させた方向とする。
【００１４】
つぎに、検出対象の線状体が濃淡画像上に少なくとも数画素分の幅を持って現れるものとすると、この濃淡画像に対するエッジ抽出処理により、前記線状体の長手方向にほぼ平行な２本の輪郭線を抽出することができる。これらの輪郭線は、複数のエッジ画素により構成される。
いま上記の２本の輪郭線のいずれか一方に直交する直線を設定すると、各輪郭線の前記直線との交点に相当するエッジ画素では、それぞれその濃度勾配方向が、他方のエッジ画素の濃度勾配方向に対して、ほぼ反対の方向を向くようになる（以下、前記直線の交点に相当する２つのエッジ画素を「対向関係にあるエッジ画素」という。）。この関係は、エッジ方向の関係に置き換えても同様であり、前記一方の輪郭線上の任意の位置におけるエッジ画素のエッジ方向と、他方の輪郭線上で前記エッジ画素と対向関係にあるエッジ画素のエッジ方向とは、ほぼ反対の方向を向く。
【００１５】
この発明では、上記の原理に基づき、濃淡画像上において、直線状の線状体のみならず、湾曲した形状を有したり、輪郭に不規則な凹凸がある線状体をも検出できるようにしている。この発明にかかる一の画像処理方法では、濃淡画像上の一方向に沿う検索範囲の幅を指定する数値の入力を受け付けて、入力された数値を検索範囲の設定用のパラメータとして登録する設定モードを実行し、処理対象の濃淡画像に対してエッジ画素を抽出し、前記抽出されたエッジ画素に順次着目して、着目中のエッジ画素毎に、当該エッジ画素におけるエッジ方向に直交する方向またはこの方向から所定角度回転した方向に沿って、登録されたパラメータが表す幅を持つ検索範囲を設定する第１のステップと、この検索範囲内で前記着目中のエッジ画素とは濃度勾配方向が反対方向になると認定できるエッジ画素を検索する第２のステップとを実行する。さらに検索範囲で認定条件を満たすエッジ画素が抽出されたときは、抽出されたエッジ画素から前記着目中のエッジ画素に至るまでの所定位置を通り、前記着目中のエッジ画素におけるエッジ方向に平行な線分を設定する。そして着目すべきエッジ画素がなくなったとき、設定された線分の連結体の画像を、線状体の検出結果として表示する。
【００１６】
上記の方法の好ましい一態様では、設定モードにおいて、検索を開始する画素から検索を終了する画素までの距離に相当する画素数の入力を受け付けて、これを検索範囲の設定用のパラメータとして登録する。また第１のステップでは、着目中のエッジ画素から検索範囲を設定する方向に沿って前記登録されたパラメータが表す画素数の分だけ離れた画素までの範囲を、検索範囲として設定する。
【００１７】
他の好ましい態様では、設定モードにおいて、検索を開始する画素および検索を終了する画素について、それぞれ着目中のエッジ画素からの距離に相当する画素数の入力を受け付けて、これらを検索範囲の設定用のパラメータとして登録する。また第１のステップでは、着目中のエッジ画素を基準に検索範囲を設定する方向に前記登録された２つのパラメータを適用して検索を開始する画素および検索を終了する画素を特定することによって、検索範囲を設定する。
【００１８】
他の好ましい態様では、設定モードにおいて、検索範囲の設定用のパラメータとして、さらにエッジ方向に直交する方向に対する回転角度を表す数値の入力を受け付けて登録する。また第１のステップでは、着目中のエッジ画素におけるエッジ方向に直交する方向から登録されたパラメータによる角度分回転した方向に検索範囲を設定する。
【００１９】
この発明による画像処理方法によれば、設定モードにおいて、ユーザが検出対象の線状体の幅に応じた数値を入力すると、この数値が検索範囲の設定用パラメータとして登録される。また処理対象の濃淡画像に対する処理では、画像中の各エッジ画素に順に着目して、それぞれ当該エッジ画素におけるエッジ方向に直交する方向またはこの方向から所定角度回転した方向に沿って、登録されたパラメータが表す幅を持つ検索範囲を設定し、この検索範囲内で着目中のエッジ画素とは濃度勾配方向が反対方向になると認定できるエッジ画素を検索する。したがって、着目中のエッジ画素が入力された数値に対応する幅を持つ線状体の輪郭線の構成画素である場合には、検索範囲から着目中のエッジ画素とは濃度勾配方向が反対方向になると認定できるエッジ画素を抽出することができる。
また、線幅の変化が大きく、前記２本の輪郭線が平行に近いとは言えない状態になる線状体や、曲率の大きい線状体では、着目中のエッジ画素の濃度勾配方向に対し、必ずしも対向関係にあるエッジ画素の濃度勾配方向が反対の方向を向くとは限らず、前記対向関係にあるエッジ画素の近傍に位置するエッジ画素の濃度勾配方向が反対の方向を向くが、処理対象の線状体の状態によって検索範囲を設定する方向を調整すれば、前記認定条件を満たすエッジ画素を抽出することが可能となる。
【００２１】
濃度勾配方向が反対方向かどうかの認定は、着目中の画素と検索対象の画素との間での濃度勾配方向の差が、１８０°に対して所定の許容範囲にあるかどうかを判別する処理により行うことができる。この判別処理における許容範囲は、前述の基準の方向に対する角度の調整と同様に、検出したい線状体の状態に応じて任意に設定することができる。
たとえば、ほぼ直線状の線状体だけを検出したい場合には、前記の許容範囲は小さく設定した方が望ましい。これに対し、曲率を有する線状体や、輪郭線に不規則な凹凸が生じたり、前記２本の輪郭線の幅が変化しているような線状体を検出対象とする場合には、前記許容範囲は大きくする方が望ましい。
【００２２】
また前記したように、エッジ方向は濃度勾配方向を基準にして表されるものであるから、前記検索処理では、着目中の画素に対し、エッジ方向が反対になると認定できる画素を検索するようにしてもよい。
【００２３】
線分の設定処理では、前記検索処理により抽出されたエッジ画素から着目中の画素に至るまでの所定位置を通り、着目中のエッジ画素のエッジ方向に平行な線分を設定する。たとえば、この線分は、前記着目中のエッジ画素におけるエッジ方向と同じ方向に伸ばすことができる。
なお、線分の設定処理では、着目中のエッジ画素のエッジ方向とは反対の方向に沿って伸びる線分を設定することもできる。またエッジ方向およびその反対の方向の両方に伸びる線分を設定することもできる。
【００２４】
この発明の画像処理方法によれば、上記の検索処理によって、線状体の長手方向にほぼ平行な２本の輪郭線を構成するエッジ画素の中で、濃度勾配方向が約１８０°異なるエッジ画素の組が複数抽出される。さらに線分の設定処理により、前記エッジ画素の組毎に、これらエッジ画素におけるエッジ方向に平行な線分が設定されることになる。これら設定された線分が重ね合わせられたり、連結されることによって、線状体の位置、大きさ、傾きなどを精度良く反映した画像が生成されるようになる。したがって、この画像を表示することにより、線状体の検出結果をわかりやすく示すことができる。
【００２５】
またこの方法によれば、背景の濃度分布にばらつきがある場合にも、前記検索処理によって線状体の輪郭を構成するエッジ画素の中で、前記エッジ画素の組を高確度で特定することができるから、背景部分のノイズによって線状体の検出精度が低下する虞がない。また画像のコントラストが低く、画像上の線状体が分断されて出現するような場合でも、前記線分の設定処理において設定する線分の長さを調整することにより、線分を連結させて、線状体の分断された部分を補完することができ、コントラストに左右されずに線状体を安定して検出することができる。
【００２６】
なお、線分の設定処理では、前記検索された画素から着目中の画素に至るまでの任意の位置（たとえば、検索された画素と着目中の画素との中点でも良く、またそれぞれの画素位置でも良い。）に線分を設定することが可能であり、また前記画素間の複数の位置にそれぞれ線分を設定することもできる。
【００２９】
上記画像処理方法の他の好ましい態様では、設定モードにおいて、さらに線分の長さを表す数値の入力を受け付けて、その数値を線分の設定用パラメータとして登録する。また第３のステップでは、登録されたパラメータが表す長さの線分を設定する。
【００３０】
上記の態様によれば、検出対象の線状体の形状に応じて線分の長さを調整することによって、各線分の連結体を線状体の位置や輪郭形状を精度良く反映したものにすることができる。
【００３１】
さらに上記画像処理方法の他の態様では、着目すべきエッジ画素がなくなったとき、設定された各線分の構成画素の中から、所定数以上の線分が重ね合わせられた画素を抽出し、これら抽出された画素と他の画素とが切り分けられた２値画像を生成し、この２値画像を前記線分の連結体の画像として表示する。このようにすれば、多数の線分が重なり合う画素が線分の構成画素として残される一方で、ノイズによる線分など、重なり度合いの小さい線分の画像が消去される。よって線分の重なる数に対する２値化しきい値を調整することによって、線分の連結体を線分の位置や輪郭形状を精度良く反映したものにすることができる。
【００３２】
より好ましい態様では、各構成画素の濃度値がそれぞれゼロに初期設定された画像を用意しておき、第３のステップにおいて、用意された画像を対象として、設定すべき線分の構成画素の濃度値に着目中のエッジ画素のエッジ強度に応じた数値を加算する処理を実行する。そして、着目すべきエッジ画素がなくなったとき、前記第３のステップの実行により生成された線分の設定結果を表す画像を所定のしきい値により２値化し、得られた２値画像を線状体の連結体の画像として表示する。
【００３４】
上記の態様によれば、線分の重なり度合いの大きい部分や、前記エッジ強度による重みの大きい部分のみを抽出して表示することが可能となるから、ノイズ成分を表示対象から除去することができ、線状体の検出結果をより明瞭に示すことができる。
【００３５】
さらに上記画像処理方法の他の態様では、線分の設定処理において、設定すべき線分の長さまたは幅に、着目中のエッジ画素のエッジ強度を反映させるようにしている。たとえば、着目中のエッジ画素のエッジ強度が大きくなるほど、線分の幅を太くしたり、線分の長さを長くすることができる。
この態様によれば、検出対象である線状体に関わる線分を他のノイズなどに起因する線分よりも強調して表示することができるから、線状体の検出結果をより明瞭に示すことができる。
【００３６】
さらに上記画像処理方法の他の好ましい態様では、第２のステップにおいて前記認定条件を満たすエッジ画素が抽出されたとき、このステップに続く第３のステップにより線分を設定した後に、抽出されたエッジ画素を着目済のエッジ画素とするようにしている。
着目済のエッジ画素とは、前記検索処理や線分の設定処理の対象として既に処理されたエッジ画素という意味である。前記抽出された画素を着目済のエッジ画素とする処理としては、この画素のエッジ強度を０とするなど、濃度勾配を示すデータを改変する処理を行うことができる。または、濃度勾配を維持したまま、前記エッジ画素に処理済であることを示すフラグを対応づけてもよい。
【００３７】
上記の態様によれば、検出対象の線状体にかかる２本の輪郭線において、対向関係にあり、かつ濃度勾配方向が約１８０°異なるエッジ画素の組に対する検索処理や線分の設定処理を、１回で済ませることができるから、処理を高速化することができる。なお、このようにする場合、線分の設定処理において、着目中のエッジ画素のエッジ方向およびその反対の方向の両方向に線分を伸ばすようにすれば、抽出されたすべてのエッジ画素を順次処理する場合と同様の状態に線分を設定することができる。
【００３８】
上記の画像処理方法のさらに好ましい態様では、設定モードにおいて、入力された数値をパラメータとしてモデルの濃淡画像を処理することにより線分の連結体の画像を表示し、この表示に対して確定操作が行われたとき、表示された画像の生成に適用された各パラメータを登録する。このようにすれば、本格的な検出処理を開始するのに先立ち、モデルの画像を用いてパラメータとして使用する数値を種々に変更しながら検出処理を実行し、表示された画像から入力した数値がパラメータとして適切であるかどうかを判断することができ、検出処理に適したパラメータを簡単かつ精度良く設定することができる。
【００３９】
つぎに、この発明にかかる他の画像処理方法では、上記の設定モードを実行した後に、処理対象の濃淡画像に対してエッジ画素を抽出し、抽出されたエッジ画素に順次着目して、着目中のエッジ画素毎に、当該エッジ画素におけるエッジ方向に直交する方向またはこの方向から所定角度回転した方向に沿って、登録されたパラメータが表す幅を持つ検索範囲を設定する第１のステップと、この検索範囲内で着目中のエッジ画素とは濃度勾配方向が反対方向になると認定できるエッジ画素を検索する第２のステップとを実行する。さらに、検索範囲で認定条件を満たすエッジ画素が抽出されたときは、抽出されたエッジ画素から着目中のエッジ画素に至るまでの所定位置を通り、前記着目中のエッジ画素におけるエッジ方向に平行な線分を設定する第３のステップを実行する。さらに、着目すべきエッジ画素がなくなったとき、設定された線分の連結体の位置または大きさを計測し、この計測結果により濃淡画像上の線状体の位置またはこの線状体の大きさを特定する。
【００４０】
線状体の位置としては、たとえば前記線分の連結体における重心位置を求めることができる。また線状体の大きさとしては、前記線分の連結体の面積，長さ，周囲長などを求めることができる。
【００４５】
つぎに、この発明にかかる画像処理装置は、線状体の検出処理に使用するパラメータを入力するための入力手段と、入力手段から濃淡画像上の一方向に沿う検索範囲の幅を指定する数値の入力を受け付けて、入力された数値を検索範囲の設定用のパラメータとして登録する登録手段と、処理対象の濃淡画像を入力する画像入力手段と、前記入力された濃淡画像に対する線状体の検出結果を表示するための表示手段と、前記濃淡画像上のエッジ画素を検出するエッジ画素検出手段と、所定のエッジ画素に着目して、このエッジ画素におけるエッジ方向に直交する方向またはこの方向から所定角度回転した方向に沿って、登録手段に登録されたパラメータが表す幅を持つ検索範囲を設定し、この検索範囲内で、前記着目中のエッジ画素とは濃度勾配方向が反対になると認定できるエッジ画素を検索する検索手段と、前記検索手段により前記認定条件を満たすエッジ画素が抽出されたとき、抽出された画素から前記着目中のエッジ画素に至るまでの所定位置に前記着目中のエッジ画素のエッジ方向に平行な線分を設定する線分設定手段と、前記エッジ画素検出手段により検出されたエッジ画素を順に着目画素として、前記検索手段および線分設定手段を動作させ、着目すべきエッジ画素がなくなったとき、前記線分設定手段により設定された線分の連結体の画像を前記表示手段に表示させる制御手段とを具備する。
【００４６】
前記画像入力手段は、カメラ，スキャナなどの画像生成手段に接続され、これらの手段により生成された濃淡画像を取り込む手段であって、インターフェース回路やＡ／Ｄ変換回路などにより構成される。ただし画像入力手段の構成はこれに限らず、たとえば通信により伝送された画像を受け付ける回路、所定の記憶媒体に保存された画像を読み取る読取り装置などによって構成してもよい。
【００４７】
表示手段は、ＣＲＴ，ＬＣＤなどの画像表示装置やこの装置に対応するインターフェース回路などにより構成することができる。なお、この表示手段には、線状体の検出結果を表示する機能のみならず、前記画像入力手段により入力された画像や、エッジ画素検出手段による検出結果などを表示する機能も付与することができる。
【００４８】
エッジ画素検出手段，検索手段，線分設定手段，制御手段の各手段は、それぞれその手段による処理を実行するためのソフトウェアが組み込まれたコンピュータにより実現することができる。また各手段をＡＳＩＣ（特定用途向けＩＣ）などによる専用回路として構成し、これら専用回路の連携動作をコンピュータにより制御することも可能である。また一部の手段（たとえばエッジ画素検出手段）を専用回路とし、残りの手段をコンピュータおよびソフトウェアにより実現するとともに、このコンピュータに前記専用回路の動作を制御する機能を組み込むようにしてもよい。
【００４９】
加えて、この画像処理装置には、前記画像入力手段により入力された画像、エッジ検出手段による検出処理により生成されるエッジ画像、線分設定手段による線分の設定結果を示す処理結果画像などを、個別に格納するためのメモリを具備させるのが望ましい。
【００５０】
上記の画像処理装置によれば、入力手段が検索範囲の幅を指定する数値の入力を受け付け、登録手段がその数値を登録することによって、前記した設定モードが実行される。この後は、画像入力手段より入力された濃淡画像に対し、エッジ検出処理が行われ、検出された各エッジ画素に順に着目しつつ、前記した第１〜第３のステップが実行されて、線状体の位置，長さ，形状などを反映した線分の連結体の画像が生成される。よって、表示手段に表示された画像により、線状体の形状や位置を確認することが可能となる。
【００５１】
上記の入力手段は、キーボード，マウス，コンソールなどの入力装置からパラメータの設定値を取り込むためのインターフェース回路として構成することができる。さらに、この入力手段には、必要に応じて、前記表示手段などに設定値入力用のユーザーインターフェースを展開するコンピュータおよびソフトウェアを付加することができる。
【００５２】
上記画像処理装置の好ましい態様では、登録手段は、さらにエッジ方向に直交する方向に対する回転角度を表す数値の入力を受け付けて、その数値を検索範囲の設定用のパラメータとして登録する。また検索手段は、着目中のエッジ画素におけるエッジ方向に直交する方向から登録手段に登録されたパラメータによる角度分回転した方向に検索範囲を設定する。
他の好ましい態様では、登録手段は、入力手段より線分の長さを表す数値の入力を受け付けて、その数値を線分の設定用パラメータとして登録する。また線分設定手段は、登録手段に登録されたパラメータが表す長さの線分を設定する。
【００５３】
上記画像処理装置の他の態様では、前記制御手段は、着目すべきエッジ画素がなくなったとき、前記線分設定手段によって設定された各線分の構成画素の中から、所定数以上の線分が重ね合わせられた画素を抽出し、これら抽出された画素を他の画素から切り分けた２値画像を生成して前記表示手段に表示するようにしている。
【００５４】
上記の態様によれば、所定数（仮にＮとする。）以上の線分が重なり合う部分を白（黒）とし、全く線分が設定されていない部分や、線分の重なり度合いが前記Ｎより小さい部分を黒（白）とする２値画像を生成して表示することができる。したがって、多数の線分が重なり合う部分にかかる線分の画像が残る一方で、ノイズによる線分など、重なり度合いの小さい線分の画像が消去される。したがって線分の重なり度合いに応じて前記Ｎの値を調整することにより、線状体の位置や輪郭形状を精度良く反映した画像を示すことができる。
【００５５】
上記画像処理装置の他の態様では、線分設定手段は、各構成画素の濃度値がそれぞれゼロに初期設定された画像を対象に、設定すべき線分の構成画素の濃度値に着目中のエッジ画素のエッジ強度に応じた数値を加算することによって、前記線分の連結体の画像を生成するように設定される。また制御手段は、着目すべきエッジ画素がなくなったとき、前記線分の設定処理結果を示す画像を所定のしきい値により２値化し、得られた２値画像を前記表示手段に表示するように設定される。
このような構成によれば、背景の濃度むらが大きい画像を処理する場合にも、この背景部分の濃度勾配によるノイズの影響を受けにくくなり、線状体の形状を反映した画像を示すことができる。
【００５６】
上記画像処理装置の他の態様では、前記制御手段は、前記検索手段により前記認定条件を満たすエッジ画素が抽出されたとき、前記線分設定手段による線分の設定処理が終了した後に、前記抽出されたエッジ画素を着目済のエッジ画素とする着目済設定手段を含んでいる。この着目済設定手段は、たとえば、抽出されたエッジ画素のデータを改変して（エッジ強度を０にするなど）、エッジ画素に相当しないものとする。または画素のデータ自体は維持したまま、そのデータに、既に処理が行われていることを示すフラグを付ける手段として設定することもできる。
【００５７】
上記の着目済設定手段によれば、２つの輪郭線の間で対向関係にあり、かつ濃度勾配方向が約１８０°異なるエッジ画素の組に対し、検索処理や線分の設定処理を１回行うだけで良くなり、線状体の検出処理をより高速で行うことができる。
【００５８】
さらに上記画像処理装置には、線分設定手段により設定された線分の連結体の位置または大きさを計測し、この計測結果により前記濃淡画像上の線状体の位置またはこの線状体の大きさを特定する線状体特定手段を含ませることができる。このような手段によれば、線状体の具体的な特徴を数値化して示すことができ、利便性をより向上させることができる。
なお、線状体特定手段による特定結果は、前記線分の連結体の画像とともに前記表示手段に表示させることができる。
【００５９】
より好ましい画像処理装置では、前記線状体特定手段による特定結果に基づき線状体の有無を判別する判別手段と、この有無判別結果を出力する出力手段とを具備する。なお、判別手段は、判別処理のためのアルゴリズムが設定されたコンピュータ、または前記検出結果を所定のしきい値と比較するコンパレータなどによって実現することができる。出力手段は、所定の外部機器に対応するインターフェース回路などにより構成することができる。
【００６０】
前記出力手段による出力の対象を、ランプ，ブザーのような装置とする場合には、「線状体有り」という判別結果を得たときに、これらの装置を作動させるように設定することにより、線状の欠陥を対象とする検査に好適な画像処理装置を提供することができる。また有無判別結果の出力の対象を、プログラマブルコントローラ，パーソナルコンピュータのような制御機能を具備する装置とすれば、これらの装置と画像処理装置とにより、線状の欠陥を検出して、その欠陥を除去するなどの処理を行うシステムを構築することができる。
【００６１】
さらに上記画像処理装置の他の好ましい態様では、前記登録手段は、画像入力手段から入力されたモデルの濃淡画像に対し、前記入力手段より入力された数値をパラメータとして、エッジ画素検出手段、検索手段、線分設定手段、および制御手段に処理を実行させることによって線分の連結体の画像を表示手段に表示する。そして、この表示に対して入力手段から確定操作を受け付けたとき、表示された画像の生成に適用された各パラメータを登録する。
【００６２】
上記の態様によれば、ユーザは、パラメータの値を自由に変更しながらモデルの濃淡画像に対する処理を実行し、適切な結果を示す画像が表示されたことを確認して確定操作を行うことにより、パラメータの最適値を決定することができる。また検出対象とする線状体の特徴が変わる都度、パラメータの値を変更するなど、柔軟な対応をとることができ、利便性を大いに高めることができる。
【００６５】
上記構成の画像処理装置は、所定の対象物に発生した線状の欠陥を検出するための検査装置として構成することができる。このような検査装置によれば、直線状の欠陥のみならず、湾曲した線状の欠陥や、輪郭線に不規則な凹凸のある線状の欠陥についても、その欠陥の位置や形状を精度良く検出することが可能となり、検出精度を大幅に高めることができる。
【００６６】
【発明の実施の形態】
図１は、この発明の一実施例にかかる画像処理装置の構成を示す。
この画像処理装置１は、工場の検査ラインの近傍位置に配備され、前記検査ラインを搬送される製品を順に撮像して、この画像に線状の欠陥や異物の画像が含まれていないかどうかの検査を行うためのもので、周辺機器として、カメラ２，モニタ３，外部機器４などが接続される。なお、外部機器４は、データ入力用のコンソール，不良品の発生を報知するための警報ランプなど、複数の機器を含むものである。このほか、必要に応じて、プログラマブルコントローラ，パーソナルコンピュータなどを外部機器４として接続することもできる。
【００６７】
前記画像処理装置１は、ＣＰＵ５を制御主体とし、エッジ強度抽出部６，エッジコード抽出部７，画像メモリ８，フラッシュメモリ９，ワークメモリ１０，グラフィックメモリ１１のほか、前記カメラ２，モニタ３，外部機器４のそれぞれに対するインターフェース回路１２，１３，１４（以下、「カメラインターフェース１２」，「モニタインターフェース１３」，「外部機器用インターフェース１４」という。図１では、「インターフェース」を「Ｉ／Ｆ」と示す。）などを含む。
【００６８】
フラッシュメモリ９には、ＣＰＵ５の処理手順を示すプログラムや、各種パラメータのデフォルト値などが格納される。またこのフラッシュメモリ９には、適宜、パラメータの設定値など、ユーザーにより設定されたデータが書き込まれる。
【００６９】
ワークメモリ１０は、ＣＰＵ５が一連の制御を行う間に発生する作業用データの読み書きに用いられる。グラフィックメモリ１１には、画像上に、後記する計測領域２２を示すウィンドウやパラメータの設定画面，カーソルなどを表示するのに必要なデータが格納される。
【００７０】
画像メモリ８は、複数フレーム分の画像を個別に格納可能な容量を具備する。この画像メモリ８は、前記エッジ強度抽出部６およびエッジコード抽出部７からそれぞれ出力される画像データを格納するほか、ＣＰＵバス１５を介して前記画像データをＣＰＵ５に提供する。さらに、ＣＰＵ５は、後記する処理結果画像にかかる画像データを画像メモリ８の所定のメモリ領域内に書き込むように設定される。
【００７１】
前記カメラ２は、アナログ量の静止画像信号を出力するタイプのものである。カメラインターフェース１２には、このカメラ２に対する入力ポートのほか、この入力ポートから取り込んだアナログ画像信号をディジタル変換するＡ／Ｄ変換回路などが含まれる。ディジタル変換後の濃淡画像データは、エッジ強度抽出部６およびエッジコード抽出部７に並列で与えられるほか、モニタインターフェース１３に出力される。
【００７２】
モニタインターフェース１３は、前記モニタ３に対する出力ポートのほかに、Ｄ／Ａ変換回路，画像合成回路，切替回路などを含むもので、画像メモリ８またはグラフィックメモリ１１から出力された画像、またはカメラインターフェース１２からの濃淡画像を、単一で、または２以上の画像を合成してモニタ３に出力する。このモニタインターフェース１３における出力画像の切替えは、コンソールなどからの切替操作を受け付けたＣＰＵ５により制御される。
【００７３】
前記エッジ強度抽出部６およびエッジコード抽出部７は、シフトレジスタ，論理回路，ルックアップテーブルなどを含むチップ部品である。エッジ強度抽出部６は、前記カメラインターフェース１２から入力された濃淡画像の各画素における濃度勾配の大きさ（エッジ強度）を求めるためのものであり、エッジコード抽出部７は、同じ濃淡画像から、各画素におけるエッジの方向を示す角度データ（以下、「エッジコード」という。）を求めるためのものである。
【００７４】
エッジ強度は、着目するエッジ画素におけるｘ，ｙ各軸方向の濃度勾配ベクトル（濃度勾配の方向および大きさを示すベクトル）の合成ベクトルの大きさに相当する。なお、この実施例の濃淡画像データは、白レベル側を高い濃度値により表しており、濃度勾配方向は、濃度の高い側から低い側に向かう方向として設定される。エッジコードは、前記濃度勾配方向を＋９０°または−９０°回転させた方向に相当し、ｘ軸の正方向に沿う方向を基準にした角度として表される。
【００７５】
なお、エッジ強度，エッジコードの詳細な算出方法については、前出の特許文献１を参照されたい。この実施例のエッジ強度抽出部６，エッジコード抽出部７には、この算出式に基づき、所定大きさのマスク領域内の濃度分布に基づいて前記マスクの中央位置の画素におけるエッジ強度やエッジコードを求めるためのルックアップテーブルが設定されている。抽出処理においては、カメラインターフェース１２から出力される各画素の濃度データを順に取り込みながら前記ルックアップテーブルを参照することによって、各画素におけるエッジ強度やエッジ強度が、高速で抽出される。
【００７６】
エッジ強度抽出部６は、各画素の並びに応じてそれぞれのエッジ強度を配列した画像（以下、「エッジ強度画像」という。）を生成し、前記画像メモリ８に出力する。エッジコード抽出部７も、同様に、抽出したエッジコードを画素の並びに応じて配列した画像（以下、「エッジコード画像」という。）を生成し、前記画像メモリ８に出力する。
【００７７】
ＣＰＵ５は、画像メモリ８に格納されたエッジ強度画像およびエッジコード画像を用いて後記する画像処理を実行し、欠陥の検出結果を示す処理結果画像を生成する。またＣＰＵ５は、この処理結果画像に所定の計測処理を実行して、欠陥の有無などを判別し、その判別結果を外部機器用インターフェース１４を介して出力する。
【００７８】
なお、この実施例の画像処理装置１では、画像上に数画素分の幅をもって出現する線状の欠陥を検出することを前提とする。したがって、検出したい欠陥が数画素分の幅を持つ大きさに撮像されるように、前記カメラ２の設置位置や倍率などを調整しておく必要がある。
【００７９】
図２は、上記画像処理装置１による欠陥検出処理の原理を示す。
図２（１）は、処理対象の濃淡画像を示すもので、この画像には、欠陥に相当する線状体の画像２０（以下、単に「線状体２０」という。）が含まれている。図２（２）は、前記濃淡画像上の点線で囲んだ領域２１内の画像にエッジ抽出処理を行って得た結果を拡大して示す、なお、この図２（１）（２）では、線状体２０内の濃度が、背景よりも低くなる場合を示している。
【００８０】
図２（２）のエッジ画像には、前記線状体２０の長手方向の輪郭線に相当する２本のエッジＥ１，Ｅ２が現れている。この線状体２０は、図２（１）に示すように、湾曲した形状を具備するが、その線幅が大きく変わるものでなければ、前記２本のエッジＥ１，Ｅ２は、長手方向にわたってほぼ平行な状態で変化する、と考えることができる。したがって、図２（２）に示すように、一方のエッジＥ１上の任意の点Ｐ１からその点Ｐ１でのエッジの方向に直交する方向Ｂに沿って、他方のエッジＥ２上の対応点Ｐ２を抽出した場合、これら点Ｐ１，Ｐ２におけるエッジは、ほぼ平行である、と考えることができる。
【００８１】
図２の例では、線状体２０の内部の濃度は、背景の濃度よりも低いから、前記点Ｐ１での濃度勾配方向は、前記点Ｐ２に向かう方向Ｂとなる。一方、点Ｐ２における濃度勾配方向は、Ｂとは反対方向になる。このように、２本のエッジＥ１，Ｅ２が平行であれば、これらエッジＥ１，Ｅ２間で対向関係にある２点Ｐ１，Ｐ２の濃度勾配方向は、他方の点の濃度勾配方向に反転する方向を向くことになる。
【００８２】
ところで、前記したように、エッジコードは、濃度勾配方向に直交する方向を示すものであるから、前記点Ｐ１，Ｐ２間の濃度勾配方向の関係は、エッジコードの関係に置き換えることができる。図中、Ａ１は、点Ｐ１のエッジコードにより規定される方向を示すベクトル（以下、「エッジコードベクトル」という。）、Ａ２は、点Ｐ２のエッジコードにより規定されるエッジコードベクトルであり、これらのベクトルＡ１，Ａ２は、他方に対して反対の方向を向く。
【００８３】
なお、図示例の線状体が、背景よりも高い濃度を具備するものであれば、前記点Ｐ１から点Ｐ２を検索する方向Ｂ（以下、「検索方向Ｂ」という。）は、点Ｐ１における濃度勾配方向に反転する方向となる。また各点Ｐ１，Ｐ２におけるエッジコードベクトルＡ１，Ａ２も、それぞれ反対の方向に設定される。
【００８４】
ここで、この実施例の欠陥検出処理を、前記図２（２）を用いて説明する。
この実施例では、画像上の各エッジ画素に順に着目しつつ、着目中のエッジ画素Ｐ１におけるエッジコードに直交する方向（濃度勾配方向またはその反対方向）に沿って、前記エッジ画素から検出対象とする線状体の幅長さＷに相当する範囲において、着目中のエッジ画素Ｐ１とはエッジコードが反転するエッジ画素Ｐ２を検索するようにしている。さらに、この検索条件にあてはまるエッジ画素が抽出された場合には、抽出されたエッジ画素Ｐ２と着目中のエッジ画素Ｐ１との中間点Ｑを起点として、前記着目中のエッジ画素にかかるエッジコードベクトルＡ１に平行な方向Ｃに、所定の長さＬの線分を設定するようにしている。
【００８５】
なお、前記の線分の設定処理では、画像メモリ８内の処理結果画像用のメモリ領域において、設定すべき線分の各構成画素の画素値（初期値は０）に、それぞれ着目中のエッジ画素の持つエッジ強度を加算するようにしている。
この線分の設定処理が、線状体２０のエッジＥ１，Ｅ２を構成する各エッジ画素について行われると、近傍に位置する複数のエッジ画素にかかる線分が重ね合わせられ、また連結されるようになる。ここで各線分の傾きは、対応するエッジ画素におけるエッジ方向に平行になるから、線分の長さが適切であれば、前記線分の重なりや連結による画像（以下、「集合画像」という。）は、前記線状体の傾きや湾曲状態を反映したものとなる。
【００８６】
また、前記集合画像の各構成画素には、複数の線分の重ね合わせによって、これら線分に対応するエッジ画素のエッジ強度の総和分の数値が設定されるので、線状体以外の部分からの切り分けを容易に行うことができる。この実施例では、入力画像上のすべてのエッジ画素に対する処理が終了した時点で、前記処理結果画像を所定のしきい値により２値化し、この２値画像を用いて欠陥の有無判定のための計測を行ったり、前記２値画像をモニタ３に表示するようにしている。
【００８７】
なお、対応点の検索処理においては、着目画素に対するエッジコードが１８０°異なる画素のみならず、１８０°異なる方向から所定の誤差範囲内のエッジコードを持つ画素を抽出するのが望ましい。特に、線幅が変化したり、エッジに不規則な凹凸が発生しているような線状体を検出対象とする場合には、前記の誤差を、ある程度大きく設定するのが望ましい。
このような検索処理によれば、処理対象の濃淡画像に含まれるすべてのエッジ画素の中から、線状体のエッジの構成点となる画素を精度良く絞り込むことができる。
【００８８】
つぎに、図３および図４を用いて、上記した原理に基づく線状の欠陥検査を行うために、前記対応点の検索や線分の設定のためのパラメータを設定する処理について、説明する。
図３は、処理対象の濃淡画像の表示画面であり、この図３中の２２は、ユーザーにより設定された計測領域である。なお、この図３の画像は、図示の都合上、２値画像として表すが、実際は、濃度分布を持つ画像である。（以下、この濃淡画像を「処理対象画像」と呼ぶ。）。図４（ａ）（ｂ）（ｃ）は、前記計測領域２２内における処理結果画像の表示画面であり、画面の余白領域には、使用されたパラメータや、そのパラメータを確定するための確定ボタン２４などが表示されている。なお、この図４の処理結果画像は、図示の都合上、白黒を反転した状態で示している。
【００８９】
図４において、「直線幅」とは、前記対応点の検索処理における検索範囲Ｗを示すパラメータであり、「直線長」とは、前記ベクトルＣに基づき設定する線分の長さＬを示すパラメータである。また「下限値」とは、前記処理結果画像を２値化する際の２値化しきい値である。
【００９０】
図３に示す処理対象画像では、欠陥に対応する線状体２０のほか、その周囲に位置する物体の輪郭部分の画像２３（以下、「輪郭画像２３」という。）などが現れている。
図４（ａ）の処理結果画像では、前記線状体２０および輪郭画像２３について、それぞれ対応する線分の集合画像２０ａ，２３ａが出現している。いずれの集合画像２０ａ，２３ａも、原画像の形状を精度良く反映したものとなっている。
【００９１】
図４（ｂ）の処理結果画像は、前記図４（ａ）の例よりも、直線幅Ｗを小さくして再検出処理を行った結果を示すもので、線幅の太い輪郭画像２３に対応する集合画像２３ａは消失し、線幅の細い線状体２０に対応する集合画像２０ａのみが現れている。
【００９２】
図４（ｃ）の処理結果画像は、前記図４（ａ）の例よりも、直線長Ｌを大きくして再検出処理を行った結果を示すものである。この画像でも、図４（ａ）と同様に、線状体２０および輪郭画像２３に対応する集合画像２０ａ，２３ａが出現しているが、直線長Ｌの設定値が大きすぎるため、原画像の持つ本来の形状から逸脱したノイズ成分が発生している。
【００９３】
このように直線幅Ｗ，直線長Ｌの各設定値は、線状体の検出精度を決める上での重要なパラメータとなる。また図４（ａ）〜（ｃ）では固定しているが、処理結果画像の２値化しきい値である下限値を変更することによって、前記対応点の検索処理により誤抽出されたエッジ画素により出現するノイズの度合いを調整することができる。（以下、この下限値を「下限値Ｓ」と示す。）
【００９４】
この実施例の画像処理では、本格的な検査に入る前の設定モードとして、図４に示したように、直線幅Ｗ，直線長Ｌ，および下限値Ｓの各パラメータの設定値を変更しながら、その設定値に応じた処理結果画像を生成し、これをモニタ３に表示するようにしている。ユーザーは、モニタ３の表示を見ながら、各パラメータの値を調整する処理を行った後、前記確定ボタン２４の操作によって設定値を確定する。この確定操作により、各パラメータの設定値は前記フラッシュメモリ９内に保存され、これらの設定値に基づく欠陥検査が実行されることになる。なお、設定モードでは、つぎの図５のＳＴ１〜１３を実行することによって、表示用の処理結果画像を生成するので、ここではその詳細な手順の説明は省略する。
【００９５】
図５は、上記画像処理装置１における検査時の処理手順を示す。
この検査手順は、前記カメラ２からのアナログ画像信号がカメラインターフェース１２に取り込まれてディジタル変換され、さらにエッジ強度抽出部６，エッジコード抽出部７による抽出処理が終了した時点で開始される。なお、以下の説明および図５では、各ステップを「ＳＴ」として示す。
【００９６】
まずＳＴ１，２において、着目画素の座標位置（ｘ，ｙ）を前記計測領域２２の左上端点の位置（ｘ１，ｙ１）に設定した後、この着目画素が計測領域の右下端点の位置（ｘ２，ｙ２）に到達するまで、以下の処理を繰り返す。
【００９７】
ＳＴ３では、前記エッジ強度画像を用いて、着目画素のエッジ強度Ｅｉ（ｘ，ｙ）をチェックする。ここでエッジ強度Ｅｉ（ｘ，ｙ）が所定のしきい値Ｅｈより大きい場合には、つぎのＳＴ４に進むが、エッジ強度Ｅｉ（ｘ，ｙ）がしきい値Ｅｈ以下である場合には、ＳＴ４以下の処理をスキップしてＳＴ９に進むことにより、着目画素を変更する。
【００９８】
ＳＴ４では、エッジコード画像を用いて、着目画素のエッジコードＥｃ（ｘ，ｙ）を読み出し、このエッジコードＥｃ（ｘ，ｙ）を基準にして、検索方向を設定する。なお、この実施例では、ｘ軸の正方向に沿う方向を０°として、エッジコードや濃度勾配方向を表すようにしており、背景よりも濃度の低い線状体を対象とする場合には、エッジコードＥｃ（ｘ，ｙ）に９０度を加算した方向を検索方向とする。反対に、背景よりも濃度の高い線状体を対象とする場合には、前記エッジコードＥｃ（ｘ，ｙ）から９０度を減算した方向を検索方向とする。
【００９９】
検索方向が決定すると、ＳＴ５では、再び、エッジコード画像を用いて、着目画素より検索方向に向けて１画素ずつ走査し、各走査位置におけるエッジコードを着目画素のエッジコードＥｃ（ｘ，ｙ）と比較する。ここで両エッジコード間の差分値が１８０°に対して前記誤差の範囲内の数値であれば、現在の走査位置が着目画素の対応点であるとみなし、ＳＴ６の判定を「ＹＥＳ」にする。
【０１００】
走査位置のエッジコードが上記の条件にあてはまらない場合には、ＳＴ６が「ＮＯ」となり、前記直線幅Ｗ分のサーチが行われたかどうかをチェックする。この判定が「ＮＯ」であれば、前記検索方向に沿って１画素分の走査を行い、再びＳＴ６の判定処理を実行する。
【０１０１】
このようにして、直線幅Ｗの範囲内で対応点が抽出されると、その時点で走査を終了し、ＳＴ７に進む。このＳＴ７では、前記着目画素と対応点との中間点（前記図２（２）の点Ｑ）を起点として、前記エッジコードＥｃ（ｘ，ｙ）および直線長Ｌに基づき、線分の設定処理を実行する。なお、この線分の設定処理は、前記したように、処理結果画像用のメモリ領域において、線分の構成画素の画素値に前記エッジ強度Ｅｉ（ｘ，ｙ）を加算する処理として行われる。
【０１０２】
以下、同様にして、計測領域２２内でしきい値Ｅｈを上回るエッジ強度を持つエッジ画素について、順に対応点を検索し、さらにこの検索処理により対応点が抽出されたエッジ画素については、線分の設定処理を実行する。計測領域内の処理が終了すると、ＳＴ１２が「ＹＥＳ」となってＳＴ１３に進み、前記処理結果画像の各画素を、前記下限値Ｓに基づき２値化する。
【０１０３】
つぎのＳＴ１４では、前記２値化された処理結果画像において、下限値Ｓを上回り、「１」の値が設定された画素を抽出し、さらにこれら画素が連続する画像領域を切り出して、ラベル付けを行う。さらにＳＴ１５では、ラベル付けされた画像領域の面積を算出する処理を実行する。そしてＳＴ１６では、この算出結果が所定のしきい値Ｓ０を上回るかどうかをチェックし、しきい値Ｓ０を上回るときは、ＳＴ１７に進んで、不良判定を出力する。他方、算出結果がしきい値Ｓ０以下の値であれば、ＳＴ１８に進み、良品判定を出力する。なお、ＳＴ１４でラベル付けされる集合画像は１つに限らず、複数の集合画像が出現する場合もある。この場合には、これらの集合画像のいずれかの面積が前記しきい値Ｓ０を上回ったときに、ＳＴ１６の判定が「ＹＥＳ」となる。
【０１０４】
上記の検査やパラメータの設定を行う前には、計測領域２２の設定処理や、対応点を検索する方向の設定処理などを行う必要がある。ただし、計測領域は、画像全体としてもよい。また対応点の検索方向は一方向に限らず、エッジコードＥｃ（ｘ，ｙ）に９０度を加算した方向、および９０度を減算した方向の両方向を検索方向としてもよい。
【０１０５】
また線分の設定処理では、着目中のエッジ画素とこれに対応するエッジ画素との中間点に限らず、これらの画素を起点とする線分を設定してもよい。またこれらの画素間に複数の線分を設定してもよい。さらに線分を伸ばす方向は、一方向に限らず、起点から両方向に伸びる線分を設定してもよい。
【０１０６】
さらに上記図５の手順のＳＴ６において、着目中のエッジ画素に対する対応点が見つかった場合には、ＳＴ７の処理を実行した後に、この対応点のエッジ強度を前記しきい値Ｅｈまたは０など、エッジ画素として認定されないエッジ強度に書き換えるようにしてもよい。このようにすれば、対向関係にあるエッジ画素の組に対する検索処理や線分の設定処理が重複して行われることがなくなり、処理を高速化することができる。
なお、このように対応点として抽出されたエッジ画素を、以後の処理対象から除外する場合には、ＳＴ７では、起点を中心として両方向に伸びる線分を設定するのが望ましい。
【０１０７】
上記図２〜５に示した手法に基づく欠陥検査によれば、パラメータを適正に設定すれば、前記図４（ｂ）に示したように、線状体の長手方向にかかるエッジの各位置における傾きを反映した線分の集合画像により、前記線状体の形状に近い特徴を持つ画像を生成することができる。したがって、直線状の欠陥のみならず、髪の毛や糸くずのように湾曲した形状の欠陥や、クラックのように凹凸のある欠陥でも、精度良く検出することができる。
【０１０８】
また線分の設定処理においては、着目中のエッジ画素のエッジ強度による重み付けをした線分を設定するので、入力画像のコントラストが低いために、各エッジ画素のエッジ強度が小さくなっても、線分が重なり合うことにより背景に対する集合画像の重みを大きくすることができ、欠陥の形状や大きさを明瞭に示す画像を生成することができる。
【０１０９】
また仮に、エッジの中に、前記しきい値Ｅｈよりエッジ強度が小さくなる欠落部位が生じても、直線長が十分な値に設定されていれば、近傍のエッジ画素にかかる線分の連結によって、前記欠落部位の傾きを補完することができる。よって別途、線分の統合処理を実行しなくとも、通常の検査処理のアルゴリズムによって欠落部位も含めた欠陥の検出を行うことができ、ＣＰＵ５の制御負担を大きくせずに、高精度の検査を実行することが可能となる。
【０１１０】
さらに上記の実施例では、モニタ３の表示を見ながらパラメータの設定値を入力するようにしたが、このパラメータの設定は、図６のような手順を用いて自動的に行うこともできる。
【０１１１】
図６の手順は、いわゆる「山登り法」を使用するものである。この手順を実行するのに先立ち、画像処理装置１内には、欠陥を含むモデルの濃淡画像（以下、この画像を「モデル画像」という。）が複数枚入力され、またこれらのモデル画像について、各画素が欠陥であるかどうかを示す２値画像（以下、この画像を「モデル欠陥画像」という。）が設定される。なお、モデル欠陥画像は、ユーザーがモデル画像上における欠陥の位置を指定する操作に応じて生成される。たとえば、各モデル画像をモニタ３に順に表示しながら、この表示画面上でユーザーに欠陥の輪郭線上の点を複数指定させ、指定された各点を結ぶ画像領域内の画素を「１」とし、領域外の画素を「０」とすることで、前記モデル欠陥画像を生成することができる。（このように輪郭線上の点を指定する際には、画像を拡大表示するとよい。）
【０１１２】
図６では、各ステップ（ＳＴ）を、１０１以降の数字により示す。
前記したモデル画像の入力とモデル欠陥画像の生成処理が終了すると、ＳＴ１０１では、前記直線幅Ｗ，直線長Ｌ，下限値Ｓの各パラメータについての初期値を読み出し、これらの初期値を各パラメータの最適値として仮設定する。なお、各パラメータの初期値には、前記フラッシュメモリ９に保存されるデフォルトのパラメータ値を用いることができる。
【０１１３】
つぎにＳＴ１０２では、前記モデル画像毎に、前記最適値としたパラメータを用いた検査を実行する。各モデル画像に対する検査では、前記した図５と同様の手順を実行した後、欠陥と判断された集合画像（前記面積Ｓ０を上回る大きさの集合画像）の構成画素を「１」、他の画素を「０」とする２値の検査結果画像を生成する。
【０１１４】
こうして検査が終了すると、前記検査における評価値Ｅ０を算出する。なお、この評価値Ｅ０は、各モデル画像の検査結果画像とモデル欠陥画像とを用いて次の（１）式により求められるものである。なお、この（１）式は、後のＳＴ１０５，１０６でも用いられるので、一般式として、評価値をＥとして示す。
【０１１５】
【数１】
0004206723.tif 000002
【０１１６】
上記（１）式において、Ｎはモデル画像の構成画素数、Ｔはモデル画像の枚数である。ＭＴＮは、１モデル画像上における１画素についての判定結果であり、このモデル画像から生成された検査結果画像とモデル欠陥画像との比較により求められる。具体的には、前記検査結果画像とモデル欠陥画像との間の対応する画素に同じ値が設定されている場合には、ＭＴＮ＝＋１とされ、異なる値が設定されている場合には、ＭＴＮ＝−１とされる。
【０１１７】
つぎのＳＴ１０４では、直線幅Ｗ、直線長Ｌ、下限値Ｓのうちのいずれか１種類のパラメータ（たとえばＷ）を選択する。そしてＳＴ１０５では、前記選択したパラメータを最適値から任意の数αだけ増やした値に設定して、前記ＳＴ１０２と同様の方法による検査を実行する。つぎにＳＴ１０６では、前記パラメータを最適値からαだけ減らした値に設定し、同様に検査を実行する。
【０１１８】
つぎのＳＴ１０７では、前記ＳＴ１０５，１０６で実行した検査結果に基づき、それぞれ（１）式による評価値を算出する。これら評価値の少なくとも一方が前記評価値Ｅ０よりも高くなると、ＳＴ１０８からＳＴ１０９に進み、３つの評価値のうちの最大の評価値により、前記Ｅ０の値を書き換える。さらにＳＴ１１０では、書き替えられたＥ０を得たときのパラメータの値により、前記選択したパラメータの最適値を書き換える。
【０１１９】
この後は、ＳＴ１０５に戻り、上記と同様の処理を繰り返し実行する。所定の時点で評価値Ｅ０がＳＴ１０５，１０６の検査結果による評価値よりも高くなると、ＳＴ１０８からＳＴ１１１を介してＳＴ１０４に戻り、２番目のパラメータ（たとえばＬ）を選択する。そしてこのパラメータにつき、同様の処理により評価値Ｅ０の最大値およびパラメータの最適値が求められると、再びＳＴ１０８，ＳＴ１１１を経由してＳＴ１０４に戻り、３番目のパラメータ（たとえばＳ）を選択して同様の処理を実行する。
【０１２０】
こうしてすべてのパラメータが選択されると、ＳＴ１１１が「ＹＥＳ」となり、つぎのＳＴ１１２において、現在の各パラメータの最適値を、１番目のパラメータＷを選択した時点での最適値と比較する。そしてこれらの最適値の組み合わせが異なる場合には、ＳＴ１０４に戻り、１番目のパラメータを再選択する。
以下、同様にして、評価値Ｅ０および各パラメータの最適値が固定されるまでＳＴ１０４〜１１２の処理を繰り返す。評価値Ｅ０および各パラメータの最適値が固定されると、ＳＴ１１２からＳＴ１１３に進み、その時点における各パラメータの最適値を、検査用のパラメータの設定値として確定し、前記フラッシュメモリ９内に保存する。
【０１２１】
【発明の効果】
この発明にかかる画像処理方法および画像処理装置によれば、直線状の線状体のみならず、湾曲した形状の線状体や、細かい凹凸のある線状体でも、簡単かつ精度良く検出することができる。また線状体のエッジ抽出精度が悪い画像に対しても、パラメータの調整により、通常と同様のアルゴリズムによる制御で線状体を精度良く検出することができ、制御負担を重くせずに、線状体の検出処理を高速化することができる。
【図面の簡単な説明】
【図１】この発明の一実施例にかかる画像処理装置の構成を示すブロック図である。
【図２】欠陥検出処理の原理を示す説明図である。
【図３】処理対象画像の一例を示す説明図である。
【図４】図３の処理対象画像に対する処理結果画像の表示例を、パラメータの設定値を変動させて示す説明図である。
【図５】欠陥検査の手順を示すフローチャートである。
【図６】パラメータを自動設定する処理の手順を示すフローチャートである。
【符号の説明】
１  画像処理装置
２  カメラ
３  モニタ
４  外部機器
５  ＣＰＵ
６  エッジ強度抽出部
７  エッジコード抽出部
８  画像メモリ
９  フラッシュメモリ
【図１】
0004206723.tif 000003
【図２】
0004206723.tif 000004
【図３】
0004206723.tif 000005
【図４】
0004206723.tif 000006
【図５】
0004206723.tif 000007
【図６】
0004206723.tif 000008