(57)【要約】【課題】入力された画像データに対して、多様な種類の空間フィルタ処理を高速に実行することができる画像処理装置を実現する。【解決手段】入力された画像データに対して空間フィルタ処理を実行する画像処理装置１は、入力された画像データに規定された画像において空間フィルタ処理されるために抽出されるべき画素が規定されるマスク１１と、マスク１１を用いて、入力された画像データに規定された画像から空間フィルタ処理されるべき画素を抽出し、これをメモリ１０に格納する抽出手段１２と、メモリ１０に格納された画素に対して空間フィルタ処理の計算を実行する計算手段１３と、を備える。【選択図】図１
2011128720.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データに対して空間フィルタ処理を実行する画像処理装置であって、
入力された画像データに規定された画像において空間フィルタ処理されるために抽出されるべき画素が規定されるマスクと、
前記マスクを用いて、入力された画像データに規定された画像から前記空間フィルタ処理されるべき画素を抽出し、これをメモリに格納する抽出手段と、
前記メモリに格納された画素に対して空間フィルタ処理の計算を実行する計算手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記画像データに規定された画像を、画像縮小率で縮小する画像縮小手段と、
前記マスクを、マスク縮小率で縮小するマスク縮小手段と、
をさらに備え、
前記抽出手段は、前記マスク縮小手段により縮小されたマスクを用いて、前記画像縮小手段によって縮小された画像から前記空間フィルタ処理されるべき画素を抽出し、これを前記メモリに格納する請求項１に記載の画像処理装置。
【請求項３】
前記縮小された画像の全領域にわたって前記計算手段が空間フィルタ処理を実行することにより得られた結果画像を、前記入力された画像データに規定された画像と同じ大きさになるように拡大する画像拡大手段をさらに備える請求項２に記載の画像処理装置。
【請求項４】
前記マスクを前記画像縮小率で縮小して得られる仮縮小マスクの幅を１ピクセル幅の奇数倍になる値に近似した値を、前記マスクの幅の画素数で除算し、これにより得られた値を、前記マスク縮小率として設定する縮小率設定手段をさらに備える請求項２に記載の画像処理装置。
【請求項５】
前記マスクにおいて規定される、空間フィルタ処理されるために抽出されるべき画素の配置は、任意に設定可能である請求項１に記載の画像処理装置。
【請求項６】
前記画像縮小率は、当該画像縮小率で前記画像を縮小して得られた縮小画像を再度拡大した場合に、縮小前の前記画像を再現することができる値に設定される請求項２に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された画像データに対して空間フィルタ処理を実行する画像処理装置に関する。
【背景技術】
【０００２】
画像処理装置においては、画像を各種加工する際に空間フィルタと呼ばれるマスクが用いられる。空間フィルタには、雑音を低減する平均（平滑）化フィルタおよび中間値（メディアン）フィルタ、明るい領域の膨張および暗い領域の収縮を行う最大値フィルタ、明るい領域の収縮および暗い領域の膨張を行う最小値フィルタ、ならびに、エッジを抽出するラプラシアンフィルタ、などがある。平均化フィルタは線形フィルタとも呼ばれ、また、それ以外のフィルタは統計フィルタもしくは非線形フィルタとも呼ばれる。空間フィルタ処理では、画像中のある注目画素とこれに隣接する画素とについて積和演算を実行し、得られた結果を、当該注目画素の輝度として置き換える。
【０００３】
図１４は、平均化フィルタ処理の動作原理を説明する図であって、(ａ)は撮像された配線基板の画像を例示する図であり、（ｂ）は「３×３」のマスクを用いた平均化フィルタ処理を説明する図である。図１４（ａ）に示すような配線基板が撮像された画像Ｑに対して平均化フィルタを適用する場合について説明する。平均化フィルタ処理においては、図１４（ｂ）に示すように平均化フィルタのマスクの大きさを例えば「３×３」とするとき、ある注目画素とこれに隣接する８個の画素に対し、図１４（ｂ）に示すマスクを用いて積和演算を実行する。本明細書では、ＲＧＢの各要素の明度を、一例として０から２５５までの２５６個の数値で表現することにする。図１４（ｂ）においては、一例として、注目画素の輝度を「２０７」とし、この注目画素に隣接する８個の画素の輝度を、「１２８」、「２４０」、「２０２」、「１０５」、「１９７」、「１５０」、「１９４」および「２１０」とする。具体的には、マスクに対応する「３×３」の画素領域の輝度が図１４（ｂ）に示す数値のように与えられる場合において、注目画素の画像上の座標を（ｉ，ｊ）としたとき、マスクの大きさは上述の通り「３×３」であるので、「１／（３×３）すなわち１／９」を、「３×３」の画素領域内の全ての画素に対し乗算し、これらを全て加算することで結果「１８１」を得る。すなわち平均化フィルタ処理により、注目画素（ｉ，ｊ）の輝度は「１８１」が置き換わる。図１４（ａ）に示す画像Ｑ上の全ての画素についてを注目画素に設定した上で、上記処理を実行し、図１４（ａ）に示す画像Ｑ全体にわたって平均化フィルタ処理を実行する。
【０００４】
図１５は、画像上の画素のメモリ配列を説明する図であって、(ａ)は撮像された画像上の画素を例示する図であり、（ｂ）はメモリに保持される画素の配列を説明する図である。図中、Ｐ（１，１）〜Ｐ（ｗ，ｗ）は画像上における画素の座標を示し、Ａ０〜Ａｗ2−１はメモリ上のアドレス（番地）を示す（ただし、ｗは整数）。空間フィルタ処理においては、画像上の各画素データは、メモリ上では１次元の配列として保持される。図１５（ａ）に示す画像上においては、まず、最下列の一番左の画素Ｐ（１，１）が図中太線の矢印Ｙ０で示される方向に走査（スキャン）され、図１５（ｂ）に示すようにメモリに順次保持されていく。最下列の一番右の画素Ｐ（１，ｗ）の走査が完了すると、次列の画素Ｐ（２，１）について、矢印Ｙ１で示される方向に走査され、メモリ上においては最下列の画素Ｐ（１，ｗ）が保持されていたアドレスに続いて保持されていく。以降、順次このような走査が繰り返され、最終的には矢印Ｙｗで示される方向に画素が走査（スキャン）され、メモリに保持される。例えば、図１５（ａ）に示すように画像上に「ｗ×ｗ」個の画素がある場合、図１５（ａ）に示す画素Ｐ（１，１）は、図１５（ｂ）に示すようにメモリ上においてはアドレス「Ａ０」に保持され、画素Ｐ（１，２）は、図１５（ｂ）に示すようにメモリ上においてはアドレス「Ａｗ−１」に保持される。また、図１５（ａ）において画素Ｐ（１，１）の上側に位置する画素Ｐ（２，１）は、図１５（ｂ）に示すようにメモリ上においてはアドレス「Ａｗ−１」に続くアドレス「Ａｗ」に保持される。また、図１５（ａ）において画素Ｐ（２，１）の上側に位置する画素Ｐ（３，１）は、図１５（ｂ）に示すようにメモリ上においてはアドレス「Ａ２ｗ−１」に続くアドレス「Ａ２ｗ」に保持される。そして、図１５（ａ）において最上列の一番左の画素Ｐ（ｗ，ｗ）は、図１５（ｂ）に示すようにメモリ上においてはアドレス「Ａｗ2−１」に保持される。
【０００５】
図１６は、平均化フィルタ処理におけるメモリアクセスを説明する図であって、（ａ）は図１５（ａ）に示した画像の一部を例示する図であり、（ｂ）はメモリに保持される画素の配列を説明する図である。図１６（ａ）に示すように、図１５（ａ）に示した画像において座標Ｐ（２，２）の画素を注目画素とし、「３×３」のマスクを用いて平均化フィルタ処理を実行する場合、注目画素Ｐ（２，２）とこれに隣接する８個の画素Ｐ（１，１）、Ｐ（１，２）、Ｐ（１，３）、Ｐ（２，１）、Ｐ（２，３）、Ｐ（３，１）、Ｐ（３，２）およびＰ（３，３）に対し、積和演算を実行する。この場合、メモリ上において、図１６（ｂ）に示すように画素Ｐ（１，１）はアドレス「Ａ０」に、画素Ｐ（１，２）はアドレス「Ａ１」に、画素Ｐ（１，３）はアドレス「Ａ２」に、画素Ｐ（２，１）はアドレス「Ａｗ」に、画素Ｐ（２，２）はアドレス「Ａｗ＋１」に、画素Ｐ（２，３）はアドレス「Ａｗ＋２」に、画素Ｐ（３，１）はアドレス「Ａ２ｗ」に、画素Ｐ（３，２）はアドレス「Ａ２ｗ＋１」に、画素Ｐ（３，３）はアドレス「Ａ２ｗ＋２」に、それぞれ保持される。すなわち、例えば画素Ｐ（１，１）と画素Ｐ（２，１）は画面上では互いに隣接するが、メモリ上では、画素Ｐ（１，１）はアドレス「Ａ０」、画素Ｐ（２，１）はアドレス「Ａｗ」、といったように、画像の幅に相当する画素数ｗだけ離れたアドレスに保持されることになる。つまり、平均化フィルタ処理においては、１つの注目画素についての積和演算であっても、上述のようにメモリ上離れたアドレスに何度もメモリアクセスしなければならない。このようないわゆる「飛び飛びのアドレス」に対するメモリアクセスは効率が悪く、演算処理速度を低下させる一因である。特に平均化フィルタのマスクの大きさが大きくなるほど、メモリ上離れたアドレスにメモリアクセスする回数が増加するため、演算処理速度の低下が顕著になる。
【０００６】
このような演算処理速度の低下を防ぐために、画像を縮小した上で平均化フィルタ処理を実行する方法が提案されている  （例えば、特許文献１参照。）。特許文献１に記載された発明によれば、平均化フィルタ処理すべき画像を所定の縮小率で縮小し、この縮小率に応じて平均化フィルタのマスクを作成した上でこれを縮小画像に適用して積和演算し、得られた画像を縮小率の逆数を拡大率として拡大して平均化フィルタ処理後の画像を得る。縮小した画像に対して平均化処理を実行するので、メモリアクセスに要する時間が短縮され、その分、演算処理に要する時間を短縮することができる。
【０００７】
また、演算処理速度の低下を防ぐために、除算処理にビットシフトを用いて平均化フィルタ処理を実行する方法が提案されている  （例えば、特許文献２参照。）。特許文献２に記載された発明によれば、例えば、図１６（ａ）に示した画素Ｐ（１，１）、Ｐ（１，２）、Ｐ（１，３）、Ｐ（２，１）、Ｐ（２，２）、Ｐ（２，３）、Ｐ（３，１）、Ｐ（３，２）およびＰ（３，３）の輝度がそれぞれａ1〜ａ9である場合、平均化フィルタ処理における積和演算は、式１のように変形することができる。
【０００８】
【数１】
2011128720.tif 000003
【０００９】
式１は、積和の結果「Σ７×ａi（ただし、ｉ＝１〜９の整数）」」を６４すなわち２の６乗で除算すれば、平均化フィルタ処理のおよその計算結果を得ることができることを示している。「２の６乗で除算する」とは、メモリ上においては「６ビット分、左シフトする」ことを意味する。つまり、特許文献２に記載された発明によれば、除算についてはビットシフトで対応することができるので、平均化フィルタ処理において除算に要する時間を短縮することができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００９−０５４１３０号公報
【特許文献２】特開２００４−１４７１６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述のように、空間フィルタ処理においては演算処理速度の向上が求められている。しかしながら、特許文献１（特開２００９−０５４１３０号公報）に記載された発明によれば、縮小率に応じたマスクを作成しなければならない。また、特許文献１に記載された発明は、平均化フィルタ処理にのみ適用することができるものであり、中間値フィルタ、最大値フィルタ、最小値フィルタおよびラプラシアンフィルタなどのような統計フィルタには適用することができない。
【００１２】
また、特許文献２（特開２００４−１４７１６８号公報）に記載された発明も、平均化フィルタ処理にのみ適用することができるものであり、中間値フィルタ、最大値フィルタ、最小値フィルタおよびラプラシアンフィルタなどのような統計フィルタには適用することができない。また、特許文献２に記載された発明は、特許文献１に記載された発明とは異なり、メモリアクセスに要する時間自体を直接的に短縮するものではないので、平均化フィルタ処理のマスクが大きくなればなるほど、一連の処理に要する時間全体に対してメモリアクセスに要する時間が占める割合が大きくなり、結局のところ、時間短縮効果は望めなくなる。同様に、平均化フィルタ処理のマスクが大きくなればなるほど、式１における乗算処理に要する時間の割合も大きくなり、時間短縮効果は望めなくなる。
【００１３】
従って本発明の目的は、上記問題に鑑み、入力された画像データに対して、多様な種類の空間フィルタ処理を高速に実行することができる画像処理装置を提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を実現するために、本発明においては、入力された画像データに対して空間フィルタ処理を実行する画像処理装置は、入力された画像データに規定された画像において空間フィルタ処理されるために抽出されるべき画素が規定されるマスクと、マスクを用いて、入力された画像データに規定された画像から空間フィルタ処理されるべき画素を抽出し、これをメモリに格納する抽出手段と、メモリに格納された画素に対して空間フィルタ処理の計算を実行する計算手段と、を備える。
【００１５】
また、本発明による画像処理装置は、画像データに規定された画像を、画像縮小率で縮小する画像縮小手段と、上記マスクをマスク縮小率で縮小するマスク縮小手段と、を備える。ここで、抽出手段は、マスク縮小手段により縮小されたマスクを用いて、画像縮小手段によって縮小された画像から空間フィルタ処理されるべき画素を抽出し、これをメモリに格納する。計算手段は、このメモリに格納された画素に対して空間フィルタ処理の計算を実行する。マスクにおいて規定される、空間フィルタ処理されるために抽出されるべき画素の配置は、任意に設定可能である。
【００１６】
また、本発明による画像処理装置は、縮小された画像の全領域にわたって計算手段が空間フィルタ処理を実行することにより得られた結果画像を、入力された画像データに規定された画像の大きさとなるように拡大する画像拡大手段を備える。
【００１７】
また、本発明による画像処理装置は、マスクを画像縮小率で縮小して得られる仮縮小マスクの幅を１ピクセル幅の奇数倍になる値に近似した値を、マスクの幅の画素数で除算することで得られた値を、マスク縮小率として設定する縮小率設定手段を備える。画像縮小率は、当該縮小率で画像を縮小して得られた縮小画像を再度拡大した場合に、縮小前の画像を再現することができる値に設定される。
【００１８】
なお、画像処理装置におけるマスクおよび上記各手段は、コンピュータ等の演算処理装置が実行することができるコンピュータプログラムの形式で実現できる。以上の処理を実施する装置や、以上の処理をコンピュータに実行させるコンピュータプログラムを作成することは、以下の説明を理解した当業者には容易に実施できる事項である。また、以上の処理をコンピュータにより実行させるコンピュータプログラムを記録媒体に格納するという事項も当業者には自明である。
【発明の効果】
【００１９】
本発明によれば、入力された画像データに対する空間フィルタ処理を高速に実行することができる。
【００２０】
本発明においては、入力された画像データに規定された画像において空間フィルタ処理されるために抽出されるべき画素が規定されるマスクを設定する。本発明によれば、このマスクを用いて入力された画像データに規定された画像から空間フィルタ処理されるべき画素を抽出した上で、これら画素に対して空間フィルタ処理本体の計算を実行するので、空間フィルタ処理の積和演算に係る計算式を適宜設定するだけで、多様な種類の空間フィルタ処理に容易に適用することが可能である。例えば、本発明は、平均化フィルタ処理のような線形フィルタ、ならびに、中間値フィルタ、最大値フィルタ、最小値フィルタおよびラプラシアンフィルタなどのような統計フィルタ、にも適用することができる。
【００２１】
また、本発明によれば、上記マスクにおいて規定される、空間フィルタ処理されるために抽出されるべき画素の配置は、任意に設定可能であるので、入力される画像データで規定される画像の内容に制限されることなくあらゆる空間フィルタ処理を実行することができる。すなわち、入力される画像データで規定される画像の内容に応じて空間フィルタ処理を柔軟に実行することができるので、当該空間フィルタ処理により得られた画像の精度を高めることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施例による画像処理装置の基本ブロック図である。
【図２】本発明の実施例による画像処理装置の動作フローを示すフローチャートである。
【図３】本発明の実施例における画像縮小率について説明する図である。
【図４】本発明の実施例におけるマスクについて説明する図である。
【図５】本発明の実施例におけるマスク縮小率を設定する縮小率設定手段の動作フローを示すフローチャートである。
【図６】本発明の実施例におけるマスクの縮小の一例を示す図である。
【図７】本発明の実施例における縮小マスクを用いた画素の抽出を例示する図である。
【図８】本発明の実施例による画像処理装置を平均化フィルタとして適用した場合の実際の演算処理結果を示す図である。
【図９】本発明の実施例による画像処理装置を最大値フィルタとして適用した場合の実際の演算処理結果を示す図である。
【図１０】マスク内の画素の設定の効果の演算処理結果を例示する図である。
【図１１】図４（ｂ）に示すマスクの縮小を示す図である。
【図１２】（ｂ）に示すマスクを用いて、本発明の実施例による画像処理装置を最大値フィルタとして適用した場合の実際の演算処理結果を示す図である。
【図１３】記録媒体に格納されたコンピュータプログラムにより動作する本発明の実施例の画像処理装置の構成を示すブロック図である。
【図１４】平均化フィルタ処理の動作原理を説明する図であって、(ａ)は撮像された配線基板の画像を例示する図であり、（ｂ）は「３×３」のマスクを用いた平均化フィルタ処理を説明する図である。
【図１５】画像上の画素のメモリ配列を説明する図であって、（ａ）は撮像された画像上の画素を例示する図であり、（ｂ）はメモリに保持される画素の配列を説明する図である。
【図１６】平均化フィルタ処理におけるメモリアクセスを説明する図であって、（ａ）は図１５（ａ）に示した画像の一部を例示する図であり、（ｂ）はメモリに保持される画素の配列を説明する図である。
【発明を実施するための形態】
【００２３】
図１は、本発明の実施例による画像処理装置の基本ブロック図である。入力された画像データに対して空間フィルタ処理を実行する画像処理装置１は、マスク１１と、抽出手段１２と、計算手段１３と、画像縮小手段１４と、マスク縮小手段１５と、画像拡大手段１６と、縮小率設定手段１７と、メモリ１０と、を備える。画像処理装置１におけるマスク１１および各手段１２〜１７は、コンピュータが実行することができるコンピュータプログラムの形式で実現され、したがって、画像処理装置１は、当該コンピュータプログラムがインストールされたコンピュータとして構成される。また、メモリ１０は、コンピュータが一般的に有する演算処理のための作業メモリ、またはデータ記憶用のハードディスクもしくはソリッドステートドライブで実現される。なお、このコンピュータプログラムは、記録媒体に格納されてまたはインターネットなどの通信回線を介して市場に流通され得る。
【００２４】
図２は、本発明の実施例による画像処理装置の動作フローを示すフローチャートである。以下、画像処理装置１におけるマスク１１および各手段１２〜１７の動作原理について、図１および２を参照しながら説明する。
【００２５】
まず、ステップＳ２０１において、本発明による画像処理についてのコンピュータプログラムがインストールされたコンピュータである画像処理装置１に、画像データが入力される。
【００２６】
ステップＳ１０１において、画像処理装置１内の画像縮小手段１４は、画像データに規定された画像を、ある画像縮小率で縮小する。画像の縮小方法としては、例えば、ニアレストネイバー法、バイリニア法、バイキュービック法、あるいは平均画素法などを用いればよい。
【００２７】
ここで、画像縮小率については、当該縮小率で画像を縮小して得られた縮小画像を再度拡大した場合に、縮小前の画像を再現することができる値に設定する。例えば、ユーザがキーボードやマウスなどを用いて、画像処理装置１を構成するコンピュータに画像縮小率を入力し、設定する。設定された画像縮小率は画像処理装置１を構成するコンピュータ内のメモリに記憶される。図３は、本発明の実施例における画像縮小率について説明する図である。例えば、図３（ａ）に示すように、入力された画像データに規定される画像Ｑが、プリント基板を撮像したものである場合を考える。図中、白抜きの箇所はプリント基板上の配線を表し、それ以外の黒い箇所は、配線が敷設されていないプリント基板部分を表わす。例えば、図３（ａ）に示すように、プリント基板上の配線の幅が４ピクセル分である場合に、画像Ｑを縮小率「ｒ＝０．６」で縮小すると、縮小画像Ｒにおいては、当該配線の幅は２．４ピクセルとなる。しかしながら、図３（ｂ）に示すように、同じくプリント基板上の配線の幅が４ピクセル分である場合に、画像Ｑを縮小率「ｒ’＝０．２」で縮小すると、縮小画像Ｒにおいては、当該配線の幅は１ピクセル未満となり、すなわちこの部分の配線が消失してしまうことになる。このように消失した線もしくは点は、再度拡大しても、縮小前の画像Ｑのときの配線（もしくは配線の幅）を再現することはできない。つまり、画像Ｑの過度の縮小は、精度の問題上適さない。したがって、本発明の実施例においては、入力された画像データに規定される画像の縮小に用いられる画像縮小率を、当該画像縮小率で画像を縮小して得られた縮小画像を再度拡大した場合に、縮小前の画像を再現することができるような値に設定する。
【００２８】
一方、ステップＳ２０２において、マスク１１を設定する。マスク１１は、画素の取捨選択をすることを目的とするものであり、いわば「要素抽出マスク」である。マスク１１には、画像処理装置１に入力された画像データに規定された画像において空間フィルタ処理されるために抽出されるべき画素が規定される。
【００２９】
ここで、マスク１１において規定される、空間フィルタ処理されるために抽出されるべき画素の配置は、任意に設定可能である。例えば、ユーザがキーボードやマウスなどを用いて、画像処理装置１を構成するコンピュータにマスク１１の定義を入力し、設定する。設定されたマスク１１は画像処理装置１を構成するコンピュータ内のメモリに記憶される。図４は、本発明の実施例におけるマスクについて説明する図である。例えば、マスク１１の大きさを「２１×２１」とするとき、図中、空間フィルタ処理されるために抽出されるべき画素を「１」で表わし、抽出しない画素を「０」で表わす。図中、太線で囲まれた画素「１」は、空間フィルタ処理の計算の際の注目画素を表わす。図４（ａ）に示す例では、マスク１１内の全画素が抽出されるようにマスク１１が定義されており、図４（ｂ）に示す例では、全体として略菱形を構成することになる複数の画素が抽出されるようにマスク１１が定義されている。このようにマスク１１を任意に設定可能とする利点については後述する。
【００３０】
図２のステップＳ１０２では、画像処理装置１内のマスク縮小手段１５は、マスク１１をマスク縮小率ｒ’で縮小する。マスク１１の縮小方法としては、例えば、ニアレストネイバー法、バイリニア法、バイキュービック法、あるいは平均画素法などを用いればよい。
【００３１】
ここで、マスク縮小率ｒ’は、画像処理装置１内の縮小率設定手段１７によって設定される。縮小率設定手段１７は、マスク１１を画像縮小率で縮小して得られる仮縮小マスクの幅を１ピクセル幅の奇数倍になる値に近似した値を、マスク１１の幅の画素数で除算し、これにより得られた値を、マスク縮小率ｒ’として設定する。すなわち、縮小率設定手段１７は、マスク１１の縮小に用いられるマスク縮小率ｒ’は、マスク１１をマスク縮小率ｒ’で縮小したときの縮小マスクの幅の画素数が奇数になるように設定する。本発明において、このように縮小マスクの幅の画素数が奇数となるように設定するのは、縮小マスクの中心に注目画素を置いた上で空間フィルタ処理を実行するためである。
【００３２】
マスク縮小率ｒ’は図５に示すフローチャートに基づいて生成される。図５は、本発明の実施例におけるマスク縮小率を設定する縮小率設定手段の動作フローを示すフローチャートである。マスクの幅（の画素数）をｗ、画像縮小率をｒとしたとき、画像処理装置１内の縮小率設定手段１７は、ステップＳ３０１において、マスク１１の幅ｗに画像縮小率ｒを乗算して上記「仮縮小マスクの幅」に相当する値を算出し、さらに、この「仮縮小マスクの幅」の整数部分を算出する。この結果得られた値をｗ’とする。
【００３３】
次いで、ステップＳ３０２において、縮小率設定手段１７は、ｗ’を２で除算したときの余りが１であるか否かを判定する。ステップＳ３０２において余りが１であると判定された場合はステップＳ３０４へ進み、余りが１でない（すなわち余りが無い）と判定された場合はステップＳ３０３へ進む。
【００３４】
ステップＳ３０３において、縮小率設定手段１７は、ｗ’に１を加算して得られる値を、新たなるｗ’として設定する。
【００３５】
ステップＳ３０４では、縮小率設定手段１７は、ｗ’をマスク１１の幅ｗで除算することで得られた値を、マスク縮小率ｒ’として設定する。
【００３６】
図６は、本発明の実施例におけるマスクの縮小の一例を示す図である。ここでは、画像縮小率ｒが０．６としたときにおいて、図６に示すようにマスク１１の大きさが「２１×２１」である（すなわちマスク１１の幅の画素数が２１である）場合について説明する。図５のステップＳ３０１において、縮小率設定手段１７は、マスク１１の幅の画素数ｗ＝２１に画像縮小率ｒ＝０．６を乗算して上記「仮縮小マスクの幅」に相当する値１２．６を算出し、さらに、この「仮縮小マスクの幅」の整数部分としてｗ’＝１２を算出する。次いで、ステップＳ３０２において、縮小率設定手段１７は、ｗ’＝１２を２で除算したときの余りが１でない（すなわち余りが無い）と判定し、ステップＳ３０３へ進む。ステップＳ３０３では、縮小率設定手段１７は、ｗ’＝１２に１を加算して得られる値「１３」を、新たなるｗ’として設定する。次いでステップＳ３０４では、縮小率設定手段１７は、ｗ’＝１３をマスク１１の幅２１で除算することで得られた値約０．６２を、マスク縮小率ｒ’として設定する。この結果、縮小マスク１１’の大きさは「１３×１３」（すなわちマスク１１の幅の画素数が１３）となる。
【００３７】
図２のステップＳ１０２では、画像処理装置１内のマスク縮小手段１５は、マスク１１をマスク縮小率ｒ’で縮小し、縮小マスク１１’を生成する。マスク１１の縮小方法としては、例えば、ニアレストネイバー法、バイリニア法、バイキュービック法、あるいは平均画素法などがあるが、このうち、バイリニア法、バイキュービック法あるいは平均画素法を用いると、縮小した結果が、空間フィルタ処理されるために抽出されるべき画素「１」および抽出しない画素「０」以外の数値、すなわち「０」から「１」の間に収まる数値となる箇所が生じる。この「０」から「１」の間に収まる数値は、当該箇所が境界線付近にあることを意味するが、このような場合には、閾値として例えば「０．５」を設定し、縮小した結果が、閾値「０．５」より大きい場合は、空間フィルタ処理されるために抽出されるべき画素「１」とし、閾値「０．５」より大きい場合は、抽出しない画素「０」として振り分けることで対応すればよい。
【００３８】
次いで、ステップＳ１０３において、画像処理装置１内の抽出手段１２は、マスク縮小手段１５により生成された縮小マスク１１’を用いて、画像縮小手段１４によって縮小された画像から空間フィルタ処理されるべき画素を抽出し、これをメモリ１０に格納する。図７は、本発明の実施例における縮小マスクを用いた画素の抽出を例示する図である。ここでは、縮小画像Ｒがプリント基板を撮像したものであり、縮小マスク１１’が「１３×１３」（すなわちマスク１１の幅の画素数が１３）の大きさを有するものである場合を考える。縮小画像Ｒ中の白抜きの箇所はプリント基板上の配線を表し、それ以外の黒い箇所は、配線が敷設されていないプリント基板部分を表わす。図７（ａ）に示すように、抽出手段１２は、縮小画像Ｒ上の、縮小マスク１１’の大きさである「１３×１３」画素分に対応する箇所を抜き出し、これを処理対象画像Ｔとする。そして、図７（ｂ）に示すように、抽出手段１２は、処理対象画像Ｔに縮小マスク１１’を掛け合わせ、空間フィルタ処理されるために抽出されるべき画素「１」を抽出し、抽出された画素にアドレスを割り振ってメモリ１０に記憶させる。上述したように、空間フィルタ処理においては、画像上の各画素データは、メモリ１０上では１次元の配列として保持される。図７（ｂ）に示す一例では、抽出手段１２は、抽出された１６９個の画素にアドレス「Ａ１」〜「Ａ１６９」を割り振ってメモリ１０に格納する。
【００３９】
図２のステップＳ１０４において、画像処理装置１の計算手段１３は、メモリ１０に格納された画素に対して空間フィルタ処理の計算を実行する。計算手段１３が計算すべき計算式は、空間処理フィルタの種類に応じて適宜設定すればよい。
【００４０】
例えば、図７（ｂ）に示された抽出された１６９個の画素に対して平均化フィルタ処理を実行する場合、計算手段１３は、抽出された１６９個の画素の輝度を用いて式２の計算を実行する。なお、式２においては、説明を簡明にするために、図７（ｂ）に示された画素のアドレス「Ａｉ」（ただし、ｉは１以上１６９以下の整数）をそのまま、当該アドレスにおける画素の輝度の値を表わすものとして用いている。
【００４１】
【数２】
2011128720.tif 000004
【００４２】
また例えば、図７（ｂ）に示された抽出された１６９個の画素に最大値フィルタ処理を実行する場合、計算手段１３は、抽出された１６９個の画素の輝度を用いて式３の計算を実行する。なお、式３においては、説明を簡明にするために、図７（ｂ）に示された画素のアドレスＡｉ（ただし、ｉは１以上１６９以下の整数）をそのまま、当該アドレスにおける画素の輝度の値を表わすものとして用いている。
【００４３】
【数３】
2011128720.tif 000005
【００４４】
本発明の実施例によれば、計算手段１３は、空間フィルタ処理における積和演算を、１次元の配列としてメモリ１０上に記憶された画素に対して実行するので、従来例のようにメモリ上離れたアドレスに何度もメモリアクセスするといったようなことはない。したがって、本発明の実施例によれば、入力された画像データに対する空間フィルタ処理を高速に実行することができる。また、本発明の実施例によれば、このマスクを用いて入力された画像データに規定された画像から空間フィルタ処理されるべき画素を抽出した上で、これら画素に対して空間フィルタ処理本体の計算を実行するので、多様な種類の空間フィルタ処理に適用することが可能である。例えば、本発明は、平均化フィルタ処理のような線形フィルタ、ならびに、中間値フィルタ、最大値フィルタ、最小値フィルタおよびラプラシアンフィルタなどのような統計フィルタ、にも適用することができる。
【００４５】
図２のステップＳ１０５では、画像処理装置１は、縮小画像の全体にわたって、上記ステップＳ１０３およびＳ１０４の処理が終了したか否かを判定する。例えば、図７（ａ）を参照した縮小画像Ｒ上の全ての画素について注目画素に設定されたが否かが判定される。縮小画像Ｒ上の全ての画素が注目画素として設定されるまで、上記ステップＳ１０３およびＳ１０４の処理が繰り返し実行される。
【００４６】
図２のステップＳ１０６において、画像処理装置１の画像拡大手段１６は、縮小画像Ｒの全領域にわたって計算手段１３が空間フィルタ処理を実行することにより得られた結果画像を、入力された画像データに規定された画像と同じ大きさになるように拡大する。例えば、入力された画像データに規定された画像Ｑの幅の画素数が２５６である場合に画像縮小率を０．６として縮小した場合、縮小画像Ｒの幅の画素数は１５３となるが、この縮小画像Ｒが、再び幅が２５６の画像に戻るように、縮小画像Ｒを２５６／１５３（≒１．６７３）倍の拡大率で拡大する。
【００４７】
そして、図２のステップＳ１０７において、画像処理装置１は、ステップＳ１０７において拡大された画像データを、処理後のデータとして出力する。
【００４８】
図８は、本発明の実施例による画像処理装置を平均化フィルタとして適用した場合の実際の演算処理結果を示す図である。ここでは、入力された画像データに規定された画像Ｑの幅の画素数を２５６とし、画像縮小率０．６で縮小する場合を考える。「２１×２１」の大きさのマスクは、マスク縮小率０．６２で縮小されて「１３×１３」の大きさのマスクとなり、このマスクを用いて縮小画像Ｒについて、平均化フィルタ処理される画素を抽出し、積和演算を実行すると、画像Ｓ’が得られる。この画像Ｓ’を、拡大率２５６／１５３（≒１．６７３）倍で拡大して処理後の画像Ｓを得る。なお、従来の方法では同じ原画像Ｑについて平均化フィルタ処理を実行した場合、およそ１８３．７１ミリ秒を要したが、本発明の実施例によれば、３５．７９ミリ秒で処理が完了した。
【００４９】
図９は、本発明の実施例による画像処理装置を最大値フィルタとして適用した場合の実際の演算処理結果を示す図である。ここでは、入力された画像データに規定された画像Ｒの幅の画素数を２５６とし、画像縮小率０．６で縮小する場合を考える。「２１×２１」の大きさのマスクは、マスク縮小率０．６２で縮小されて「１３×１３」の大きさのマスクとなり、このマスクを用いて縮小画像Ｒについて、最大値フィルタ処理される画素を抽出し、積和演算を実行すると、画像Ｓ’が得られる。この画像Ｓ’を、拡大率２５６／１５３（≒１．６７３）倍で拡大して処理後の画像Ｓを得る。
【００５０】
上述のように、本発明によれば、上記マスクにおいて規定される、空間フィルタ処理されるために抽出されるべき画素の配置は、任意に設定可能である。例えば、入力された画像データに規定された画像の内容によっては、マスク内の全画素を抽出するとする設定が適さない場合がある。図１０は、マスク内の画素の設定の効果の演算処理結果を例示する図である。例えば、図１０（ａ）に示す原画像に対してマスク内の全画素を抽出するマスク（すなわち、図４（ａ）に示すマスク）を用いて最大値フィルタ処理を実行した場合、図１０（ｂ）に示すように、白い図形の角がつぶれてしまい、図形本来の特徴が消失している。このような場合には、画像の図形に類似した形に、空間フィルタ処理されるために抽出されるべき画素の配置を設定すればよい。図１０（ａ）に示す原画像に対しては、図４（ｂ）に示すような、全体として略菱形を構成することになる複数の画素が抽出されるようなマスクを用いればよい。図１１は、図４（ｂ）に示すマスクの縮小を示す図である。また、図１２は、図４（ｂ）に示すマスクを用いて、本発明の実施例による画像処理装置を最大値フィルタとして適用した場合の実際の演算処理結果を示す図である。ここでは、入力された画像データに規定された画像Ｑの幅の画素数を２５６とし、画像縮小率０．６で縮小する場合を考える。「２１×２１」の大きさのマスクは、マスク縮小率０．６２で縮小されて「１３×１３」の大きさのマスクとなり、このマスクを用いて縮小画像Ｒについて、最大値フィルタ処理される画素を抽出し、積和演算を実行すると、画像Ｓ’が得られる。この画像Ｓ’を、拡大率２５６／１５３（≒１．６７３）倍で拡大して処理後の画像Ｓを得る。このように、マスクの設定を、原画像Ｑの内容に応じて設定することにより、図形本来の特徴を消失することなく、処理後の画像Ｓを得ることができていることがわかる。すなわち、本発明の実施例によれば、入力される画像データで規定される画像の内容に応じて空間フィルタ処理を柔軟に実行することができるので、当該空間フィルタ処理により得られた画像の精度を高めることができる。
【００５１】
上述した本発明の実施例による画像処理装置における各手段およびマスクは、コンピュータなどの演算処理装置が実行することができるコンピュータプログラムの形式で実現される。図１３は、記録媒体に格納されたコンピュータプログラムにより動作する本発明の実施例の画像処理装置の構成を示すブロック図である。
【００５２】
本発明による画像処理をコンピュータに実行させるコンピュータプログラムは、図１３に示すように、記憶媒体（フレキシブルディスク、ＣＤ−ＲＯＭ等の外部記憶媒体）１１０に格納されており、例えば、次に説明するような構成によるコンピュータにインストールされて画像処理装置１として動作する。
【００５３】
ＣＰＵ１１１は、画像処理装置１全体を制御する。このＣＰＵ１１１に、バス１１２を介してＲＯＭ１１３、ＲＡＭ１１４、ＨＤ（ハードディスク装置）１１５、マウスやキーボード等の入力装置１１６、外部記憶媒体ドライブ装置１１７およびＬＣＤ、ＣＲＴ、プラズマディスプレイ、有機ＥＬ等の表示装置１１８が接続されている。ＣＰＵ１１１の制御プログラムはＲＯＭ１１３に格納されている。
【００５４】
本発明による画像処理を実行するコンピュータプログラム（画像処理プログラム）は、記憶媒体１１０からＨＤ１１５にインストール（記憶）される。また、ＲＡＭ１１４には、画像処理をＣＰＵ１１１が実行する際の作業領域や、画像処理を実行するプログラムの一部が記憶される領域が確保されている。また、ＨＤ１１５には、入力データ、最終データ、さらにＯＳ（オペレーティングシステム）等が予め記憶される。
【００５５】
まず、コンピュータの電源を投入すると、ＣＰＵ１１１がＲＯＭ１１０から制御プログラムを読み出し、さらにＨＤ１１５からＯＳを読み込み、ＯＳを起動させる。これによりコンピュータは画像処理プログラムを記憶媒体１１０からインストール可能な状態となる。
【００５６】
次に、記憶媒体１１０を外部記憶媒体ドライブ装置１１７に装着し、入力装置１１６から制御コマンドをＣＰＵ１１１に入力し、記憶媒体１１０に格納された画像処理プログラムを読み取ってＨＤ１１５等に記憶する。つまり画像処理プログラムがコンピュータにインストールされる。
【００５７】
その後は、画像処理プログラムを起動させると、コンピュータは画像処理装置１として動作する。オペレータは、表示装置１１８に表示される対話形式による作業内容と手順に従って、入力装置１１６を操作することで、上述した画像処理を実行することができる。処理の結果得られた「処理後の画像に関するデータ」は、例えば、ＨＤ１１５に記憶しておいて後日利用できるようにしたり、あるいは、処理結果を表示装置１１８に視覚的に表示するのに用いてもよい。
【００５８】
なお、図１３のコンピュータでは、記憶媒体１１０に記憶されたプログラムをＨＤ１１５にインストールするようにしたが、これに限らず、ＬＡＮ等の情報伝送媒体を介して、コンピュータにインストールされてもよいし、コンピュータに内蔵のＨＤ１１５に予めインストールされておいてもよい。
【産業上の利用可能性】
【００５９】
本発明は、画像を各種加工する際に用いられる空間フィルタに適用することができる。本発明は、平均化フィルタ処理のような線形フィルタ、ならびに、中間値フィルタ、最大値フィルタ、最小値フィルタおよびラプラシアンフィルタなどのような統計フィルタ、にも適用することができる。例えば、最大値フィルタや最小値フィルタは、配線基板の欠陥を検出する欠陥検査装置における画像処理に用いられるものであり、また、平均化フィルタは、撮像した配線基板の画像の光ムラを除去するのにも用いられる。
【符号の説明】
【００６０】
１    画像処理装置
１０    メモリ
１１    マスク
１１’    縮小マスク
１２    抽出手段
１３    計算手段
１４    画像縮小手段
１５    マスク縮小手段
１６    画像拡大手段
１７    縮小率設定手段
１１０    記録媒体
１１１    ＣＰＵ
１１２    バス
１１３    ＲＯＭ
１１４    ＲＡＭ
１１５    ハードディスク装置
１１６    入力装置
１１７    外部記憶媒体ドライブ装置
１１８    表示装置
【図１】
2011128720.tif 000006
【図２】
2011128720.tif 000007
【図４】
2011128720.tif 000008
【図５】
2011128720.tif 000009
【図６】
2011128720.tif 000010
【図１１】
2011128720.tif 000011
【図１３】
2011128720.tif 000012
【図１４】
2011128720.tif 000013
【図１５】
2011128720.tif 000014
【図１６】
2011128720.tif 000015
【図３】
2011128720.tif 000016
【図７】
2011128720.tif 000017
【図８】
2011128720.tif 000018
【図９】
2011128720.tif 000019
【図１０】
2011128720.tif 000020
【図１２】
2011128720.tif 000021