(57)【要約】【課題】ＧＰＵを用いて中央値フィルタ処理を高速に行う。【解決手段】１回目の処理（Ｓ１）として、処理対象画像データの各ピクセルにおいて、Ｎ（Ｎ≧３）個のピクセルを包含可能に設定されたフィルタ領域内のＮ個のピクセルのうち１回目の処理対象ピクセル位置のピクセル値がフィルタ領域内で中央値か否かを判定し、その結果を第１画像データ記憶領域２１に書き込む。２〜Ｎ回目までの処理（Ｓ２〜Ｓ６）として第１画像データ記憶領域２１から前回の結果を取得し、各ピクセルの前回の結果が、中央値である場合には中央値を第２画像データ記憶領域２２に書き込み、中央値でない場合には処理対象画像データにおいて、２回目以降の各回にて選択された処理対象ピクセル位置のピクセル値がフィルタ領域内で中央値か否かを判定し、その結果を第２画像データ記憶領域２２に書き込み、第２画像データ記憶領域２２のデータを第１画像データ記憶領域２１に書き込む。【選択図】図１
2008015793.tif 000002
【特許請求の範囲】
【請求項１】
処理対象画像データを記憶する処理対象画像データ記憶領域と、画像データ処理の結果の書き込みが可能な第１及び第２画像データ記憶領域とを用い、前記処理対象画像データの複数のピクセルの各ピクセル位置を注目ピクセル位置として、各注目ピクセル位置でＮ（Ｎは３以上の自然数）個のピクセルを包含するようなフィルタ領域を設定し、前記各注目ピクセル位置での中央値フィルタ処理を並列的に実行可能な画像データ処理方法であって、
前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を前記各ピクセル位置に対応させて１回目からＮ回目まで設定したときの１回目の画像データ処理として、
前記各注目ピクセル位置で設定されたフィルタ領域内に存在する前記Ｎ個のピクセルの各ピクセル位置のうちのいずれかのピクセル位置を前記１回目の画像データ処理における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値が前記フィルタ領域内で中央値か否かを判定する中央値判定処理を行い、前記中央値判定処理の結果を前記第１画像データ記憶領域に書き込むステップを実行し、
前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を前記各ピクセル位置に対応させて１回目からＮ回目まで設定したときの２回目からＮ回目までの各回における画像データ処理として、
前記第１画像データ記憶領域から前回の処理結果としての中央値または中央値が得られなかったことを示すデータを取得するステップと、
前記中央値が取得された場合には、取得された中央値を前記第２画像データ記憶領域に書き込み、前記中央値が得られなかったことを示すデータが取得された場合には、前記各注目ピクセル位置で設定されたフィルタ領域内に存在する前記Ｎ個のピクセルの各ピクセル位置のうちのいずれかのピクセル位置を２回目以降の各回における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値に対し前記中央値判定処理を行い、前記中央値判定処理の結果を前記第２画像データ書き込み領域に書き込む処理を実行するステップと、
前記第２画像データ記憶領域に書き込まれたデータを前記第１画像データ記憶領域に書き込むステップと、
を実行することを特徴とする画像データ処理方法。
【請求項２】
請求項１に記載の画像データ処理方法において、
前記処理対象ピクセル位置の選択は、前記Ｎ個のピクセルの各ピクセル位置に対して前記画像データ処理の順序が設定されたピクセル位置選択用テーブルによって選択されることを特徴とする画像データ処理装置。
【請求項３】
請求項２に記載の画像データ処理方法において、
前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序は、前記処理対象画像データのピクセル値の分布に基づいて前記フィルタ領域内において中央値が得られる可能性の高いピクセル位置を予測して設定することを特徴とする画像データ処理装置。
【請求項４】
請求項１〜３のいずれかに記載の画像データ処理方法において、
前記フィルタ領域は、前記フィルタ領域に包含されるピクセル数が奇数個となるように設定されることを特徴とする画像データ処理方法。
【請求項５】
請求項４に記載の画像データ処理方法において、
前記中央値判定処理は、
前記Ｎ個のピクセルにおいて、前記処理対象ピクセル位置のピクセル値とその他のピクセル位置のピクセル値との大小関係を算出し、前記処理対象ピクセル位置のピクセル値より大きいピクセル値を持つピクセル数と、前記処理対象ピクセル位置のピクセル値より小
さいピクセル値を持つピクセル数を算出し、その算出結果が、設定された中央値条件を満たすか否かを判定することによって行うことを特徴とする画像データ処理方法。
【請求項６】
請求項５に記載の画像データ処理方法において、
前記中央値条件は、
前記Ｎ個のピクセルにおいて、前記処理対象ピクセル位置のピクセル値より大きいピクセル値を持つピクセル数が、前記フィルタ領域に包含されるピクセル数の過半数より小さく、かつ、前記Ｎ個のピクセルにおいて、前記処理対象ピクセル位置のピクセル値より小さいピクセル値を持つピクセル数が、前記フィルタ領域に包含されるピクセル数の過半数より小さいという条件であることを特徴とする画像データ処理方法。
【請求項７】
処理対象画像データを記憶する処理対象画像データ記憶領域と、画像データ処理の結果の書き込みが可能な第１及び第２画像データ記憶領域とを用い、前記処理対象画像データの複数のピクセルの各ピクセル位置を注目ピクセル位置として、各注目ピクセル位置でＮ（Ｎは３以上の自然数）個のピクセルを包含するようなフィルタ領域を設定し、前記各注目ピクセル位置での中央値フィルタ処理を並列的に実行可能な画像データ処理機能を有する画像データ処理装置に、
前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を前記各ピクセル位置に対応させて１回目からＮ回目まで設定したときの１回目の画像データ処理として、
前記各注目ピクセル位置で設定されたフィルタ領域内に存在する前記Ｎ個のピクセルの各ピクセル位置のうちのいずれかのピクセル位置を前記１回目の画像データ処理における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値が前記フィルタ領域内で中央値か否かを判定する中央値判定処理を行い、前記中央値判定処理の結果を前記第１画像データ記憶領域に書き込むステップを実行させ、
前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を前記各ピクセル位置に対応させて１回目からＮ回目まで設定したときの２回目からＮ回目までの各回における画像データ処理として、
前記第１画像データ記憶領域から前回の処理結果としての中央値または中央値が得られなかったことを示すデータを取得するステップと、
前記中央値が取得された場合には、取得された中央値を前記第２画像データ記憶領域に書き込み、前記中央値が得られなかったことを示すデータが取得された場合には、前記各注目ピクセル位置で設定されたフィルタ領域内に存在する前記Ｎ個のピクセルの各ピクセル位置のうちのいずれかのピクセル位置を２回目以降の各回における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値に対し前記中央値判定処理を行い、前記中央値判定処理の結果を前記第２画像データ書き込み領域に書き込む処理を実行するステップと、
前記第２画像データ記憶領域に書き込まれたデータを前記第１画像データ記憶領域に書き込むステップと、
を実行させるための画像データ処理プログラム。
【請求項８】
処理対象画像データを記憶する処理対象画像データ記憶領域と、画像データ処理の結果の書き込みが可能な第１及び第２画像データ記憶領域とを用い、前記処理対象画像データの複数のピクセルの各ピクセル位置を注目ピクセル位置として、各注目ピクセル位置でＮ（Ｎは３以上の自然数）個のピクセルを包含するようなフィルタ領域を設定し、前記各注目ピクセル位置での中央値フィルタ処理を並列的に実行可能な画像データ処理機能を有する画像データ処理装置であって、
前記画像データ処理機能は、
前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を前記各ピクセル位置に対応させて１回目からＮ回目まで設定したときの１回目の画像データ処理として、
前記各注目ピクセル位置で設定されたフィルタ領域内に存在する前記Ｎ個のピクセルの
各ピクセル位置のうちのいずれかのピクセル位置を前記１回目の画像データ処理における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値が前記フィルタ領域内で中央値か否かを判定する中央値判定処理を行い、前記中央値判定処理の結果を前記第１画像データ記憶領域に書き込むステップを実行し、
前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を前記各ピクセル位置に対応させて１回目からＮ回目まで設定したときの２回目からＮ回目までの各回における画像データ処理として、
前記第１画像データ記憶領域から前回の処理結果としての中央値または中央値が得られなかったことを示すデータを取得するステップと、
前記中央値が取得された場合には、取得された中央値を前記第２画像データ記憶領域に書き込み、前記中央値が得られなかったことを示すデータが取得された場合には、前記各注目ピクセル位置で設定されたフィルタ領域内に存在する前記Ｎ個のピクセルの各ピクセル位置のうちのいずれかのピクセル位置を２回目以降の各回における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値に対し前記中央値判定処理を行い、前記中央値判定処理の結果を前記第２画像データ書き込み領域に書き込む処理を実行するステップと、
前記第２画像データ記憶領域に書き込まれたデータを前記第１画像データ記憶領域に書き込むステップと、
を実行することを特徴とする画像データ処理装置。
【請求項９】
中央値フィルタ処理が可能な画像データ処理装置を有する画像検査装置であって、
前記画像データ処理装置として、請求項８に記載の画像データ処理装置を有することを特徴とする画像検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中央値フィルタ処理を実行可能な画像データ処理方法、画像データ処理プログラム、画像データ処理装置及び画像検査装置に関する。
【背景技術】
【０００２】
製品や部品などをＣＣＤカメラ等で撮像して得られた画像データを用いて、製品や部品の形状や特性等が規定範囲内であるか否かの判定処理を行ったり、その形状や特性を計測処理したりする画像検査装置が開発されている。
【０００３】
これら画像検査装置は、製品・部品の形状や特性を表す出力値を高精度かつロバストに取得できるような高度な画像データ処理が不可欠である。しかしながら、高度な画像データ処理を行うということは画像データ処理速度の低下につながるという課題が存在する。現状では、画像検査装置などが行う画像データ処理を高速に実行できる専用ＩＣの設計開発などで、この課題を克服しようとする例が多い。
【０００４】
一方で、３Ｄグラフィックス処理を高速に処理できるＧＰＵ(Graphics Processing Unit)と呼ばれるＩＣの発達が著しい。最近のＧＰＵでは、ポリゴンと呼ばれる多角形要素の頂点位置などを計算する頂点処理と、ポリゴン内部を塗りつぶすピクセル処理をプログラミングできるようになった。
【０００５】
これにより、静的なポリゴンモデルに対する座標変換やライティングを自由に適用できる。このＧＰＵは、３Ｄゲームはもちろん、パーソナルコンピュータ（ＰＣという）のＯＳの描画処理に利用されているほど一般的なものであり、比較的安価に安定供給されている。したがって、ＧＰＵを利用することにより、画像検査装置などが行う画像データ処理を高速に実行することも可能であると考えられる。
【０００６】
ところで、画像検査装置が行う典型的な画像データ処理として中央値フィルタ処理がある。中央値フィルタ処理は、画像データに存在するノイズを除去する手法として一般的である（例えば、特許文献１参照）。中央値フィルタ処理は、各ピクセルの中央値を決定するための影響範囲(フィルタ径)が大きくなるほど処理速度が低下する課題が存在する。特許文献１に開示された技術は、ＳＩＭＤ（Single Instruction Multiple Data）演算を用いて中央値フィルタ処理を高速化するというものである。
【０００７】
【特許文献１】特開２００３−１７７９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１に開示された技術は、上記したようにＳＩＭＤ演算を利用して中央値フィルタ処理を高速化するというものであり、あるピクセルで設定されたフィルタ領域内の中央値を探索するためにフィルタ領域内に含まれる各ピクセルでヒストグラムテーブルを生成するという処理を行っている。ＳＩＭＤ演算は、複数のデータに対して同じ処理を並列的に実行可能な演算処理方法であり、ＧＰＵもこのような処理を可能としている。
【０００９】
しかしながら、特許文献１に開示された技術は、ＧＰＵに特化した処理ではないため，この処理手順をＧＰＵで実施しても高速化は望めない。これは、ＧＰＵで処理可能とするためのＧＰＵ独特のプログラミングが必要となるからである。また、特許文献１に開示された技術は、ヒストグラムテーブルを生成する必要があり、このヒストグラムを生成する
処理はメモリコストが高いといった課題もある。
【００１０】
本発明は、中央値フィルタ処理をＧＰＵで実施可能とし、それによって、画像データのノイズ除去処理などを高速かつ高精度に実施可能とする画像データ処理方法、画像データ処理プログラム、画像データ処理装置及び画像検査装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
（１）本発明の画像データ処理方法は、処理対象画像データを記憶する処理対象画像データ記憶領域と、画像データ処理の結果の書き込みが可能な第１及び第２画像データ記憶領域とを用い、前記処理対象画像データの複数のピクセルの各ピクセル位置を注目ピクセル位置として、各注目ピクセル位置でＮ（Ｎは３以上の自然数）個のピクセルを包含するようなフィルタ領域を設定し、前記各注目ピクセル位置での中央値フィルタ処理を並列的に実行可能な画像データ処理方法であって、前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を前記各ピクセル位置に対応させて１回目からＮ回目まで設定したときの１回目の画像データ処理として、前記各注目ピクセル位置で設定されたフィルタ領域内に存在する前記Ｎ個のピクセルの各ピクセル位置のうちのいずれかのピクセル位置を前記１回目の画像データ処理における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値が前記フィルタ領域内で中央値か否かを判定する中央値判定処理を行い、前記中央値判定処理の結果を前記第１画像データ記憶領域に書き込むステップを実行し、前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を前記各ピクセル位置に対応させて１回目からＮ回目まで設定したときの２回目からＮ回目までの各回における画像データ処理として、前記第１画像データ記憶領域から前回の処理結果としての中央値または中央値が得られなかったことを示すデータを取得するステップと、前記中央値が取得された場合には、取得された中央値を前記第２画像データ記憶領域に書き込み、前記中央値が得られなかったことを示すデータが取得された場合には、前記各注目ピクセル位置で設定されたフィルタ領域内に存在する前記Ｎ個のピクセルの各ピクセル位置のうちのいずれかのピクセル位置を２回目以降の各回における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値に対し前記中央値判定処理を行い、前記中央値判定処理の結果を前記第２画像データ書き込み領域に書き込む処理を実行するステップと、前記第２画像データ記憶領域に書き込まれたデータを前記第１画像データ記憶領域に書き込むステップとを実行することを特徴とする。
【００１２】
本発明の画像データ処理方法による処理手順は、ＧＰＵに適した処理手順であり、このような処理手順によれば、中央値フィルタ処理をＧＰＵで高速かつ高精度に実施可能となる。ＧＰＵは複数のピクセルに対して同じ処理を並列的に実行できるため、ＧＰＵを用いることによって、前記１回目の画像データ処理及び２回目からＮ回目の画像データ処理を複数のピクセル（注目ピクセル）で並列的に実行することができる。これによって、中央値フィルタ処理を高速かつ高精度に実施することができ、画像データのノイズ除去処理などを高速かつ高精度に実施できる。
【００１３】
（２）前記（１）に記載の画像データ処理方法においては、前記処理対象ピクセル位置の選択は、前記Ｎ個のピクセルの各ピクセル位置に対して前記画像データ処理の順序が設定されたピクセル位置選択用テーブルによって選択されることが好ましい。
これは、各注目ピクセルで設定されたフィルタ領域に包含されるＮ個のピクセルの各ピクセル位置に対してどのような順序で処理を行うかを設定したピクセル位置選択用テーブルを用意しておき、そのピクセル位置選択用テーブルによって各回における処理対象ピクセル位置を選択するものである。このようなピクセル位置選択用テーブルを用意しておくことによって各回における処理対象ピクセルを適切に選択することができ、１回目の画像データ処理及び２回目からＮ回目の画像データ処理を効率的に行うことができる。
【００１４】
（３）前記（２）に記載の画像データ処理方法においては、前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序は、前記処理対象画像データのピクセル値の分布に基づいて前記フィルタ領域内において中央値が得られる可能性の高いピクセル位置を予測して設定することが好ましい。
【００１５】
このように、処理対象画像データのピクセル値の分布に所定の傾向がある場合には、各注目ピクセルに設定されるフィルタ領域においてどの位置に中央値が存在する可能性が高いかを予測することができる。これを利用して、ピクセル位置選択用テーブルにおけるピクセル選択順序を設定しておくことにより、フィルタ領域内でピクセルを選択する順序の最適化が可能となり、前記１回目の画像データ処理及び２回目からＮ回目までの画像データ処理を、より効率的に行うことができる。
【００１６】
（４）前記（１）〜（３）のいずれかに記載の画像データ処理方法においては、前記フィルタ領域は、前記フィルタ領域に包含されるピクセル数が奇数個となるように設定されることが好ましい。
このように、フィルタ領域に包含されるピクセル数を奇数個とすることにより、前記中央値判定処理を行う際の中央値の判定処理を行い易くすることができる。
【００１７】
（５）前記（４）に記載の画像データ処理方法においては、前記中央値判定処理は、前記Ｎ個のピクセルにおいて、前記処理対象ピクセル位置のピクセル値とその他のピクセル位置のピクセル値との大小関係を算出し、前記処理対象ピクセル位置のピクセル値より大きいピクセル値を持つピクセル数と、前記処理対象ピクセル位置のピクセル値より小さいピクセル値を持つピクセル数を算出し、その算出結果が、設定された中央値条件を満たすか否かを判定することによって行うことが好ましい。
このように、ピクセル値の大小関係の算出と、算出された大小関係に基づくピクセル数の比較とによって中央値であるか否か判定を行うことにより、中央値であるか否かの判定を簡単な演算処理で行うことができる。
【００１８】
（６）前記（５）に記載の画像データ処理方法においては、前記中央値条件は、前記Ｎ個のピクセルにおいて、前記処理対象ピクセル位置のピクセル値より大きいピクセル値を持つピクセル数が、前記フィルタ領域に包含されるピクセル数の過半数より小さく、かつ、前記Ｎ個のピクセルにおいて、前記処理対象ピクセル位置のピクセル値より小さいピクセル値を持つピクセル数が、前記フィルタ領域に包含されるピクセル数の過半数より小さいという条件とすることが好ましい。
中央値であることを決定する中央値条件をこのような条件とすることにより、中央値であるか否かを適切に判定することができる。
【００１９】
（７）本発明の画像データ処理プログラムは、処理対象画像データを記憶する処理対象画像データ記憶領域と、画像データ処理の結果の書き込みが可能な第１及び第２画像データ記憶領域とを用い、前記処理対象画像データの複数のピクセルの各ピクセル位置を注目ピクセル位置として、各注目ピクセル位置でＮ（Ｎは３以上の自然数）個のピクセルを包含するようなフィルタ領域を設定し、前記各注目ピクセル位置での中央値フィルタ処理を並列的に実行可能な画像データ処理機能を有する画像データ処理装置に、前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を前記各ピクセル位置に対応させて１回目からＮ回目まで設定したときの１回目の画像データ処理として、前記各注目ピクセル位置で設定されたフィルタ領域内に存在する前記Ｎ個のピクセルの各ピクセル位置のうちのいずれかのピクセル位置を前記１回目の画像データ処理における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値が前記フィルタ領域内で中央値か否かを判定する中央値判定処理を行い、前記中央値判定処理の結果を前記第１画像データ記憶領域に書き込むステップを実行させ、前記Ｎ個のピクセルの各ピクセル位置に対す
る画像データ処理の順序を前記各ピクセル位置に対応させて１回目からＮ回目まで設定したときの２回目からＮ回目までの各回における画像データ処理として、前記第１画像データ記憶領域から前回の処理結果としての中央値または中央値が得られなかったことを示すデータを取得するステップと、前記中央値が取得された場合には、取得された中央値を前記第２画像データ記憶領域に書き込み、前記中央値が得られなかったことを示すデータが取得された場合には、前記各注目ピクセル位置で設定されたフィルタ領域内に存在する前記Ｎ個のピクセルの各ピクセル位置のうちのいずれかのピクセル位置を２回目以降の各回における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値に対し前記中央値判定処理を行い、前記中央値判定処理の結果を前記第２画像データ書き込み領域に書き込む処理を実行するステップと、前記第２画像データ記憶領域に書き込まれたデータを前記第１画像データ記憶領域に書き込むステップとを実行させるための画像データ処理プログラムである。
【００２０】
本発明の画像データ処理プログラムを画像データ処理装置としてのＧＰＵで実行させることにより、前記（１）に記載の画像データ処理方法と同様の効果を得ることができる。なお、発明の画像データ処理プログラムにおいても、前記（２）〜（６）の画像データ処理方法の特徴を有することが好ましい。
【００２１】
（８）本発明の画像データ処理装置は、処理対象画像データを記憶する処理対象画像データ記憶領域と、画像データ処理の結果の書き込みが可能な第１及び第２画像データ記憶領域とを用い、前記処理対象画像データの複数のピクセルの各ピクセル位置を注目ピクセル位置として、各注目ピクセル位置でＮ（Ｎは３以上の自然数）個のピクセルを包含するようにフィルタ領域を設定し、前記各注目ピクセル位置での中央値フィルタ処理を並列的に実行する画像データ処理機能を有する画像データ処理装置であって、前記画像データ処理機能は、前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を１回目からＮ回目までに設定したときの１回目の画像データ処理として、前記各注目ピクセル位置で設定されたフィルタ領域内に存在するＮ個のピクセルの各ピクセル位置のうち、前記１回目の処理対象ピクセル位置として選択された処理対象ピクセル位置のピクセル値が前記フィルタ領域内で中央値か否かを判定する中央値判定処理を行い、中央値判定処理の結果を前記第１画像データ記憶領域に書き込むステップを実行し、前記Ｎ個のピクセルの各ピクセル位置に対する画像データ処理の順序を１回目からＮ回目までに設定したときの２回目からＮ回目までの各順序における画像データ処理として、前記第１画像データ記憶領域から前回の処理結果としての中央値または中央値が得られていないことを示すデータを取得するステップと、前記中央値が取得された場合には、取得された中央値を前記第２画像データ記憶領域に書き込み、前記中央値が得られていないことを示すデータが取得された場合には、前記各注目ピクセル位置で設定されたフィルタ領域内に存在するＮ個のピクセルの各ピクセル位置のうちのいずれかのピクセル位置を２回目以降の各回における処理対象ピクセル位置として選択し、当該処理対象ピクセル位置のピクセル値に対し前記中央値判定処理を行い、中央値判定処理の結果を前記第２画像データ書き込み領域に書き込む処理を実行するステップと、前記第２画像データ記憶領域に書き込まれたデータを前記第１画像データ記憶領域に書き込むステップとを実行することを特徴とする。
【００２２】
このような画像データ処理機能を有する画像データ処理装置によれば、中央値フィルタ処理を高速かつ高精度に実施することができる、それによって、画像データのノイズ除去処理などを高速かつ高精度に実施できる。なお、本発明の画像データ処理装置においても、前記（２）〜（６）の画像データ処理方法の特徴を有することが好ましい。
【００２３】
（９）本発明の画像検査装置は、中央値フィルタ処理が可能な画像データ処理装置を有する画像検査装置であって、前記画像データ処理装置として、請求項８に記載の画像データ処理装置を有することを特徴とする。
【００２４】
製品や部品の形状や特性等が規定範囲内であるか否かの判定処理やその形状や特性を計測処理する画像検査装置の画像データ処理装置として、前記（１）に記載の画像データ処理方法による画像処理が可能な画像データ処理装置を用いることにより、画像検査装置が行う中央値フィルタ処理を高速かつ高精度に行うことができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施形態について説明する。
図１は本発明の実施形態に係る画像処理方法を説明する図である。本発明の実施形態に係る画像処理方法は、画像検査装置などが行う典型的な画像データ処理である中央値フィルタ処理をＧＰＵで高速に実施可能とするものである。
【００２６】
図１に示すように、処理対象となる画像データ(処理対象画像データという)を予め格納しておくための処理対象画像データ記憶領域１０と、ＧＰＵとしての機能を有する画像データ処理装置４０の出力結果が書き込まれる第１画像データ記憶領域２１及び第２画像データ記憶領域２２とを準備する。なお、これら処理対象画像データ記憶領域１０、第１及び第２画像データ記憶領域２１，２２は処理対象画像データと同サイズの記憶領域を有しているものする。
また、処理対象画像データに設定されるフィルタ領域（後述する）に包含される複数のピクセルから処理対象となるピクセルのピクセル位置を選択するピクセル位置選択用テーブル３０を準備する。
【００２７】
画像データ処理装置４０は、処理対象画像データ記憶領域１０、第１及び第２画像データ記憶領域２１，２２、ピクセル位置選択用テーブル３０を用い、所定の手順に従って画像データ処理を行い、その処理結果を第１及び第２画像データ記憶領域２１，２２に書き込む。
【００２８】
次に、画像データ処理装置４０が行う画像データ処理について説明する。ところで、ＧＰＵは複数のピクセルに対して同じ処理を並列的に実行できることが特徴であり、本発明においても、このようなＧＰＵの特徴を用いて複数のピクセルについて以下の画像データ処理（図１におけるステップＳ１〜Ｓ６）を並列的に実行する。ただし、説明をわかりやすくするため、以下の説明においては、あるピクセル位置（ｉ，ｊ）に対する説明を行う。なお、このピクセル位置（ｉ，ｊ）を注目ピクセル位置（ｉ，ｊ）と呼ぶことにする。
【００２９】
[１回目の画像データ処理（図１におけるステップＳ１の処理）]
まず、第１画像データ記憶領域２１上の注目ピクセル位置（ｉ，ｊ）で所定の大きさのフィルタ領域５０（図２参照）が設定され、そのフィルタ領域５０に包含される各ピクセルのピクセル位置（フィルタ領域５０内のピクセル位置という）のそれぞれにおいて処理対象画像データ記憶領域１０を参照し、設定されたフィルタ領域５０内の各ピクセル位置におけるピクセル値をそれぞれ取得する（図２参照）。
【００３０】
そして、取得した各ピクセル位置におけるピクセル値の中から、フィルタ領域５０内で１回目の画像データ処理において処理対象となるピクセルのピクセル位置（処理対象ピクセル位置という）を１つ選択する。フィルタ領域５０内で処理対象ピクセル位置の選択は、図１に示すピクセル位置選択用テーブル３０によって行う。
そして、処理対象ピクセル位置のピクセル値がフィルタ領域５０内で中央値であるか否かを判定する処理を行い、その処理結果を第１画像データ記憶領域２１の注目ピクセル位置（ｉ，ｊ）に書き込む。
【００３１】
中央値フィルタ処理は、あるフィルタの大きさを設定して、設定されたフィルタ内のピ
クセルの中から中央値を取得する処理である。フィルタ領域５０の大きさは、本発明の実施形態においては、（２ｍ＋１）・（２ｎ＋１）で表されるものとする。ここで、ｍ，ｎはフィルタ領域のフィルタ径であり、フィルタ領域５０の大きさ（２ｍ＋１）・（２ｎ＋１）は、フィルタ径ｍ，ｎを有するフィルタ領域５０内のピクセル数Ｎを表している。
【００３２】
たとえば、フィルタ径ｍ，ｎをｍ＝ｎ＝１とした場合には、フィルタ領域５０の大きさは、（２×１＋１）・（２×１＋１）＝９となり、これは、当該フィルタ領域５０内のピクセル数Ｎが９個（Ｎ＝９）であることを意味している。なお、本発明の実施形態では、説明の簡単化のため、フィルタ領域５０のフィルタ径ｍ，ｎをｍ＝ｎ＝１として説明するが、実際には、ｍ，ｎはもう少し大きな値に設定されるのが一般的である。
【００３３】
図２は注目ピクセル位置（ｉ，ｊ）で設定されたフィルタ領域５０内の各ピクセル位置における各ピクセル値を取得する処理を説明する図である。図２（ａ），（ｂ）に示すように、注目ピクセル位置（ｉ，ｊ）で設定されたフィルタ領域５０（フィルタ径ｍ＝ｎ＝１）内の各ピクセル位置それぞれにおいて、処理対象画像データ記憶領域１０を参照することにより、設定されたフィルタ領域５０内の各ピクセル位置におけるピクセル値を取得する。なお、図２（ｂ）に示す各ピクセル位置は、注目ピクセル位置（ｉ，ｊ）を基準とした場合のピクセル位置である。
【００３４】
図３は各ピクセル位置のうちの処理対象ピクセル位置におけるピクセル値とその他のピクセル位置のピクセル値との比較について説明する図である。図３（ａ）はフィルタ領域５０内の各ピクセル位置におけるピクセル値であり、これは図２（ｂ）と同じものである。なお、図３においては、処理対象ピクセル位置は、注目ピクセルの左上のピクセル位置（ｉ−１，ｊ−１）である。
【００３５】
また、処理対象ピクセル位置の選択は、ピクセル位置選択用テーブル３０（図３（ｂ）参照）によって行う。図３に示すピクセル位置選択用テーブル３０によれば、処理順序としての処理回数が１回目（１回目の画像データ処理）において処理対象ピクセルとして選択するピクセル位置は「左上」であることを示している。
【００３６】
ここで、１回目の画像データ処理における処理対象ピクセル位置は、（ｉ−１，ｊ−１）であるので、当該処理対象ピクセル位置のピクセル値とその他のピクセル位置のピクセル値との大小関係を算出する（ステップＳ１１）。そして、その算出結果に基づいて処理対象ピクセル位置（ｉ−１，ｊ−１）におけるピクセル値が中央値であるか否かを判定する（ステップＳ１２）。この判定の結果、処理対象ピクセル位置（ｉ−１，ｊ−１）におけるピクセル値は中央値ではないと判定されたとする。
【００３７】
このように、１回目の画像データ処理における処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値は中央値ではないと判定されると、注目ピクセル位置（ｉ，ｊ）における中央値は１回目の画像データ処理では得られなかったものとする（ステップＳ１３）。なお、ステップＳ１１，Ｓ１２の処理は次のような処理がなされる。
【００３８】
すなわち、まず、ピクセル位置選択用テーブル３０によって選択された処理対象ピクセル位置（この例では「左上」）のピクセル値とその他のピクセル位置でのピクセル値との大小関係を算出し、処理対象ピクセル位置のピクセル値より大きいピクセル値を持つピクセル数と、処理対象ピクセル位置のピクセル値より小さいピクセル値を持つピクセル数を算出する。
【００３９】
そして、「処理対象ピクセル位置のピクセル値より大きいピクセル値を持つピクセル数が、フィルタ領域５０内に含まれるピクセル数の過半数より小さく、かつ、処理対象ピク
セル位置のピクセル値より小さいピクセル値を持つピクセル数が、フィルタ領域５０内に含まれるピクセル数の過半数より小さい」という条件（これを「中央値条件」と呼ぶことにする）を満たしたか否かを判定し、中央値条件を満たした場合は、処理対象ピクセル位置のピクセル値を中央値として、第１画像データ記憶領域２１の注目ピクセル位置（ｉ，ｊ）のピクセル値として書き込む。
【００４０】
また、これに当てはまらない場合、すなわち、中央値条件を満たさない場合は、中央値ではないと判定される。処理対象ピクセルのピクセル値が中央値でないと判定された場合は、第１画像データ記憶領域２１の注目ピクセル位置（ｉ，ｊ）に中央値が得られなかったことを示すデータとしてのフラグ値を書き込む。
【００４１】
図４は処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値と他のピクセル位置のピクセル値との比較を説明する図である。
また、図５は図４の処理結果に基づいて処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値が中央値であるか否かを判定する処理を説明する図である。
【００４２】
まず、図４（ａ）はフィルタ領域５０内の各ピクセル位置のピクセル値であり、これは、図２（ｂ）及び図３（ａ）と同じものである。図４（ａ）に示すフィルタ領域５０内の各ピクセル位置のピクセル値から、処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値「１２８」と他のピクセル位置のピクセル値との差を求める（図４（ｂ）参照）。
【００４３】
そして、処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値より大きいピクセル値を持つピクセル数と、処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値より小さいピクセル値を持つピクセル数を算出する。その結果、処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値より大きいピクセル値を持つピクセル数は「８」、処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値より小さいピクセル値を持つピクセル数は「０」と求められる（図４（ｃ）参照）。
【００４４】
図４（ｃ）の算出結果に対し、前述した中央値条件を満たすか否かを判定すると、図５に示すように、この場合、フィルタ領域５０内に含まれるピクセル数の過半数は「５」であるので、図４（ｃ）の算出結果は中央値条件を満たさない。したがって、処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値は中央値ではないと判定される。よって、注目ピクセル位置（ｉ，ｊ）の中央値は１回目の画像データ処理では得られなかったものとする。
【００４５】
図６は中央値が１回目の画像データ処理では得られなかったことを示すフラグ値を第１画像データ記憶領域２１に書き込む処理を説明する図である。図６に示すように、注目ピクセル位置（ｉ，ｊ）の中央値は１回目の画像データ処理では得られなかったとすると、第１画像データ記憶領域２１の当該注目ピクセル位置（ｉ，ｊ）で中央値が得られていないことを示すフラグ値をピクセル値として書き込む。
【００４６】
なお、中央値が得られていないことを示すフラグ値をピクセル値として書き込むというのは、例えば、ピクセル値が「０」〜「２５５」の値で表されるとした場合、それとは明確に区別できる何らかの数値などのデータを設定しておくことである。したがって、「０」〜「２５５」とは異なる数値などのデータがピクセル値として書き込まれていた場合には、中央値が得られていないと判定する。
【００４７】
[２回目から（２ｍ＋１）・（２ｎ＋１）回目までの各回における画像データ処理（図
１のステップＳ２〜Ｓ６）]
本発明の実施形態においては、ｍ＝ｎ＝１であるので、（２ｍ＋１）・（２ｎ＋１）に
より、フィルタ領域５０内のピクセル数は９個（Ｎ＝９）である。このため、２回目から（２ｍ＋１）・（２ｎ＋１）回目までの各回における画像データ処理は、２回目から９回目までの各回における画像データ処理ということになる。まず、図１において、ステップＳ２の処理回数ｋをｋ＝２とする。
【００４８】
２回目以降の処理においては、「画像データ処理その１」（図１におけるステップＳ３）と「画像データ処理その２」（図１におけるステップＳ４）を行う。
【００４９】
「画像データ処理その１」においては、まず、第２画像データ記憶領域２２上の注目ピクセル位置（ｉ，ｊ）で設定されたフィルタ領域５０内の各ピクセル位置それぞれにおいて処理対象画像データ記憶領域１０を参照し、フィルタ領域５０内の各ピクセル位置におけるピクセル値をそれぞれ取得する。加えて、注目ピクセル位置（ｉ，ｊ）で前回の画像データ処理結果を格納している第１画像データ記憶領域２１を参照し、中央値または中央値が得られていないことを示すフラグ値のいずれかを取得する。
【００５０】
ここで、第１画像データ記憶領域２１から中央値が取得されれば、その中央値を第２画像データ記憶領域２２の注目ピクセル位置（ｉ，ｊ）に書き込む。また、中央値が得られていない場合には、ピクセル位置選択用テーブル３０により、前回とは異なるピクセル位置を処理対象ピクセル位置として選択し、その処理対象ピクセル位置のピクセル値がフィルタ領域５０内で中央値であるか否かを判定する中央値判定処理を行う。そして、その中央値判定処理の結果を第２画像データ記憶領域２２に書き込む。
【００５１】
この場合、２回目の画像データ処理であるので、ピクセル位置選択用テーブル３０で選択される注目ピクセル位置は、注目ピクセル位置（ｉ，ｊ）の上のピクセル位置（ｉ，ｊ−１）である。ここで、新たに選択された処理対象ピクセル位置（ｉ，ｊ−１）のピクセル値は、図３（ｂ）によれば「１５０」であり、この場合も、図３のステップＳ１１〜Ｓ１３と同様の処理を行うことにより、中央値条件を満たさないと判定される。よって、１回目の処理と同様に、注目ピクセル位置（ｉ，ｊ）の中央値は２回目の処理では得られなかったと判定される。したがって、当該注目ピクセル位置（ｉ，ｊ）のピクセル値で中央値が得られていないことを示すフラグ値を第２画像データ記憶領域２２の当該注目ピクセル位置（ｉ，ｊ）に書き込む。
続いて、画像データ処理その２（図１におけるステップＳ４）として、第２画像データ記憶領域２２の書き込み結果を第１画像データ記憶領域２１にコピーする。
【００５２】
図７は第２画像データ記憶領域２２の描画結果を第１画像データ記憶領域２１にコピーする処理を説明する図である。２回目以降の各回における画像データ処理においては、第２画像データ記憶領域２２の注目ピクセル位置（ｉ、ｊ）には、中央値が得られた場合はその中央値が書き込まれ、中央値が得られなかった場合は、中央値が得られなかったことを示すフラグ値がピクセル値として書き込まれる。
【００５３】
図７（ａ）は、中央値または中央値が得られなかったことを示すフラグ値が注目ピクセル位置（ｉ，ｊ）に書き込まれた第２画像データ記憶領域２２を示し、この第２画像データ記憶領域２２の注目ピクセル位置（ｉ，ｊ）に書き込まれた内容が図７（ｂ）に示すように、第１画像データ記憶領域２１の同じピクセル位置（ｉ，ｊ）にコピーされる。すなわち、第１画像データ記憶領域２１の注目ピクセル位置（ｉ，ｊ）の書き込み内容が、第２画像データ記憶領域２２の注目ピクセル位置（ｉ，ｊ）に書き込まれた内容によって更新される。
【００５４】
次に、処理回数ｋが「ｋ＜（２ｍ＋１）・（２ｎ＋１）」を判定し（図１におけるステップＳ５）、「ｋ＜（２ｍ＋１）・（２ｎ＋１）」であれば、ｋを１ずつインクリメント
し（図１におけるステップＳ６）、ステップＳ３の処理に戻る。
【００５５】
ここで、ｋ＝３の場合について図８から図１０を参照して説明する。
図８は３回目の画像データ処理について説明する図である。図８に示すように、まず、第２画像データ記憶領域２２上の注目ピクセル位置（ｉ，ｊ）で設定されたフィルタ領域５０内の各ピクセル位置のそれぞれにおいて処理対象画像データ記憶領域１０を参照し、フィルタ領域５０内の各ピクセル位置におけるピクセル値をそれぞれ取得する。加えて、注目ピクセル位置（ｉ，ｊ）で前回の画像データ処理の結果を格納している第１画像データ記憶領域２１を参照し、中央値または中央値が得られていないことを示すフラグ値のいずれかを取得する。
【００５６】
図９は処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値が中央値であるか否かを判定する処理を説明する図である。
図１０は中央値を第２画像データ記憶領域２２に書き込む処理を説明する図である。
図１１は処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値と他のピクセル位置のピクセル値との比較を説明する図である。
図１２は図１１の処理結果に基づいて処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値が中央値であるか否かを判定する処理を説明する図である。
【００５７】
図９に示すように、まず、注目ピクセル位置（ｉ，ｊ）で前回（この場合、２回目）の画像データ処理の結果を記憶している第１画像データ記憶領域２１を参照すると、中央値が得られていないことを示すフラグが取得される。これは、前回（この場合、２回目）の画像データ処理では注目ピクセル位置（ｉ、ｊ）の中央値は得られていないということであり（ステップＳ２１）、新たな処理対象ピクセル位置がピクセル位置選択用テーブル３０により選択される。
【００５８】
この場合、選択された処理対象ピクセル位置は右上のピクセル位置（ｉ＋１，ｊ−１）であり、当該処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値とその他のピクセル値との大小関係を算出する（ステップＳ２２）。そして、ステップＳ２２による算出結果に基づいて、処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値が中央値か否かの判定行う（ステップＳ２３）。
【００５９】
この中央値か否かの判定は、図１１及び図１２に示す処理によって行われる。図１１及び図１２に示す処理がなされることにより、処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値「１９２」は中央値であると判定され、それによって、注目ピクセル位置（ｉ，ｊ）の中央値は「１９２」であると判定される(ステップＳ２４)。
このように、注目ピクセル位置（ｉ，ｊ）の中央値は「１９２」であると判定されると、図１０に示すように、その処理結果すなわち中央値「１９２」が第２画像データ記憶領域２２の注目ピクセル位置（ｉ，ｊ）に書き込まれる（図１０参照）。
【００６０】
３回目の画像データ処理において選択された処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値「１９２」が中央値であるか否かを判定する処理について図１１及び図１２を参照して説明する。
【００６１】
まず、フィルタ領域５０内の各ピクセル位置のピクセル値（図１１（ａ）参照）から、処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値「１９２」と他のピクセル位置のピクセル値との差を求める（図１１（ｂ）参照）。そして、処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値より大きいピクセル値を持つピクセル数と、処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値より小さいピクセル値を持つピクセル数を算出すると、処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値より大きいピクセル値を持つ
ピクセル数は「０」、処理対象ピクセル値（ｉ＋１，ｊ−１）のピクセル値より小さいピクセル値を持つピクセル数は「４」と求められる（図１１（ｃ）参照）。
【００６２】
図１１（ｃ）の算出結果に対し、前述した中央値条件を満たすか否かを判定すると、図１２からもわかるように、図１１（ｃ）の算出結果は前述した中央値条件、すなわち、処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値より大きいピクセル値を持つピクセル数「０」が、フィルタ領域５０内に含まれるピクセル数の過半数「５」より小さく、かつ、処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値より小さいピクセル値を持つピクセル数「４」が、フィルタ領域５０内に含まれるピクセル数の過半数「５」より小さいという条件を満たす。
【００６３】
これにより、処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値「１９２」は、中央値であると判定される。よって、注目ピクセル位置（ｉ，ｊ）における中央値は「１９２」であるとする。これにより、この中央値「１９２」をピクセル値として第２画像データ記憶領域２２の注目ピクセル位置（ｉ，ｊ）に書き込む。
【００６４】
このようにして、ｋ＝３の場合における「画像データ処理その１」（図１におけるステップＳ３）が終了すると、「画像データ処理その２」（図１におけるステップＳ４）として、図７で説明したように、第２画像データ記憶領域２２の注目ピクセル位置（ｉ，ｊ）に書き込まれた内容を第１画像データ記憶領域２１の注目ピクセル位置（ｉ，ｊ）にコピーする。すなわち、第１画像データ記憶領域２１の書きこみ内容を第２画像データ記憶領域２２の注目ピクセル位置（ｉ，ｊ）に書き込まれた内容で更新する。
【００６５】
以上の処理を、処理回数ｋが「ｋ＝（２ｍ＋１）・（２ｎ＋１）」となるまで行うことによって、第２画像データ記憶領域２２には、処理対象画像データ記憶領域１０に記憶されている処理対象画像データに対して中央値フィルタ処理を適用した結果が格納される。すなわち、最終的な第２画像データ記憶領域２２の書き込み結果は、処理対象画像データ記憶領域１０に記憶されている処理対象画像データに対して中央値フィルタ処理を行ったと同じ結果が得られる。
【００６６】
ところで、以上説明した図１におけるステップＳ１〜Ｓ６の画像データ処理は、ある１つの注目ピクセル位置（ｉ，ｊ）に対する画像データ処理であったが、前述したように、複数の注目ピクセルに対して、図１におけるステップＳ１〜Ｓ６の画像データ処理を並列的に実行する。
【００６７】
なお、複数の注目ピクセルに対する画像データ処理を並列的に実行する際、複数の注目ピクセル位置のうち、ある注目ピクセル位置においては１回目の画像データ処理で中央値が得られ、また、他のあるピクセルにおいては９回目まで画像データ処理を行って中央値が得られるというように、それぞれの注目ピクセル位置によって中央値が得られるまでの処理回数が異なる場合もある。
【００６８】
このとき、どの注目ピクセル位置においても最後の回数（前述の例は９回目）まで処理を繰り返し行うこととなるが、早い段階で中央値が見つかった注目ピクセル位置は、中央値が得られた以降の処理として、取得されている中央値を第１画像データ記憶領域２１から取得し、第２画像データ記憶領域２２に書き込み、さらに、第２画像データ記憶領域２２の書き込み結果を第１画像データ記憶領域２１にコピーするという処理を繰り返し行う。このように、早い段階で中央値が得られた注目ピクセル位置においては、一見無駄な処理を行っているように見えるが、複数の注目ピクセル位置に対して前述したような画像データ処理を並列的に実行できることにより全体的には高速な中央値フィルタ処理が可能となる。
【００６９】
なお、本発明は前述の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲で種々変形実施可能となるものである。たとえば、ピクセル位置選択用テーブル３０がフィルタ領域５０内での処理対象ピクセル位置を選択する順序は前述の実施形態の順序に限られるものではない。
【００７０】
図１３はピクセル位置選択用テーブル３０による処理対象ピクセルの選択順序の設定例を示す図である。図１３（ａ）は前述の実施形態で用いた処理対象ピクセルの選択順序である。前述の実施形態では、図１３（ａ）に示すように、注目ピクセル位置（ｉ，ｊ）を基準としたとき、注目ピクセル位置（ｉ，ｊ）の左上を始点として、上、右上、左、・・・というようにラスタスキャン的な順序で選択するようにしたが、図１３（ｂ）に示すように、注目ピクセル位置（ｉ，ｊ）を始点として、右、右上、上、左上、・・・というように、中心から外側に広がるような渦巻き状の順序とすることも可能である。
【００７１】
このように、フィルタ領域５０内で注目ピクセル位置の選択順序は幾つか考えられる。例えば、処理対象画像データにおけるピクセル値の分布の傾向が予め予測できる場合には、処理対象ピクセルの選択順序を最適化することができる。
【００７２】
図１４は処理対象ピクセルの選択順序の最適化について説明する図である。図１４（ａ）に示す画像データは、その高さ方向に沿って明るさの変化する画像データ（具体的には、中央付近が明るく上方向及び下方向に行くほど暗くなる画像データ）の例である。
【００７３】
処理対象画像データが図１４（ａ）に示すような画像データである場合には、当該画像データのピクセル分布は、図１４（ｂ）のような傾向となることは予測できる。したがって、このような画像データのある注目ピクセル位置でフィルタ領域５０を設定した場合、フィルタ領域５０内においては、図１４（ｃ）に示すように、フィルタの高さ中心付近に中央値が存在することが予測できる。すなわち、図１４（ａ）に示すような画像データの場合、どの位置にフィルタ領域５０を設定した場合であっても、それぞれのフィルタ領域５０内の高さ中心付近に中央値が存在する傾向にあることがわかる。
【００７４】
したがって、図１４（ａ）に示すような画像データの場合には、ピクセル位置選択用テーブル３０における注目ピクセル位置の選択順序は、図１４（ｄ）に示すような選択順序とすれば効率的な処理が可能となる。なお、図１４においても、フィルタ領域５０のフィルタ径は、前述の実施形態と同様、ｍ＝ｎ＝１とした場合である。
【００７５】
また、前述の実施形態では、フィルタ領域５０のフィルタ径を表すｍ，ｎは、同じ値（ｍ＝ｎ）としたが、同じ値でなくてもよい。
図１５はフィルタ領域５０の変形例を示す図である。例えば、フィルタ領域５０のフィルタ径を表すｍ，ｎを、ｍ＝１，ｎ＝２とした場合には、フィルタ領域５０は図１５（ａ）に示すようになる。また、フィルタ領域５０は正方形または長方形などの矩形でなくてもよく、例えば、図１５（ｂ）に示すような形状としてもよい。図１５（ｂ）の例では、フィルタ領域５０の大きさはピクセル数で言うと「１３」となる。
【００７６】
また、前述の実施形態で説明した中央値フィルタ処理の実行が可能な画像データ処理装置を、製品や部品の形状や特性等が規定範囲内であるか否かの判定処理などを行う画像検査装置などにおける画像データ処理装置として用いることが可能である。このような画像データ処理装置を画像検査装置などに用いることにより、画像検査装置などが行う中央値フィルタ処理を高速かつ高精度に行うことができる。
【００７７】
また、前述の実施形態において説明したステップＳ１〜Ｓ６の処理を画像データ処理装
置に実行させるための画像データ処理プログラムを作成することが可能であり、また、作成した画像データ処理プログラムを各種の記録媒体に記録させておくことも可能である。
したがって、本発明は、これら画像データ処理プログラムとその画像データ処理プログラムを記録した記録媒体をも含むものである。また、画像データ処理プログラムはネットワークから取得するようにしてもよい。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施形態に係る画像処理方法における画像処理手順を説明する図。
【図２】注目ピクセル位置（ｉ，ｊ）で設定されたフィルタ領域５０内の各ピクセル位置における各ピクセル値を取得する処理を説明する図。
【図３】各ピクセル位置のうちの処理対象ピクセル位置におけるピクセル値とその他のピクセル位置のピクセル値との比較について説明する図。
【図４】注処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値と他のピクセル位置のピクセル値との比較を説明する図。
【図５】図４の処理結果に基づいて処理対象ピクセル位置（ｉ−１，ｊ−１）のピクセル値が中央値であるか否かを判定する処理を説明する図。
【図６】中央値が１回目の画像データ処理では得られなかったことを示すフラグ値を第１画像データ記憶領域２１に書き込む処理を説明する図。
【図７】第２画像データ記憶領域２２の描画結果を第１画像データ記憶領域２１にコピーする処理を説明する図。
【図８】３回目の画像データ処理について説明する図。
【図９】処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値が中央値であるか否かを判定する処理を説明する図。
【図１０】中央値を第２画像データ記憶領域２２に書き込む処理を説明する図。
【図１１】処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値と他のピクセル位置のピクセル値との比較を説明する図。
【図１２】図１１の処理結果に基づいて処理対象ピクセル位置（ｉ＋１，ｊ−１）のピクセル値が中央値であるか否かを判定する処理を説明する図。
【図１３】ピクセル位置選択用テーブル３０による処理対象ピクセルの選択順序の設定例を示す図。
【図１４】処理対象ピクセルの選択順序の最適化について説明する図。
【図１５】フィルタ領域の変形例を示す図。
【符号の説明】
【００７９】
１０・・・処理対象画像データ記憶領域、２１・・・第１画像データ記憶領域、２２・・・第２画像データ記憶領域２２、３０・・・ピクセル位置選択用テーブル、４０・・・画像データ処理装置、５０・・・フィルタ領域
【図３】
2008015793.tif 000003
【図４】
2008015793.tif 000004
【図５】
2008015793.tif 000005
【図９】
2008015793.tif 000006
【図１１】
2008015793.tif 000007
【図１２】
2008015793.tif 000008
【図１３】
2008015793.tif 000009
【図１５】
2008015793.tif 000010
【図１】
2008015793.tif 000011
【図２】
2008015793.tif 000012
【図６】
2008015793.tif 000013
【図７】
2008015793.tif 000014
【図８】
2008015793.tif 000015
【図１０】
2008015793.tif 000016
【図１４】
2008015793.tif 000017