(57)【要約】【課題】被検査物の撮像画像から検査対象領域を選別する際に、作業者に熟練を要求する判断等の負担が生じることを軽減し、かつ閾値を簡単に設定して検査対象領域を容易に選出することを可能とする。【解決手段】画像処理方法は、基準直線に対して線対称となる第１および第２領域を有する単色の原画像を、基準直線により第１および第２領域に分割し、第１および第２領域内で基準直線に対して線対称の位置に配置される２個の原画素の各ペアについて、２個の原画素の画素値の差分となる差分画素値を算出する差分算出工程を備える。画像処理方法はさらに、差分画素値を有する差分画素を配置して差分画像を生成する差分画像生成工程であって、第１領域内の第１位置の原画素と第２領域内の第２位置の原画素とのペアを用いて算出された差分画素値を有する差分画素を、差分画像の第１および第２位置に配置して差分画像を生成する差分画像生成工程を備える。【選択図】図１
2019008739.tif 000002
【特許請求の範囲】
【請求項１】
基準直線に対して線対称となる第１および第２領域を有する単色の原画像を、前記基準直線により前記第１および第２領域に分割し、前記第１および第２領域内で前記基準直線に対して線対称の位置に配置される２個の原画素の各ペアについて、前記２個の原画素の画素値の差分となる差分画素値を算出する差分算出工程と、
前記差分画素値を有する差分画素を配置して差分画像を生成する差分画像生成工程であって、前記第１領域内の第１位置の原画素と前記第２領域内の第２位置の原画素とのペアを用いて算出された前記差分画素値を有する差分画素を、前記差分画像の前記第１および第２位置に配置して前記差分画像を生成する差分画像生成工程と、
を備えることを特徴とする画像処理方法。
【請求項２】
前記基準直線は、前記原画像を、等しい数の原画素を含む上半分の前記第１領域と下半分の前記第２領域とに分割する第１直線であることを特徴とする請求項１記載の画像処理方法。
【請求項３】
前記基準直線は、前記原画像を、等しい数の原画素を含む左半分の前記第１領域と右半分の前記第２領域とに分割する第２直線であることを特徴とする請求項１記載の画像処理方法。
【請求項４】
前記差分画像生成工程では、同一の前記原画像から前記差分画像として、第１差分画像と、前記第１差分画像と異なる第２差分画像とを生成し、
前記第１差分画像と前記第２差分画像とを用いて、前記原画像における検査対象領域を選出する検査領域選出工程をさらに備えることを特徴とする請求項１乃至３のいずれか一項記載の画像処理方法。
【請求項５】
請求項１乃至４のいずれか一項記載の画像処理方法を用いて被検査物に対して欠陥検査を行う欠陥検査方法であって、
良品であることが既知である複数の被検査物を撮像して得られる撮像画像から生成される単色画像を第１原画像とし、生成された複数の第１原画像から前記画像処理方法を用いて複数の良品差分画像を生成する第１工程と、
不良であることが既知である複数の被検査物を撮像して得られる撮像画像から生成される単色画像を第２原画像とし、生成された複数の第２原画像から前記画像処理方法を用いて複数の不良差分画像を生成する第２工程と、
を備える閾値設定モードであって、
前記複数の不良差分画像の差分画素の中から、差分画素値が他の差分画素値から所定値以上に離間するとともに各不良差分画像において同一の位置に配置される離間画素を選出することが可能であり、かつ、前記複数の良品差分画像の差分画素の中で前記離間画素と同一の位置に配置される差分画素を前記離間画素として選出しないようにすることが可能である１つの検査領域閾値を設定する閾値設定モードと、
欠陥検査対象の被検査物を撮像して得られる撮像画像から生成される単色画像を第３原画像とし、生成された第３原画像から前記画像処理方法を用いて差分画像を生成し、前記差分画像と前記検査領域閾値とを用いて前記第３原画像における検査対象領域を選出し、前記検査対象領域に対して欠陥検査を実行する検査実行モードと、
を備えることを特徴とする欠陥検査方法。
【請求項６】
前記撮像画像は非カラー画像であり、
各撮像画像から生成される単色画像は１つであることを特徴とする請求項５記載の欠陥検査方法。
【請求項７】
前記撮像画像はカラー画像であり、
各撮像画像から生成される単色画像は２つ以上であり、
前記閾値設定モードの前記第１工程では、各単色画像を前記第１原画像とし、生成された複数の第１原画像から前記複数の良品差分画像を生成し、
前記閾値設定モードの前記第２工程では、各単色画像を前記第２原画像とし、生成された複数の第２原画像から前記複数の不良差分画像を生成し、
前記閾値設定モードでは、前記検査領域閾値の設定可能範囲が最も広い単色画像を１つ選出し、選出した単色画像に対して前記検査領域閾値を設定し、
前記検査実行モードでは、前記欠陥検査対象の被検査物を撮像して得られる前記撮像画像から生成される２つ以上の単色画像の中から、前記閾値設定モードで選出された単色画像と同じ種類の単色画像を選出して前記第３原画像とし、生成された前記第３原画像から前記差分画像を生成し、前記差分画像と前記検査領域閾値とを用いて前記検査対象領域を選出し、前記検査対象領域に対して欠陥検査を実行する、
ことを特徴とする請求項５記載の欠陥検査方法。
【請求項８】
前記第３原画像の中からテンプレートマッチング法を用いて前記欠陥検査対象の被検査物を抽出する被検査物抽出工程をさらに備えることを特徴とする請求項５乃至７のいずれか一項記載の欠陥検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置により被検査物の表面を撮像して得られた撮像画像を用いて、被検査物の表面に対して欠陥検査を行うべき検査対象領域を選出する画像処理方法およびそれを用いた欠陥検査方法に係るもので、特に線対称性を有する被検査物に対して、欠陥の種類に依存することなく、高精度かつ容易に検査対象領域を選出することが可能な画像処理方法およびそれを用いた欠陥検査方法に関するものである。
【背景技術】
【０００２】
撮像装置により被検査物の表面を撮像して得られた撮像画像を用いて、被検査物の表面に対して欠陥の有無を検査する欠陥検査が広く行われている。出願人は、クラックと呼ばれる線状欠陥を検出する欠陥検査方法を既に出願している（特許文献１）。
【０００３】
被検査物の表面には、上記クラック以外にも割れ、欠け、打痕、マーキングミスなどの多岐にわたる欠陥が存在する。それらの欠陥を検出する際には、デシタル化した撮像画像をデジタル処理する画像処理アルゴリズム（画像処理方法）が用いられる。
【０００４】
被検査物を撮像する撮像装置として、ＣＣＤ(Charged-coupled devices)あるいはＣＭＯＳ(Complementary metal-oxide-semiconductor)のような撮像素子を搭載したカメラが用いられている。撮像時に被検査物から出た光がこれらの撮像素子に入力されると、光の強弱が電気信号の強弱に変換されてデジタル化され、デジタル画像として記録される。
【０００５】
（１）デジタル画像
ここで、デジタル画像について説明する。画像を構成する最小要素を画素といい、デジタル画像は２次元に配列された画素からなる。各画素は色情報として０と１を組み合わせた２進法で表わされる数値を個別に有しており、この数値が被検査物から出た光の強さや被検査物の表面の色を表わしている。各画素が有する数値を画素値といい、画像はたとえばカラー画像、グレースケール画像などの種類に分かれる。
【０００６】
カラー画像では、１つの画素の色は当該画素を構成する成分としてのＲ（赤）、Ｇ（緑）、Ｂ（青）の三原色の成分比率によって決定される。よって、カラー画像で１個の画素の画素値を表わす際には、ＲＧＢ要素をそれぞれ８ビットで表わした２４ビット（＝８ビット×３色）を用いることが多い。
【０００７】
カラー画像に対して、白黒の濃淡で表現した画像をグレースケール画像という。グレースケール画像は１個の画素の画素値を８ビットで表わし、色情報は含まず明るさ情報のみを含んでいる。暗い画素は低い（小さい）画素値を有し、明るい画素は高い（大きい）画素値を有している。このような明暗の段階の数を階調という。１個の画素に割り当てる情報量により階調は変化する。ここに、情報量の単位をビット数といい、ビット数が大きいほど諧調が大きくなる。具体的にはビット数をｎとしたときの階調数は２ｎとなる。例えば上記グレースケール画像はビット数が８ビットであるから、階調数は２８＝２５６となる。そして階調数が２５６であることから、グレースケール画像における画素値の最小値は漆黒に対応する０で、最大値は純白に対応する２５５である。
【０００８】
またカラー画像においては、色を上記Ｒ（赤）、Ｇ（緑）、Ｂ（青）の三原色に分解し、それぞれの色について明るさを同じ階調数で表現することが多い。これは、カラー画像から３つのグレースケール画像すなわち単色画像を生成することと等価である。上記のグレースケール画像の階調数２５６（８ビット）をＲＧＢ各色に適用すると、上述のようにカラー画像はビット数が８ビット×３色＝２４ビットとなる。この場合の階調数は２２４＝１６７７７２１６となり、この階調数によってすべての色をデジタル画像によって表現することができる。カラー画像を２４ビットで表現した色は、人間の目で見た際にきわめて自然な色に感じられる。このため、２４ビットで表現したカラー画像のことをフルカラー画像と呼ぶ。
【０００９】
カラー画像から単色画像を生成する方法は、上記のようにカラー画像をＲ（赤）、Ｇ（緑）、Ｂ（青）の三原色に分解して３つの単色画像を生成することに限定されない。他にカラー画像から１つの単色画像を生成する方法もある。その一例として、テレビジョンの放送規格として知られるＮＴＳＣ信号を用いる方法がある。ＮＴＳＣ信号を得る前段階で使用されるコンポーネント信号としてＹＩＱ信号があるが、このＹＩＱ信号のＹ成分は輝度値である。今、カラー画像の信号すなわちＲ信号、Ｇ信号、Ｂ信号のそれぞれの画素値であるＥＲ、ＥＧ、ＥＢに係数を乗じて加算して、新しい画素値としての輝度値Ｙを生成することを考える。その際に、人間の眼に見える輝度に最も近くなるように、ＮＴＳＣ係数を用いた加重平均を適用することが知られている。具体的には、Ｙ＝０．２９９ＥＲ＋０．６８７ＥＧ＋０．１１４ＥＢの演算を行い、輝度値Ｙを生成する。
【００１０】
ところで、上述のように画像の欠陥を検出する際には、デジタル化した撮像画像をデジタル処理する画像処理アルゴリズムが用いられる。この画像処理アルゴリズムを用いるということは、上記画素値に対して演算を行うことに他ならない。そして演算方法を工夫することで、演算結果に基づいて画像の中に存在する欠陥検査の対象となる領域を選出することができる。そのような選出作用を有するように演算方法を工夫した画像処理アルゴリズムは、従来技術として広く用いられている。
【００１１】
（２）従来技術の画像処理アルゴリズム
従来技術の画像処理アルゴリズムについて、図３２乃至図３７を用いて説明する。なお、以下の説明においては、表面の欠陥検査を行う対象となる被検査物を主にワークと記載する。また、上記画像の中に存在する欠陥検査の対象となる領域のことを、検査対象領域と記載する。併せて、欠陥検査の対象とならない領域すなわち検査対象領域以外の領域のことを、除外領域と記載する。
【００１２】
ワーク表面の欠陥検査を行う際には、撮像装置を用いてワークを撮像して撮像画像を得て、その撮像画像に対して画像処理アルゴリズムを適用する。ここに、得られた撮像画像はグレースケール画像とする。撮像方法は、ワークが例えば６面体のような立体形状である場合には、ワークを水平に設置した台上に載置して、ワークの各面に対向する位置に配置した撮像装置を用いて各面を撮像する。またワークが紙あるいは薄板状に形成した木材や樹脂からなる平面形状である場合には、ワークを水平に設置した台上に載置して、台の上側に配置した撮像装置を用いてワークの上面を撮像する。
【００１３】
なお、以下の説明においては簡単のために、図面におけるワークの形状、ワーク表面にマーキングされる印、ワーク表面に存在する欠陥の形状等は、円、楕円、長方形、正方形等の単純な図形を用いて模式図として示す。
【００１４】
図３２（ａ）は撮像装置を用いて良品であるワーク（良品ワーク）ＷＧ１の一面を撮像して得た良品画像ＰＧ１であり、背景Ｂ１およびワークＷＧ１が撮像されている。ワークＷＧ１は長方形の外形を有し、その表面に円形の印ＭＧ１がマーキングされている。ワークＷＧ１の対角線の交点と印ＭＧ１の中心位置はおおむね一致している。
【００１５】
図３３（ａ）は撮像装置を用いて表面に欠陥を有するワーク、すなわち不良であるワーク（不良ワーク）ＷＤ１の一面を撮像して得た不良画像ＰＤ１である。良品画像ＰＧ１と不良画像ＰＤ１の差異は、不良画像ＰＤ１のワークＷＤ１内に欠陥Ｄ１が存在し、かつ印ＭＤ１内に欠陥Ｄ２が存在する点である。
【００１６】
ここに、図３２（ａ）の良品画像ＰＧ１および図３３（ａ）の不良画像ＰＤ１はいずれもグレースケールのデジタル画像である。そして良品画像ＰＧ１および不良画像ＰＤ１において各領域の色を目視により比較すると、以下のようになっている。良品画像ＰＧ１および不良画像ＰＤ１のいずれも、背景Ｂ１は黒く、ワークＷＧ１およびＷＤ１は濃いグレーであり、印ＭＧ１およびＭＤ１は白い。また、不良画像ＰＤ１においてワークＷＤ１の欠陥Ｄ１は薄いグレーであり、印ＭＤ１上の欠陥Ｄ２もまた薄いグレーである。ただし、同じように薄いグレーであっても、欠陥Ｄ２は欠陥Ｄ１に比べるとやや濃い。
【００１７】
これらの比較は作業者が図３３（ａ）の不良画像ＰＤ１を目視した結果であり、実際の不良画像ＰＤ１は上述のようにデジタル画像として撮像装置内に記録されている。その記録されたデジタル画像について、上記各領域の画素値の大小関係を領域の名称を用いて不等式で表わすと、
背景Ｂ１＜ワークＷＤ１＜欠陥Ｄ２＜欠陥Ｄ１＜印ＭＤ１    （１）
となっている。ここに、上記各領域はいずれも複数の画素により構成されている。そして、同一領域を構成する複数の画素が有する画素値は個別に異なる値を有する。しかし、以下の説明においては簡単のため、同一領域を構成する複数の画素はすべて同一の画素値を有するものとする。
【００１８】
この（１）に示す画素値の大小関係は、図３３（ａ）に示す不良画像ＰＤ１を目視した際に、ワークＷＤ１の正常な部分に比べてその欠陥Ｄ１が明るく（白色を帯びて）見えることを意味する。同様に、ワークＷＤ１上の印ＭＤ１の正常な部分に比べてその欠陥Ｄ２が暗く（黒色を帯びて）見えることを意味する。また、図３２（ａ）の良品画像ＰＧ１の場合の当該領域の画素値の大小関係は、（１）から２種類の欠陥に関わる画素値を除外して、
背景Ｂ１＜ワークＷＧ１＜印ＭＧ１    （２）
となっている。上記（１）（２）の具体例として、図３２（ａ）の良品画像ＰＧ１および図３３（ａ）の不良画像ＰＤ１における各領域に付与された符号と各領域の画素値を対応させて、それぞれ図３２（ｂ）および図３３（ｂ）に表形式で示してある。以下、簡単のため、説明の対象を図３３（ａ）の不良画像ＰＤ１に限定する。
【００１９】
次に、図３３（ａ）に示す不良画像ＰＤ１を用いてワーク表面の欠陥検査を行う際に用いる画像処理アルゴリズムについて説明する。図３３（ａ）の不良画像ＰＤ１には背景Ｂ１とワークＷＤ１が撮像されているが、欠陥検査を行う対象となるのはワークＷＤ１である。ここで、撮像画像中のワークの位置は撮像の都度さまざまに変化する。一例として図３４（ａ）に、図３３（ａ）と同様に上記不良ワークＷＤ１と異なる不良ワークＷＤ２を撮像した不良画像ＰＤ２を示す。併せて図３３におけるのと同様に、図３４（ａ）に示す不良画像ＰＤ２における各領域に付与された符号と各領域の画素値を対応させて、図３４（ｂ）に表形式で示してある。
【００２０】
図３４（ａ）の不良画像ＰＤ２におけるワークＷＤ２の位置は、図３３（ａ）の不良画像ＰＤ１におけるワークＷＤ１の位置とは異なる。このため、撮像画像ごとにワークの位置に係らずワークを正しく抽出することが必要となる。この工程をワーク抽出工程と名付ける。ワーク抽出工程に用いられる画像処理アルゴリズムとして、調査対象画像の中から特定の画像パターンを抽出するテンプレートマッチング法（ＴＭ法）が知られている。これは、以下の手順で実行されるアルゴリズムである。
［手順１］前記特定の画像パターンとして
あらかじめ決められた画像パターン（テンプレート）を用意する。
［手順２］調査対象画像とテンプレートを照合（マッチング）して
最も一致する箇所を探索する。
［手順３］一致した箇所を前記特定の画像パターンとして抽出する。
【００２１】
例えば図３３（ａ）の不良画像ＰＤ１を調査対象画像とした場合には、図３２（ａ）の良品画像ＰＧ１に撮像されたワークＷＧ１の形状をテンプレートとすればよい。そして不良画像ＰＤ１とテンプレートを照合すれば、ワークＷＤ１の位置が不良画像ＰＤ１中でさまざまに変化しても、例えば図３３（ａ）のようにＷＤ１が略中央に位置する場合も、あるいは図３５（ａ）に示す不良画像ＰＤ１ａのようにワークＷＤ１が右下に位置する場合も、図３５（ｂ）のような形状を有するワークＷＤ１を抽出することができる。
【００２２】
次にこの抽出したワークＷＤ１について、検査対象領域と除外領域を選別する。この工程を検査領域選別工程と名付ける。検査領域選別工程に用いられる従来技術としての画像処理アルゴリズムは、以下の［条件１］によって検査対象領域と除外領域を選別する。
［条件１］検査対象領域の画素値は、
当該領域に隣接する除外領域の画素値と比べて大きいか、小さいか。
【００２３】
ここで、［条件１］に記載の「当該領域に隣接する除外領域」には２通りの場合があることに注意しておく必要がある。具体的には、除外領域が検査対象領域の外部において隣接する場合と、検査対象領域の内部にその部分集合として内包されるように隣接する場合がある。そして後者の場合には、除外領域を内包する検査対象領域を第１の検査対象領域とした場合に、この内包される除外領域を第１の検査対象領域に対して独立した第２の検査対象領域として層化することがあり得る。その結果として、複数の検査対象領域を組み合わせて内包させながら検査対象領域を構成することになる。このような検査対象領域の層化を含めた検査領域選別工程について、図３５および図３６を用いて説明する。
【００２４】
まず図３５（ａ）の不良画像ＰＤ１ａに対して、テンプレートマッチング法を用いたワーク抽出工程を実行してワークＷＤ１を抽出する。抽出したワークＷＤ１はその位置が不良画像の右下であること、および最外縁が長方形であることが明確になっている。このようにワークＷＤ１を抽出したのち、検査領域選別工程を実行する。
【００２５】
検査領域選別工程の第１段階は、ワークＷＤ１の外側に前記最外縁の寸法規格の最大値よりαだけ大きい寸法の囲み枠Ｆ１を配置して、ワークＷＤ１の最外縁を囲む。この第１段階を実行したあとの様子を図３６（ａ）に示す。ここに、ワークＷＤ１は製造誤差によって最外縁の寸法にバラツキを生じる。その寸法には最大値および最小値により規定される規格があり、当該規格を満足するワークＷＤ１が寸法に関する良品と判定される。そしてこの寸法に関する良品であるワークＷＤ１を撮像したのち、上述のテンプレートマッチング法を用いてワーク抽出工程を実行している。このため、ワーク抽出工程の結果として得られたワークＷＤ１の最外縁の寸法は、上記寸法規格の最大値から最小値までのすべての数値をとる可能性がある。よって、寸法規格の最大値よりαだけ大きい寸法の囲み枠Ｆ１を配置すれば、すべてのワークＷＤ１について最外縁のさらに外側に囲み枠Ｆ１を配置することが可能となる。
【００２６】
検査領域選別工程の第２段階は、図３６（ａ）の各領域を構成する画素の画素値に着目して検査対象領域の選別を行う。図３６（ａ）において第１段階で配置した囲み枠Ｆ１とワークＷＤ１の最外縁との間の領域（以下ワーク周囲領域）ＷＤＳ１を構成する画素の画素値は、背景Ｂを構成する画素の画素値に等しいことは明らかである。ここで、ワーク周囲領域ＷＤＳ１とワークＷＤ１の画素値との大小関係に着目する。図３３（ｂ）および式（１）から、ワーク周囲領域ＷＤＳ１の画素値は背景Ｂ１の画素値に等しい１０であり、ワークＷＤ１の画素値は１００である。そこで、図３６（ａ）における囲み枠Ｆ１内部において、例えば画素値５０をワーク選別閾値ＴＷＤ１として設定する。そして、ワーク選別閾値ＴＷＤ１以上の領域を選別することにより、画素値が１００であるワークＷＤ１の内部を検査対象領域の候補となる対象候補領域として選別することができる。
【００２７】
次に、検査領域選別工程の第３段階以降において、上記対象候補領域の中から検査対象領域を選別する。この選別が必要となる理由を、以下に説明する。図３６（ａ）においてワークＷＤ１の内部における正常領域と欠陥のそれぞれの画素値を比較すると、図３３（ｂ）に示すようにワークＷＤ１（正常領域）の画素値は１００であり、ワークの欠陥Ｄ１の画素値は２００である。このことから、例えばワークＷＤ１内の領域において画素値１４０をワーク欠陥閾値ＴＤ１として設定し、ワーク欠陥閾値ＴＤ１以上の領域を選別すれば、欠陥Ｄ１を検出することができるように思える。しかし、ワークＷＤ１内の領域にはワーク上の印Ｍ１（正常領域）が存在しており、その画素値は２５０である。よって、ワークＷＤ１内の領域においてワーク欠陥閾値ＴＤ１としての画素値１４０以上の領域を選別した場合には、画素値２００を有する欠陥Ｄ１とともに正常領域である画素値２５０を有するワーク上の印ＭＤ１も欠陥として選別されてしまう。これは、欠陥検査の結果として正しくないことは明白である。これを防止するには、対象候補領域としてのワークＷＤ１内の領域からワーク上の印ＭＤ１内の領域を除外した領域を検査対象領域とすればよい。これが検査領域選別工程の第３段階以降である。
【００２８】
ここに、上記検査領域選別工程の第２段階において選別したワークＷＤ１内の領域を、第１の対象候補領域と名付ける。そして、この第１の対象候補領域から除外すべきワーク上の印ＭＤ１内の領域を、第１の除外領域と名付ける。最後に、第１の対象候補領域から第１の除外領域を除外した領域を、第１の検査対象領域と名付ける。具体的には、検査領域選別工程の第３段階において、上記ワーク抽出工程と同様のテンプレートマッチング法を用いて、ワーク上の印ＭＤ１のみを選別する。
【００２９】
次に第４段階において、上記第１段階と同様に、図３６（ｂ）に示すようにワーク上の印ＭＤ１の外側にその最外縁の寸法規格の最大値よりβだけ大きい寸法の囲み枠Ｆ２を配置して、ワーク上の印ＭＤ１の最外縁を囲む。
【００３０】
そして第５段階において、上記第２段階と同様に、囲み枠Ｆ２とワーク上の印ＭＤ１の最外縁との間の領域（以下印周囲領域）Ｍ１Ｓ１を構成する画素の画素値が、ワークＷＤ１を構成する画素の画素値に等しいことに着目する。図３６（ｂ）より印周囲領域Ｍ１Ｓ１の画素値はワークＷＤ１の画素値に等しい１００であり、ワーク上の印ＭＤ１の画素値は２５０である。そこで、図３６（ｂ）における囲み枠Ｆ２内部において、例えば画素値２００を印選別閾値ＴＭ１として設定する。そして、印選別閾値ＴＭ１以上の領域を選別することにより、画素値が２５０であるワーク上の印Ｍ１の内部を第１の対象候補領域から除外すべき第１の除外領域として選別することができる。
【００３１】
次に第６段階として、第１の対象候補領域から第１の除外領域を除外して、第１の検査対象領域とする。次に、上記第１の除外領域として選別されたワーク上の印ＭＤ１に着目する。図３６（ｂ）に示すように、このワーク上の印ＭＤ１内には欠陥Ｄ２が存在する場合がある。よって、ワーク上の印ＭＤ１は欠陥Ｄ２を検出すべき第２の対象候補領域と考えるのが適切である。すなわち第７段階以降で、ワーク上の印ＭＤ１を第２の対象候補領域として選別したのち、必要に応じて第２の対象候補領域内に第２の除外領域を選別して、第２の対象候補領域から第２の除外領域を除外した領域を第２の検査対象領域として選別する。ところで図３６（ｂ）によれば、ワーク上の印ＭＤ１を第２の対象候補領域としたとき、この領域内には第２の除外領域は存在しない。よって、第２の検査対象領域はワーク上の印ＭＤ１内の全領域となる。図３５（ａ）に示す不良画像ＰＤ１ａに以上の工程を実行した結果として得られる検査対象領域は、上記第６段階において選別した第１の検査対象領域と上記第７段階において選別した第２の検査対象領域の２つの領域となる。ここまでで、検査領域選別工程を終了する。
【００３２】
検査領域選別工程において第１の検査対象領域および第２の検査対象領域が選別されると、次に各検査対象領域において欠陥を検出することが可能な欠陥閾値を設定する欠陥閾値設定工程に移行する。この欠陥閾値設定工程においては、各検査対象領域を欠陥ではない正常領域と欠陥に選別可能な、特定のひとつの画素値を欠陥閾値として設定する。その際に以下の［条件２］によって検査対象領域内の正常領域と欠陥を選別する。
［条件２］検査対象領域内にある欠陥の画素値は、
該領域内の正常部分の画素値と比べて大きいか、小さいか。
【００３３】
最初に欠陥閾値設定工程の第１段階において、第１の検査対象領域における欠陥閾値として、第１の欠陥閾値を設定する。上述のように、第１検査対象領域はワークＷＤ１内におけるワーク上の印ＭＤ１以外の領域である。そして図３３（ｂ）より第１検査対象領域の画素値は１００であり、ワークの欠陥Ｄ１の画素値は２００である。このことから、第１検査対象領域において例えば画素値１５０を第１の欠陥閾値ＴＤ１として設定し、第１の欠陥閾値ＴＤ１以上の領域を選別することにより、欠陥Ｄ１のみを選別することが可能となる。すなわち、第１の欠陥閾値ＴＤ１を１５０と設定する。
【００３４】
次に欠陥閾値設定工程の第２段階において、第２の検査対象領域における欠陥閾値として、第２の欠陥閾値を設定する。第２の検査対象領域はワーク上の印ＭＤ１内の領域である。そして図３３（ｂ）より第２の検査対象領域の画素値は２５０であり、ワーク上の印ＭＤ１における欠陥Ｄ２の画素値は１８０である。このことから、第２の検査対象領域において例えば画素値２１０を第２の欠陥閾値ＴＤ２として設定し、第２の欠陥閾値ＴＤ２以下の領域を選別することにより、欠陥Ｄ２を選別することが可能となる。すなわち、第２の欠陥閾値ＴＤ２を２１０と設定する。ここまでで、欠陥閾値設定工程を終了する。
【００３５】
上述のように、検査領域選別工程の第２段階において、画素値５０をワーク選別閾値ＴＷＤ１として設定している。その目的は、図３６（ａ）における囲み枠Ｆ１内部においてワークＷＤ１の内部を背景Ｂ１から選別して、欠陥検査の対象領域となる第１の対象候補領域として選別するためである。また、第５段階において、画素値２００を印選別閾値ＴＭ１として設定している。その目的は、図３６（ｂ）における囲み枠Ｆ２内部からワーク上の印ＭＤ１の内部を第１の対象候補領域から除外すべき第１の除外領域として選別するためである。
【００３６】
同様に、欠陥閾値設定工程の第１段階において画素値１５０を第１の欠陥閾値ＴＤ１として設定している。その目的は、第１の検査対象領域における欠陥を選別するためである。また、第２段階において画素値２１０を第２の欠陥閾値ＴＤ２として設定している。その目的は、第２の検査対象領域における欠陥を選別するためである。
【００３７】
これらの各種閾値は、図３３（ａ）の不良画像ＰＤ１および図３５（ａ）の不良画像ＰＤ１ａにおけるワーク表面の欠陥検査に最適な閾値である。その理由は、これらの不良画像の各領域における画素値が図３３（ｂ）に示す値となっているためである。ここで、図３３（ａ）の不良画像ＰＤ１以外の不良画像、すなわち別の不良ワークを撮像した画像における各領域の画素値について考える。ワークごとに各領域の画素値はある範囲にわたってばらつきを有することが想定される。不良画像を目視する限りにおいては、各領域の相対的な明るさあるいは暗さはどのワークを撮像した撮像画像についても同等である。
【００３８】
しかしデジタル画像として考えると、画素値の差異が問題となる。例えば異なる２つのワークの撮像画像を目視したとき、両者における同一の領域の目視結果がともに白であったとする。しかし、これら２つの撮像画像をデジタル画像として記録すると、一方の白の画素値は２４０で他方の白の画素値は２２０であるということがあり得る。同様に、両者における同一の領域の目視結果がともに濃いグレーであっても、デジタル画像における一方の濃いグレーの画素値は１００で、他方の濃いグレーの画素値は８０であるということがあり得る。このように、ワークごとに各領域の画素値はある程度のばらつきを有している。よって、上述のように図３３（ａ）の不良画像ＰＤ１を用いて、検査領域選別工程あるいは欠陥閾値設定工程において設定した各種閾値を用いれば、すべての不良画像について確実に検査対象領域の選別ができて、かつその領域内における欠陥の選別ができるという保証はない。このため、前記各種閾値が適切であることを確認する閾値確認工程を実行する必要がある。閾値確認工程の手順を以下に説明する。
【００３９】
まず第１段階において、Ｂ個（Ｂは自然数）の不良ワークを撮像して得たＢ個の不良画像を用意する。これらの不良画像のそれぞれに対して、図３３（ａ）の不良画像ＰＤ１に基づいて設定した各種閾値を用いて、検査対象領域の選別および欠陥の選別を実行する。そして、すべての不良画像に対して同一の検査対象領域を選別することができ、かつ不良画像ごとに異なる欠陥をそれぞれ確実に選別することを確認する。もし検査対象領域あるいは欠陥を正しく選別することができない不良画像が発見された場合には、当該の不良画像と当初の閾値設定に使用した図３３（ａ）の不良画像ＰＤ１の各領域における画素値（図３３（ｂ））を比較して、閾値を修正する。そして、修正した閾値を用いて再度Ｂ個の不良画像に対して検査対象領域および欠陥を選別する。この選別の確認と閾値の修正を、すべての不良画像に対して同一の検査対象領域を選別することができ、かつ欠陥を確実に選別することができるようになるまで繰り返す。
【００４０】
それが終了したら、次に第２段階として、Ｂ個の不良画像を用いて確認することにより修正した各種閾値を良品画像に適用したときに、すべての良品画像に対して同一の検査対象領域を選別することができ、かつ欠陥が選別されないことを確認する。この場合はＡ個（Ａは自然数）の良品画像を用意して、上述のＢ個の不良画像に対する確認と同様に行なう。もし検査対象領域が正しく選別されない良品画像あるいは欠陥が選別される良品画像が発見された場合には、やはり上述のＢ個の不良画像を用いた確認に対応する修正と同様に、閾値の修正を行う。すなわち、当該の良品画像と当初の閾値設定に使用した図３３（ａ）の不良画像ＰＤ１の各領域における画素値（図３３（ｂ））を比較して、閾値を修正する。そして、Ａ個の良品画像のすべてについて同一の検査対象領域を選別することができ、かつ欠陥が選別されなくなるまで確認と修正を繰り返す。ここにＢおよびＡの具体値は、例えば量産時において１日当りに欠陥検査の対象となるワークの個数やワークの製造偏差等を考慮して、統計学の手法を用いて決定すればよい。
【００４１】
このようにして各種閾値が適切であることの確認が完了したら、閾値確認工程を終了する。そして、これらの適切な閾値を用いて被検査物としてのワークの撮像画像に対して欠陥検査を行う検査実行工程に移行する。検査実行工程は、被検査物の撮像画像に対して上述の検査領域選別工程を実行して、検査対象領域を選別する。次に、検査対象領域に対して欠陥閾値を用いて、欠陥の有無を検査する。欠陥がなければ良品と判断し、欠陥があれば不良と判断する。
【００４２】
ここで、図３３（ａ）の不良画像ＰＤ１の場合と異なる撮像画像の画素値の例について、図３７（ａ）に示す不良画像ＰＤ１１を用いて説明する。図３７（ａ）の不良画像ＰＤ１１において各領域の色を目視により比較すると、以下のようになっている。背景Ｂ１１は白く、ワークＷＤ１１は薄いグレーであり、印ＭＤ１１は黒い。また、ワークＷＤ１１の欠陥Ｄ１１は濃いグレーであり、印ＭＤ１１上の欠陥Ｄ２１は薄いグレーである。ただし、同じように薄いグレーであっても、欠陥Ｄ２１はワークＷＤ１１に比べるとやや薄い。この不良画像ＰＤ１１をデジタル画像として記録した場合に、上記各領域の画素値の大小関係は、
印ＭＤ１１＜欠陥Ｄ１１＜ワークＷＤ１１＜欠陥Ｄ２１＜背景Ｂ１１    （３）
となっている。この（３）に示す画素値の大小関係は、図３７（ａ）の不良画像ＰＤ１１を目視した際に、ワークＷＤ１１の正常な部分に比べてその欠陥Ｄ１１が暗く（黒色を帯びて）見えることを意味する。同様に、ワークＷＤ１１上の印ＭＤ１１の正常な部分に比べてその欠陥Ｄ２１が明るく（白色を帯びて）見えることを意味する。これらの画素値を図３７（ｂ）に表として示す。
【００４３】
図３７（ａ）の不良画像ＰＤ１１に対して上述の検査領域選別工程および欠陥閾値設定工程を実行する際の各種閾値および選別すべき領域の画素値と閾値の大小関係は、以下のようになる。
【００４４】
まず、検査領域選別工程の第２段階においてワーク選別閾値ＴＷＤ１１を設定する。その目的は、ワークＷＤ１１の内部を背景Ｂ１１から選別して、欠陥検査の対象領域となる第１の対象候補領域として選別するためである。ここに、図３７（ｂ）よりワークＷＤ１１の画素値は１３０であり、背景Ｂ１１の画素値は２５０である。これらの画素値を比較すると、ワーク選別閾値ＴＷＤ１１を例えば１８０に設定して、ワーク選別閾値ＴＷＤ１１以下の画素値を有する領域を選別すれば、第１の対象候補領域を選別することが可能であるとわかる。
【００４５】
次に第５段階において、印選別閾値ＴＭ１１を設定する。その目的は、ワーク上の印ＭＤ１１の内部を第１の対象候補領域から除外すべき第１の除外領域として選別するためである。ここに、図３７（ｂ）よりワークＷＤ１１の画素値は１３０であり、印ＭＤ１１の画素値は４０である。これらの画素値を比較すると、印選別閾値ＴＭ１１を例えば９０に設定して、印選別閾値ＴＭ１１以下の画素値を有する領域を選別すれば、第１の除外領域を選別することが可能であるとわかる。
【００４６】
同様に、欠陥閾値設定工程の第１段階において第１の欠陥閾値を設定する。その目的は、第１の検査対象領域における欠陥を選別するためである。ここに、図３７（ｂ）よりワークＷＤ１１の画素値は１３０であり、欠陥Ｄ１１の画素値は８０である。これらの画素値を比較すると、第１の欠陥閾値ＴＤ１１を例えば１００に設定して、第１の欠陥閾値以下の画素値を有する領域を選別すれば、欠陥Ｄ１１を選別することが可能であるとわかる。
【００４７】
さらに、第２段階において第２の欠陥閾値を設定する。その目的は、第２の検査対象領域における欠陥を選別するためである。ここに、図３７（ｂ）より印ＭＤ１１の画素値は４０であり、欠陥Ｄ２１の画素値は１７０である。これらの画素値を比較すると、第２の欠陥閾値ＴＤ２１を例えば１００に設定して、第２の欠陥閾値以上の画素値を有する領域を選別すれば、欠陥Ｄ２１を選別することが可能であるとわかる。
【００４８】
以上のように、状来技術としての画像処理アルゴリズムにおける各種閾値の設定および選別すべき領域の画素値と閾値の大小関係は、撮像画像における２つの情報に基づいて決定される。１つ目の情報は、撮像画像をデジタル画像として記録したときの当該領域の画素値である。そして２つ目の情報は、作業者が撮像画像を目視して得られる各領域の明るさ（白色を帯びる度合い）と暗さ（黒色を帯びる度合い）の比較結果、すなわち各領域間の明るさ情報の比較結果である。２つ目の情報のうち、特に重要なものは、検査対象領域における正常部分と欠陥の明るさ情報の比較である。
【００４９】
これまでの説明においては、不良画像および良品画像としての撮像画像はグレースケール画像であるとした。もし撮像画像がカラー画像である場合には、カラー画像の色をＲ（赤）、Ｇ（緑）、Ｂ（青）の三原色に分解し、それぞれの色についてグレースケール画像を生成する。そして、不良画像から生成した３種類のグレースケール画像を作業者が目視して、各領域間の明るさ情報を比較することにより、最も欠陥を明瞭に識別することできると判断した１つのグレースケール画像を選択する。この選択したグレースケール画像に対して、上記画像処理アルゴリズムを適用すればよい。
【００５０】
（３）従来技術の画像処理アルゴリズムの問題点
以上のような従来技術としての画像処理アルゴリズムには、以下の問題点がある。それは、撮像画像に対する画像処理アルゴリズム適用時に、作業者による目視の作業が多くなることである。上述のように、検査領域選別工程において各種閾値を設定する際に、作業者は撮像画像を目視して各領域間の明るさ情報を比較する。そしてその比較結果に基づいて、選別すべき検査対象領域の内部に欠陥と識別されるべき正常な領域としての除外領域が存在するか否かを判断する。
【００５１】
例えば上述の図３３（ａ）に示す不良画像ＰＤ１を用いた検査領域選別工程に関する説明においては、図３３（ｂ）のようにワークＷＤ１の画素値が１００で、ワークＷＤ１上の欠陥Ｄ１の画素値が２００である。そしてワークＷＤ１内の印ＭＤ１の画素値が２５０である。このため、ワークＷＤ１上において欠陥Ｄ１を正しく選別するために、第１の対象候補領域であるワークＷＤ１内から印ＭＤ１を第１の除外領域として除外することで、第１の検査対象領域を選別している。これらの作業において、作業者の目視が果たす役割は非常に大きく、作業者に対して熟練が要求される。例として上記説明に用いた図３３（ａ）に示す不良画像ＰＤ１の場合は、除外領域が１個で検査対象領域が２個であった。しかし、除外領域および検査対象領域の数はこれに限定されるものではない。
【００５２】
ワーク表面を構成するパーツの数量、欠陥が発生するパーツとそれらの配置および各パーツおよびそれらに対応する欠陥の画素値等により、除外領域および検査対象領域の数はさらに増加することも考えられる。さらに、上述のように撮像画像がカラー画像である場合には、カラー画像の色をＲ（赤）、Ｇ（緑）、Ｂ（青）の三原色に分解し、それぞれの色についてグレースケール画像を生成してから、作業者がそれら３種類のグレースケール画像を目視して比較する作業が追加される。これらのように除外領域および検査対象領域が増加する場合、あるいはカラー撮像画像に対する処理が必要となる場合には、領域を選別するための閾値の数が増加するなど、さらに作業者の目視に要する時間が増加する。またそれとともに作業者の判断項目が増加し、作業者の負担が増加する。このような作業者の目視に要する時間の増加および負担の増加に起因して、検査速度および検査精度が低下する。
【先行技術文献】
【特許文献】
【００５３】
【特許文献１】特開２０１５−４５３８号公報
【発明の概要】
【発明が解決しようとする課題】
【００５４】
本発明の目的は、線対称性を有する被検査物の撮像画像から検査対象領域を選別する際に、作業者の目視作業を減らすことにより、作業者に熟練を要求する判断等の負担が生じることを軽減し、かつ閾値を簡単に設定して検査対象領域を容易に選出することを可能とする、検査速度の向上に寄与するとともに作業者の熟練度の差異に影響されにくい画像処理方法と、その画像処理方法を用いた欠陥検査方法を提供することである。
【課題を解決するための手段】
【００５５】
本発明の一態様である画像処理方法は、基準直線に対して線対称となる第１および第２領域を有する単色の原画像を、前記基準直線により前記第１および第２領域に分割し、前記第１および第２領域内で前記基準直線に対して線対称の位置に配置される２個の原画素の各ペアについて、前記２個の原画素の画素値の差分となる差分画素値を算出する差分算出工程と、前記差分画素値を有する差分画素を配置して差分画像を生成する差分画像生成工程であって、前記第１領域内の第１位置の原画素と前記第２領域内の第２位置の原画素とのペアを用いて算出された前記差分画素値を有する差分画素を、前記差分画像の前記第１および第２位置に配置して前記差分画像を生成する差分画像生成工程と、を備えることを特徴とする。
【００５６】
また、前記画像処理方法において、前記基準直線は、前記原画像を、等しい数の原画素を含む上半分の前記第１領域と下半分の前記第２領域とに分割する第１直線であることを特徴とする。
【００５７】
また、前記画像処理方法において、前記基準直線は、前記原画像を、等しい数の原画素を含む左半分の前記第１領域と右半分の前記第２領域とに分割する第２直線であることを特徴とする。
【００５８】
また、前記画像処理方法において、前記差分画像生成工程では、同一の前記原画像から前記差分画像として、第１差分画像と、前記第１差分画像と異なる第２差分画像とを生成し、前記画像処理方法は、前記第１差分画像と前記第２差分画像とを用いて、前記原画像における検査対象領域を選出する検査領域選出工程をさらに備えることを特徴とする。
【００５９】
本発明の一態様である欠陥検査方法は、前記画像処理方法を用いて被検査物に対して欠陥検査を行う欠陥検査方法であって、良品であることが既知である複数の被検査物を撮像して得られる撮像画像から生成される単色画像を第１原画像とし、生成された複数の第１原画像から前記画像処理方法を用いて複数の良品差分画像を生成する第１工程と、不良であることが既知である複数の被検査物を撮像して得られる撮像画像から生成される単色画像を第２原画像とし、生成された複数の第２原画像から前記画像処理方法を用いて複数の不良差分画像を生成する第２工程と、を備える閾値設定モードであって、前記複数の不良差分画像の差分画素の中から、差分画素値が他の差分画素値から所定値以上に離間するとともに各不良差分画像において同一の位置に配置される離間画素を選出することが可能であり、かつ、前記複数の良品差分画像の差分画素の中で前記離間画素と同一の位置に配置される差分画素を前記離間画素として選出しないようにすることが可能である１つの検査領域閾値を設定する閾値設定モードと、欠陥検査対象の被検査物を撮像して得られる撮像画像から生成される単色画像を第３原画像とし、生成された第３原画像から前記画像処理方法を用いて差分画像を生成し、前記差分画像と前記検査領域閾値とを用いて前記第３原画像における検査対象領域を選出し、前記検査対象領域に対して欠陥検査を実行する検査実行モードと、を備えることを特徴とする。
【００６０】
また、前記欠陥検査方法において、前記撮像画像は非カラー画像であり、各撮像画像から生成される単色画像は１つであることを特徴とする。
【００６１】
また、前記欠陥検査方法において、前記撮像画像はカラー画像であり、各撮像画像から生成される単色画像は２つ以上であり、前記閾値設定モードの前記第１工程では、各単色画像を前記第１原画像とし、生成された複数の第１原画像から前記複数の良品差分画像を生成し、前記閾値設定モードの前記第２工程では、各単色画像を前記第２原画像とし、生成された複数の第２原画像から前記複数の不良差分画像を生成し、前記閾値設定モードでは、前記検査領域閾値の設定可能範囲が最も広い単色画像を１つ選出し、選出した単色画像に対して前記検査領域閾値を設定し、前記検査実行モードでは、前記欠陥検査対象の被検査物を撮像して得られる前記撮像画像から生成される２つ以上の単色画像の中から、前記閾値設定モードで選出された単色画像と同じ種類の単色画像を選出して前記第３原画像とし、生成された前記第３原画像から前記差分画像を生成し、前記差分画像と前記検査領域閾値とを用いて前記検査対象領域を選出し、前記検査対象領域に対して欠陥検査を実行することを特徴とする。
【００６２】
また、前記欠陥検査方法は、前記第３原画像の中からテンプレートマッチング法を用いて前記欠陥検査対象の被検査物を抽出する被検査物抽出工程をさらに備えることを特徴とする。
【発明の効果】
【００６３】
本発明の画像処理方法を検査対象ワーク（欠陥検査対象の被検査物）の画像が特定の直線に関して線対称である場合に用いると、作業者がワークの画像を目視して何らかの判断を行う工程がほとんど存在することなく、単純な画像処理の演算を用いて１つの閾値を設定して、容易に検査対象ワークの画像における検査対象領域を選出することができる。このため、従来技術のように作業者に対して熟練が要求されることがなく、作業者の負担が少なくなる。かつ画像処理方法をソフトウェアにより自動化して検査対象ワークの画像に対する欠陥検査を容易に実行することができる。このため、従来技術による欠陥検査に比べて検査速度が格段に向上するとともに、作業者の熟練度の差異に影響されにくい。
【図面の簡単な説明】
【００６４】
【図１】図１（ａ）（ｂ）は、本発明の画像処理アルゴリズムの説明図。
【図２】図２は、本発明の画像処理アルゴリズムの説明図。
【図３】図３（ａ）（ｂ）（ｃ）（ｄ）（ｅ）は、本発明の画像処理アルゴリズムの説明図。
【図４】図４（ａ）（ｂ）（ｃ）は、本発明の画像処理アルゴリズムの説明図。
【図５】図５（ａ）（ｂ）（ｃ）（ｄ）（ｅ）は、本発明の画像処理アルゴリズムの説明図。
【図６】図６（ａ）（ｂ）（ｃ）は、本発明の画像処理アルゴリズムの説明図。
【図７】図７（ａ）（ｂ）は、本発明の画像処理アルゴリズムの説明図。
【図８】図８（ａ）（ｂ）（ｃ）（ｄ）（ｅ）は、本発明の画像処理アルゴリズムの説明図。
【図９】図９（ａ）（ｂ）（ｃ）は、本発明の画像処理アルゴリズムの説明図。
【図１０】図１０（ａ）（ｂ）（ｃ）（ｄ）（ｅ）は、本発明の画像処理アルゴリズムの説明図。
【図１１】図１１（ａ）（ｂ）（ｃ）は、本発明の画像処理アルゴリズムの説明図。
【図１２】図１２は、本発明の画像処理アルゴリズムの説明図。
【図１３】図１３（ａ）（ｂ）は、本発明の画像処理アルゴリズムの説明図。
【図１４】図１４（ａ）（ｂ）は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図１５】図１５は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図１６】図１６は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図１７】図１７は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図１８】図１８は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図１９】図１９は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図２０】図２０は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図２１】図２１は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図２２】図２２は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図２３】図２３は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図２４】図２４は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図２５】図２５は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図２６】図２６は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図２７】図２７は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図２８】図２８は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図２９】図２９は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図３０】図３０は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図３１】図３１は、本発明の画像処理アルゴリズムを用いた欠陥検査方法の説明図。
【図３２】図３２（ａ）（ｂ）は、従来技術の画像処理アルゴリズムの説明図。
【図３３】図３３（ａ）（ｂ）は、従来技術の画像処理アルゴリズムの説明図。
【図３４】図３４（ａ）（ｂ）は、従来技術の画像処理アルゴリズムの説明図。
【図３５】図３５（ａ）（ｂ）は、従来技術の画像処理アルゴリズムの説明図。
【図３６】図３６（ａ）（ｂ）は、従来技術の画像処理アルゴリズムの説明図。
【図３７】図３７（ａ）（ｂ）は、従来技術の画像処理アルゴリズムの説明図。
【発明を実施するための形態】
【００６５】
以下、本発明の実施形態を、図面を参照して説明する。
【００６６】
（１）本発明の画像処理アルゴリズム
本発明の基本となる画像処理アルゴリズムについて、図１乃至図６を用いて説明する。図１（ａ）は図３３（ａ）の不良画像ＰＤ１に撮像されている不良ワークＷＤ１を原画像すなわち画像処理の対象とするデジタル画像として、この原画像に本発明の画像処理アルゴリズムを適用するための説明図である。ここに、図１（ａ）の不良ワークＷＤ１は上記不良画像ＰＤ１の中からテンプレートマッチング法を用いて抽出したものである。不良ワークＷＤ１の表面の各領域については既に図３３（ａ）を用いて説明したので、ここでは省略する。また図１（ｂ）に、図１（ａ）に示す原画像における各領域の画素値を表形式で示す。これらの画素値は図３３（ｂ）の対応する領域の画素値と同一である。すなわち図１（ａ）の原画像もまた、図３３（ａ）と同じくグレースケール画像である。
【００６７】
初めに図１（ａ）において、ワークＷＤ１および印ＭＤ１の領域に注目する。これらの領域にはそれぞれ欠陥Ｄ１およびＤ２が存在する。そして欠陥Ｄ１およびＤ２を除外した領域、すなわち図３２（ａ）の良品画像ＰＧ１内の良品ワークＷＧ１と同一の領域を見ると、線対称性を有する領域であることがわかる。この良品ワークＷＧ１と同一の領域は、不良ワークＷＤ１とその表面にマーキングされている印ＭＤ１により構成されている。そして上述のように不良ワークＷＤ１は長方形の外形を有し、印ＭＤ１は円形である。またワークＷＤ１の対角線の交点と印ＭＤ１の中心位置はおおむね一致している。よって不良ワークＷＤ１と印ＭＤ１からなる領域は、図１（ａ）に示す２本の直線Ｌ１およびＬ２に関して線対称であることがわかる。具体的には基準直線としての第１直線Ｌ１を対称軸として上下対称であり、第１直線Ｌ１は原画像を上半分と下半分に等しい数の画素に分割する。同様に基準直線としての第２直線Ｌ２を対称軸として左右対称であり、第２直線Ｌ２は原画像を左半分と右半分に等しい数の画素に分割する。
【００６８】
本発明の画像処理アルゴリズムは、このように１本以上の対称軸に関して線対称となる領域を有する画像について、欠陥検査を行うべき検査対象領域を容易に選出することができるものである。本発明の画像処理アルゴリズムの原理を説明する際には、簡単のために図２に示すような縦４個、横４個の正方形状に配置された１６個の画素を用いることにする。図２において各画素は正方形の形状で、その中にそれぞれの画素の位置を示す固有のアドレスが記載されている。このアドレスは、各画素に対して図２の横方向となるＸおよび縦方向となるＹを組み合わせた二次元表示で付与される。具体的なアドレスの付与方法を以下に説明する。
【００６９】
まずＸ方向およびＹ方向のアドレス値の増加する方向を定めるために、Ｘ＝０およびＹ＝０となる原点を左上にとる。そして、二次元アドレス（Ｘ，Ｙ）のＸとＹをそれぞれ図２の矢印Ｘ方向およびＹ方向に増加させる。すなわち、左上角に位置する画素のアドレスは（０，０）となり、その右側に位置する画素のアドレスは（０，０）からＸアドレスの値を１だけ増加させて（１，０）となる。同様に左上角の画素の下側に位置する画素のアドレスは（０，０）からＹアドレスの値を１だけ増加させて（０，１）となる。このようにしてＸアドレスとＹアドレスの値を変化させて、原点から最も遠い右下角に位置する画素のアドレスは（０，０）からＸアドレスの値を３だけ増加させるとともに、Ｙアドレスの値を３だけ増加させて（３，３）となる。以下の説明においては、画素のアドレスをこの方法によって表現する。
【００７０】
図３乃至図６は、本発明の画像処理アルゴリズムの原理を説明する図である。図３（ａ）は、図３２（ａ）の良品画像ＰＧ１内の良品ワークＷＧ１を、図２に示すような縦４個、横４個の正方形状に配置された１６個の画素で原画像としてモデル化したものである。各画素には図３２（ｂ）の表に対応するような画素値を記載してある。なお、図３２（ａ）における良品ワークＷＧ１の形状は長方形であるが、図３（ａ）においては簡単のため正方形でモデル化している。また図３２（ａ）における印ＭＧ１は円形であるが、図３（ａ）においては全１６個からなる画素のうち中央部にあるアドレス（１，１）、（２，１）、（１，２）、（２，２）の４個の画素でモデル化している。この場合、これら中央部の４個の画素を取り囲む１２個の画素が、図３２（ａ）における良品ワークＷＧ１をモデル化したものとなる。
【００７１】
ここに、図３２（ｂ）における良品ワークＷＧ１の画素値は１００であり、印ＭＧ１の画素値は２５０である。しかし図３（ａ）においては、良品ワークＷＧ１の画素値として１００近傍のいくつかのばらつかせた値を上記１２個の画素のそれぞれに割り当てるとともに、印ＭＧ１の画素値として２５０近傍のいくつかのばらつかせた値を上記４個の画素のそれぞれに割り当てている。このような画素値のばらつきは実際の画像において、たとえばノイズにより生ずるものである。
【００７２】
なお図３（ａ）においては、１６個の画素のそれぞれの画素値に対応して、当該画素の明るさ（白色を帯びる度合い）と暗さ（黒色を帯びる度合い）を視覚的かつ相対的に表現している。例えば、図３２（ａ）における印ＭＧ１に対応する図３（ａ）の画素は、上述のように中央部のアドレス（１，１）、（２，１）、（１，２）、（２，２）の４個の画素である。これらの画素の画素値は２５０近傍であり、目視すると白色である。よって、上記中央部の４個の画素は地に模様のない白抜きの正方形になっている。一方、図３２（ａ）における良品ワークＷＧ１に対応する図３（ａ）の画素は、上述のように上記中央部の４個の画素を取り囲む１２個の画素である。これらの画素の画素値は１００近傍であり、目視すると濃いグレーである。よって、上記１２個の画素は画素値を示す数字以外の地の部分に、多数のきわめて短い水平な線分からなる模様を配置した正方形となっている。これらの１６個の画素を示す図３（ａ）を目視すると、図１（ａ）と同様に中央部分が白くかつその周囲が濃いグレーであることを、視覚的に理解することが可能となる。以後、本発明の画像処理アルゴリズムの説明においては、図３（ａ）以外の１６個の画素によるモデルについても同様の方法で、各画素の相対的な明るさや暗さを視覚的に表現する。
【００７３】
なお、以下の説明においては文章の簡素化を目的として、アドレス（ａ，ｂ）に配置される画素のことを（ａ，ｂ）の画素と表記する。同様に、アドレス（ａ，ｂ）に配置される画素の画素値のことを（ａ，ｂ）の画素値と表記する。ここで、図３（ａ）には図１と同様に対称軸としての第１直線Ｌ１および第２直線Ｌ２を重ねて記載してある。この図３（ａ）を用いて、以下に本発明の画像処理アルゴリズムについて順を追って説明する。
【００７４】
本発明の画像処理アルゴリズムは、上述のように基準直線としての対称軸すなわち図３（ａ）における第１直線Ｌ１あるいは第２直線Ｌ２に関して線対称となる領域を有する画像に適用される（一方の領域を第１領域と呼び、他方の領域を第２領域と呼ぶ）。ここに、図３（ａ）において第１直線Ｌ１を対称軸とした場合について、各画素の画素値の対称性に着目する。例えば（０，０）に位置する画素値１００の画素と（０，３）に位置する画素値１０３の画素は、対称位置に配置されている。同様に例えば（２，１）に位置する画素値２５５の画素と（２，２）に位置する画素値２５３の画素もまた、対称位置に配置されている。以後原画像を構成する画素を原画素と名付ける。
【００７５】
このとき図３（ａ）の１６個の原画素の集合を正方形の折り紙と考えると、第１直線Ｌ１を折り目としてこの折り紙を折ることで、前記対称位置にある原画素どうしを互いに重ねることができる。この処理を上下折り返しと呼ぶ。本発明の画像処理アルゴリズムは、最初にこの上下折り返しによって重なった２個の原画素すなわち第１直線Ｌ１に関して線対称の位置に配置される２個の原画素の画素値について、差分となる差分画素値を全原画素について算出する。別言すると、上下折り返しによって重なった２個の原画素を１つのペアとし、全ペアの各々について差分画素値を算出する。この工程を差分算出工程と名付ける。差分算出工程のあとで、算出した差分画素値を有する差分画素を、その差分画素値の算出に用いた２個の原画素と同一の位置に配置して差分画像（第１差分画像）を生成する。例えば、第１領域内の第１位置の原画素と第２領域内の第２位置の原画素とのペアを用いて差分画素値を算出した場合には、この差分画素値を有する差分画素を、差分画像の第１位置と第２位置とに配置して差分画像を生成する。この工程を差分画像生成工程と名付ける。
【００７６】
図３（ａ）の原画像に対して差分算出工程および差分画像生成工程を実行して生成した第１差分画像を図３（ｂ）に示す。例えば図３（ａ）の原画像において、上記（０，０）の原画素と（０，３）の原画素を用いて差分算出工程を実行すると、得られる差分画素値は１０３−１００＝３となる。よってこの差分画素値３を有する差分画素を用いて差分画像生成工程を実行すると、図３（ｂ）の第１差分画像において（０，０）および（０，３）の画素値は３となる。同様に原画像において上記（２，１）の原画素と（２，２）の原画素を用いて差分算出工程を実行すると、得られる差分画素値は２５５−２５３＝２となる。よってこの差分画素値２を有する差分画素を用いて差分画像生成工程を実行すると、図３（ｂ）の第１差分画像において（２，１）および（２，２）の画素値は２となる。
【００７７】
ここで、図３（ｂ）に示す第１差分画像において、１６個の画素の画素値はすべて最小の画素値である０にきわめて近い小さい値である。このような小さい画素値が生成されるのは、上述のように図３（ａ）において第１直線Ｌ１を対称軸として対称位置に配置される２個の原画素の差分画素を、これら２個の原画素と同一の位置に配置して図３（ｂ）を生成することに起因している。これら２個の原画素は対称位置に配置されているために、それぞれの画素値がきわめて近接している。よって、これら２個の画素の差分画素値は０にきわめて近い値になる。このような画素値を有する図３（ｂ）の１６個の画素を目視すると黒色である。これに対応して図３（ｂ）における１６個の画素はすべて、画素値を示す数字以外の地の部分に、多数の右上がりの斜線からなる模様を配置した正方形となっている。
【００７８】
次に本発明の画像処理アルゴリズムは、図３（ａ）において左右対称の対称軸である第２直線Ｌ２に注目する。この第２直線Ｌ２は原画像を左半分と右半分に等しい８個の画素に分割する。第２直線Ｌ２の左側に位置する８個の原画素と、第２直線Ｌ２の右側に位置する８個の原画素は互いに対称位置に配置されている。例えば（０，０）に位置する画素値１００の原画素と（３，０）に位置する画素値１１０の原画素は、対称位置に配置されている。同様に例えば（１，１）に位置する画素値２５４の原画素と（２，１）に位置する画素値２５５の原画素もまた、対称位置に配置されている。
【００７９】
このとき上述の第１直線Ｌ１に関する線対称の場合と同様に、図３（ａ）の１６個の原画素の集合を正方形の折り紙と考えると、第２直線Ｌ２を折り目としてこの折り紙を折ることで、前記対称位置にある原画素どうしを互いに重ねることができる。この処理を左右折り返しと呼ぶ。この左右折り返しによって重なった２個の原画素すなわち第２直線Ｌ２に関して線対称の位置に配置される２個の原画素の画素値について、差分となる差分画素値を全原画素について算出する差分算出工程を実行する。差分算出工程のあとで、算出した差分画素値を有する差分画素を、その差分画素値の算出に用いた２個の原画素と同一の位置に配置して差分画像（第２差分画像）を生成する差分画像生成工程を実行する。
【００８０】
図３（ａ）の原画像に対して差分算出工程および差分画像生成工程を実行して生成した第２差分画像を図３（ｃ）に示す。例えば図３（ａ）の原画像において、上記（０，０）の原画素と（３，０）の原画素を用いて差分算出工程を実行すると、得られる差分画素値は１１０−１００＝１０となる。よってこの差分画素値１０を有する差分画素を用いて差分画像生成工程を実行すると、図３（ｃ）の第２差分画像において（０，０）および（３，０）の画素値は１０となる。同様に原画像において上記（１，１）の原画素と（２，１）の原画素を用いて差分算出工程を実行すると、得られる差分画素値は２５５−２５４＝１となる。よってこの差分画素値１を有する差分画素を用いて差分画像生成工程を実行すると、図３（ｃ）の第２差分画像において（１，１）および（２，１）の画素値は１となる。
【００８１】
ここで、図３（ｃ）に示す第２差分画像において１６個の画素の画素値はすべて最小の画素値である０にきわめて近い小さい値である。このような小さい画素値が生成されるのは上述の図３（ｂ）についての説明と同様に、図３（ａ）において第２直線Ｌ２を対称軸として対称位置に配置される２個の原画素の差分画素を、これら２個の原画素と同一の位置に配置して図３（ｃ）を生成することに起因している。これら２個の原画素は対称位置に配置されているために、それぞれの画素値がきわめて近接している。よって、これら２個の画素の差分画素値は０にきわめて近い値になる。このような画素値を有する図３（ｃ）の１６個の画素を目視すると黒色である。これに対応して図３（ｃ）においては図３（ｂ）と同様に１６個の画素はすべて、画素値を示す数字以外の地の部分に多数の右上がりの斜線からなる模様を配置した正方形となっている。
【００８２】
ここで、上記差分算出工程における上下折り返しおよび左右折り返しをソフトウェアで実行する具体的なアルゴリズムについて、説明を補足する。図３（ａ）における１６個の画素にはそれぞれ図２のようにアドレスが付与されている。
【００８３】
そこで上下折り返しを実行する際には、図２に基づいて図３（ａ）における第１直線Ｌ１の一端のアドレスおよび他端のアドレスを決定したのち、これらのアドレスを差分算出工程を実行するソフトウェア（以下差分算出ソフト）に入力として渡す。これによって差分算出ソフトは対称軸を認識して、その一端および他端のアドレスによって上下折り返しであることを判断することができる。
【００８４】
同様に左右折り返しを実行する際には、図２に基づいて図３（ａ）における第２直線Ｌ２の一端のアドレスおよび他端のアドレスを決定したのち、これらのアドレスを差分算出ソフトに入力として渡す。これによって差分算出ソフトは対称軸を認識して、その一端および他端のアドレスによって左右折り返しであることを判断することができる。
【００８５】
図３（ａ）における第１直線Ｌ１の一端のアドレスは、（０，１）と（０，２）の２個の画素に挟まれた位置に対応する。よって、そのアドレスは（０，１．５）となり、これは図２において矢印Ｙで示す方向における（０，０）と（０，３）の画素のアドレスの中央値に他ならない。
【００８６】
同様に図３（ａ）における第１直線Ｌ１の他端のアドレスは、（３，１）と（３，２）の２個の画素に挟まれた位置に対応する。よって、そのアドレスは（３，１．５）となり、これは図２において矢印Ｙで示す方向における（３，０）と（３，３）の画素のアドレスの中央値に他ならない。
【００８７】
このようにして決定した（０，１．５）および（３，１．５）という２個のアドレスを差分算出ソフトに入力として渡すと、差分算出ソフトは図２のアドレスをテーブルとして持つので、このテーブルを参照して対称軸としての第１直線Ｌ１を生成することができる。そして対称軸が水平であることから、差分算出ソフトは上下折り返しを実行すると判断して、例えば上記の図３（ａ）における（０，０）の画素値と（０，３）の画素値について差分を算出し、同様に（２，１）の画素値と（２，２）の画素値について差分を算出する。
【００８８】
図３（ａ）における第２直線Ｌ２についても同様に、一端のアドレスとして（０，０）と（３，０）の中央値である（１．５，０）を差分算出ソフトに入力として渡すとともに、他端のアドレスとして（０，３）と（３，３）の中央値である（１．５，３）を差分算出ソフトに入力として渡せばよい。これらのアドレスを受け取った差分算出ソフトは、上記第１直線Ｌ１の場合と同様に、図２のアドレスのテーブルを参照して対称軸としての第２直線Ｌ２を生成することができる。そして対称軸が垂直であることから、差分算出ソフトは左右折り返しを実行すると判断して、例えば上記の図３（ａ）における（０，０）の画素値と（３，０）の画素値について差分を算出し、同様に（１，１）の画素値と（２，１）の画素値について差分を算出する。
【００８９】
以上の工程によって、図３（ａ）の原画像から図３（ｂ）に示す第１差分画像および図３（ｃ）に示す第２差分画像を生成したら、次に各差分画像を構成する１６個の画素の画素値に注目する。具体的には、これら１６個の画素のうち、大多数の画素値に対して大きく離間した値となる画素値（以下離間画素値）を有する画素（以下離間画素）を選出する。その手順を図３（ｄ）乃至図４（ｃ）を用いて、以下に説明する。
【００９０】
最初に図３（ｂ）に示す１６個の差分画素の画素値を降順に並べる。その結果を図３（ｂ）の直下に図３（ｄ）として示す。図３（ｄ）は上下に配置される３つの段によって構成されている。各段には数値が記載され、その左端に当該段の数値の意味を標題として記している。各段の数値間には下向きの矢印が記載され、これにより矢印の上側の段の数値から矢印の下側の段の数値を生成する工程の説明を理解する一助としている。
【００９１】
図３（ｄ）の上段の標題は差分画素値降順で、上記図３（ｂ）に示す１６個の差分画素の画素値を降順に並べた結果である。画素値は７、３、２、１の４種類であり、左端に最大値となる７を配置し、そこから右に順次小さい画素値を配置している。右端は最小値となる１が配置されている。
【００９２】
次に上段において隣接する差分画素値間の差分を算出して中段に配列する。中段の標題は隣接差分画素値の差分値であり、上記差分値が記されている。左端の数値は４であり、この４という値は上段における左端の７とその右に隣接する３の差分である。これを表わすために、差分値４の算出に用いた上段の画素値７および３と中段の差分値４がそれぞれ下向きの矢印によって対応づけられている。中段におけるその他の数値についても同様である。
【００９３】
以上の工程を終了したら、次に中段の数値における最大値を選出する。この選出は、上述の離間画素を選出するための工程である。図３（ｄ）の場合は中段における左端の数値４が最大値である。そして、この最大値となる差分値を生成した上段の２個の画素値は、左端の７とそれに隣接する３である。この７と３の区間は中段の差分値が最大となる区間であり、この区間において７と３の中央値を閾値として設定すれば、上記の離間画素を選出することができる。実際、図３（ｄ）の上段に記された４個の数値を見ると、左端の数値７に対して残りの３個の数値は３、２、１であり、これら３個の数値間の差分は比較的小さい。これに対して左端の７だけが大きく離間しており、離間画素と考えられる。
【００９４】
このように中段の差分値が最大となる区間を選出したのち、当該区間の両端の差分画素値の中央値を算出して、離間画素を選出するための閾値とする。この閾値算出結果を図３（ｄ）の下段に示す。下段の標題は差分値の最大区間における閾値であり、中段の数値から選出された最大の差分値４を算出した上段の画素値である７と３の中央値としての５（小数点以下は切り上げ）を閾値として記載している。
【００９５】
以上の工程を経て閾値を設定したら、上段の画素値の中からこの閾値より大きい値となる画素値を選出する。この選出された画素値が離間画素値であり、離間画素値を有する画素が離間画素である。選出される画素値が７であることは、上記の説明から明らかである。
【００９６】
その結果、離間画素の画素値「７」は、他の画素値「３、２、１」から所定値以上に離間している。所定値の例は、最大の差分値４である。この場合、離間画素の画素値「７」は、画素値「３」からは４だけ離間し、画素値「２」からは５だけ離間し、画素値「１」からは６だけ離間しており、他の画素値から所定値以上に（すなわち４以上）離間している。
【００９７】
以上の図３（ｂ）に示す第１差分画像に対する図３（ｄ）の工程と同様に、図３（ｃ）に示す第２差分画像に対しても図３（ｅ）の工程によって閾値を設定し、図３（ｃ）の画素の中から離間画素値１０を選出する。図３（ｃ）と図３（ｅ）の関係は上述の図３（ｂ）と図３（ｄ）の関係と同一である。また図３（ｅ）の上段、中段、下段の数値と各段の間の矢印の意味も図３（ｄ）と同一である。よって、図３（ｅ）についての詳細な説明は省略する。
【００９８】
以上の工程を経て選出された図３（ｂ）および図３（ｃ）における離間画素を、それぞれ図４（ａ）および図４（ｂ）に画素値を二重枠で囲むことにより表示する。こうして２つの差分画像において離間画素を選出したのちに、次の工程として２つの差分画像における離間画素の共通部分を選出する。そして、この選出した共通部分が原画像において欠陥が存在する可能性がある領域、すなわち欠陥検査を行うべき検査対象領域となる。
【００９９】
ここで、図４（ａ）および図４（ｂ）には離間画素の共通部分が存在しない。その理由は、図３（ａ）の原画像が図３２（ａ）に示す良品ワークＷＧ１、すなわち欠陥を有していないワークをモデル化したものであり、２本の対称軸としての第１直線Ｌ１および第２直線Ｌ２に対して線対称となるためである。よって図３（ａ）の原画像において欠陥検査を行うべき検査対象領域は存在しない。
【０１００】
図３（ａ）の原画像において、図４（ａ）および図４（ｂ）に画素値を二重枠で囲むことにより示す離間画素の共通部分と同一の位置に配置される原画素を、画素値を二重枠で囲むことにより示した画像を図４（ｃ）に示す。上述のように図４（ａ）および図４（ｂ）に上記二重枠で示す２つの差分画像における離間画素は、共通部分を有していない。このため、図４（ｃ）には画素値を二重枠で囲まれる画素は存在せず、図３（ａ）と同一の画像となる。
【０１０１】
以上のような図３（ａ）のモデルを用いた説明から、図３２（ａ）の良品画像ＰＧ１に示すような線対称の領域を有する良品ワークＷＧ１の原画像に対して本発明の画像処理アルゴリズムを適用した場合には、欠陥検査を行うべき検査対象領域は選出されないことがわかる。
【０１０２】
（２）本発明の画像処理アルゴリズムの適用例
次に、図３３（ａ）の不良画像ＰＤ１に示すような線対称の領域を有する不良ワークＷＤ１の画像に対して本発明の画像処理アルゴリズムを適用した場合について説明する。図５（ａ）は、図３３（ａ）の不良画像ＰＤ１内の不良ワークＷＤ１を、上記の図３（ａ）と同様に１６個の画素を用いて原画像としてモデル化したものである。各画素には図３３（ｂ）の表に対応するような画素値を記載してある。
【０１０３】
ここで図５（ａ）と図３（ａ）の相違点、すなわち図５（ａ）における欠陥の表現について説明する。図５（ａ）と図３（ａ）の相違点は、アドレス（０，０）および（２，２）に配置される画素の画素値にある。図３（ａ）におけるアドレス（０，０）の画素値は１００であり、この画素値は図３２（ｂ）に示す良品ワークＷＧ１の画素値に対応している。これに対して図５（ａ）におけるアドレス（０，０）の画素値は２００であり、この画素値は図３３（ｂ）に示す不良ワークＷＤ１上の欠陥Ｄ１の画素値に対応している。同様に図３（ａ）におけるアドレス（２，２）の画素値は１００であり、この画素値は図３２（ｂ）に示す印ＭＧ１の画素値に対応している。これに対して図５（ａ）におけるアドレス（２，２）の画素値は１８０であり、この画素値は図３３（ｂ）に示す印ＭＤ１上の欠陥Ｄ２の画素値に対応している。
【０１０４】
そして、図５（ａ）においても図３（ａ）と同様に、中央部にあるアドレス（１，１）、（２，１）、（１，２）、（２，２）の４個の画素を取り囲む１２個の画素が不良ワークＷＤ１となる。また図５（ａ）における不良ワークＷＤ１の画素値は、欠陥を表わす上記（０，０）を除いて図３（ａ）と同一の値となっている。同様に印ＭＤ１の画素値は、欠陥を表わす上記（２，２）を除いて図３（ａ）と同一の値となっている。なお、図５に示す各画素の画素値と当該画素を表わす正方形の地の模様との関係は、図３と同一である。
【０１０５】
ここに、上述のように図５（ａ）の画素値と図３（ａ）の画素値を比較すると、図５（ａ）における（０，０）および（２，２）の画素値がそれぞれ図３（ａ）と異なる２００および１８０である。これらの画素値を目視すると、図３３（ｂ）に示すようにいずれも薄いグレーである。この目視で薄いグレーに見える画素は良品画像である図３２（ａ）の各領域の対応を示す図３２（ｂ）には存在せず、その結果として図３２（ａ）をモデル化した図３（ａ）には存在しない。そこでこの薄いグレーに対応するために、図５（ａ）における（０，０）および（２，２）の画素は画素値を示す数字以外の地の部分に、多数のドットからなる模様を配置した正方形となっている。
【０１０６】
図５（ａ）の原画像に対して上述の差分算出工程および差分画像生成工程を実行して生成した第１差分画像を図５（ｂ）に示す。また、同様の工程を実行して生成した第２差分画像を図５（ｃ）に示す。ここで図５（ｂ）および図５（ｃ）を、それぞれ図３（ｂ）および図３（ｃ）と比較する。まず図５（ｂ）と図３（ｂ）を比較すると、両者には差異があることがわかる。図３（ｂ）における１６個の画素の画素値はすべて、上述のように０にきわめて近い。これに対して図５（ｂ）における１６個の画素値のうち、（０，０）および（０，３）の画素値は９７で、（２，２）および（２，１）の画素値は６５である。これらは他の画素の画素値がきわめて０に近いのに対して、０に比べてかなり大きい画素値すなわち０から離間した画素値である。
【０１０７】
これら４個の画素の画素値が０から離間する理由を以下に説明する。図５（ａ）の原画像において、欠陥に対応する（０，０）の画素値は２００である。そして第１直線Ｌ１を対称軸として（０，０）の画素と対称位置に配置される画素は欠陥に対応しない（０，３）であり、その画素値は１０３である。これら２個の画素値の差分画素値を原画像の（０，０）および（０，３）の位置に配置したのが、図５（ｂ）の第１差分画像である。このため、原画像において欠陥に対応する（０，０）の画素値と欠陥に対応しない（０，３）の画素値の差分が大きいことに起因して、図５（ｂ）の（０，０）および（０，３）の画素値が大きくなり、０から離間する。また図５（ａ）の原画像において、欠陥に対応する（２，２）の画素値は１８０である。そして第１直線Ｌ１を対称軸として（２，２）の画素と対称位置に配置される画素は欠陥に対応しない（２，１）であり、その画素値は２５５である。これら２個の画素値の差分画素値を原画像の（２，２）および（２，１）の位置に配置したのが、図５（ｂ）の第１差分画像である。このため、原画像において欠陥に対応する（２，２）の画素値と欠陥に対応しない（２，１）の画素値の差分が大きいことに起因して、図５（ｂ）の（２，２）および（２，１）の画素値が大きくなり、０から離間する。
【０１０８】
次に図５（ｃ）と図３（ｃ）を比較すると、やはり両者には差異があることがわかる。図３（ｃ）における１６個の画素の画素値はすべて、上述のように０にきわめて近い。これに対して図５（ｃ）における１６個の画素値のうち、（０，０）および（３，０）の画素値は９０で、（１，２）および（２，２）の画素値は７１である。これらは他の画素の画素値がきわめて０に近いのに対して、０に比べてかなり大きい画素値すなわち０から離間した画素値である。
【０１０９】
これら４個の画素の画素値が０から離間する理由を以下に説明する。図５（ａ）の原画像において、欠陥に対応する（０，０）の画素値は２００である。そして第２直線Ｌ２を対称軸として（０，０）の画素と対称位置に配置される画素は欠陥に対応しない（３，０）であり、その画素値は１１０である。これら２個の画素値の差分画素値を原画像の（０，０）および（３，０）の位置に配置したのが、図５（ｃ）の第２差分画像である。このため、原画像において欠陥に対応する（０，０）の画素値と欠陥に対応しない（３，０）の画素値の差分が大きいことに起因して、図５（ｃ）の（０，０）および（３，０）の画素値が大きくなり、０から離間する。また図５（ａ）の原画像において、欠陥に対応する（２，２）の画素値は１８０である。そして第２直線Ｌ２を対称軸として（２，２）の画素と対称位置に配置される画素は欠陥に対応しない（１，２）であり、その画素値は２５１である。これら２個の画素値の差分画素値を原画像の（２，２）および（１，２）の位置に配置したのが、図５（ｃ）の第２差分画像である。このため、原画像において欠陥に対応する（２，２）の画素値と欠陥に対応しない（１，２）の画素値の差分が大きいことに起因して、図５（ｃ）の（２，２）および（１，２）の画素値が大きくなり、０から離間する。
【０１１０】
以上の事実により、差分算出工程および差分画像生成工程を実行すると、欠陥の存在する可能性がある領域の画素値から生成される差分画素値は、欠陥の存在しない領域の画素値から生成される差分画素値に対して大きく離間することがわかる。これを利用して、図５（ｂ）および図５（ｃ）の差分画像において離間画素値を有する離間画素を選出すれば、原画像において離間画素を生成した原画素が配置される位置には欠陥が存在する可能性があると判断することができる。この離間画素値を選出する工程が、上記の図３（ｄ）および図３（ｅ）を用いた説明における、隣接差分画素値の差分値が最大となる区間に閾値を設定する工程に相当する。
【０１１１】
ここで、図５（ｂ）および図５（ｃ）に対して図３（ｄ）および図３（ｅ）と同一の工程を実施した場合の結果を図５（ｄ）および図５（ｅ）に示す。図５（ｄ）および図５（ｅ）の記載方法は、それぞれ図３（ｄ）および図３（ｅ）と同一である。よって、図５（ｄ）および図５（ｅ）についての詳細な説明は省略する。図５（ｄ）の下段に記載の閾値を用いて図５（ｂ）の画素の中から離間画素値を選出すると、６５および９７となる。同様に図５（ｅ）の下段に記載の閾値を用いて図５（ｃ）の画素の中から離間画素値を選出すると、７１および９０となる。
【０１１２】
以上の工程を経て選出された図５（ｂ）および図５（ｃ）における離間画素を、それぞれ図６（ａ）および図６（ｂ）に画素値を二重枠で囲むことにより表示する。このようにして２つの差分画像において離間画素が選出されたのちに、次の工程として２つの差分画像における離間画素の共通部分を選出する。図６（ａ）および図６（ｂ）における離間画素の共通部分は（０，０）および（２，２）である。
【０１１３】
図５（ａ）の原画像においてこの共通部分と同一の位置に配置される原画素を、画素値を二重枠で囲むことにより示した画像を図６（ｃ）に示す。この二重枠の画素は、図５（ａ）において欠陥に対応する画素と同一である。すなわち図３３（ａ）の不良画像ＰＤ１に示すような、欠陥Ｄ１およびＤ２以外の領域が線対称となる不良ワークＷＤ１の原画像に対して本発明の画像処理アルゴリズムを適用した場合には、欠陥検査を行うべき検査対象領域を容易に選出することができることがわかる。この工程を上述の従来技術において検査対象領域を選別する工程と比較すると、工程数が大きく減少していることがわかる。また、作業者が原画像を目視して判断を行う工程が大幅に削減されていることがわかる。これは原画像が対称軸に関して線対称となる領域を有する場合に、本発明の画像処理アルゴリズムを用いることにより生じる効果である。
【０１１４】
以上の説明においては、原画像として図３（ａ）のような、正方形の中心に一回り小さい正方形印を有する、上下対称かつ左右対称の形状を有するワークのモデルを例にとった。この場合には上述のように２本の対称軸を有しており、原画像から生成される差分画像は対称軸の数に対応した２個となる。しかし、本発明においては対称軸の数は２本に限定されるものではない。Ｃを自然数としたときに、対称軸の数がＣ本であれば、上記差分算出工程および差分画像生成工程を経て生成される差分画像の数はＣ個となる。その場合にはＣ個の差分画像について離間画素を選出して、それらの共通部分を原画像において欠陥検査を行うべき検査対象領域とする。
【０１１５】
（３）本発明のワーク搬送と画像処理：第１直線Ｌ１および第２直線Ｌ２を使用
ところで、多数のワークの撮像画像を得るためには、撮像装置がワークを撮像することが可能となる位置まで、搬送手段によってワークを次々に搬送することが必要である。このとき、ワークが上記対称軸を有している場合であっても、ワークの外形およびその面上におけるパーツの配置によっては、搬送手段におけるワークの搬送方法に起因して、複数の撮像画像におけるワークの対称軸の方向が一つに定まらないことがある。その一例について、図７を用いて説明する。この説明においては簡単のために、対称軸が１個である良品ワークを例にとっている。
【０１１６】
図７（ａ）は良品ワークＷＧ２（以下ワークＷＧ２）を撮像したのち、上記のテンプレートマッチング法を用いてワークＷＧ２を抽出することによって生成した原画像の形状および寸法を示す図である。ワークＷＧ２は一辺がａの正方形であり、その一辺の中点Ｐ０において当該辺に接して円形の印ＭＧ２がマーキングされている。当該辺の一端となるワークＷＧ２の角から中点Ｐ０までの長さａ／２と印ＭＧ２の直径ｄの間にはｄ＜ａ／２の関係がある。この原画像に重ねて、図１（ａ）と同様に第１直線Ｌ１と第２直線Ｌ２を記載してある。図７（ａ）において、原画像は明らかに第１直線Ｌ１に関して線対称ではなく、第２直線Ｌ２に関して線対称である。すなわち対称軸は第２直線Ｌ２である。
【０１１７】
ここで、ワークＷＧ２を撮像手段による撮像が可能となる位置まで搬送する搬送手段について、図７（ｂ）を用いて説明する。図７（ｂ）は搬送手段Ｔ１により搬送されるワークＷＧ２を搬送手段Ｔ１の上側から見た様子を示す。搬送手段Ｔ１は水平に設置され、ワークＷＧ２を載置した状態で搬送する、両側に互いに略平行なエッジＥ１およびＥ２を有した細長い直線状のフィーダーＦ１を備えている。エッジＥ１およびＥ２には、載置したワークＷＧ２がフィーダＦ１の外側に飛び出すことを防止する機構が付加される場合もある。ワークＷＧ２は図７（ａ）に示す面が上側になるように、かつ当該面の対向する２辺がエッジＥ１およびＥ２と略平行となるように、フィーダーＦ１の上面に載置される。そして図示されない駆動機構の作用により、図７（ｂ）に示す矢印Ｘ１の方向にフィーダーＦ１が移動することによって、ワークＷＧ２は直線経路で搬送される。図示されない撮像手段は搬送手段Ｔ１の上側に設置され、ワークＷＧ２がその直下位置まで搬送された時に、ワークＷＧ２の上面を図７（ａ）に示す撮像画像を得るように撮像可能である。
【０１１８】
なお図７（ｂ）においては、搬送手段Ｔ１に載置されたワークＷＧ２をＷ１乃至Ｗ４の４通りの向きについて図示してある。上述のようにワークＷＧ２は正方形である。そして搬送手段Ｔ１はワークＷＧ２を載置する時に、上述のように図７（ａ）に示す面が上側になるように、かつ当該面の対向する２辺がエッジＥ１およびＥ２と略平行となるように位置決めしている。すなわち、ワークＷＧ２が搬送手段Ｔ１によって搬送される際に、印ＭＧ２は搬送方向（矢印Ｘ１）に対して４通りの位置関係を生じる。この４通りの位置関係を図７（ｂ）において、搬送される先頭のワークＷ１、先頭から２番目のワークＷ２、３番目のワークＷ３、最後尾のワークＷ４として示す。
【０１１９】
図７（ｂ）においてはさらに、撮像画像における対称軸となり得る上記の第１直線Ｌ１および第２直線Ｌ２を各ワークＷ１乃至Ｗ４に重ねて表示してある。ワークＷ１乃至Ｗ４における第１直線Ｌ１および第２直線Ｌ２から明らかなように、Ｗ１とＷ３の撮像画像は第２直線Ｌ２が対称軸となり、Ｗ２とＷ４の撮像画像は第１直線Ｌ１が対称軸となる。すなわち、ワークＷＧ２が搬送手段に載置される方向に依存して、撮像画像からワークを抽出して生成した原画像の対称軸の方向が一つに定まらない。
【０１２０】
このような場合に、作業者が原画像を個別に目視して、第１直線Ｌ１および第２直線Ｌ２のいずれが対称軸になるのかをその都度決定するのは、きわめて煩雑である。しかし本発明の画像処理アルゴリズムは、このように個々の原画像に対して２本の対称軸のいずれか１本を選択する必要があっても、上述の図３および図４あるいは図５および図６を用いた説明と同様に、２本の対称軸の両方について差分画像を生成することによって、正しく検査対象領域を選出することができる。その工程について、図８乃至図１１を用いて検証しながら説明する。
【０１２１】
図８（ａ）は図７（ａ）に示す良品ワークＷＧ２を、図３（ａ）と同様に１６個の画素によりモデル化した原画像である。図７（ａ）における印ＭＧ２は、図８（ａ）において（１，０）および（２，０）の２個の画素でモデル化している。それらの画素値は図３（ａ）において中央部に配置される（１，１）、（２，１）、（１，２）、（２，２）の４個の画素と類似する値である。また図８（ａ）において（１，０）および（２，０）の２個の画素以外の１４個の画素は、図７（ａ）において印ＭＧ２を除外した良品ワークＷＧ２をモデル化したものである。それらの画素値は、図３（ａ）において中央部に配置される（１，１）、（２，１）、（１，２）、（２，２）を取り囲む１２個の画素と類似する値である。また、図８（ａ）には図３（ａ）と同様に第１直線Ｌ１および第２直線Ｌ２を重ねて記載してある。
【０１２２】
なお、以下の説明で用いる図８（ｂ）、図８（ｃ）、図９（ａ）乃至図９（ｃ）で各画素を表わす１６個の正方形において、それぞれの画素値を示す数字以外の正方形内部の模様は図３のそれと同一である。また、図８（ｄ）および図８（ｅ）の表記方法も図３（ｄ）および図３（ｅ）と同一である。よって、これらに関する詳細な説明は省略する。
【０１２３】
図８（ａ）の原画像に対して差分算出工程および差分画像生成工程を実行して生成した第１差分画像を図８（ｂ）に示す。また、同様にして生成した第２差分画像を図８（ｃ）に示す。ここで、図８（ａ）に示す原画像は第１直線Ｌ１について対称性を有していない。具体的には（１，０）および（２，０）の画素と第１直線Ｌ１に関して対称位置に配置される（１，３）および（２，３）の画素は、画素値が大きく異なる。これは図８（ａ）が図７（ａ）の良品ワークＷＧ２をモデル化した画像であることから明らかである。図８（ａ）における（１，０）および（２，０）の画素は図７（ａ）における印ＭＧ２に対応している。これに対して図８（ａ）における（１，３）および（２，３）の画素は図７（ａ）における良品ワークＷＧ２に対応している。
【０１２４】
図７（ａ）を目視すると、第１直線Ｌ１について対称性を有していないことは明らかである。このため、原画像に対して上下折り返しを実行して生成される図８（ｂ）の第１差分画像において、原画像が上記対称性を有していない位置に配置される（１，０）と（１，３）の画素値は１４５である。そして同じく原画像が上記対称性を有していない位置に配置される（２，０）と（２，３）の画素値は１４２である。これらの画素値は、他の１２個の画素値に対して離間画素値となっている。ところで、これらの１５０近傍の画素値はこの図８（ｂ）において初めて出現した。これに視覚的に対応するために、これら４個の画素はすべて、画素値を示す数字以外の地の部分に多数の右下がりの斜線からなる模様を配置した正方形となっている。
【０１２５】
一方、図８（ａ）の原画像は第２直線Ｌ２に関して対称性を有している。このため、原画像に対して左右折り返しを実行して生成される図８（ｃ）の第２差分画像は、すべての画素が０にきわめて近い画素値である。次に、図８（ｂ）および図８（ｃ）に対して上述の図３（ｄ）および図３（ｅ）と同一の工程を実施した場合の結果を図８（ｄ）および図８（ｅ）に示す。図８（ｄ）の下段に記載の閾値を用いて、図８（ｂ）の画素の中から離間画素値を選出すると、１４２および１４５となる。同様に図８（ｅ）の下段に記載の閾値を用いて、図８（ｃ）の画素の中から離間画素値を選出すると、９および１０となる。
【０１２６】
以上の工程を経て選出された図８（ｂ）および図８（ｃ）における離間画素を、それぞれ図９（ａ）および図９（ｂ）に画素値を二重枠で囲むことにより表示する。このようにして２つの差分画像において離間画素が選出されたのちに、次の工程として２つの差分画像における離間画素の共通部分を選出する。図９（ａ）および図９（ｂ）における離間画素の共通部分は存在しない。その理由は、上述の図４（ａ）と図４（ｂ）において離間画素に共通部分が存在しない理由と同一である。このため、図８（ａ）の原画像においてこの共通部分と同一の位置に配置される原画素の画素値を、二重枠で囲むことにより示した画像を生成すると図９（ｃ）のようになり、二重枠で囲まれる画素値は存在しない。このように本発明の画像処理アルゴリズムは、２個の対称軸のいずれか１個に関してのみ対称性を有する良品ワークの原画像に対しても、２本の対称軸を有する原画像に対する場合と同様に適用することができる。
【０１２７】
次に、図７（ａ）の良品ワークＷＧ２に対して欠陥を付加した不良ワークを図８（ａ）のようにモデル化して、図８（ｂ）乃至図９（ｃ）と同様の工程を実行する。図１０（ａ）は図８（ａ）に示す原画像に２箇所の欠陥を付加した不良ワークＷＤ２の原画像である。欠陥を示す画素は（０，１）および（２，３）である。
【０１２８】
ここで図８（ａ）すなわち図７（ａ）の良品ワークＷＧ２に対応する原画像を見ると、次のことがわかる。図８（ａ）において（１，０）および（２，０）の画素および第１直線Ｌ１に関してこれら２個の画素と対称位置に配置される（１，３）および（２，３）の画素を除去すると、原画像はアルファベットのＨに類似した形状となる。そしてこのＨ形状の原画像を構成する１２個の画素値から見て、Ｈ形状の原画素は第１直線Ｌ１および第２直線Ｌ２のいずれに関しても対称性を有している。そして、除去した４個の画素により構成される領域は、第２直線Ｌ２に対してのみ対称性を有している。
【０１２９】
そして図１０（ａ）で欠陥を有する画素として付加した（０，１）の画素は、上記のＨ形状の原画素すなわち第１直線Ｌ１および第２直線Ｌ２のいずれに関しても対称性を有する領域に属している。また、図１０（ａ）で欠陥を有する画素として付加した（２，３）の画素は、上記の除去した原画素すなわち第２直線Ｌ２に対してのみ対称性を有する領域に属している。このように欠陥を示す画素を、原画像において対称性の観点から異なる性質を有する２箇所に配置したモデルが図１０（ａ）である。なお上記（０，１）および（２，３）の画素はいずれも、図７（ａ）に示す良品ワークＷＧ２における印ＭＧ２以外のワーク上の欠陥に対応する位置に配置されている。そして、図１０（ａ）において（０，１）の画素値は２２であり、印ＭＧ２以外のワーク上の画素値が１００近傍であるのに対してかなり小さく、目視すると正常部分に比べて黒く見える欠陥である。また、図１０（ａ）において（２，３）の画素値は１７０であり、印ＭＧ２以外のワーク上の画素値が１００近傍であるのに対してかなり大きく、目視すると正常部分に比べて白く見える欠陥である。
【０１３０】
この図１０（ａ）に示す不良ワークの原画像に対して上述の差分算出工程および差分画像生成工程を実行して生成した第１差分画像を図１０（ｂ）に示す。また、同様の工程を実行して生成した第２差分画像を図１０（ｃ）に示す。そして、図１０（ｂ）および図１０（ｃ）に対して図８（ｄ）および図８（ｅ）と同一の工程を実施した場合の結果を図１０（ｄ）および図１０（ｅ）に示す。図１０（ｄ）の下段に記載の閾値を用いて、図１０（ｂ）の画素の中から離間画素値を選出すると、７３、８３、１４２、１４５となる。同様に図１０（ｅ）の下段に記載の閾値を用いて、図１０（ｃ）の画素の中から離間画素値を選出すると、６４および８７となる。
【０１３１】
以上の工程を経て選出された図１０（ｂ）および図１０（ｃ）における離間画素を、それぞれ図１１（ａ）および図１１（ｂ）に画素値を二重枠で囲むことにより表示する。このようにして２つの差分画像において離間画素が選出されたのちに、次の工程として２つの差分画像における離間画素の共通部分を選出する。図１１（ａ）および図１１（ｂ）における離間画素の共通部分は（０，１）、（１，３）、（２，３）である。図１０（ａ）の原画像において図１１（ａ）および図１１（ｂ）に示す離間画素の共通部分と同一の位置に配置される原画素の画素値を、二重枠で囲むことにより示した画像を図１１（ｃ）に示す。図１１（ｃ）における二重枠の画素は欠陥検査を行うべき検査対象領域であり、図１０（ａ）において欠陥に対応する画素を包含している。このように本発明の画像処理アルゴリズムは、２個の対称軸のいずれか１個に関してのみ対称性を有する不良ワークの原画像に対しても、２本の対称軸を有する原画像に対する場合と同様に適用することができ、容易に検査対象領域を選出することができる。
【０１３２】
（４）本発明のワーク搬送と画像処理：第３直線Ｌ３を使用
上記の図３乃至図６等を用いた本発明の画像処理アルゴリズムの説明においては、原画像の対称軸となる第１直線あるいは第２直線は、水平あるいは垂直であった。しかし、本発明のアルゴリズムにおける対称軸はこれらに限定されるものではない。他の対称軸の例として、傾斜した対称軸について図１２および図１３を用いて説明する。
【０１３３】
図１２は良品ワークＷＧ３（以下ワークＷＧ３）を撮像したのち、上記のテンプレートマッチング法を用いてワークＷＧ３を抽出することによって生成した原画像の形状および寸法を示す図である。ワークＷＧ３は一辺がａの正方形であり、その一辺の一点Ｐ３０および当該辺に隣接する辺の一点Ｐ３１においてそれぞれの辺に接して直径ｄの円形の印ＭＧ３１がマーキングされている。ここに、ａおよびｄの値は図７（ａ）に示すワークＷＧ２と同一である。ワークＷＧ３には他に、円形の印ＭＧ３１が接していない残りの二辺のそれぞれの一点Ｐ３２およびＰ３３において接するように、印ＭＧ３１と同一の寸法を有する円形の印ＭＧ３２がマーキングされている。各辺の一端となるワークＷＧ３の角から中点Ｐ０までの長さａ／２と印ＭＧ３１およびＭＧ３２の直径ｄの間には、ｄ＜ａ／２の関係がある。図１２のワークＷＧ３は、その左上の角と右下の角を結んだ右下がりとなる第３直線Ｌ３に関して線対称である。
【０１３４】
この図１２に示すワークＷＧ３を図８（ａ）と同様にモデル化した原画像を図１３（ａ）に示す。図１３（ａ）において、（２，０）（３，０）（３，１）の３個の画素は、図１２における印ＭＧ３１に対応する。同様に図１３（ａ）において（０，２）（０，３）（１，３）の３個の画素は、図１２における印ＭＧ３２に対応する。これら６個の画素値は図８（ａ）における（１，０）および（２，０）の画素と類似する値である。そして図１３（ａ）における上記６個以外の１０個の画素は、図８（ａ）における（１，０）および（２，０）以外の１４個の画素と類似する値である。ここで図１３（ａ）の画素の配置は、原画素の左上と右下を結ぶ右下がりとなる第３直線Ｌ３を対称軸とする線対称であることがわかる。すなわち、この場合の折り返しは図３における上下折り返しあるいは左右折り返しと同様の表記をすると、右上左下折り返しとなる。
【０１３５】
この図１３（ａ）の原画素について図３と同様に差分算出工程および差分画像生成工程を実行する際には、やはり上述のように対称軸となる第３直線Ｌ３の一端および他端のアドレスを差分算出ソフトに渡す。ところでこの第３直線Ｌ３の場合には、例えば図３（ａ）における第１直線Ｌ１の場合と異なり、一端および他端のアドレスが原画素に配置される画素のアドレスと重複する。具体的には、図１３（ａ）における第３直線Ｌ３の一端のアドレスは（０，０）であり、他端のアドレスは（３，３）である。さらに図１３（ａ）から、第３直線Ｌ３は上記一端および他端のみならず、それ以外の通過経路においても（１，１）および（２，２）の画素と重複している。このように対称軸の通るアドレスと画素のアドレスが重複する場合の差分算出工程および差分画像生成工程について、以下に説明する。
【０１３６】
まず、図１３（ａ）において第３直線Ｌ３を対称軸とした時に、原画像が第３直線によってどのように右上と左下において等しい数の画素に分割されるのかについて考える。上述のように（０，０）、（１，１）、（２，２）、（３，３）の画素は第３直線Ｌ３上にある。このため、これら４個の画素は対称軸としての第３直線によって右上と左下に分割することができない。よって、これら４個の画素は差分算出工程において対象としないことにする。具体的なアルゴリズムにおいては、これら４個の画素の差分画素値を０とする。この差分画素値０の意味は、画素を差分算出の対象から除外するか、その画素自身との差分を算出するかのいずれかの結果であると考えればよい。
【０１３７】
図１３（ａ）において、これら第３直線Ｌ３と重複する４個の画素以外の１２個の画素については、第３直線の右上と左下に対称配置されている画素について画素値の差分を算出する。例えば（２，０）の画素値は（０，２）の画素値と差分を算出し、（２，１）の画素値は（１，２）の画素値と差分を算出すればよい。このようにして生成した差分画像を図１３（ｂ）に示す。図１３（ｂ）において、上述のように（０，０）、（１，１）、（２，２）、（３，３）の画素値はすべて０であり、その他の１２個の画素値は第３直線Ｌ３に関して対称配置となっているため、画素値はきわめて０に近い値となっている。
【０１３８】
（５）本発明の欠陥検査方法
ここまでに説明した本発明の画像処理アルゴリズムを用いたワークの欠陥検査方法について、図１４乃至図３１を用いて以下に説明する。
【０１３９】
図１４は本発明の画像処理アルゴリズムを用いたワークの欠陥検査方法の概略フローチャートである。この概略フローチャートは２つのモードにより構成される。図１４（ａ）は閾値設定モードであり、複数の不良ワークの原画像から本発明の画像処理アルゴリズムを用いて差分画像を生成し、生成した差分画像を用いてワークの検査対象領域を選出するための閾値を設定する工程である。また図１４（ｂ）は検査実行モードであり、検査対象となるワークの原画像から閾値設定モードで設定した閾値を用いて検査対象領域を選出したのち、当該領域について欠陥検査を実行する工程である。閾値設定モードと検査実行モードは、図１４（ａ）の最下部および図１４（ｂ）の最上部に示す番号１０１の結合子によって接続されている。
【０１４０】
図１５乃至図３１は本発明の画像処理アルゴリズムを用いたワークの欠陥検査方法の詳細フローチャートである。具体的には、図１４に示されるステップ番号Ｓ１乃至Ｓ１４の定義済み処理の詳細なステップを記したものである。図１５乃至図３１はいずれも図１４に記載される定義済み処理の工程名およびステップ番号を最上部に記し、その下に当該の定義済み処理の入口を示すＩＮと記された端子を配置している。次にこの端子に続いて当該定義済み処理の詳細なステップを示している。そして全ステップを終了すると、当該の定義済み処理から出て図１４に示す次の定義済み処理に進むための出口を示す、ＯＵＴと記された端子を最下部に配置している。
【０１４１】
なお、図１５乃至図３１におけるステップ番号は、図１４との対応を示すために図１４におけるステップ番号を上１桁あるいは上２桁に割り当てて、それに続く下２桁に当該詳細フローチャート内のステップ番号を０１から昇順に割り当てている。
【０１４２】
また後述のように、本発明の画像処理アルゴリズムを用いたワークの欠陥検査方法においては、図１４に示すいくつかの定義済み処理において実行される共通の処理をサブルーチン化している。サブルーチンはＳｕｂ１およびＳｕｂ２からなり、図２０にＳｕｂ１の詳細フローチャートを示すとともに、図２３にＳｕｂ２の詳細フローチャートを示す。これらの詳細フローチャートにおけるステップ番号は、図２０のＳｕｂ１については上２桁を２１とし、図２３のＳｕｂ２については上２桁を２２としている。ステップ番号の下２桁については、図２０と図２３で付与方法が異なる。図２０のＳｕｂ１においては、下から２桁目を当該ステップと図１４（ａ）に示すステップＳ５およびＳ６の対応を示す数字としての５あるいは６としている。そして一番下の桁を上記ステップＳ５あるいはＳ６の内部におけるステップ番号として、１から昇順に数字を割り当てている。これに対して図２３のＳｕｂ２においては、Ｓｕｂ２が図１４（ａ）に示すステップＳ７のみに対応するので、下から２桁目を数字０に固定している。そして、一番下の桁をステップＳ７の内部におけるステップ番号として、１から昇順に数字を割り当てている。
【０１４３】
なお、以後の図１５乃至図３１に示すステップおよび対応する説明において、レジスタに画像を格納するという表記がいくたびか使われる。この画像を格納するという表記は、図２により定義される画素のＸアドレスとＹアドレスおよび当該画素の画素値を対応させて一つの配列（例えば３次元配列）にまとめて、画像を構成する画素数に一致する配列数からなる配列群を構成してレジスタに格納することを意味している。
【０１４４】
最初に図１４（ａ）および図１５乃至図２６を用いて、閾値設定モードについて説明する。
【０１４５】
（５．１）ステップＳ１
図１４（ａ）において端子ＳＴＡＲＴに続くステップＳ１は既知ワーク撮像工程である。これは良品であること、あるいは不良であることが既知となっているワークをそれぞれ複数準備して、それらを撮像する工程である。既知ワーク撮像工程（Ｓ１）の詳細フローチャートを図１５に示す。
【０１４６】
図１５のステップＳ１０１においてＡ個の良品ワークを撮像して良品画像を得る。このＡ個のワークは良品であることを既知としている。次にステップＳ１０２に進み、ステップＳ１０１において撮像した良品画像に１からＡまでの番号を付与する。続いてステップＳ１０３においてＢ個の不良ワークを撮像して不良画像を得る。このＢ個のワークは不良であることを既知としている。次にステップＳ１０４に進み、ステップＳ１０３において撮像した不良画像に１からＢまでの番号を付与する。以上のステップＳ１０１乃至Ｓ１０４によって、それぞれに固有の番号を付与したＡ個の良品画像およびＢ個の不良画像が得られたことになる。
【０１４７】
ステップＳ１０５以降は、Ｂ個の不良画像について図１４（ａ）のステップＳ１に続くステップＳ２乃至ステップＳ７を実行するための準備である。まずステップＳ１０５において、上記ステップＳ２乃至ステップＳ７で処理を実行中の不良画像の番号を記憶するレジスタＪに０を格納して、レジスタＪを初期化する。続いてステップＳ１０６において、Ｊの値に１を加算する。そしてステップＳ１０７において、１からＢまでの番号を付与した不良画像の中からＪの値で指定される番号の画像を取り出す。ここではＪ＝１であり、取り出した画像は不良画像１となる。そしてステップＳ１を終了して図１４（ａ）に示すステップＳ２に進む。
【０１４８】
（５．２）ステップＳ２
図１４（ａ）においてステップＳ２は検査対象ワーク抽出工程である。これは上述のテンプレートマッチング法を用いて、撮像画像からワークを抽出する工程である。検査対象ワーク抽出工程（Ｓ２）の詳細フローチャートを図１６に示す。
【０１４９】
図１６のステップＳ２０１においてテンプレートマッチング法を用いて、ワークの最外縁を探索して確定する。次に、ステップＳ２０２においてワークの最外縁内を検査対象ワークの画像とする。そしてステップＳ２を終了して図１４（ａ）に示すステップＳ３に進む。
【０１５０】
（５．３）ステップＳ３
図１４（ａ）においてステップＳ３は単色画像生成工程であり、ステップＳ２で抽出した検査対象ワークについて単色画像を生成する工程である。単色画像生成工程（Ｓ３）の詳細フローチャートを図１７に示す。
【０１５１】
図１７のステップＳ３０１において、検査対象ワークの画像がカラーか否かについて判断する。判断結果がＹｅｓの場合すなわちカラー画像の場合はステップＳ３０２に進む。ステップＳ３０２において、カラー画像である検査対象ワークの画像からＫ個の単色画像を生成する。ここにＫは自然数である。例えば上述のようにカラー画像をＲ（赤）、Ｇ（緑）、Ｂ（青）の三原色に分解して３つの単色画像を生成すれば、Ｋ＝３となる。また上述のようにＮＴＳＣ信号を得る前段階で使用されるコンポーネント信号であるＹＩＱ信号のＹ成分を生成すれば、Ｋ＝１となる。ステップＳ３０２でカラー画像からＫ個の単色画像を生成したのち、次のステップＳ３０３に進む。
【０１５２】
ステップＳ３０３において、ステップＳ３０２で生成したＫ個の単色画像に、あらかじめ定めた基準に基づいて１からＫまでの番号を付与する。ここに、あらかじめ定める基準の一例として、カラー画像をＲ（赤）、Ｇ（緑）、Ｂ（青）の三原色に分解して３つの単色画像を生成した場合について説明する。この場合にはＲ（赤）に基づいて生成した単色画像に１を付与し、Ｇ（緑）に基づいて生成した単色画像に２を付与し、Ｂ（青）に基づいて生成した単色画像に３を付与する基準が考えられる。ステップＳ３０３において単色画像に番号を付与したのち、ステップＳ３０４に進む。
【０１５３】
ステップＳ３０４以降は、不良画像１について図１４（ａ）のステップＳ３に続くステップＳ４乃至ステップＳ７を実行するための準備である。まずステップＳ３０４において、上記ステップＳ４乃至ステップＳ７で処理を実行中の単色画像の番号を記憶するレジスタＮに０を格納して、レジスタＮを初期化する。続いてステップＳ３０５において、Ｎの値に１を加算する。そしてステップＳ３０６において、１からＫまでの番号を付与した単色画像の中からＮの値で指定される番号の単色画像（この場合は第１の単色画像）を、原画像という名称のレジスタに格納する。そしてステップＳ３を終了して図１４（ａ）に示すステップＳ４に進む。
【０１５４】
ここまでのステップＳ３０２乃至ステップＳ３０６は、上記ステップＳ３０１において検査対象ワークの画像がカラー画像と判断された場合に実行される。もし検査対象ワークの画像がカラー画像ではなく、ステップＳ３０１における判断がＮｏの場合は、ステップＳ３０１に続いてステップＳ３０７へ進む。ここに、検査対象ワークの画像がカラー画像ではないとは単色画像であり、検査対象ワークから生成される単色画像は検査対象ワークの画像そのものである。これは、単色画像の数Ｋ＝１であることに他ならない。そこでステップＳ３０７においては、検査対象ワークの画像を第１の単色画像とする。そしてステップ３０８において単色画像の数を示すレジスタＫに１を格納して、ステップＳ３０９に進む。ステップＳ３０９に進むと、図１４（ａ）においてステップＳ３に続くステップＳ４乃至ステップＳ７で処理する単色画像の番号を記憶するレジスタＮに１を格納する。そして、ステップＳ３０６に進み、第Ｎの単色画像すなわち第１の単色画像を、原画像という名称のレジスタに格納する。そしてステップＳ３を終了して図１４（ａ）に示すステップＳ４に進む。
【０１５５】
（５．４）ステップＳ４
図１４（ａ）においてステップＳ４は対称性判断工程であり、ステップＳ３で生成した単色画像の対称性を判断する。対称性判断工程（Ｓ４）の詳細フローチャートを図１８に示す。
【０１５６】
図１８のステップＳ４０１において、図１７に示す単色画像生成工程（Ｓ３）のステップＳ３０６において原画像という名称のレジスタに格納された第Ｎの単色画像を取り出して、対称軸を有するか判断する。もし対称軸を有していない場合には、判断はＮｏとなって端子ＥＮＤに進み、欠陥検査を終了する。原画像が対称軸を有していない場合に欠陥検査を終了する理由を、以下に説明する。図１４に概略フローチャートを示す欠陥検査方法は、図１乃至図６に示す本発明の画像処理アルゴリズムを用いている。そして本発明の画像処理アルゴリズムは上述のように、１本以上の対称軸に関して線対称となる領域を有する原画像を対象とするものである。このため、対称軸を有していない原画像に対しては、本発明の画像処理アルゴリズムを用いることができず、それゆえに欠陥検査はこの時点で終了することになる。
【０１５７】
一方、ステップＳ４０１において第Ｎの単色画像が対称軸を有している場合には、判断はＹｅｓとなってステップＳ４０２に進む。ステップＳ４０２においては、原画像が有する対称軸の数をレジスタＣに格納する。
【０１５８】
ステップＳ４０３以降は、不良画像１について図１４（ａ）のステップＳ４に続くステップＳ５乃至ステップＳ７を実行するための準備である。まずステップＳ４０３において、上記ステップＳ５乃至ステップＳ７で処理を実行中の単色画像における対称軸の番号を記憶するレジスタＭに０を格納して、レジスタＭを初期化する。続いてステップＳ４０４において、Ｍの値に１を加算する。次にステップＳ４０５において、ＯＮＥＭという名称のレジスタに第Ｍの対称軸の一端の座標を格納する。そしてステップＳ４０６において、ＯＴＥＭという名称のレジスタに第Ｍの対称軸の他端の座標を格納する。このＯＮＥＭおよびＯＴＥＭは図３（ａ）、図５（ａ）および図１３（ａ）を用いて説明した本発明の画像処理アルゴリズムにおける対称軸の一端および他端の座標を示す引数として、後述するステップＳ５においてサブルーチンＳｕｂ１に渡される。ここまででステップＳ４を終了して図１４（ａ）に示すステップＳ５に進む。
【０１５９】
（５．５）ステップＳ５およびＳ６
図１４（ａ）においてステップＳ５は差分算出工程である。そしてそれに続くステップＳ６は差分画像生成工程である。これらの工程には、図３乃至図６に示す本発明の画像処理アルゴリズムが用いられる。この画像処理アルゴリズムは後続の工程においてもたびたび用いられるので、詳細フローチャートにおいてはこれら２つの工程を一つにまとめたサブルーチンＳｕｂ１によって定義している。
【０１６０】
図１９に差分算出工程（Ｓ５）および差分画像生成工程（Ｓ６）を示す。上述のように、これら２つの工程はステップＳ２１として定義されるサブルーチンＳｕｂ１により構成される。ステップＳ２１に示すように、サブルーチンＳｕｂ１の引数は原画像、第Ｍの対象軸の一端の座標（ＯＮＥＭ）、第Ｍの対称軸の他端の座標（ＯＴＥＭ）である。
【０１６１】
１番目に示す引数としての原画像は、メインプログラムにおける図１４（ａ）のステップＳ３で、詳しくは図１７に示すステップＳ３０６で設定された原画像すなわち第Ｎの単色画像のことである。このステップＳ３０６で設定された原画像すなわち第Ｎの単色画像に対して、上述のように図１４（ａ）のステップＳ４で、詳しくは図１８に示すステップＳ４０１において対称性を判断する。判断がＹｅｓの場合には上述のようにステップＳ４０２乃至ステップＳ４０６を実行する。２番目に示す引数としてのＯＮＥＭは上述のように、ステップＳ４０５において第Ｍの対称軸の一端の座標を格納したレジスタのことである。同様に３番目に示す引数としてのＯＴＥＭは上述のように、ステップＳ４０６において第Ｍの対称軸の他端の座標を格納したレジスタのことである。
【０１６２】
これら３つの引数としての原画像、ＯＮＥＭ、ＯＴＥＭをメインプログラムから渡されたサブルーチンＳｕｂ１は、上述のように図１４（ａ）におけるステップＳ５（差分算出工程）とそれに続くステップＳ６（差分画像生成工程）を実行する。
【０１６３】
サブルーチンＳｕｂ１の詳細フローチャートを図２０に示す。図２０において端子Ｓｕｂ１（原画像、ＯＮＥＭ、ＯＴＥＭ）に続くステップＳ２１５１乃至ステップＳ２１５３は図１４（ａ）におけるステップＳ５（差分算出工程）である。
【０１６４】
まずステップＳ２１５１において、ＯＮＥＭとＯＴＥＭを直線によって接続して対称軸を生成する。この工程により対称軸を生成することは、既に図３（ａ）、図５（ａ）および図１３（ａ）を用いた本発明の画像処理アルゴリズムの説明において、第１直線Ｌ１、第２直線Ｌ２、第３直線Ｌ３の一端および他端の座標を直線で接続する工程として説明している。図２０のステップＳ２１５１で対称軸を生成したのち、ステップＳ２１５２に進む。
【０１６５】
ステップＳ２１５２で原画像を対称軸の両側において等しい画素数に２分割する。この工程は、例えば図５（ａ）に示す１６個の原画素を、対称軸としての第１直線Ｌ１の上側に位置する８個の原画素と、下側に位置する８個の原画素に分割することに対応する。図２０のステップＳ２１５２において原画素を２分割したのち、ステップＳ２１５３に進む。
【０１６６】
ステップＳ２１５３で対称軸の両側において線対称の位置に配置される原画素ＰＡとＰＢについて、それぞれの画素値ＢＡとＢＢの差分となる差分画素値ＢＡＢを算出する。この工程は、例えば図５（ａ）において（０，０）に位置する原画素（画素値２００）を原画素ＰＡとし、（０，３）に位置する原画素（画素値１０３）を原画素ＰＢとしたときに、それぞれの画素値２００および１０３の差分を２００−１０３＝９７のように算出して、その値９７を差分画素値ＢＡＢとすることに対応する。図２０のステップＳ２１５３において差分画素値を算出すると、ステップＳ５（差分算出工程）を終了し、サブルーチンＳｕｂ１内で図１４（ａ）におけるステップＳ６（差分画像生成工程）に進む。差分画像生成工程は、図２０に示すようにステップＳ２１６１からなる。
【０１６７】
ステップＳ２１６１において、差分画素値ＢＡＢを有する差分画素ＰＡＢを原画像における原画素ＰＡおよびＰＢの位置に配置して差分画像を生成する。この工程は、例えば図５（ａ）において前記（０，０）に位置する原画素ＰＡと、前記（０，３）に位置する原画素ＰＢによって９７という差分画素値ＢＡＢが生成されると、図５（ｂ）の（０，０）および（０，３）の位置に９７という画素値を有する差分画素を配置することに対応する。図２０においてステップＳ２１６１を終了すると、ステップＳ６（差分画像生成工程）を終了する。そして同時に、図１９におけるステップＳ２１としてのサブルーチンＳｕｂ１を終了してメインプログラムに戻る。その際に図２０のステップＳ２１６１において生成した差分画像を戻り値としてメインプログラムに渡す。図２０において、このことをステップＳ２１６１に続く端子内に、Ｒｅｔｕｒｎ（差分画像）として示す。メインプログラムへの戻り先は、図１４（ａ）においてステップＳ７として記載される閾値範囲設定工程の入力である。
【０１６８】
（５．６）ステップＳ７
図１４（ａ）においてステップＳ７は閾値範囲設定工程である。これはステップＳ６で生成した差分画像について、上述の本発明の画像処理アルゴリズムの説明に用いた図３（ｄ）（ｅ）や図５（ｄ）（ｅ）のような、差分画像における差分画素値を降順に並べて隣接差分画素どうしの差分値を算出し、差分値が最大となる区間を選出する工程である。
【０１６９】
閾値範囲設定工程（Ｓ７）の詳細フローチャートを図２１乃至図２３に示す。図２１における最初のステップＳ７０１において、図２０に示すサブルーチンＳｕｂ１で生成した差分画像を差分画像ＮＪという名称のレジスタに格納する。ここに、差分画像ＮＪというレジスタ名称に用いられている２つの番号としてのＪおよびＮについて説明する。
【０１７０】
この名称におけるＪは、図１５に示す既知ワーク撮像工程（Ｓ１）のステップＳ１０７において取り出した不良画像ＪのＪに対応する番号である。そして上述のように、まず図１６に示す検査対象ワーク抽出工程（Ｓ２）において、不良画像Ｊからテンプレートマッチング法を用いて検査対象ワークの画像を抽出したのち、次に図１７に示す単色画像生成工程（Ｓ３）において、検査対象ワークの画像から１つ以上の単色画像を生成している。それらの単色画像に１からＫ（Ｋは１以上）までの番号を付与して（ステップＳ３０２およびＳ３０７）、ステップＳ３０６において、第Ｎの単色画像を原画像という名称のレジスタに格納している。ここで、Ｎは上述のように、図１４（ａ）に示すステップＳ４乃至ステップＳ７で処理を実行中の単色画像の番号を記憶するレジスタＮの値である。そしてこのＮは、差分画像ＮＪというレジスタ名称におけるＮに一致する。上記ステップＳ３０６において第Ｎの単色画像を格納した原画像は上述のように、図１８に示す対称性判断工程（Ｓ４）と図１９に示す差分算出工程（Ｓ５）および差分画像生成工程（Ｓ６）によって順次処理されて、差分画像が生成される。これらをまとめると、差分画像ＮＪというレジスタには、不良画像Ｊをもとに生成した第Ｎの単色画像から生成した差分画像が格納されることになる。
【０１７１】
以上のようにステップＳ７０１で差分画像を差分画像ＮＪに格納したのち、ステップＳ２２に進む。ステップＳ２２は上述のように、図１４に示すいくつかのステップにおいて実行される共通の処理であるため、サブルーチンＳｕｂ２として定義されている。サブルーチンＳｕｂ２は差分画像を引数としている。ここに、図２０に示すサブルーチンＳｕｂ１において、ステップＳ２１６１で生成した差分画像をメインプログラムに戻り値として返している。サブルーチンＳｕｂ２はその差分画像をメインプログラムから引数として受け取る。そして受け取った差分画像を用いて上述の本発明の画像処理アルゴリズムの説明に用いた図５（ｄ）（ｅ）のような、差分画像における差分画素値を降順に並べて隣接差分画素どうしの差分値を算出し、差分値が最大となる区間を選出する工程を実行する。サブルーチンＳｕｂ２の詳細フローチャートを図２３に示す。
【０１７２】
図２３におけるステップＳ２２０１は、図５（ｄ）（ｅ）において上段に標題として差分画素値降順と記されている工程に対応する。すなわち、ステップＳ２２０１において最初に差分画像を構成するＸ個の画素に番号１からＸを付与する。次に各番号の画素の画素値ＰＶ（１）からＰＶ（Ｘ）を、最大値から最小値まで降順にＸ個の配列ＡＰ（１）からＡＰ（Ｘ）に格納する。このＡＰ（１）からＡＰ（Ｘ）までのＸ個の配列に格納したＸ個の画素値ＰＶ（１）からＰＶ（Ｘ）を順に左から右に記したものが、図５（ｄ）（ｅ）において上段に配置された数字である。ここに上述のように、図５（ｄ）の前記数字は図５（ａ）において第１直線Ｌ１を対称軸として生成した差分画像である図５（ｂ）に対応し、図５（ｅ）の前記数字は図５（ａ）において第２直線Ｌ２を対称軸として生成した差分画像である図５（ｃ）に対応している。こうしてステップＳ２２０１を実行したのち、ステップＳ２２０２に進む。
【０１７３】
ステップＳ２２０２において、後述のステップＳ２２０４において処理している画素の番号を格納するレジスタＳに０を格納して、初期化する。続いてステップＳ２２０３においてレジスタＳに格納されている数値に１を加算する。この段階でレジスタＳの数値は１となり、上記Ｓ２２０１において１番を付与された画素を処理することを示す。レジスタＳの値が確定したら、次にステップＳ２２０４に進む。
【０１７４】
ステップＳ２２０４は、図５（ｄ）（ｅ）において中段に標題として隣接差分画素値の差分値と記されている工程に対応する。ステップＳ２２０４において、配列ＡＰ（１）に格納された最大の画素値から配列ＡＰ（Ｘ）に格納された最小の画素値までを用いて、２個の隣接配列に格納された画素値間の差分となる差分画素値ＮＰを順次算出する。すなわち、上記ステップＳ２２０３において確定したレジスタＳの値を用いて表現すれば、ＡＰ（Ｓ＋１）−ＡＰ（Ｓ）を演算して、その結果をＮＰ（Ｓ）という名称のレジスタに格納する。ここに、全画素数がＸであるため、Ｓの値は１から（Ｘ−１）まで順次１ずつ加算されてステップＳ２２０４において処理される。上記差分の演算および格納の処理は、ステップＳ２２０４の中にソフトウェアの表記に従って、ＮＰ（Ｓ）←ＡＰ（Ｓ＋１）−ＡＰ（Ｓ）と記載されている。ステップＳ２２０４においてレジスタＮＰ（Ｓ）に格納された差分画素値を、図５（ｄ）（ｅ）において上段に配置された数字と矢印により対応させて順次表示したものが、中段に配置された数字である。ステップＳ２２０４を終了すると、ステップＳ２２０５に進む。
【０１７５】
ステップＳ２２０５において、ステップＳ２２０４で処理した画素の番号Ｓが全画素数よりも１だけ小さい値である（Ｘ−１）に等しいか否かについて判断する。すなわち、差分画像を構成するＸ個の全画素に対してステップＳ２２０４の処理を完了したかについて判断する。判断結果がＮｏの場合はステップＳ２２０３に戻り、レジスタＳの値に１を加算する。これにより、ステップＳ２２０４において処理する画素の番号が１だけ大きくなる。そして再びステップＳ２２０４においてこの番号が１だけ大きくなった画素について処理を実行する。これを繰り返してＸ個の全画素についてステップＳ２２０４における処理が完了すると、すなわちＳ＝Ｘ−１になると、ステップＳ２２０５の判断結果がＹｅｓになる。その場合にはステップＳ２２０６に進む。
【０１７６】
ステップＳ２２０６は、図５（ｄ）（ｅ）において下段に標題として差分値の最大区間における閾値と記されている工程のうち、最大区間を選出する工程に対応する。閾値の設定はサブルーチンＳｕｂ２を終了したのち、戻り値として後述する高下限値および低上限値をメインプログラムに返してから、メインプログラムにおいて実行する。ステップＳ２２０６において、ステップＳ２２０４において生成したＮＰ（１）からＮＰ（Ｘ−１）までの（Ｘ−１）個の差分画素値の中から、最大差分値ＭＸＮＰを選出する。これは図５（ｂ）において中段に記された隣接差分画素値の差分値の中から最大値５８を選出すること、あるいは図５（ｃ）において中段に記された隣接差分画素値の差分値の中から最大値６６を選出することに対応する。こうしてステップＳ２２０６において最大差分値ＭＸＮＰを選出したら、ステップＳ２２０７に進む。
【０１７７】
ステップＳ２２０７は、図５（ｄ）（ｅ）において下段に標題として差分値の最大区間における閾値と記されている工程のうち、閾値の設定をメインプログラムにおいて実行するための準備となる工程である。ステップＳ２２０７においては、ステップＳ２２０６において選出した最大差分値ＭＸＮＰの算出に用いた２個の隣接する配列ＡＰ（ＭＸ＋１）およびＡＰ（ＭＸ）に格納された画素値ＰＶ（ＭＸ＋１）およびＰＶ（ＭＸ）を、それぞれ高下限値ＨＢＰおよび低上限値ＬＴＰとして定義する。具体的には、ＨＢＰという名称のレジスタにＰＶ（ＭＸ＋１）を格納し、同時にＬＴＰという名称のレジスタにＰＶ（ＭＸ）を格納する。この格納の処理は、ステップＳ２２０７の中にソフトウェアの表記に従って、ＨＢＰ←ＰＶ（ＭＸ＋１）およびＬＴＰ←ＰＶ（ＭＸ）と記載されている。
【０１７８】
ここで、図５（ｄ）（ｅ）に示すようにただ１つの差分画像から生成した閾値をそのまま用いることによって生じる問題、およびこの問題を解決するための工程について説明する。
【０１７９】
上述のように、図５（ｄ）（ｅ）において中段に隣接差分画素値の差分値が示されている。そして下段にこの差分値の最大区間において算出した閾値が示されている。この下段の閾値は上段に記載される差分画素値の中から離間画素値を選出するためのもので、前記最大区間の両端の差分画素値（上段）の中央値を算出して閾値としている。具体的には、図５（ｄ）の場合には中段において最大値を有する区間として５８を選出しているので、下段において当該区間の両端の差分画素値である６５と７の中央値を算出している。その中央値は３６であり、それゆえに閾値は３６となる。図５（ｅ）についても同様に、中段において最大値を有する区間である６６を選出し、下段において当該区間の両端の差分画素値である７１と５の中央値を算出している。その中央値は３８であり、それゆえに閾値は３８となる。
【０１８０】
ところで、この図５（ｄ）（ｅ）は本発明の画像処理アルゴリズムの説明図であり、原画像は図５（ａ）に示す１つだけである。しかし、図２３に示すサブルーチンＳｕｂ２が処理する差分画像は、以下の工程を経て生成されているので複数存在する。差分画像を生成する工程において、最初に上述のようにＢ個の不良画像（図１５のステップＳ１０３）のうちの１つとしての不良画像Ｊをもとに（図１５のステップＳ１０７）１つ以上の単色画像を生成する（図１７のステップＳ３０２あるいはＳ３０７）。次にこれら１つ以上（Ｋ個）の単色画像の中から第Ｎの単色画像を原画像として（図１７のステップＳ３０６）、その原画像から差分画像を生成する（図２０のステップＳ２１５１乃至Ｓ２１６１）。
【０１８１】
こうして生成された差分画像が、図２３に示すサブルーチンＳｕｂ２の詳細フローチャートの最上部に位置する端子Ｓｕｂ２に引数として記載されている。すなわちサブルーチンＳｕｂ２は、同一の不良画像Ｊをもとに生成した単色画像が２つ以上である場合には、第１の単色画像から第Ｋの単色画像までの複数の単色画像のそれぞれから生成した差分画像をすべて処理する。そして、これらＫ個の単色画像を生成するための不良画像Ｊの個数は、１つではなく複数（Ｂ個）である。
【０１８２】
これらの点から明らかなように、サブルーチンＳｕｂ２は複数の差分画像について次々と処理を実行してゆく。それらの複数の差分画像は上述のように、全部でＢ個の不良画像に基づいてそれぞれ生成されている。このため、Ｂ個の不良画像における画素値のバラツキに対応して、サブルーチンＳｕｂ２が処理する差分画像の画素値もまたバラツキを生じる。すなわち図５（ｄ）（ｅ）において、上段に示す差分画素値が差分画像ごとにバラツキを生じる。これに起因して、中段に示す隣接差分画素値の差分値もまた差分画像ごとにバラツキを生じる。従って、下段に示す閾値が差分画像ごとにバラツキを生じて、１つに定まらないという問題を生じる。これが「第１の問題」である。この第１の問題を解決するためには、前記差分画像ごとの差分値のバラツキを解消して、すべての（Ｂ個の）不良画像から生成した複数の差分画像に対してただ１つの閾値を設定することができるようにすることが必要となる。
【０１８３】
また上述のように、サブルーチンＳｕｂ２が処理する差分画像は、１個の不良画像Ｊから複数（Ｋ個）生成された単色画像のそれぞれから生成されている。例えば上述のようにカラー画像である不良画像ＪをＲ（赤）、Ｇ（緑）、Ｂ（青）の三原色に分解して３個の単色画像を生成した場合には、全部で３個（Ｋ＝３）の単色画像が生成される。そして、これら３個の単色画像は上述のように、カラー画像における前記三原色のそれぞれの成分比率に対応して、各成分の画素値をグレースケールで表現したものである。
【０１８４】
そして、それぞれの単色画像から生成した全３種類の差分画像をサブルーチンＳｕｂ２で次々と処理することになる。その場合に、図５（ｄ）（ｅ）の中段に示す隣接差分画素値の差分値の最大区間が、それぞれの差分画像に対応してすべて同一となる保証はない。その理由は、上述のように不良画像Ｊの各画素における上記Ｒ（赤）、Ｇ（緑）、Ｂ（青）の三原色の成分比率が、すべての画素について異なっているためである。
【０１８５】
これに起因して、Ｋ個の差分画像において同一の位置に配置される画素の画素値は、上記成分比率に依存してそれぞれ異なる。よって、同一の不良画像Ｊから生成したＫ個の差分画像のそれぞれについて、図５（ｄ）（ｅ）の上段に示す差分画素値が異なってくる。それゆえに、中段に示す隣接差分画素値の差分値を算出した場合にもまた、その算出結果はＫ個の差分画像のそれぞれについて全く異なる値となりうる。すなわち、複数の単色画像のそれぞれから生成した差分画像に対応する隣接差分画素値の差分値の最大区間は、単色画像に対応して全く別の区間となりうる。その場合、差分値の最大区間を用いて閾値を設定する際に、閾値設定用の単色画像を選出する基準が必要になるという問題を生じる。これが「第２の問題」である。この第２の問題を解決するためには、前記選出する基準を明確化して、１個の不良画像をもとに生成した複数の単色画像の中から、閾値を設定するのに最適な単色画像を選出することが必要となる。
【０１８６】
図２１乃至図２３に示す閾値範囲設定工程（Ｓ７）においては、これらの問題を解決するために以下の工程により、差分画像の処理を行う。まず、図２３に示すステップＳ２２０７において、上述のように画素値ＰＶ（ＭＸ＋１）およびＰＶ（ＭＸ）を、それぞれ高下限値ＨＢＰおよび低上限値ＬＴＰとして定義する。そして、図２３の最下部の端子Ｒｅｔｕｒｎに記載のように、上記高下限値ＨＢＰおよび低上限値ＬＴＰを図２１に示す閾値範囲設定工程（Ｓ７）のメインプログラムに戻り値として渡す。
【０１８７】
図２１において、メインプログラムはステップＳ２２のサブルーチンＳｕｂ２から前記戻り値を受け取り、後述のステップＳ７０２以降において処理を実行する。この方法により、すべての（Ｂ個の）不良画像から生成した複数の差分画像に対して、ただ１つの閾値を設定することができるようにする。そして、すべての（Ｂ個の）不良画像から生成されるすべての単色画像（不良画像ごとにＫ個ずつ）のそれぞれに対応するＫ個の差分画像の中から、基準に基づいて上記閾値を設定するのに最適な差分画像を選出する。この最適な差分画像の選出は、最適な単色画像の選出に他ならない。
【０１８８】
以下に図２１および図２２を用いて、すべての不良画像から生成した複数の差分画像に対して、ただ１つの閾値を設定することができるようにする工程と、すべての不良画像から生成されるすべての単色画像のそれぞれに対応する差分画像の中から、上記閾値を設定するのに最適な差分画像を選出する工程について説明する。
【０１８９】
図２１に示す閾値範囲設定工程（Ｓ７）のステップＳ７０２において、ステップＳ２２すなわち図２３に示すサブルーチンＳｕｂ２から、戻り値としての高下限値ＨＢＰおよび低上限値ＬＴＰ（図２３のステップＳ２２０７および最下部の端子Ｒｅｔｕｒｎ）を受け取る。そしてこれらの戻り値のうち高下限値（ＨＢＰ）を高下限値ＨＢＰＭＮＪという名称のレジスタに格納する。同様に戻り値のうち低上限値（ＬＴＰ）を低上限値ＬＴＰＭＮＪという名称のレジスタに格納する。この格納の処理は、ステップＳ７０２の中にソフトウェアの表記に従って、高下限値ＨＢＰＭＮＪ←高下限値および低上限値ＬＴＰＭＮＪ←低上限値と記載されている。
【０１９０】
ここで、高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪというレジスタ名称に用いられている３つの番号としてのＪ、ＮおよびＭについて説明する。この名称における２番目および３番目の番号ＮおよびＪは、ステップＳ７０１に記載の差分画像ＮＪというレジスタ名称のＮおよびＪと同じである。これらＮおよびＪについては既に説明しているので、詳細な説明は省略する。結論のみを記載すれば、不良画像Ｊをもとに生成した第Ｎの単色画像から生成した差分画像の高下限値ＨＢＰおよび低上限値ＬＴＰという意味である。
【０１９１】
次に、このレジスタ名称における１番目の番号Ｍについて、以下に説明する。上述のように図１８に示す対称性判断工程（Ｓ４）におけるステップＳ４０１において、第Ｎの単色画像（原画像）が対称軸を有しているかについて判断する。その判断結果がＹｅｓの場合に、ステップＳ４０２において原画像が有する対称軸の数をレジスタＣに格納する。そしてステップＳ４０３において、レジスタＭに０を格納して初期化する。次にステップＳ４０４において、レジスタＭに１を加算する。ここにレジスタＭは、後工程となる図１４（ａ）のステップＳ５（差分算出工程）乃至ステップＳ７（閾値範囲設定工程）により処理する原画像が有する、上記対称軸の番号Ｃを記憶するレジスタである。そしてステップＳ４０５およびＳ４０６において、前記レジスタＭに対応する第Ｍの対称軸の一端および他端の座標をレジスタＯＮＥＭおよびＯＴＥＭに格納する。
【０１９２】
そして、図１４（ａ）に示すステップＳ７（閾値範囲設定工程）の詳細フローチャートとしての図２１乃至図２３から明らかなように、上記レジスタＭは図２３に示すサブルーチンＳｕｂ２が処理した対称軸の番号を示す。以上をまとめると、高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪはそれぞれ、不良画像Ｊをもとに生成した第Ｎの単色画像から、第Ｍの対称軸に基づいて生成した差分画像が有する高下限値ＨＢＰおよび低上限値ＬＴＰという意味である。
【０１９３】
以上のように図２１に示すステップＳ７０２において、高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪの各レジスタの内容を設定したのち、ステップＳ７０３に進む。ステップＳ７０３において、レジスタＭに格納した対称軸の番号が対称軸の数であるＣに到達したか否かについて判断する。レジスタＭは図１８に示す対称性判断工程（Ｓ４）のステップＳ４０４において１ずつ加算される。この加算されたレジスタＭの値に対応する原画像は、上述のように図１９乃至図２３によって処理される。そして図２１のステップＳ７０２において、高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪの各レジスタの内容が設定される。
【０１９４】
図２１のステップＳ７０３における判断は、第Ｎの単色画像が有するＣ個の対称軸のすべてに対応して、高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪの各レジスタの内容が設定されたか否かの判断に他ならない。この判断結果がＮｏの場合は、すべての対称軸に対応するこれらのレジスタの内容が設定されていないので、飛び先番号２０４が記載される結合子を経由して図１８（対称性判断工程（Ｓ４））のステップＳ４０４にジャンプする。このステップＳ４０４においては、対称軸の数を格納するレジスタＭの値に１を加算する。そして、今までの説明と同様に、Ｍの値が１だけ大きくなった状態で図１８のステップＳ４０５およびＳ４０６と図１９乃至図２３に記載の工程を再度実行する。Ｍの値に対する１の加算を繰り返すと、図２１（閾値範囲設定工程（Ｓ７））のステップＳ７０３の判断結果がＹｅｓとなる。その場合はステップＳ７０４に進む。
【０１９５】
ステップＳ７０４において、レジスタＮに格納した単色画像の番号が単色画像の数であるＫに到達したか否かについて判断する。レジスタＮは図１７に示す単色画像生成工程（Ｓ３）のステップＳ３０５において１ずつ加算される。この加算されたレジスタＮの値に対応する原画像は、上述のように図１８乃至図２３によって処理される。そして図２１のステップＳ７０２において、高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪの各レジスタの内容が設定される。図２１のステップＳ７０４における判断は、Ｊ番目の不良画像をもとに生成された全部でＫ個の単色画像のすべてに対応して、高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪの各レジスタの内容が設定されたか否かの判断に他ならない。この判断結果がＮｏの場合は、すべての単色画像に対応するこれらのレジスタの内容が設定されていないので、飛び先番号２０３が記載される結合子を経由して図１７（単色画像生成工程（Ｓ３））のステップＳ３０５にジャンプする。このステップＳ３０５においては、単色画像の数を格納するレジスタＮの値に１を加算する。そして、今までの説明と同様にＮの値が１だけ大きくなった状態で図１７のステップＳ３０６および図１８乃至図２３に記載の工程を再度実行する。Ｎの値に対する１の加算を繰り返すと、図２１（閾値範囲設定工程（Ｓ７））のステップＳ７０４の判断結果がＹｅｓとなる。その場合はステップＳ７０５に進む。
【０１９６】
ステップＳ７０５において、レジスタＪに格納した不良画像の番号が不良画像の数であるＢに到達したか否かについて判断する。レジスタＪは図１５に示す既知ワーク撮像工程（Ｓ１）のステップＳ１０６において１ずつ加算される。この加算されたレジスタＪの値に対応する不良画像は、上述のように図１６乃至図２３によって処理される。そして図２１のステップＳ７０２において、高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪの各レジスタの内容が設定される。図２１のステップＳ７０５における判断は、Ｂ個の不良画像のすべてに対応して、高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪの各レジスタの内容が設定されたか否かの判断に他ならない。この判断結果がＮｏの場合は、すべての不良画像に対応するこれらのレジスタの内容が設定されていないので、飛び先番号２０２が記載される結合子を経由して図１５（既知ワーク撮像工程（Ｓ１））のステップＳ１０６にジャンプする。このステップＳ１０６においては、不良画像の数を格納するレジスタＪの値に１を加算する。そして、今までの説明と同様にＪの値が１だけ大きくなった状態で図１５のステップＳ１０７および図１６乃至図２３に記載の工程を再度実行する。Ｊの値に対する１の加算を繰り返すと、図２１（閾値範囲設定工程（Ｓ７））のステップＳ７０５の判断結果がＹｅｓとなる。その場合はステップＳ７０６に進む。
【０１９７】
以上の説明から明らかなように、図２１におけるステップＳ７０３乃至Ｓ７０５の３種類の判断は、以下の３つの判断である。まずステップＳ７０３において、サブルーチンＳｕｂ２からの戻り値としての高下限値ＨＢＰおよび低上限値ＬＴＰは単色画像が有するすべての対称軸について生成されているか否かを判断する。次にステップＳ７０４において、サブルーチンＳｕｂ２からの前記戻り値は不良画像をもとに生成したすべての単色画像について生成されているか否かを判断する。そしてステップＳ７０５において、サブルーチンＳｕｂ２からの前記戻り値はすべての不良画像について生成されているか否かを判断する。
【０１９８】
これら３つの判断の結果がすべてＹｅｓとなることにより、上記レジスタ高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪの名称に用いられている３つの番号としてのＪ、ＮおよびＭについて、すべての番号に係る処理を完了したことになる。すなわち、ここまでの工程によってレジスタ高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪには、不良画像をもとに生成されたすべての単色画像について、当該単色画像が有するすべての対称軸に係る差分画像の高下限値（ＨＢＰ）および低上限値（ＬＴＰ）が、全不良画像に対して生成されて格納されたことになる。
【０１９９】
続いて図２１のステップＳ７０６およびＳ７０７において、再び対称軸の番号を格納するレジスタＭを初期化したのち、その値に１を加算する。そして飛び先番号２０６が記載される結合子を経由して図２２（閾値範囲設定工程（Ｓ７））のステップＳ７０８にジャンプする。
【０２００】
図２２に示す閾値範囲設定工程（Ｓ７）は、上記の図２１におけるステップＳ７０２においてレジスタ高下限値ＨＢＰＭＮＪおよび低上限値ＬＴＰＭＮＪに格納した複数の高下限値および低上限値に対する処理を実行する工程である。この工程は上述のように、２つの目的を有している。第１の目的は、すべての（Ｂ個の）不良画像から生成した複数の差分画像に対して、ただ１つの閾値を設定することができるようにすることである。第２の目的は、すべての（Ｂ個の）不良画像から生成されるすべての単色画像（不良画像ごとにＫ個ずつ）のそれぞれに対応するＫ個の差分画像の中から、上記閾値を設定するのに最適な差分画像を選出することである。
【０２０１】
図２２における最初のステップＳ７０８において、不良画像１から不良画像Ｂまでの各不良画像に対応するＫ個の単色画像のそれぞれから、第Ｍの対称軸に基づいて生成した差分画像を用いて算出した（Ｂ×Ｃ）個の高下限値ＨＢＰＭＮＪ（１≦Ｎ≦ＫとなるＮのそれぞれについて１≦Ｍ≦Ｃ、１≦Ｊ≦Ｂ）の中から、最小値となる最小下限値ＭＮＢＭＮを選出する。
【０２０２】
次にステップＳ７０９に進み、不良画像１から不良画像Ｂまでの各不良画像に対応するＫ個の単色画像のそれぞれから、第Ｍの対称軸に基づいて生成した差分画像を用いて算出したＢ個の低上限値ＬＴＰＭＮＪ（１≦Ｎ≦ＫとなるＮのそれぞれについて１≦Ｍ≦Ｃ、１≦Ｊ≦Ｂ）の中から、最大値となる最大上限値ＭＸＴＭＮを選出する。
【０２０３】
このように、ステップＳ７０８において（Ｂ×Ｃ）個の高下限値ＨＢＰＭＮＪ（１≦Ｎ≦ＫとなるＮのそれぞれについて１≦Ｍ≦Ｃ、１≦Ｊ≦Ｂ）の中から最小値を選出し、ステップＳ７０９においてＢ個の低上限値ＬＴＰＭＮＪ（１≦Ｎ≦ＫとなるＮのそれぞれについて１≦Ｍ≦Ｃ、１≦Ｊ≦Ｂ）の中から最大値を選出することの意味を、以下に説明する。
【０２０４】
高下限値ＨＢＰは、図２３に示すサブルーチンＳｕｂ２のステップＳ２２０６およびＳ２２０７において生成されている。そして上述のようにステップＳ２２０６は、図５（ｄ）（ｅ）において下段に標題として差分値の最大区間における閾値と記されている工程のうち、最大区間を選出する工程に対応する。この最大区間は、例えば図５（ｄ）の場合は中段において最大差分値としての５８が生成される区間、すなわち上段において差分画素値６５および７を隣接差分画素値とする区間である。そして図２３におけるステップＳ２２０７において、最大差分値ＭＸＮＰの算出に用いた２個の隣接する配列ＡＰ（ＭＸ＋１）およびＡＰ（ＭＸ）に格納された画素値ＰＶ（ＭＸ＋１）およびＰＶ（ＭＸ）を、それぞれ高下限値ＨＢＰおよび低上限値ＬＴＰとしている。このステップＳ２２０７の処理と図５（ｄ）を対応させると、図５（ｄ）の上段に記載の差分画素値のうち６５が高下限値ＨＢＰであり、７が低上限値ＬＴＰである。
【０２０５】
ここで上述のように、Ｂ個の不良画像のそれぞれの画素値にはバラツキがある。このため各不良画像から生成するＫ個の単色画像の画素値にも不良画像に対応してバラツキが存在する。これに起因して、各単色画像から差分画像を生成すると、各差分画像のもとになっている不良画像が有する画素値のバラツキに対応して、差分画像の画素値にもバラツキが存在することになる。これらのバラツキを生じた複数の差分画像を図２３のサブルーチンＳｕｂ２によって処理すると、各差分画像から生成される高下限値ＨＢＰおよび低上限値ＬＴＰはバラツキを生じる。すなわち、図５（ａ）に示す原画像すなわち第Ｎの単色画像（図１７のステップＳ３０６）がＢ個の不良画像に対応して変化すると、図５（ｄ）（ｅ）の各段の数値にバラツキを生じる。その結果、図２３のステップＳ２２０７において生成される高下限値ＨＢＰおよび低上限値ＬＴＰは、Ｂ個の不良画像の画素値のバラツキに対応してバラツキを生じる。
【０２０６】
このように差分画像ごとに高下限値ＨＢＰおよび低上限値ＬＴＰにバラツキを生じることに起因して、図５（ｄ）（ｅ）の下段に記載されるように閾値を設定すると、その閾値は差分画像ごとにバラツキを生じる。
【０２０７】
そこで、全Ｂ個からなる不良画像のどれから生成した第Ｎの単色画像であっても、その第Ｎの単色画像から生成した差分画像に対して同一の閾値を設定することが可能となるようにするための工程が必要となる。その工程として、図２２におけるステップＳ７０８およびＳ７０９の工程を実施している。
【０２０８】
ステップＳ７０８の工程において処理される高下限値ＨＢＰＭＮＪは、図５（ｄ）の中段に記載した隣接差分画素値の差分値の最大区間に対応する上段の差分画素値のうち、左側に位置する大きい画素値に対応する。以後この画素値を最大区間大画素値と名付ける。
【０２０９】
同様にステップＳ７０９の工程において処理される低上限値ＬＴＰＭＮＪは、図５（ｄ）の中段に記載した隣接差分画素値の差分値の最大区間に対応する上段の差分画素値のうち、右側に位置する小さい画素値に対応する。以後この画素値を最大区間小画素値と名付ける。
【０２１０】
すなわちステップＳ７０８においては、最大区間大画素値の中から最小値となる最小下限値ＭＮＢＭＮを選出している。この最小下限値ＭＮＢＭＮは、Ｂ個の不良画像に対応するＫ個の単色画像のそれぞれから、第Ｍの対称軸に基づいて生成した差分画像を用いて算出した（Ｂ×Ｃ）個の最大区間大画素値の中で、対応する最大区間小画素値に最も近い値となる。
【０２１１】
併せてステップＳ７０９においては、最大区間小画素値の中から最大値となる最大上限値ＭＸＴＭＮを選出している。この最大上限値ＭＸＴＭＮは、Ｂ個の不良画像に対応するＫ個の単色画像のそれぞれから、第Ｍの対称軸に基づいて生成した差分画像を用いて算出した（Ｂ×Ｃ）個の最大区間小画素値の中で、対応する最大区間大画素値に最も近い値となる。
【０２１２】
すなわち最小下限値ＭＮＢＭＮおよび最大上限値ＭＸＴＭＮの組み合わせは、図５（ｄ）（ｅ）において中段に示す隣接差分画素値の差分値の最大区間における差分値を、最小値にする組み合わせに他ならない。このように差分値が最小値になることの意味は、第Ｎの単色画像から生成されるすべての差分画像に対して、第Ｎの単色画像ごとに閾値を設定する範囲が共通となるように最小化されたということである。よって最小下限値ＭＮＢＭＮおよび最大上限値ＭＸＴＭＮの組み合わせにより構成される区間は、上記（Ｂ×Ｃ）個の差分画像のすべてに対して確実に閾値を設定することが可能となる区間である。こうして最小下限値ＭＮＢＭＮおよび最大上限値ＭＸＴＭＮを選出したのち、ステップＳ７１０に進む。
【０２１３】
ステップＳ７１０において、Ｋ個の単色画像それぞれに対応する最小下限値ＭＮＢＭＮおよび最大上限値ＭＸＴＭＮについて、差分となる範囲ＲＮ＝最小下限値ＭＮＢＭＮ−最大上限値ＭＸＴＭＮを算出する。この範囲ＲＮは上述のように、Ｂ個の不良画像に対応するＫ個の単色画像のそれぞれから、第Ｍの対称軸に基づいて生成した差分画像を用いて算出した（Ｂ×Ｃ）個の差分画像のすべてについて、隣接差分画素値の差分値の最大区間（例えば図５（ｄ）の中段において差分値５８を有する区間）に確実に閾値を設定することが可能となる区間の差分値である。ステップＳ７１０において範囲ＲＮを算出すると、ステップＳ７を終了して図１４（ａ）に示すステップＳ８に進む。
【０２１４】
（５．７）ステップＳ８
図１４（ａ）においてステップＳ８は閾値画像生成工程であり、検査対象領域を選出するための閾値を設定するのに最適な閾値画像を選出して閾値を設定する。閾値画像生成工程（Ｓ８）の詳細フローチャートを図２４に示す。
【０２１５】
図２４のステップＳ８０１において、不良画像から生成した単色画像の数であるＫが２以上であるか否かについて判断する。これは図１７（単色画像生成工程（Ｓ３））に示すステップＳ３０１において、検査対象ワークの画像はカラー画像か否かの判断をしていることと同一の内容である。すなわち図２４のステップＳ８０１において、検査対象ワークの画像がカラー画像であれば単色画像の数Ｋは２以上であり、検査対象ワークの画像がカラー画像でなければ単色画像の数Ｋは１であって、これは２未満となる。ステップＳ８０１の判断結果がＹｅｓ、すなわち不良画像をもとに生成した単色画像の数が２以上の場合はステップＳ８０２に進む。
【０２１６】
ステップＳ８０２において、全単色画像から算出されたＫ個の範囲ＲＮ（１≦Ｎ≦Ｋ）の中から最大値を選出し、この最大値となる範囲ＲＮを有する差分画像を第Ｍ閾値画像として選出する。この第Ｍ閾値画像の番号Ｍは上述のように、原画像すなわち第Ｎの単色画像が有する第Ｍの対称軸の番号Ｍのことである。すなわち、対称軸の番号に対応した閾値画像を選出したことになる。
【０２１７】
ここで、最大値となる範囲ＲＮを有する差分画像を第Ｍ閾値画像として選出することの意味を説明する。範囲ＲＮは上述のように、Ｂ個の不良画像をもとに生成した第Ｎの単色画像から生成した差分画像のすべて（（Ｂ×Ｃ）個）に対して、確実に閾値を設定することが可能となる区間の差分値である。これが、上述の第１の問題すなわち閾値が差分画像ごとにバラツキを生じて、１つに定まらないという問題を解決するための手段に該当する。また、このように算出した範囲ＲＮの中から最大値を選出することは、最小の差分値としての範囲ＲＮを比較して、それらの中から最も閾値を容易に設定することが可能となる最大値を選出することに他ならない。この最大値となる範囲ＲＮを有する差分画像の選出が、上述の第２の問題すなわち閾値設定用の単色画像を選出する基準が必要となる問題を解決するための、基準の設定に該当する。
【０２１８】
以上をまとめると、図５（ｄ）（ｅ）の下段に示す閾値が差分画像ごとにバラツキを生じて、１つに定まらないという上述の第１の問題を解決するために、図２２のステップＳ７１０において範囲ＲＮを算出している。これにより、前記差分画像ごとの差分値のバラツキを解消して、Ｂ個の不良画像をもとに生成した第Ｎの単色画像から生成した差分画像のすべて（（Ｂ×Ｃ）個）に対してただ１つの閾値を設定することができるようになる。また、閾値設定用の単色画像を選出する基準が必要になるという上述の第２の問題を解決するために、図２４のステップＳ８０２において単色画像の数であるＫに対応するＫ個の範囲ＲＮの中から最大値を選出し、この最大値となる範囲ＲＮを有する差分画像を第Ｍ閾値画像として選出している。これにより、前記選出する基準を明確化して、１個の不良画像をもとに生成した複数の単色画像の中から、閾値を設定するのに最適な単色画像を後続のステップＳ８０３において選出することができる。
【０２１９】
一方、ステップＳ８０１の判断結果がＮｏ、すなわち不良画像をもとに生成した単色画像の数が１の場合はステップＳ８０４に進む。ステップＳ８０４においては、１つの単色画像から生成した差分画像を第Ｍ閾値画像とする。このように第Ｍ閾値画像を選出したのち、ステップＳ８０３に進む。
【０２２０】
ステップＳ８０３において、第Ｍ閾値画像を生成した単色画像を第Ｍ閾値用単色画像として選出する。この第Ｍ閾値用単色画像は、原画像が有する第Ｍの対称軸に対して図５（ｄ）（ｅ）の下段に示す離間画素値選出用の閾値を算出するために用いる単色画像である。第Ｍ閾値用単色画像を選出したのち、ステップＳ８０５に進む。
【０２２１】
ステップＳ８０５で第Ｍ閾値画像において、範囲ＲＮの中央値＝（最小下限値ＭＮＢＭＮ＋最大上限値ＭＸＴＭＮ）／２を算出し、その値を検査対象領域選出用閾値としての第Ｍ検査閾値とする。このステップＳ８０５において算出した第Ｍ検査閾値が、図５（ｄ）（ｅ）の下段に示す差分値の最大区間における閾値に対応する。こうして第Ｍ検査閾値を設定したのち、ステップＳ８０６に進む。
【０２２２】
ステップＳ８０６において、レジスタＭに格納した対称軸の番号が対称軸の数であるＣに到達したか否かについて判断する。レジスタＭは図２１に示す閾値範囲設定工程（Ｓ７）のステップＳ７０７において１ずつ加算される。この加算されたレジスタＭの値に対応する原画像は、上述のように図２２および図２４によって処理される。そして図２４のステップＳ８０５において、第Ｍ検査閾値が設定される。図２４のステップＳ８０６における判断は、第Ｎの単色画像が有するＣ個の対称軸のすべてに対応して第Ｍ検査閾値が設定されたか否かの判断に他ならない。この判断結果がＮｏの場合は、すべての対称軸に対応する第Ｍ検査閾値が設定されていないので、飛び先番号２０５が記載される結合子を経由して図２１（閾値範囲設定工程（Ｓ７））のステップＳ７０７にジャンプする。このステップＳ７０７においては、対称軸の数を格納するレジスタＭの値に１を加算する。そして、今までの説明と同様に、Ｍの値が１だけ大きくなった状態で図２２および図２４の処理を再度実行する。Ｍの値に対する１の加算を繰り返すと、図２４（閾値画像生成工程（Ｓ８））のステップＳ８０６の判断結果がＹｅｓとなる。その場合はステップＳ８を終了して図１４（ａ）に示すステップＳ９に進む。
【０２２３】
（５．８）ステップＳ９
図１４（ａ）においてステップＳ９は閾値確認工程である。これは良品画像から生成した差分画像の全画素の画素値が上記第Ｍ検査閾値よりも小さいこと、すなわち良品画像に対して第Ｍ検査閾値を適用しても、図６（ｃ）に二重枠で示すような欠陥検査を行うべき検査対象領域を選出することができないことを確認する工程である。閾値確認工程（Ｓ９）の詳細フローチャートを図２５および図２６に示す。
【０２２４】
図２５においてステップＳ９０１およびＳ９０２は、図１５に示す既知ワーク撮像工程（Ｓ１）に示すステップＳ１０１において得たＡ個の良品画像について、閾値確認工程を実行するための準備である。まずステップＳ９０１において、閾値確認工程で処理を実行中の良品画像の番号を記憶するレジスタＩに０を格納して、レジスタＩを初期化する。続いてステップＳ９０２において、Ｉの値に１を加算する。
【０２２５】
そしてステップＳ９０３において、１からＡまでの番号を付与した良品画像の中からＩの値で指定される番号の画像を取り出す。ここではＩ＝１である。そしてステップＳ９０４に進む。
【０２２６】
ステップＳ９０４およびＳ９０５はそれぞれ、図１６に示す検査対象ワーク抽出工程（Ｓ２）のステップＳ２０１およびＳ２０２と同一である。すなわちステップＳ９０４およびＳ９０５において、良品画像１からテンプレートマッチング法を用いて検査対象ワークの画像を生成している。こうして検査対象ワークの画像を生成したのち、ステップＳ９０６に進む。
【０２２７】
ステップＳ９０６およびＳ９０７は、良品画像１をもとに生成した単色画像から生成した差分画像に対して、閾値確認工程における後続のステップを実行するための準備である。まずステップＳ９０６において、閾値確認工程における後続のステップで処理を実行中の単色画像における対称軸の番号を記憶するレジスタＭに０を格納して、レジスタＭを初期化する。続いてステップＳ９０７において、Ｍの値に１を加算する。
【０２２８】
次にステップＳ９０８に進み、検査対象ワークの画像がカラーか否かについて判断する。判断がＹｅｓの場合すなわちカラー画像の場合はステップＳ９０９に進む。ステップＳ９０９において、カラー画像である検査対象ワークの画像からＫ個の単色画像を生成する。このステップＳ９０９は図１７に示す単色画像生成工程（Ｓ３）におけるステップＳ３０２と同一である。Ｋ個の単色画像を生成したのち、ステップＳ９１０に進む。
【０２２９】
ステップＳ９１０において、生成した単色画像の中から、第Ｍ閾値画像を生成した単色画像に対応する単色画像を第Ｍ閾値用単色画像とする。ここで上述のように、第Ｍ閾値画像を生成した単色画像を第Ｍ閾値用単色画像として選出しているのは、図２４に示す閾値画像生成工程（Ｓ８）のステップＳ８０３である。すなわち、ステップＳ８０３において選出した第Ｍ閾値用単色画像と、ステップＳ９１０において選出する第Ｍ閾値用単色画像を対応させているということである。このように対応させる目的は、第Ｍ閾値用単色画像を用いて設定した第Ｍ検査閾値を良品画像に対して適用しても、上述のように図６（ｃ）に二重枠で示すような検査対象領域を選出することができないことを確認するためである。
【０２３０】
一方、ステップＳ９０８における判断がＮｏの場合すなわち検査対象ワークの画像が単色画像の場合は、ステップＳ９１１に進む。ステップ９１１において、前記単色画像すなわち検査対象ワークの画像を第Ｍ閾値用単色画像とする。こうして、ステップＳ９１０あるいはＳ９１１において第Ｍ閾値用画像を選出したら、飛び先番号２０９が記載される結合子を経由して図２６のステップＳ９１２にジャンプする。
【０２３１】
図２６のステップＳ９１２において、第Ｍ閾値用単色画像を原画像という名称のレジスタに格納する。次にステップＳ９１３に進み、ＯＮＥＭという名称のレジスタに第Ｍの対称軸の一端の座標を格納する。このステップＳ９１３は、図１８に示す対称性判断工程（Ｓ４）のステップＳ４０５と同一の工程である。次にステップＳ９１４に進み、ＯＴＥＭという名称のレジスタに第Ｍの対称軸の他端の座標を格納する。このステップＳ９１４は、図１８に示す対称性判断工程（Ｓ４）のステップＳ４０６と同一の工程である。そして、ステップＳ２１に進み、図２０に示すサブルーチンＳｕｂ１を実行する。サブルーチンＳｕｂ１については既に説明しているので、ここでは詳細な説明は省略する。
【０２３２】
この図２６においてステップＳ９１２乃至ステップＳ２１（サブルーチンＳｕｂ１）を実行することで、図２５のステップＳ９１０あるいはＳ９１１において選出した第Ｍ閾値用画像とその対称軸の一端および他端の座標をメインプログラムからサブルーチンＳｕｂ１に引数として渡して、サブルーチンＳｕｂ１がこの第Ｍ閾値用画像から生成した差分画像を、メインプログラムは戻り値として受け取る。
【０２３３】
ステップＳ２１を実行したのち、戻り値としての差分画像に対してステップＳ９１５を実行する。ステップＳ９１５において、差分画像の全画素の画素値が第Ｍ検査閾値よりも小さいか否かを判断する。この判断結果がＹｅｓの場合は、この差分画像に対して上述のように、図６（ｃ）に二重枠で示すような検査対象領域を選出することができないことを確認したことになる。その場合は、ステップＳ９１６に進む。
【０２３４】
ステップＳ９１６において、レジスタＭに格納した対称軸の番号が対称軸の数であるＣに到達したか否かについて判断する。レジスタＭは図２５のステップＳ９０７において１ずつ加算される。この加算されたレジスタＭの値に対応する原画像は、上述のようにステップＳ９１２乃至ステップＳ２１によって処理されて差分画像が生成される。そしてステップＳ９１５において、差分画像の全画素の画素値が第Ｍ検査閾値よりも小さいか否かを判断する。ステップＳ９１６における判断は、検査対象ワークの画像が有するＣ個の対称軸のすべてに対応して、上記ステップＳ９１５の判断が行われたか否かの判断に他ならない。このステップＳ９１６の判断結果がＮｏの場合は、すべての対称軸に対応する差分画像に対してステップＳ９１５の判断が行われていないので、飛び先番号２０８が記載される結合子を経由して図２５のステップＳ９０７にジャンプする。このステップＳ９０７においては、対称軸の数を格納するレジスタＭの値に１を加算する。そして、今までの説明と同様に、Ｍの値が１だけ大きくなった状態で図２５のステップＳ９０８乃至図２６のステップＳ９１５を再度実行する。Ｍの値に対する１の加算を繰り返すと、ステップＳ９１６の判断結果がＹｅｓとなる。その場合はステップＳ９１７に進む。
【０２３５】
ステップＳ９１７において、レジスタＩに格納した良品画像の番号が良品画像の数であるＡに到達したか否かについて判断する。レジスタＩは図２５のステップＳ９０２において１ずつ加算される。この加算されたレジスタＩの値に対応する良品画像は、上述のように図２５のステップＳ９０３乃至図２６のステップＳ９１６によって処理される。そして当該の良品画像のすべての対称軸に対応する差分画像の全画素の画素値が、第Ｍ検査閾値よりも小さいか否かを判断している。ステップＳ９１７における判断は、Ａ個の良品画像のすべてについて、すべての対称軸に対応する差分画像の全画素の画素値が第Ｍ検査閾値よりも小さいことを確認したか否かの判断に他ならない。このステップＳ９１７の判断結果がＮｏの場合は、Ａ個の良品画像のすべてについて、すべての対称軸に対応する差分画像の全画素の画素値が第Ｍ検査閾値よりも小さいことを確認していない。このため、飛び先番号２０７が記載される結合子を経由して図２５のステップＳ９０２にジャンプする。このステップＳ９０２においては、良品画像の数を格納するレジスタＩの値に１を加算する。
【０２３６】
そして、今までの説明と同様にＩの値が１だけ大きくなった状態で、図２５のステップＳ９０３乃至図２６のステップＳ９１６の工程を再度実行する。Ｉの値に対する１の加算を繰り返すと、図２６のステップＳ９１７の判断結果がＹｅｓとなる。その場合はステップＳ９を終了して、図１４（ａ）の最下部に示す飛び先番号１０１が記載される結合子を経由して図１４（ｂ）のステップＳ１０にジャンプする。ところで上述のように図１４（ａ）は閾値設定モードであり、図１４（ｂ）は検査実行モードである。よって、ステップＳ９を終了した段階で閾値設定モードを終了して、検査実行モードを開始することになる。
【０２３７】
一方、図２６においてステップＳ９１５の判断結果がＮｏの場合は、良品画像に対して第Ｍ検査閾値を適用すると、検査対象領域が選出されることを意味する。そこでステップＳ９１８に進み、検査対象領域が選出される原因を調査して当該原因を除去する対策を行う。対策を行ったのち、飛び先番号２０１が記載される結合子を経由して図１５の既知ワーク撮像工程（Ｓ１）のステップＳ１０３にジャンプする。そして再度図１４（ａ）に示す閾値設定モードを実行する。この再度の実行において、図２４の閾値画像生成工程（Ｓ８）におけるステップＳ８０２乃至Ｓ８０５で第Ｍ閾値画像、第Ｍ閾値用単色画像を選出して、第Ｍ検査閾値を設定する。そして再び図２６のステップＳ９１５において、差分画像の全画素の画素値が第Ｍ検査閾値よりも小さいか否かを判断する。この判断結果がＹｅｓになるまで、ステップＳ９１８の原因調査ならびに対策と、閾値設定モードの再度の実行を繰り返す。判断結果がＹｅｓになったら、上述のようにステップＳ９１６の判断およびステップＳ９１７の判断がともにＹｅｓになるまで、閾値確認工程（Ｓ９）を実行する。Ｓ９１７の判断結果がＹｅｓになると、上述のようにステップＳ９を終了して閾値設定モードを終了する。そして図１４（ｂ）に示す検査実行モードのステップＳ１０にジャンプする。
【０２３８】
続いて図１４（ｂ）および図２７乃至図３１を用いて、検査実行モードについて説明する。
【０２３９】
（５．９）ステップＳ１０
図１４（ｂ）においてステップＳ１０は被検査ワーク撮像工程であり、被検査ワークを撮像する。被検査ワーク撮像工程（Ｓ１０）の詳細フローチャートを図２７に示す。
【０２４０】
図２７に示すステップＳ１００１において、被検査ワークを撮像する。ステップＳ１００１を終了するとステップＳ１０を終了して、図１４（ｂ）に示すステップＳ２に進む。図１４（ｂ）においてステップＳ２は検査対象ワーク抽出工程であり、図１４（ａ）に示すステップＳ２と同一の工程である。すなわち、被検査ワークの画像からテンプレートマッチング法を用いてワークの最外縁を探索して確定し、検査対象ワークの画像を生成する。ステップＳ２を終了すると、図１４（ｂ）に示すステップＳ１１に進む。
【０２４１】
（５．１０）ステップＳ１１
図１４（ｂ）においてステップＳ１１は被検査単色画像生成工程であり、ステップＳ２で生成した検査対象ワークの画像から単色画像を生成する。被検査単色画像生成工程（Ｓ１１）の詳細フローチャートを図２８に示す。
【０２４２】
図２８に示すステップＳ１１０１において、レジスタＭに０を格納して、レジスタＭを初期化する。ここにレジスタＭは、後続のステップＳ１１０２以降の被検査単色画像生成工程および図１４（ｂ）に示す後続のステップＳ１２およびＳ１３で処理を実行中の単色画像における対称軸の番号を記憶するレジスタである。この対称軸の番号は、例えば前工程である図１４（ａ）の閾値設定モードにおけるステップＳ４（対称性判断工程）において設定されている。具体的には、図１８に示す対称性判断工程（Ｓ４）のステップＳ４０２において、レジスタＣに対称軸の数を格納している。このレジスタＣの値は、このステップＳ４０２において設定されたあと、そのままの値である。
【０２４３】
次にステップＳ１１０２において、検査対象ワークの画像の全画素について、画素値を最大画素値に置換した画像を、前画像という名称のレジスタに格納する。このレジスタ前画像の作用について、以下に説明する。
【０２４４】
本発明の画像処理アルゴリズムについて、既に図５を用いて説明している。その説明において、図５（ａ）に示す２つの対称軸としての第１直線Ｌ１および第２直線Ｌ２を定義している。これらの対称軸に対応する差分画像が図５（ｂ）および図５（ｃ）である。そして、それぞれの差分画像である図５（ｂ）および図５（ｃ）の全画素の中から選出した離間画素を、図６（ａ）および図６（ｂ）に画素値を二重枠で囲むことにより表示している。これらの離間画素を選出したのち、図６（ａ）および図６（ｂ）に示す離間画素の共通部分を選出して、この共通部分を検査対象領域としている。この図６における離間画素の共通部分の選出は、複数の対称軸に対応する差分画像を同時に生成して、各差分画像から離間画素を選出したのち、それぞれの離間画素の共通部分を選出する概念となっている。しかし、ソフトウェアを用いて複数の対称軸に対応する処理を同時に、すなわち並列に実行することは現実的ではない。その理由は、このような並列処理を行うためには、複数の差分画像の全画素値を記憶するための膨大な記憶領域を確保して、かつその記憶領域への画素値の書き込みおよび読み出しを行うステップが必要となるからである。このため本発明の画像処理アルゴリズムを用いた欠陥検査方法においては、図５（ｂ）乃至図６（ｃ）の工程をソフトウェアにより実行するために、以下の方法をとることにした。
【０２４５】
最初に図２０に示すサブルーチンＳｕｂ１に、メインプログラムから引数として原画像（検査対象ワークの画像から生成した単色画像）と第１の対称軸の一端（ＯＮＥＭ）および他端（ＯＴＥＭ）の座標を渡す。サブルーチンＳｕｂ１は原画像をもとに第１の対称軸に対応する差分画像を生成して、メインプログラムに戻り値として返す。メインプログラムは受け取った差分画像に対して、閾値設定モードで設定した第Ｍ検査閾値を用いて離間画素を選出する。この離間画素の配置される位置が、第１の対称軸に対応する検査対象領域となる。
【０２４６】
次に対称軸の番号を格納しているレジスタＭに１を加算することによりＭ＝２とする。これにより、次にサブルーチンＳｕｂ１にメインプログラムから渡す引数は第２の対称軸に関するものとなる。そして同様にサブルーチンＳｕｂ１において、原画像をもとに第２の対称軸に対応する差分画像の生成を行う。そして同様にメインプログラムにおいて、第２の対称軸に対応する検査対象領域の選出を行う。
【０２４７】
そして第２の対称軸に対応する検査対象領域と、先程選出した第１の対称軸に対応する検査対象領域の共通部分を新たな検査対象領域とする。すなわち、第（Ｍ＋１）の対称軸および第Ｍの対称軸に対応する２つの検査対象領域の共通部分を新たな検査対象領域とする。このような工程を考えると、第（Ｍ＋１）の対称軸に対応する検査対象領域を選出するまでの間に、第Ｍの対称軸に対応する検査対象領域をレジスタに格納しておく必要がある。このレジスタを前画像という名称であらかじめ確保して、そこに初期値として検査対象ワークの画像を格納しているのが、上述のステップＳ１１０２である。ここに、ステップＳ１１０２において検査対象ワークの画像の全画素について、画素値を最大画素値に置換した画像を格納している。その理由を以下に述べる。
【０２４８】
上述のように検査対象領域とは、検査対象ワークの画像において欠陥が存在する可能性のある領域すなわち欠陥検査を行うべき領域である。このため、検査対象ワークの画像に対して欠陥検査を行う際の参照用画像として、検査対象領域とそれ以外の領域を明確に識別することが可能な画像を生成する必要がある。そこで本発明においては、前記参照用画像として検査用画像を生成することにした。検査用画像は検査対象領域に最大画素値を有する画素を配置し、検査対象領域以外の領域に最小画素値を有する画素を配置した画像として生成する。これに対応するために、検査対象ワークの画像においてすべての領域が検査対象領域となる画像を、前画像の初期値（以下、初期前画像）として最初に生成しておく。これが図２８のステップＳ１１０２においてレジスタ前画像に格納される。そして上述のように、後続のステップにおいて検査対象ワークの画像が有する対称軸（Ｃ個）のうち第１の対称軸に対応する検査対象領域としての離間画素を選出する。
【０２４９】
次にこの第１の対称軸に対応する検査対象領域と初期前画像における検査対象領域の共通部分を選出する。そしてこの共通部分を検査対象領域として有する新たな前画像を生成する。以後、この新たな前画像の生成を前画像の更新と呼ぶ。ここで、第１の対称軸に対応する前画像の更新時には、第１の対称軸に対応する検査対象領域と初期前画像の検査対象領域について、必ず共通部分を選出することができなくてはならない。その条件は、初期前画像のすべての領域が検査対象領域となることである。このため、ステップＳ１１０２においてレジスタ前画像に格納する初期前画像は、すべての領域が検査対象領域となるように全画素値を最大画素値としている。そして第１の対称軸に対応して前画像を更新したのち、対称軸の番号を格納したレジスタＭに１を加算して同様の工程を実行する。これをレジスタＭが上記対称軸の数Ｃに到達するまで繰り返す。そしてＣに到達した時点で、最後に更新した前画像を検査用画像とすればよい。
【０２５０】
こうして図２８のステップＳ１１０２でレジスタ前画像の初期化を行ったのち、ステップＳ１１０３に進む。ステップＳ１１０３において、対称軸の番号を格納したレジスタＭの値に１を加算する。続いてステップＳ１１０４乃至Ｓ１１０８において、被検査単色画像を生成してレジスタ原画像に格納する。これらのステップのうちステップＳ１１０４乃至ステップＳ１１０７は、それぞれ図２５に示す閾値確認工程（Ｓ９）におけるステップＳ９０８乃至Ｓ９１１と同一である。よって、詳細な説明は省略する。ステップＳ１１０８において、被検査単色画像をレジスタ原画像に格納するとステップＳ１１を終了して、図１４（ｂ）に示すステップＳ５に進む。
【０２５１】
図１４（ｂ）においてステップＳ５は差分算出工程であり、それに続くステップＳ６は差分画像生成工程である。これらの工程は上述のように図１９および図２０のサブルーチンＳｕｂ１を用いて、上記図２８のステップＳ１１０８で設定した原画像から差分画像を生成する。よって、詳細な説明は省略する。図１４（ｂ）においてステップＳ５およびステップＳ６を終了すると、ステップＳ１２に進む。
【０２５２】
（５．１１）ステップＳ１２
図１４（ｂ）においてステップＳ１２は検査領域選出工程であり、ステップＳ６において生成した差分画像を用いて、検査対象領域の候補となる領域を有する領域候補画像を生成する。検査領域選出工程（Ｓ１２）の詳細フローチャートを図２９に示す。
【０２５３】
図２９のステップＳ１２０１において、差分画像の全画素の中で第Ｍ検査閾値より大きい画素値を有する画素を、検査領域画素として選出する。この工程は、差分画像の全画素の中から図５（ｄ）（ｅ）に示す離間画素を選出することと同一の内容である。ただし、このステップＳ１２０１は検査対象領域を選出するための準備としての工程であるため、選出した画素の名称を検査領域画素としている。ステップＳ１２０１において検査領域画素を選出したのち、ステップＳ１２０２に進む。
【０２５４】
ステップＳ１２０２は、上述の検査対象領域とそれ以外の領域を明確に識別する画像、すなわち検査用画像を生成するための前工程である。まず、差分画像を検査領域画素と検査領域画素以外の画素に区分する。次に、検査領域画素の位置に最大画素値を有する領域指定画素を配置するとともに、検査領域画素以外の画素の位置に最小画素値を有する検査外画素を配置して、領域候補画像を生成する。この工程により生成された領域候補画像は、検査領域画素の画素値と検査外画素の画素値の対比によって、検査対象領域とそれ以外の領域を明確に識別することが可能となる。ステップＳ１２０２で領域候補画像を生成するとステップＳ１２を終了して、図１５（ｂ）に示すステップＳ１３に進む。
【０２５５】
（５．１２）ステップＳ１３
ステップＳ１３は検査用画像生成工程であり、ステップＳ１２で生成した領域候補画像に基づいて検査用画像を生成する。検査用画像生成工程（Ｓ１３）の詳細フローチャートを図３０に示す。
【０２５６】
図３０のステップＳ１３０１で前画像と領域候補画像について、領域指定画素の共通部分となる共通指定画素を選出する。この工程は上述のように、対称軸に対応して検査対象領域を生成するごとに、この生成した検査対象領域と前画像の共通部分を選出して、前画像を更新するためのものである。このステップＳ１３０１において共通指定画素すなわち共通部分を選出したのち、ステップＳ１３０２に進む。
【０２５７】
ステップＳ１３０２においては共通指定画素の位置に最大画素値を有する共通指定画素を配置するとともに、共通指定画素以外の画素の画素値を最小画素値として、更新候補画像を生成する。このステップＳ１３０２では、前画像において最大画素値を有する画素が配置されていた位置に無関係に、ステップＳ１３０１で選出した共通指定画素以外の画素の画素値を最小画素値にする。すなわち、前画像において最大画素値を有する画素が配置されている位置であっても、ステップＳ１３０１で選出した共通指定画素が当該位置に配置されないときには、当該位置に配置される画素の画素値は最小画素値に更新される。こうして前画像の更新が完了し、更新後の画像は更新候補画像となる。ステップＳ１３０２において更新候補画像を生成したのち、ステップＳ１３０３に進む。
【０２５８】
ステップＳ１３０３において、更新候補画像をレジスタ前画像に格納する。次にステップＳ１３０４において、レジスタＭに格納した対称軸の番号が対称軸の数であるＣに到達したか否かについて判断する。レジスタＭは図２８に示す被検査単色画像生成工程（Ｓ１１）のステップＳ１１０３において１ずつ加算される。この加算されたレジスタＭの値に対応する原画像は、上述のように図２８のステップＳ１１０４乃至ステップＳ１１０８と図２９および図３０のステップＳ１３０１乃至ステップＳ１３０３によって処理される。そして図３０のステップＳ１３０３おいて、前画像が更新される。ステップＳ１３０４における判断は、被検査単色画像が有するＣ個の対称軸のすべてに対応して、前画像の更新が行われたか否かの判断に他ならない。この判断結果がＮｏの場合は、すべての対称軸に対応する前画像の更新が行われていないので、飛び先番号２１０が記載される結合子を経由して図２８（被検査単色画像生成工程（Ｓ１１））のステップＳ１１０３にジャンプする。
【０２５９】
このステップＳ１１０３においては、対称軸の数を格納するレジスタＭの値に１を加算する。そして今までの説明と同様に、Ｍの値が１だけ大きくなった状態で図２８のステップＳ１１０４乃至ステップＳ１１０８と図２９および図３０のステップＳ１３０１乃至ステップＳ１３０３に記載の工程を再度実行する。Ｍの値に対する１の加算を繰り返すと、図３０（検査用画像生成工程（Ｓ１３））のステップＳ１３０４の判断結果がＹｅｓとなる。その場合はステップＳ１３０５に進む。
【０２６０】
このステップＳ１３０５において、更新候補画像を検査用画像という名称のレジスタに格納する。これにより、検査用画像の生成が完了する。そしてステップＳ１３を終了し、図１４（ｂ）に示すステップＳ１４に進む。
【０２６１】
（５．１３）ステップＳ１４
図１４（ｂ）においてステップＳ１４は検査実行工程であり、ステップＳ１３で生成した検査用画像に基づいて、検査対象ワークの画像に対する欠陥検査を実行する。検査実行工程（Ｓ１４）の詳細フローチャートを図３１に示す。
【０２６２】
図３１のステップＳ１４０１において、検査対象ワークの画像を取り出して、検査用画像の検査対象領域を参照しながら、当該領域に対して欠陥検査を行う。具体的には、検査用画像において最大画素値が配置されている領域を、検査対象ワークにおける検査対象領域とする。そして、この領域に対して欠陥検査を実行する。欠陥検査において適用する方法は、作業者にとって既知である任意の方法を用いてよい。
【０２６３】
上述の本発明における画像処理アルゴリズムを用いた欠陥検査方法は、従来技術による欠陥検査方法に比べて、以下の点ですぐれている。まず、作業者が撮像画像を目視して判断する項目がきわめて少なく、かつその判断基準が作業者の熟練を前提としていないことである。
【０２６４】
従来技術による欠陥検査方法において、作業者は欠陥検査の対象となるワークの画像を目視する。そして、画像において欠陥検査の対象となる検査対象領域と、欠陥検査の対象とならない除外領域を確認する。そして各領域の配置について相互関係を確認し、併せて各領域を構成する画素の画素値について大小関係を確認する。次に上記配置の相互関係および画素値の大小関係を考慮した上で、検査対象領域と除外領域を選別するための閾値を設定して検査対象領域を選別する。また、カラー画像から複数の単色画像を生成した場合には、作業者が各単色画像を目視する。そして上記各領域間の明るさを比較して、最も欠陥を明瞭に識別することができると判断した１つの単色画像を選択する。そしてこの選択した単色画像に対して、上記閾値の設定および検査対象領域の選別を行う。
【０２６５】
これに対して本発明の画像処理アルゴリズムおよびそれを用いた欠陥検査方法は、ワークの画像が特定の直線に関して線対称となる場合に用いるものである。まず対称軸に関して対象位置に配置される画素の画素値の差分をとり、差分画像を生成する。次に差分画像を構成する画素の画素値の中で、あらかじめ設定された閾値よりも大きい画素値を有する画素を選出して、当該画素が配置される箇所を検査対象領域として選出する。対称軸が複数の場合は、それぞれの対称軸に対応する検査対象領域の共通部分を最終的な検査対象領域とする。また、カラー画像から複数の単色画像を生成した場合には、各単色画像から生成した差分画像の画素について、あらかじめ決められた演算を画素値に対して実行する。そして各差分画像の演算結果を比較して、閾値を設定するのに最適な１つの単色画像を選出する。この単色画像を用いて、上記のあらかじめ設定された閾値を設定する。
【０２６６】
このアルゴリズムおよびそれを用いた欠陥検査方法は、作業者がワークの画像を目視して何らかの判断を行う工程がほとんど存在しない。このため、従来技術による欠陥検査方法のように作業者に対して熟練が要求されることがなく、作業者の負担が少なくなる。かつアルゴリズムをソフトウェアにより自動化して欠陥検査を実行することが容易であるため、従来技術による欠陥検査に比べて検査速度が格段に向上するとともに、作業者の熟練度の差異に影響されにくい。
【符号の説明】
【０２６７】
ＷＤ１、ＷＤ２・・・不良ワーク
ＭＤ１、ＭＤ２・・・印
Ｄ１、Ｄ２、Ｄａ、Ｄｂ・・・欠陥
ＷＧ１・・・良品ワーク
ＭＧ１・・・印
Ｂ１・・・背景
Ｆ１、Ｆ２・・・囲み枠
Ｌ１・・・第１直線
Ｌ２・・・第２直線
Ｌ３・・・第３直線
【図１】
2019008739.tif 000003
【図２】
2019008739.tif 000004
【図３】
2019008739.tif 000005
【図４】
2019008739.tif 000006
【図５】
2019008739.tif 000007
【図６】
2019008739.tif 000008
【図７】
2019008739.tif 000009
【図８】
2019008739.tif 000010
【図９】
2019008739.tif 000011
【図１０】
2019008739.tif 000012
【図１１】
2019008739.tif 000013
【図１２】
2019008739.tif 000014
【図１３】
2019008739.tif 000015
【図１４】
2019008739.tif 000016
【図１５】
2019008739.tif 000017
【図１６】
2019008739.tif 000018
【図１７】
2019008739.tif 000019
【図１８】
2019008739.tif 000020
【図１９】
2019008739.tif 000021
【図２０】
2019008739.tif 000022
【図２１】
2019008739.tif 000023
【図２２】
2019008739.tif 000024
【図２３】
2019008739.tif 000025
【図２４】
2019008739.tif 000026
【図２５】
2019008739.tif 000027
【図２６】
2019008739.tif 000028
【図２７】
2019008739.tif 000029
【図２８】
2019008739.tif 000030
【図２９】
2019008739.tif 000031
【図３０】
2019008739.tif 000032
【図３１】
2019008739.tif 000033
【図３２】
2019008739.tif 000034
【図３３】
2019008739.tif 000035
【図３４】
2019008739.tif 000036
【図３５】
2019008739.tif 000037
【図３６】
2019008739.tif 000038
【図３７】
2019008739.tif 000039