(57)【特許請求の範囲】
【請求項１】
所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得手段と、
前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得手段と、
前記画像データ取得手段により取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得手段により取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出手段と、
前記フィルタ係数に基づき、前記取得された画像データの前記算出手段により算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定手段と、
前記判定手段により前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正手段と、
前記判定手段により前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御手段と、
を有し、
前記判定手段は、負のフィルタ係数が存在しない場合には、前記新たな画素値の各々と前記所定の範囲内の最小値との比較が不必要と判定する画像処理装置。
【請求項２】
所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得手段と、
前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得手段と、
前記画像データ取得手段により取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得手段により取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出手段と、
前記フィルタ係数に基づき、前記取得された画像データの前記算出手段により算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定手段と、
前記判定手段により前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正手段と、
前記判定手段により前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御手段と、
前記画像データを構成する画素値の最大値である最大画素値、及び前記画像データを構成する画素値の最小値である最小画素値を取得する画素値取得手段と、
正のフィルタ係数の総和と、前記画素値取得手段により取得された前記最小画素値との積である第１の値を算出し、負のフィルタ係数の総和と、前記画素値取得手段により取得された前記最大画素値との積である第２の値を算出し、前記第１の値と前記第２の値との和である第３の値を算出する最小値算出手段と、
を有し、
前記判定手段は、前記最小値算出手段により算出された前記第３の値が前記所定の範囲内の最小値以上の場合には、前記新たな画素値の各々と前記所定の範囲内の最小値との比較が不必要と判定する画像処理装置。
【請求項３】
所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得手段と、
前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得手段と、
前記画像データ取得手段により取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得手段により取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出手段と、
前記フィルタ係数に基づき、前記取得された画像データの前記算出手段により算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定手段と、
前記判定手段により前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正手段と、
前記判定手段により前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御手段と、
前記画像データを構成する画素値の最大値である最大画素値、及び前記画像データを構成する画素値の最小値である最小画素値を取得する画素値取得手段と、
正のフィルタ係数の総和と、前記画素値取得手段により取得された前記最大画素値との積である第４の値を算出し、負のフィルタ係数の総和と、前記画素値取得手段により取得された前記最小画素値との積である第５の値を算出し、前記第４の値と前記第５の値との和である第６の値を算出する最大値算出手段と、
を有し、
前記判定手段は、前記最大値算出手段により算出された前記第６の値が前記所定の範囲内の最大値以下の場合には、前記新たな画素値の各々と前記所定の範囲内の最大値との比較が不必要と判定する画像処理装置。
【請求項４】
前記判定手段は、前記フィルタ係数の総和が１以下の場合には、前記新たな画素値の各々と前記所定の範囲内の最大値との比較が不必要と判定する請求項１〜請求項３のいずれか１項記載の画像処理装置。
【請求項５】
所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得ステップと、
前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得ステップと、
前記画像データ取得ステップにより取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得ステップにより取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出ステップと、
前記フィルタ係数に基づき、前記取得された画像データの前記算出ステップにより算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定ステップと、
前記判定ステップにより前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正ステップと、
前記判定ステップにより前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御ステップと、
を有し、
前記判定ステップでは、負のフィルタ係数が存在しない場合には、前記新たな画素値の各々と前記所定の範囲内の最小値との比較が不必要と判定する画像処理をコンピュータに実行させるための画像処理プログラム。
【請求項６】
所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得ステップと、
前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得ステップと、
前記画像データ取得ステップにより取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得ステップにより取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出ステップと、
前記フィルタ係数に基づき、前記取得された画像データの前記算出ステップにより算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定ステップと、
前記判定ステップにより前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正ステップと、
前記判定ステップにより前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御ステップと、
前記画像データを構成する画素値の最大値である最大画素値、及び前記画像データを構成する画素値の最小値である最小画素値を取得する画素値取得ステップと、
正のフィルタ係数の総和と、前記画素値取得手段により取得された前記最小画素値との積である第１の値を算出し、負のフィルタ係数の総和と、前記画素値取得手段により取得された前記最大画素値との積である第２の値を算出し、前記第１の値と前記第２の値との和である第３の値を算出する最小値算出ステップと、
を有し、
前記判定ステップでは、前記最小値算出手段により算出された前記第３の値が前記所定の範囲内の最小値以上の場合には、前記新たな画素値の各々と前記所定の範囲内の最小値との比較が不必要と判定する画像処理をコンピュータに実行させるための画像処理プログラム。
【請求項７】
所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得ステップと、
前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得ステップと、
前記画像データ取得ステップにより取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得ステップにより取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出ステップと、
前記フィルタ係数に基づき、前記取得された画像データの前記算出ステップにより算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定ステップと、
前記判定ステップにより前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正ステップと、
前記判定ステップにより前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御ステップと、
前記画像データを構成する画素値の最大値である最大画素値、及び前記画像データを構成する画素値の最小値である最小画素値を取得する画素値取得ステップと、
正のフィルタ係数の総和と、前記画素値取得手段により取得された前記最大画素値との積である第４の値を算出し、負のフィルタ係数の総和と、前記画素値取得手段により取得された前記最小画素値との積である第５の値を算出し、前記第４の値と前記第５の値との和である第６の値を算出する最大値算出ステップと、
を有し、
前記判定ステップでは、前記最大値算出手段により算出された前記第６の値が前記所定の範囲内の最大値以下の場合には、前記新たな画素値の各々と前記所定の範囲内の最大値との比較が不必要と判定する画像処理をコンピュータに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理プログラムに関し、特に高速なフィルタ処理を行う画像処理装置、画像処理プログラムに関する。
【背景技術】
【０００２】
ディジタル画像に対して平滑化や先鋭化等の画像処理を行うにあたっては、ディジタルフィルタを用いた処理が一般的に知られている．フィルタを用いた処理は一般的に畳み込み演算と呼ばれ、そのフィルタを注目画素毎に入力画像に重ね合わせ、前記フィルタの係数を対応する画素の値に作用させた後、その結果を集積することで所定の画像処理が行われたことになる．
このようなフィルタ処理に関し、特許文献１には、平滑化処理やシャープネス処理等の画像処理を高速に行う技術が開示されている。
【特許文献１】２００３−２３４９０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このような技術背景において、一般的にフィルタ処理後の画素値の範囲は有限であり、例えば0〜255の値を取る８ビット画像を出力とするような場合には、注目画素毎に畳み込み演算の結果が所定の範囲内（０〜２５５）に収まっているかを検討し、範囲外（負の数、または255より大きい）の値に対しては、範囲内の値にするような補正処理を行う機構が必要である。
【０００４】
この補正処理は、画像データの画像サイズに応じた処理回数を必要とし、処理対象となる画像データの数、或いは画像サイズの大きさによってはその処理時間も無視できない大きさとなるという問題点があった。
【０００５】
本発明は上記問題点に鑑み、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減した画像処理装置、画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１の発明は、所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得手段と、前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得手段と、前記画像データ取得手段により取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得手段により取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出手段と、前記フィルタ係数に基づき、前記取得された画像データの前記算出手段により算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定手段と、前記判定手段により前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正手段と、前記判定手段により前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御手段と、を有し、前記判定手段は、負のフィルタ係数が存在しない場合には、前記新たな画素値の各々と前記所定の範囲内の最小値との比較が不必要と判定する画像処理装置である。
【０００７】
ここで、請求項１の発明によれば、画像データ取得手段が所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得し、フィルタ係数取得手段が前記フィルタ処理で用いられるフィルタ係数を取得し、算出手段により前記画像データ取得手段により取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得手段により取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出し、判定手段により前記フィルタ係数に基づき、前記取得された画像データの前記算出手段により算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定し、画素値補正手段により前記判定手段により前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正し、制御手段により、前記判定手段により前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御するので、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減した画像処理装置を提供することができる。また、最小値との比較が不必要となるため、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減した画像処理装置を提供することができる。
【０００８】
また、本発明は、請求項２の発明のように、所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得手段と、前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得手段と、前記画像データ取得手段により取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得手段により取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出手段と、前記フィルタ係数に基づき、前記取得された画像データの前記算出手段により算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定手段と、前記判定手段により前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正手段と、前記判定手段により前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御手段と、前記画像データを構成する画素値の最大値である最大画素値、及び前記画像データを構成する画素値の最小値である最小画素値を取得する画素値取得手段と、正のフィルタ係数の総和と、前記画素値取得手段により取得された前記最小画素値との積である第１の値を算出し、負のフィルタ係数の総和と、前記画素値取得手段により取得された前記最大画素値との積である第２の値を算出し、前記第１の値と前記第２の値との和である第３の値を算出する最小値算出手段と、を有し、前記判定手段は、前記最小値算出手段により算出された前記第３の値が前記所定の範囲内の最小値以上の場合には、前記新たな画素値の各々と前記所定の範囲内の最小値との比較が不必要と判定する画像処理装置であってもよい。
【０００９】
請求項２の発明によれば、最小値との比較が不必要となるため、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減した画像処理装置を提供することができる。
【００１０】
また、本発明は、請求項３の発明のように、所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得手段と、前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得手段と、前記画像データ取得手段により取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得手段により取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出手段と、前記フィルタ係数に基づき、前記取得された画像データの前記算出手段により算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定手段と、前記判定手段により前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正手段と、前記判定手段により前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御手段と、前記画像データを構成する画素値の最大値である最大画素値、及び前記画像データを構成する画素値の最小値である最小画素値を取得する画素値取得手段と、正のフィルタ係数の総和と、前記画素値取得手段により取得された前記最大画素値との積である第４の値を算出し、負のフィルタ係数の総和と、前記画素値取得手段により取得された前記最小画素値との積である第５の値を算出し、前記第４の値と前記第５の値との和である第６の値を算出する最大値算出手段と、を有し、前記判定手段は、前記最大値算出手段により算出された前記第６の値が前記所定の範囲内の最大値以下の場合には、前記新たな画素値の各々と前記所定の範囲内の最大値との比較が不必要と判定する画像処理装置であってもよい。
【００１１】
請求項３の発明によれば、最大値との比較が不必要となるため、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減した画像処理装置を提供することができる。
【００１２】
また、本発明は、請求項４の発明のように、前記フィルタ係数の総和が１以下の場合には、前記新たな画素値の各々と前記所定の範囲内の最大値との比較が不必要と判定するようにしてもよい。
【００１３】
請求項４の発明によれば、最大値との比較が不必要となるため、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減した画像処理装置を提供することができる。
【００１４】
また、本発明は、請求項５の発明のように、所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得ステップと、前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得ステップと、前記画像データ取得ステップにより取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得ステップにより取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出ステップと、前記フィルタ係数に基づき、前記取得された画像データの前記算出ステップにより算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定ステップと、前記判定ステップにより前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正ステップと、前記判定ステップにより前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御ステップと、を有し、前記判定ステップでは、負のフィルタ係数が存在しない場合には、前記新たな画素値の各々と前記所定の範囲内の最小値との比較が不必要と判定する画像処理をコンピュータに実行させるための画像処理プログラムを提供することができる。
【００１５】
請求項５の発明によれば、最小値との比較が不必要となるため、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減した画像処理装置を提供することができる。
【００１６】
また、請求項６の発明は、所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得ステップと、前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得ステップと、前記画像データ取得ステップにより取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得ステップにより取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出ステップと、前記フィルタ係数に基づき、前記取得された画像データの前記算出ステップにより算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定ステップと、前記判定ステップにより前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正ステップと、前記判定ステップにより前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御ステップと、前記画像データを構成する画素値の最大値である最大画素値、及び前記画像データを構成する画素値の最小値である最小画素値を取得する画素値取得ステップと、正のフィルタ係数の総和と、前記画素値取得手段により取得された前記最小画素値との積である第１の値を算出し、負のフィルタ係数の総和と、前記画素値取得手段により取得された前記最大画素値との積である第２の値を算出し、前記第１の値と前記第２の値との和である第３の値を算出する最小値算出ステップと、を有し、前記判定ステップでは、前記最小値算出手段により算出された前記第３の値が前記所定の範囲内の最小値以上の場合には、前記新たな画素値の各々と前記所定の範囲内の最小値との比較が不必要と判定する画像処理をコンピュータに実行させるための画像処理プログラムを提供することができる。
請求項６の発明によれば、最小値との比較が不必要となるため、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減した画像処理装置を提供することができる。
また、請求項７の発明は、所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する画像データ取得ステップと、前記フィルタ処理で用いられるフィルタ係数を取得するフィルタ係数取得ステップと、前記画像データ取得ステップにより取得された前記画像データを構成する各々の画素値に対し、前記フィルタ係数取得ステップにより取得されたフィルタ係数を用いてフィルタ処理を行い、前記各々の画素値に対応する新たな画素値を算出する算出ステップと、前記フィルタ係数に基づき、前記取得された画像データの前記算出ステップにより算出された新たな画素値の各々と、前記所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定ステップと、前記判定ステップにより前記比較が必要と判定された場合に前記取得された画像データの前記新たな画素値の各々について前記比較を行うことで前記所定の範囲内ではない前記新たな画素値を前記所定の範囲内の画素値に補正する画素値補正ステップと、前記判定ステップにより前記比較が必要でないと判定された場合には、前記取得された画像データの前記新たな画素値の各々について前記比較が行なわれないように制御する制御ステップと、前記画像データを構成する画素値の最大値である最大画素値、及び前記画像データを構成する画素値の最小値である最小画素値を取得する画素値取得ステップと、正のフィルタ係数の総和と、前記画素値取得手段により取得された前記最大画素値との積である第４の値を算出し、負のフィルタ係数の総和と、前記画素値取得手段により取得された前記最小画素値との積である第５の値を算出し、前記第４の値と前記第５の値との和である第６の値を算出する最大値算出ステップと、を有し、前記判定ステップでは、前記最大値算出手段により算出された前記第６の値が前記所定の範囲内の最大値以下の場合には、前記新たな画素値の各々と前記所定の範囲内の最大値との比較が不必要と判定する画像処理をコンピュータに実行させるための画像処理プログラムを提供することができる。
請求項７の発明によれば、最大値との比較が不必要となるため、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減した画像処理装置を提供することができる。
【発明の効果】
【００１７】
本発明によれば、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減した画像処理装置、画像処理プログラムを提供することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。なお、本実施の形態では、画像処理装置としてパソコンを用いた例について説明する。
【００１９】
まず、図１を用いて、パソコン１０の構成について説明する。パソコン１０は、ＣＰＵ（Central Processing Unit）１８と、ＨＤＤ（Hard Disk Drive）２０と、ＲＡＭ（Random Access Memory）２２と、通信Ｉ／Ｆ（インタフェース）２４と、ＲＯＭ（Read Only Memory）２６と、表示部２８と、操作入力部３０と、バス３２とを含む。
【００２０】
ＣＰＵ１８は、パソコン１０の全体の動作を司るものであり、後述するフローチャートに示される処理は、ＣＰＵ１８により実行される。ＨＤＤ２０は、プログラム、ＯＳ（Operating System）等が記録される記憶装置である。ＲＡＭ２２は、ＯＳやプログラムやデータ等が展開される記憶装置である。
【００２１】
通信Ｉ／Ｆ２４は、ネットワークに接続するためのものであり、ＮＩＣやそのドライバで構成される。この通信Ｉ／Ｆ２４は、ネットワークに接続しない場合には不要である。
【００２２】
ＲＯＭ２６は、パソコン１０の起動時に動作するブートプログラムなどが記憶されている記憶装置である。表示部２８は、パソコン１０に関する情報をパソコン１０のオペレータに表示するものである。操作入力部３０は、オペレータがパソコン１０の操作や情報を入力する際に用いられるものである。バス３２は、情報のやりとりが行われる際に使用される。
【００２３】
次に、図２、図３を用いて、フィルタ処理後の画素値を所定の範囲内の画素値に補正する処理について説明する。図２には、フィルタ処理対象である画像とＬ×Ｋのフィルタとが示されている。この画像を示す画像データを８ビット画像データとした場合、各画素が取りうる値の範囲（所定の範囲）は“０〜２５５”となる。また、画素値は０以上であることから、所定の範囲の最小値も０以上である。なお、画像に示されるＨは、縦の画素数を示し、Ｗは横の画素数を示している。従って、この画像データに含まれる画素値の個数は、Ｈ×Ｗ個である。
【００２４】
また、同図に示されるように、新たな画素値をＧＸ，Ｙは、画素値をＦＸ，Ｙとフィルタ係数をＨｉ、ｊの積の和となる。
【００２５】
上記画像データに対して、上記フィルタを用いて処理を行った結果の例を図３に示す。なお、この図３では、説明を簡単にするために、１行のフィルタとみなした表現としている。
【００２６】
同図には、フィルタ処理前の画素値、フィルタ係数、及びフィルタ処理後の新たな画素値が示されている。同図に示されるように、フィルタ係数には負の係数も存在している。
【００２７】
フィルタ処理は、画素値とフィルタ係数との畳み込み積分であるから、フィルタ処理後の各画素値は、フィルタ処理前の各画素値と対応するフィルタ係数との積を各々足し合わせたものとなる。
【００２８】
従って、同図に示されるフィルタ処理後の新たな画素値には、負の値をとるものが発生する場合がある。このようなフィルタ処理前の画像データには存在しない画素値が算出された場合、フィルタ処理前の画像データと同様に８ビット画像データとして得ようとすると、畳み込み積分の結果が画像データの画素値として取りうる所定の範囲内か否かを判断する処理が画素毎に必要となる。
【００２９】
この判断は、全ての画素値に対して行わなければならないため、図２で示した画像の場合、Ｈ×Ｗ回の判断処理を行わなければならない。そして、所定の範囲内ではない画素値は、範囲内の値に補正することで、フィルタ処理前の画像データと同様の８ビット画像データが得られることとなる。
【００３０】
上記補正については後述するが、例えば８ビットの場合、新たな画素値が２５５を超えた場合には、その画素値を２５５にしたり、新たな画素値が０をより小さい場合には、その画素値を０にしたりする補正である。
【００３１】
以下、フローチャートを用いて、本実施の形態に係る画像処理について説明する。このフローチャートに示される処理は、上記ＣＰＵ１８により行われるものである。
【００３２】
まず、図４を用いて、上記画像処理について説明する。ステップ１０１で、所定の範囲内の複数の画素値で構成されるとともに、フィルタ処理される画像データを取得する。次のステップ１０２で、フィルタ処理で用いられるフィルタ係数を取得する。画像データやフィルタ係数は、例えばＨＤＤ２０に記録されているものを取得したり、通信Ｉ／Ｆ２４を用いることにより取得する。フィルタ係数の場合は、オペレータにより入力されることにより取得するようにしても良い。
【００３３】
次のステップ１０３で、画像データを構成する各々の画素値に対し、フィルタ係数を用いてフィルタ処理を行い、各々の画素値に対応する新たな画素値を算出する。このフィルタ処理は、図２で説明した式を用いて行われる。
【００３４】
フィルタ処理の次に、ステップ１０４で、フィルタ係数に基づき、算出された新たな画素値と、所定の範囲内の最大値及び最小値の少なくとも一方との比較が必要か否か判定する判定処理を行う。
【００３５】
次のステップ１０５で、判定処理により比較が必要と判定された場合に比較を行うことで前記所定の範囲内ではない新たな画素値を所定の範囲内の画素値に補正する補正処理を行う。ここで、所定の範囲とは、上記８ビットの場合、０〜２５５である。この場合、最小値は０で、最大値は２５５となる。
【００３６】
上記判定処理について説明する。この判定処理は、本実施の形態では４種類存在する。また、以降のフローチャートでは最大フラグ及び最小フラグが用いられるが、このうちの最大フラグは、新たな画素値と最大値とを比較する必要があるか否かを示すフラグで、オンの場合は最大値との比較が不必要であることを示している。また、最小フラグは、新たな画素値と最小値とを比較する必要があるか否かを示すフラグで、オンの場合は最小値との比較が不必要であることを示している。いずれのフラグも処理開始前はオフで初期化されているものとする。
【００３７】
まず最初に、所定の範囲内の最小値より小さいフィルタ係数が存在するか否かを判定する判定処理を、図５のフローチャートを用いて説明する。
【００３８】
ステップ２０１で、フィルタ係数の最小値ｆｍｉｎを取得する。次のステップ２０２で、ｆｍｉｎ＜０か否か判断する。ステップ２０２で否定判断した場合には、負のフィルタ係数が存在しないので、０以上の画素値とフィルタ係数の積は０以上となり、それらの和である新たな画素値も０以上であるので、最小値との比較は不必要と判定し、ステップ２０３で最小フラグをオンとして処理を終了する。
【００３９】
一方、ステップ２０２で肯定判断した場合には、負のフィルタ係数が存在するので、そのまま処理を終了する。
【００４０】
次に、フィルタ係数の総和が１以下か否かを判定する判定処理を、図６を用いて説明する。まず、ステップ３０１で、フィルタ係数の総和ｆｓを取得する。次のステップ３０２で、ｆｓ≦１か否か判断する。ステップ３０２で肯定判断した場合には、新たな画素値は画像データを構成する画素値の最大値以下となるので、最大値との比較は不必要と判定し、ステップ３０３で最大フラグをオンとし、処理を終了する。一方、ステップ３０２で肯定判断した場合には、そのまま処理を終了する。
【００４１】
なお、新たな画素値が画像データを構成する画素値の最大値以下となることは、図２で説明した式において、ＦＸ，Ｙの全てを画像データを構成する画素値の最大値に置き換えた場合でも、その値は最大値以下となるためである。
【００４２】
次に、図７を用いて、正のフィルタ係数の総和と、最小画素値との積である第１の値を算出し、負のフィルタ係数の総和と、最大画素値との積である第２の値を算出し、第１の値と前記第２の値との和である第３の値を算出し、第３の値が所定の範囲内の最小値以上の場合には、新たな画素値と所定の範囲内の最小値との比較が不必要と判定する判定処理について説明する。
【００４３】
まず、ステップ４０１で、画像データを構成する画素値の最大値である最大画素値ｐＭ、及び画像データを構成する画素値の最小値である最小画素値ｐｍを取得する。次のステップ４０２で、正のフィルタ係数の総和ｆｓｐ、及び負のフィルタ係数の総和ｆｓｎを取得する。
【００４４】
次のステップ４０３で、ｆｓｐと、ｐｍとの積である第１の値Ｐ１を算出し、ｆｓｎと、ｐＭとの積である第２の値Ｐ２を算出する。そして、ステップ４０４で、Ｐ１とＰ２との和である第３の値Ｐ３を算出する。このＰ３は、画像データを構成する画素値に対してフィルタ処理され得られた新たな画素値がとりうる最小の値である。
【００４５】
次のステップ４０５で、Ｐ３がｍ以上か否か判断する。ここで、ｍは所定の範囲内の最小値を示している。ステップ４０５で肯定判断した場合には、新たな画素値は最小値ｍより小さくなることはないので、最小値との比較は不必要と判定し、ステップ４０６で最小フラグをオンとして処理を終了する。一方、ステップ４０５で否定判断した場合には、そのまま処理を終了する。
【００４６】
次に、図８を用いて、正のフィルタ係数の総和と、最大画素値との積である第４の値を算出し、負のフィルタ係数の総和と、最小画素値との積である第５の値を算出し、第４の値と前記第５の値との和である第６の値を算出し、第６の値が所定の範囲内の最大値以下の場合には、新たな画素値と所定の範囲内の最大値との比較が不必要と判定する処理について説明する。
【００４７】
まず、ステップ５０１で、画像データを構成する画素値の最大値である最大画素値ｐＭ、及び画像データを構成する画素値の最小値である最小画素値ｐｍを取得する。次のステップ５０２で、正のフィルタ係数の総和ｆｓｐ、及び負のフィルタ係数の総和ｆｓｎを取得する。
【００４８】
次のステップ５０３で、ｆｓｐと、ｐＭとの積である第４の値Ｐ４を算出し、ｆｓｎと、ｐｍとの積である第５の値Ｐ５を算出する。そして、ステップ５０４で、Ｐ４とＰ５との和である第６の値Ｐ６を算出する。このＰ６は、画像データを構成する画素値に対してフィルタ処理され得られた新たな画素値がとりうる最大の値である。
【００４９】
次のステップ５０５で、Ｐ６がＭ以下か否か判断する。ステップ５０５で肯定判断した場合には、新たな画素値は最大値Ｍより大きくなることはないので、最大値との比較は不必要と判定し、ステップ５０６で最大フラグをオンとして処理を終了する。一方、ステップ５０５で否定判断した場合には、そのまま処理を終了する。
【００５０】
以上説明した４つの判定処理を任意に組み合わせて１つの判定処理とすることも可能である。この場合、図４のステップ１０４で、例えば図５、図６に示した判定処理を連続して行っても良いし、４つ全ての判定処理を連続して行っても良い。
【００５１】
次に、図９のフローチャートを用いて、補正処理について説明する。まず、ステップ６０１で、最大フラグがオンか否か判断する。肯定判断した場合（最大値との比較は不必要）には、ステップ６０２で、更に最小フラグがオンか否か判断する。ここで肯定判断した場合（最小値との比較は不必要）には、新たな画素値と最大値及び最小値とを比較する必要がないため、補正処理は行われず、そのまま処理を終了する。このように、判定処理により、最大値及び最小値との比較は不必要と判定されると、新たな画素値の全てに対して比較しなくても良いため、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減することができる。
【００５２】
一方、ステップ６０２で否定判断した場合には、最小値のみと比較することとなるので、ステップ６０３で後述する最小値補正処理を行う。このように、判定処理により、最大値との比較は不必要と判定されると、新たな画素値の全てで最大値と比較しなくても良いため、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減することができる。
【００５３】
また、上記ステップ６０１で否定判断した場合には、ステップ６０４で、更に最小フラグがオンか否か判断する。ここで肯定判断した場合（最小値との比較は不必要）には、最大値のみと比較することとなるので、ステップ６０５で後述する最大値補正処理を行う。このように、判定処理により、最小値との比較は不必要と判定されると、新たな画素値の全てで最小値と比較しなくても良いため、フィルタ処理後の新たな画素値を所定の範囲内に補正する処理に係る負荷を低減することができる。
【００５４】
一方、ステップ６０４で否定判断した場合には、最大値及び最小値のいずれとも比較しなければならないので、ステップ６０６で後述する全範囲補正処理を行う。
【００５５】
次に、上記全範囲補正処理（図９：ステップ６０６）について、図１０を用いて説明する。まず、ステップ７０１でループカウンタｋを０で初期化する。このｋは、画素数をカウントするためのものである。
【００５６】
次のステップ７０２で、Ｐ［ｋ］≦Ｍか否か判断する。ここで、Ｐ［ｋ］は、ｋ番目の新たな画素値を示しており、以下の説明でも同じ意味で用いられる。このステップ７０２で否定判断した場合には、新たな画素値が最大値を超えているため、ステップ７０３でＰ［ｋ］にＭを代入することで新たな画素値を補正し、ステップ７０４に処理が進む。
【００５７】
一方、ステップ７０２で肯定判断した場合には、ステップ７０６でｍ≦Ｐ［ｋ］か否か判断する。このステップ７０６で否定判断した場合には、新たな画素値が最小値より小さいため、ステップ７０７でＰ［ｋ］にｍを代入することで新たな画素値を補正し、ステップ７０４に処理が進む。また、ステップ７０６で肯定判断した場合にも、ステップ７０４へ処理が進む。
【００５８】
ステップ７０４で、ｋを１つ増分し、ステップ７０５でｋ＜Ｈ×Ｗか否か、すなわち、処理を行っていない新たな画素があるか否か判断し、肯定判断した場合には、再びステップ７０２の処理を行い、否定判断した場合には処理を終了する。
【００５９】
次に、上記最大値補正処理（図９：ステップ６０５）について、図１１を用いて説明する。まず、ステップ８０１でループカウンタｋを０で初期化する。このｋは、画素数をカウントするためのものである。
【００６０】
次のステップ８０２で、Ｐ［ｋ］≦Ｍか否か判断する。このステップ８０２で否定判断した場合には、新たな画素値が最大値を超えているため、ステップ８０３でＰ［ｋ］にＭを代入することで新たな画素値を補正し、ステップ８０４に処理が進む。一方、ステップ８０２で肯定判断した場合にもステップ８０４に処理が進む。
【００６１】
ステップ８０４で、ｋを１つ増分し、ステップ８０５でｋ＜Ｈ×Ｗか否か、すなわち、処理を行っていない新たな画素があるか否か判断し、肯定判断した場合には、再びステップ８０２の処理を行い、否定判断した場合には処理を終了する。
【００６２】
次に、上記最小値補正処理（図９：ステップ６０３）について、図１２を用いて説明する。まず、ステップ９０１でループカウンタｋを０で初期化する。このｋは、画素数をカウントするためのものである。
【００６３】
次のステップ９０２で、ｍ≦Ｐ［ｋ］か否か判断する。このステップ９０２で否定判断した場合には、新たな画素値が最小値より小さいため、ステップ９０３でＰ［ｋ］にｍを代入することで新たな画素値を補正し、ステップ９０４に処理が進む。一方、ステップ９０２で肯定判断した場合にもステップ９０４に処理が進む。
【００６４】
ステップ９０４で、ｋを１つ増分し、ステップ９０５でｋ＜Ｈ×Ｗか否か、すなわち、処理を行っていない新たな画素があるか否か判断し、肯定判断した場合には、再びステップ９０２の処理を行い、否定判断した場合には処理を終了する。
【００６５】
なお、以上説明した各フローチャートの処理の流れは一例であり、本発明の主旨を逸脱しない範囲内で処理順序を入れ替えたり、新たなステップを追加したり、不要なステップを削除したりすることができることは言うまでもない。
【図面の簡単な説明】
【００６６】
【図１】パソコンの構成を示す図である。
【図２】フィルタ処理の画像とフィルタとを示す図である。
【図３】フィルタ処理を行った結果の例を示す図である。
【図４】画像処理を示すフローチャートである。
【図５】判定処理を示すフローチャートである（その１）。
【図６】判定処理を示すフローチャートである（その２）。
【図７】判定処理を示すフローチャートである（その３）。
【図８】判定処理を示すフローチャートである（その４）。
【図９】補正処理を示すフローチャートである。
【図１０】全範囲補正処理を示すフローチャートである。
【図１１】最大値補正処理を示すフローチャートである。
【図１２】最小値補正処理を示すフローチャートである。
【符号の説明】
【００６７】
１０  パソコン
１８  ＣＰＵ
２０  ＨＤＤ
２２  ＲＡＭ
【図１】
0004926886.tif 000002
【図２】
0004926886.tif 000003
【図３】
0004926886.tif 000004
【図４】
0004926886.tif 000005
【図５】
0004926886.tif 000006
【図６】
0004926886.tif 000007
【図７】
0004926886.tif 000008
【図８】
0004926886.tif 000009
【図９】
0004926886.tif 000010
【図１０】
0004926886.tif 000011
【図１１】
0004926886.tif 000012
【図１２】
0004926886.tif 000013