(57)【要約】【課題】従来の画像処理フィルタ統合装置においては、例えば、一の画像に対して２以上の画像処理フィルタを適用する必要があり、処理が煩雑になっていた。【解決手段】１以上のプログラムを格納するプログラム格納部と、１以上の画像処理フィルタを格納する画像処理フィルタ格納部と、プログラムをプログラム格納部から取得するプログラム取得部と、統合可能である画像処理フィルタ識別子を、プログラム取得部が取得したプログラムから検出する画像処理フィルタ検出部と、画像処理フィルタ検出部が検出した画像処理フィルタを統合する画像処理フィルタ統合部と、当該画像処理フィルタの識別子でプログラム中の画像処理フィルタ識別子を置換する変更部とを具備する画像処理フィルタ統合装置により、２以上の画像処理フィルタを統合することができる。【選択図】図１
2013073543.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを識別するプログラム識別子と、画像処理フィルタを識別する２以上の画像処理フィルタ識別子を有する１以上のプログラムを格納するプログラム格納部と、
１以上の画像処理フィルタと、当該画像処理フィルタを識別する画像処理フィルタ識別子とを格納する画像処理フィルタ格納部と、
１以上のプログラム識別子を有する指示を受け付ける受付部と、
前記指示に含まれる１以上のプログラム識別子で識別されるプログラムを、前記プログラム格納部から取得するプログラム取得部と、
統合可能である２以上の画像処理フィルタ識別子を、前記プログラム取得部が取得した１以上のプログラムから検出する画像処理フィルタ検出部と、
前記画像処理フィルタ検出部が検出した２以上の画像処理フィルタ識別子で識別される画像処理フィルタを統合し、統合した画像処理フィルタである統合画像処理フィルタと、当該統合画像処理フィルタを識別する統合画像処理フィルタ識別子とを生成する画像処理フィルタ統合部と、
前記画像処理フィルタ検出部が検出した２以上の画像処理フィルタ識別子を、前記統合画像処理フィルタ識別子で置換し、当該置換後のプログラムである変更プログラムを取得する変更部とを具備する画像処理フィルタ統合装置。
【請求項２】
前記画像処理フィルタ格納部は、
画像処理フィルタに対応付けて、当該画像処理フィルタが統合可能であるか否かを示す統合可否情報をも格納し、
前記画像処理フィルタ検出部は、
前記統合可否情報により統合可能であることが示される２以上の画像処理フィルタを識別する画像処理フィルタ識別子を、前記１以上のプログラムから検出する請求項１記載の画像処理フィルタ統合装置。
【請求項３】
前記画像処理フィルタ検出部は、
前記統合可否情報により統合可能であることが示され、かつ前記１以上のいずれかのプログラムにおいて連続して定義されている２以上の画像処理フィルタを識別する画像処理フィルタ識別子を、前記１以上のプログラムから検出する請求項２記載の画像処理フィルタ統合装置。
【請求項４】
前記画像処理フィルタ格納部は、
画像処理フィルタに対応付けて、当該画像処理フィルタの属性を示す情報である１以上の属性情報をも格納し、
前記画像処理フィルタ検出部は、
前記１以上の属性情報が、予め決められた条件である属性条件を満たす２以上の画像処理フィルタを識別する画像処理フィルタ識別子を、前記１以上のプログラムから検出する請求項１記載の画像処理フィルタ統合装置。
【請求項５】
前記属性条件は、前記画像処理フィルタ検出部が検出した２以上の各画像処理フィルタ識別子で識別される画像処理フィルタに対応する属性情報が、同一であることである請求項４記載の画像処理フィルタ統合装置。
【請求項６】
前記画像処理フィルタ検出部は、
前記１以上の属性情報が、予め決められた条件である属性条件を満たし、かつ前記１以上のいずれかのプログラムにおいて連続して定義されている２以上の画像処理フィルタを識別する画像処理フィルタ識別子を、前記１以上のプログラムから検出する請求項４または請求項５記載の画像処理フィルタ統合装置。
【請求項７】
前記画像処理フィルタ格納部は、
統合可能である２以上の各画像処理フィルタを識別する画像処理フィルタ識別子を有する１以上の統合可能画像処理フィルタ管理情報をも格納し、
前記画像処理フィルタ検出部は、
前記１以上の各統合可能画像処理フィルタ管理情報が有する２以上の画像処理フィルタ識別子を、前記プログラム取得部が取得した１以上のプログラムから検出する請求項１から請求項６いずれか記載の画像処理フィルタ統合装置。
【請求項８】
記録媒体に、
プログラムを識別するプログラム識別子と、画像処理フィルタを識別する２以上の画像処理フィルタ識別子を有する１以上のプログラムと、
１以上の画像処理フィルタと、当該画像処理フィルタを識別する画像処理フィルタ識別子とが格納されており、
受付部と、プログラム取得部と、画像処理フィルタ検出部と、画像処理フィルタ統合部と、変更部とを用いて行われる画像処理フィルタ統合方法であって、
前記受付部が、１以上のプログラム識別子を有する指示を受け付ける受付ステップと、
前記プログラム取得部が、前記指示に含まれる１以上のプログラム識別子で識別されるプログラムを、前記プログラム格納部から取得するプログラム取得ステップと、
前記画像処理フィルタ検出部が、統合可能である２以上の画像処理フィルタ識別子を、前記プログラム取得部が取得した１以上のプログラムから検出する画像処理フィルタ検出ステップと、
前記画像処理フィルタ統合部が、前記画像処理フィルタ検出部が検出した２以上の画像処理フィルタ識別子で識別される画像処理フィルタを統合し、統合した画像処理フィルタである統合画像処理フィルタと、当該統合画像処理フィルタを識別する統合画像処理フィルタ識別子とを生成する画像処理フィルタ統合ステップと、
前記変更部が、前記画像処理フィルタ検出部が検出した２以上の画像処理フィルタ識別子を、前記統合画像処理フィルタ識別子で置換し、当該置換後のプログラムである変更プログラムを取得する変更ステップとを具備する画像処理フィルタ統合方法。
【請求項９】
記録媒体に、
プログラムを識別するプログラム識別子と、画像処理フィルタを識別する２以上の画像処理フィルタ識別子を有する１以上のプログラムと、
１以上の画像処理フィルタと、当該画像処理フィルタを識別する画像処理フィルタ識別子とが格納されており、
コンピュータを、
１以上のプログラム識別子を有する指示を受け付ける受付部と、
前記指示に含まれる１以上のプログラム識別子で識別されるプログラムを、前記プログラム格納部から取得するプログラム取得部と、
統合可能である２以上の画像処理フィルタ識別子を、前記プログラム取得部が取得した１以上のプログラムから検出する画像処理フィルタ検出部と、
前記画像処理フィルタ検出部が検出した２以上の画像処理フィルタ識別子で識別される画像処理フィルタを統合し、統合した画像処理フィルタである統合画像処理フィルタと、当該統合画像処理フィルタを識別する統合画像処理フィルタ識別子とを生成する画像処理フィルタ統合部と、
前記画像処理フィルタ検出部が検出した２以上の画像処理フィルタ識別子を、前記統合画像処理フィルタ識別子で置換し、当該置換後のプログラムである変更プログラムを取得する変更部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム中の２以上の画像処理フィルタを統合する画像処理フィルタ統合装置等に関するものである。
【背景技術】
【０００２】
従来、様々な画像処理フィルタが存在する（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“ＯｐｅｎＣＶ”、［online］、［２０１１年９月１５日検索］、インターネット［URL：http://opencv.willowgarage.com/］
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来は、例えば、一の画像に対して２以上の画像処理フィルタを順に適用する場合、当該２以上の画像処理フィルタを統合して作成した一の画像処理フィルタを適用する場合と比較して、処理時間が長くなる場合があった。
【課題を解決するための手段】
【０００５】
本第一の発明の画像処理フィルタ統合装置は、プログラムを識別するプログラム識別子と、画像処理フィルタを識別する２以上の画像処理フィルタ識別子を有する１以上のプログラムを格納するプログラム格納部と、１以上の画像処理フィルタと、画像処理フィルタを識別する画像処理フィルタ識別子とを格納する画像処理フィルタ格納部と、１以上のプログラム識別子を有する指示を受け付ける受付部と、指示に含まれる１以上のプログラム識別子で識別されるプログラムを、プログラム格納部から取得するプログラム取得部と、統合可能である２以上の画像処理フィルタ識別子を、プログラム取得部が取得した１以上のプログラムから検出する画像処理フィルタ検出部と、画像処理フィルタ検出部が検出した２以上の画像処理フィルタ識別子で識別される画像処理フィルタを統合し、統合した画像処理フィルタである統合画像処理フィルタと、統合画像処理フィルタを識別する統合画像処理フィルタ識別子とを生成する画像処理フィルタ統合部と、画像処理フィルタ検出部が検出した２以上の画像処理フィルタ識別子を、統合画像処理フィルタ識別子で置換し、置換後のプログラムである変更プログラムを取得する変更部とを具備する画像処理フィルタ統合装置である。
【０００６】
このような構成により、２以上の画像処理フィルタを統合することで、一の画像に対して画像処理フィルタを適用する際の処理時間を短縮することができる。
【０００７】
また、本第二の発明の画像処理フィルタ統合装置は、第一の発明に対して、画像処理フィルタ格納部は、画像処理フィルタに対応付けて、画像処理フィルタが統合可能であるか否かを示す統合可否情報をも格納し、画像処理フィルタ検出部は、統合可否情報により統合可能であることが示される２以上の画像処理フィルタを識別する画像処理フィルタ識別子を、１以上のプログラムから検出する画像処理フィルタ統合装置である。
【０００８】
このような構成により、統合可否情報により統合可能であることが示される２以上の画像処理フィルタを統合することができる。
【０００９】
また、本第三の発明の画像処理フィルタ統合装置は、第二の発明に対して、画像処理フィルタ検出部は、統合可否情報により統合可能であることが示され、かつ１以上のいずれかのプログラムにおいて連続して定義されている２以上の画像処理フィルタを識別する画像処理フィルタ識別子を、１以上のプログラムから検出する画像処理フィルタ統合装置である。
【００１０】
このような構成により、連続し、かつ統合可否情報により統合可能であることが示される２以上の画像処理フィルタを統合することができる。
【００１１】
また、本第四の発明の画像処理フィルタ統合装置は、第一の発明に対して、画像処理フィルタ格納部は、画像処理フィルタに対応付けて、画像処理フィルタの属性を示す情報である１以上の属性情報をも格納し、画像処理フィルタ検出部は、１以上の属性情報が、予め決められた条件である属性条件を満たす２以上の画像処理フィルタを識別する画像処理フィルタ識別子を、１以上のプログラムから検出する画像処理フィルタ統合装置である。
【００１２】
このような構成により、属性条件を満たす２以上の画像処理フィルタを統合することができる。
【００１３】
また、本第五の発明の画像処理フィルタ統合装置は、第四の発明に対して、属性条件は、画像処理フィルタ検出部が検出した２以上の各画像処理フィルタ識別子で識別される画像処理フィルタに対応する属性情報が、同一であることである画像処理フィルタ統合装置である。
【００１４】
このような構成により、属性情報が同一である２以上の画像処理フィルタを統合することができる。
【００１５】
また、本第六の発明の画像処理フィルタ統合装置は、第四または第五の発明に対して、画像処理フィルタ検出部は、１以上の属性情報が、予め決められた条件である属性条件を満たし、かつ１以上のいずれかのプログラムにおいて連続して定義されている２以上の画像処理フィルタを識別する画像処理フィルタ識別子を、１以上のプログラムから検出する画像処理フィルタ統合装置である。
【００１６】
このような構成により、連続し、かつ属性条件を満たす２以上の画像処理フィルタを統合することができる。
【００１７】
また、本第七の発明の画像処理フィルタ統合装置は、第一から第六いずれかの発明に対して、画像処理フィルタ格納部は、統合可能である２以上の各画像処理フィルタを識別する画像処理フィルタ識別子を有する１以上の統合可能画像処理フィルタ管理情報をも格納し、画像処理フィルタ検出部は、１以上の各統合可能画像処理フィルタ管理情報が有する２以上の画像処理フィルタ識別子を、プログラム取得部が取得した１以上のプログラムから検出する画像処理フィルタ統合装置である。
【００１８】
このような構成により、統合可能な画像処理フィルタの組み合わせを検出し、当該画像処理フィルタを統合することができる。
【発明の効果】
【００１９】
本発明による画像処理フィルタ統合装置等によれば、２以上の画像処理フィルタを統合することができる。これにより、一の画像に対して画像処理フィルタを適用する回数を減らすことができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態１における画像処理フィルタ統合装置１のブロック図
【図２】同画像処理フィルタ統合装置１の全体動作について説明するフローチャート
【図３】同画像処理フィルタ識別子の取得処理について説明するフローチャート
【図４】同画像処理フィルタ識別子の検出処理について説明するフローチャート
【図５】同統合可能な画像処理フィルタの決定処理について説明するフローチャート
【図６】同統合画像処理フィルタの生成処理について説明するフローチャート
【図７】同プログラムの例を示す図
【図８】同プログラムの例を示す図
【図９】同画像処理フィルタ管理情報の例を示す図
【図１０】同統合可能画像処理フィルタ管理情報の例を示す図
【図１１】同取得プログラムの例を示す図
【図１２】同取得プログラムの例を示す図
【図１３】同コンピュータシステムの概観図
【図１４】同コンピュータシステムのブロック図
【発明を実施するための形態】
【００２１】
以下、本発明による画像処理フィルタ統合装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。また、所定の情報が格納され得る格納部等において、当該格納部に情報が記憶される過程は問わないものとする。例えば、記録媒体を介して情報が格納部等で記憶されるようになってもよい。また、通信回線などを介して送信された情報が格納部等で記憶されるようになってもよい。さらに、入力デバイスを介して入力された情報が格納部等で記憶されるようになってもよい。また、本実施の形態において説明する各情報の形式、内容などは、あくまで例示であり、各情報の持つ意味を示すことができれば、形式、内容などは問わない。
【００２２】
（実施の形態１）
本実施の形態において、プログラム中の２以上の画像処理フィルタについて、統合可能であるか否かを判断し、統合可能であれば統合する画像処理フィルタ統合装置について説明する。
【００２３】
図１は、本実施の形態における画像処理フィルタ統合装置１のブロック図である。画像処理フィルタ統合装置１は、プログラム格納部１１、画像処理フィルタ格納部１２、受付部１３、プログラム取得部１４、画像処理フィルタ検出部１５、画像処理フィルタ統合部１６、変更部１７を備える。
【００２４】
プログラム格納部１１は、プログラムを格納する。プログラムとは、コンピュータプログラムのことであり、ソースコードや、アセンブリコード、バイナリコード、オブジェクトコードなどである。また、プログラムの形態は問わない。また、これらのコードが示すものは、関数や、メソッド、クラスなどであり、その内容は問わない。また、当該プログラムは、通常、プログラムを識別するプログラム識別子と、画像処理フィルタを識別する２以上の画像処理フィルタ識別子を有する。プログラム識別子は、通常、ファイル名であるが、関数名や、メソッド名、クラス名などであってもよい。また、画像処理フィルタ識別子は、通常、関数名であるが、メソッド名や、フィルタ名、プログラム、命令列などであってもよい。
【００２５】
画像処理フィルタ格納部１２は、１以上の画像処理フィルタと、当該画像処理フィルタを識別する画像処理フィルタ識別子とを格納する。画像処理フィルタとは、いわゆるデジタル画像に対して何らかの処理を施すものである。当該処理は、例えば、エッジ検出や、平滑化、鮮鋭化などである。画像処理フィルタは、通常、プログラムである。当該プログラムは、例えば、画像中の各画素に対して行う演算を示す演算子や、その際の係数を示すもの、画像に対する処理の手順を示すものなどである。当該係数は、通常、行列の形式である。また、当該係数は、一般的に、要素や、パラメータ、オペレータ、カーネルなどと呼ばれるものである。また、画像処理フィルタは、画像処理フィルタ識別子を有していてもよい。
【００２６】
また、画像処理フィルタ格納部１２は、画像処理フィルタに対応する情報として、画像処理フィルタのパターンを示すパターン情報や、他の画像処理フィルタと統合可能であるか否かを示す統合可否情報、画像処理フィルタの属性を示す情報である１以上の属性情報などを有していてもよい。パターン情報は、例えば、正規表現や、命令や制御構文や変数などの組み合わせのパターンなどである。また、統合可否情報は、統合可能であることを示す情報、または統合可能でないことを示す情報である。また、属性情報は、例えば、画像処理フィルタが係数の行列である場合、そのサイズを示すサイズ情報や、画像処理フィルタにより得られる効果を示す効果情報、画像処理フィルタの名称であるフィルタ名などである。サイズ情報は、例えば、画像処理フィルタの縦のサイズ、または横のサイズを示す情報である。サイズ情報は、例えば、画像処理フィルタのサイズが縦３ピクセル、横３ピクセルであることを示す「３×３」や、縦、横ともに５ピクセルであることを示す「５」などである。また、効果情報は、例えば、「エッジ検出」や、「平滑化」、「鮮鋭化」などである。フィルタ名は、例えば、「ラプラシアンフィルタ」や、「メディアンフィルタ」、「ガウシアンフィルタ」などである。
【００２７】
なお、画像処理フィルタは、例えば、ノイズ除去フィルタや、エッジ検出フィルタなどがあるが、その効果や処理内容などは問わない。また、画像処理フィルタのその他の例については、公知であるので、詳細な説明を省略する。また、画像に対して画像処理フィルタを適用する方法や手順なども、公知であるので、詳細な説明を省略する。
【００２８】
なお、画像処理フィルタ識別子、画像処理フィルタを有する情報を、画像処理フィルタ管理情報としてもよい。また、当該画像処理フィルタ管理情報は、パターン情報や、統合可否情報、属性情報などを有していてもよい。
【００２９】
また、画像処理フィルタ格納部１２は、１以上の統合可能画像処理フィルタ管理情報を格納してもよい。統合可能画像処理フィルタ管理情報とは、互いに統合可能である２以上の各画像処理フィルタを識別する画像処理フィルタ識別子を有する情報である。また、統合可能画像処理フィルタ管理情報は、互いに統合可能である２以上の各画像処理フィルタを識別する画像処理フィルタを有する情報であってもよい。また、統合可能画像処理フィルタ管理情報は、１以上の統合可能画像処理フィルタ対情報を有していてもよい。統合可能画像処理フィルタ対情報とは、互いに統合可能である２以上の各画像処理フィルタを識別する画像処理フィルタ識別子と、当該画像処理フィルタが統合可能であることを示す情報とを有する情報である。
【００３０】
なお、プログラム格納部１１、画像処理フィルタ格納部１２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００３１】
受付部１３は、１以上のプログラム識別子を有する指示を受け付ける。当該プログラム識別子は、通常、１つであるが、２以上であってもよい。また、当該指示は、通常、当該プログラム識別子で識別されるプログラム中の画像処理フィルタを統合する指示である。また、当該指示は、例えば、当該プログラム識別子で識別されるプログラムをコンパイルする指示や、当該プログラムを実行する指示などであってもよい。また、当該指示は、１以上のプログラム識別子を有するファイルのファイル名を有していてもよい。
【００３２】
例えば、画像処理フィルタ統合装置１が、ＯＳ上で動作するアプリケーションなどである場合、当該指示は、例えば、プログラムを示すアイコンの当該装置へのドラッグ＆ドロップや、当該装置が有するボタンのクリックなどである。また、例えば、画像処理フィルタ統合装置１が、プログラムが実行されるときに必ず実行されるようなミドルウェアなどである場合、当該指示は、例えば、プログラムを示すアイコンのダブルクリックや、当該アイコンのシングルクリックなどである。なお、プログラム識別子を有する指示の形式は問わない。また、プログラム識別子を有する形態は問わない。
【００３３】
また、受け付けとは、マウスなどのポインティングデバイスや、キーボード、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
【００３４】
受付部１３における指示の入力手段は、マウスなどのポインティングデバイスや、キーボード、メニュー画面によるものなど、何でもよい。受付部１３は、ポインティングデバイス等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェアなどで実現され得る。
【００３５】
プログラム取得部１４は、受付部１３が受け付けた指示が有する１以上のプログラム識別子で識別されるプログラムを、プログラム格納部１１から取得する。プログラム取得部１４は、通常、受付部１３がプログラム識別子を有する指示を受け付けた直後に、当該プログラムを取得する。なお、以下、プログラム取得部１４が取得したプログラムを、取得プログラムとする。
【００３６】
画像処理フィルタ検出部１５は、通常、画像処理フィルタ格納部１２に格納されている１以上の画像処理フィルタ識別子を取得し、当該１以上の画像処理フィルタ識別子に一致する２以上の画像処理フィルタ識別子を、１以上の取得プログラムから検出する。「検出する」とは、具体的には、取得プログラムにおいて、画像処理フィルタ識別子が記述されている箇所を検出することである。また、画像処理フィルタ検出部１５は、通常、１以上の取得プログラムのいずれかにおいて連続して定義されている２以上の画像処理フィルタ識別子を検出する。「連続して定義されている」とは、当該画像処理フィルタ識別子が連続していることであり、処理の連続や、記述の連続などを意味する。
【００３７】
「処理の連続」とは、例えば、画像処理フィルタの入出力関係が連続していることである。つまり、例えば、「ｆｉｌｔｅｒ０１」の出力を、「ｆｉｌｔｅｒ０２」の入力とするような命令が、取得プログラム中にある場合、「ｆｉｌｔｅｒ０１」と「ｆｉｌｔｅｒ０２」の各々により識別される２つの画像処理フィルタは、入出力関係が連続しているので、処理が連続すると言える。当該命令は、例えば、「ｃｏｎｎｅｃｔｉｏｎ＝ｃｏｎｎｎｅｃｔ（ｆｉｌｔｅｒ０１．ｏｕｔｐｕｔ，ｆｉｌｔｅｒ０２．ｉｎｐｕｔ）」や、「ｉｍｇ＿ｂ＝ｆｉｌｔｅｒ０１（ｉｍｇ＿ａ）；  ｉｍｇ＿ｃ＝ｆｉｌｔｅｒ０２（ｉｍｇ＿ｂ）；」などである。
【００３８】
また、「処理の連続」は、例えば、画像処理フィルタの入力が同一であることであってもよい。つまり、例えば、同一の画像を「ｆｉｌｔｅｒ０１」と「ｆｉｌｔｅｒ０２」の入力とするような命令が、取得プログラム中にある場合、「ｆｉｌｔｅｒ０１」と「ｆｉｌｔｅｒ０２」の各々により識別される画像処理フィルタは、入力が同一であるので、処理が連続すると言える。当該命令は、例えば、「ｃｏｎｎｅｃｔｉｏｎ＝ｃｏｎｎｎｅｃｔ（ｆｉｌｔｅｒ０１．ｉｎｐｕｔ，ｆｉｌｔｅｒ０２．ｉｎｐｕｔ）」や、「ｉｍｇ＿ｂ＝ｆｉｌｔｅｒ０１（ｉｍｇ＿ａ）；  ｉｍｇ＿ｃ＝ｆｉｌｔｅｒ０２（ｉｍｇ＿ａ）；」などである。
【００３９】
また、「記述の連続」とは、例えば、画像処理フィルタの前後関係が連続していることである。つまり、例えば、取得プログラムのｎ行目に「ｉｍｇ＿ａ＝ｆｉｌｔｅｒ０１（ｉｍｇ＿ａ）」、ｎ＋１行目に「ｉｍｇ＿ｂ＝ｆｉｌｔｅｒ０２（ｉｍｇ＿ｂ）」がある場合、「ｆｉｌｔｅｒ０１」の行と「ｆｉｌｔｅｒ０２」の行が前後にあるので、この２つの画像処理フィルタは、記述が連続していると言える。
【００４０】
なお、画像処理フィルタ検出部１５は、処理が連続している２以上の画像処理フィルタ識別子を検出することが好適である。
【００４１】
また、画像処理フィルタ検出部１５は、例えば、画像処理フィルタ格納部１２に格納されている１以上の画像処理フィルタ識別子のうち、統合可否情報により統合可能であることが示される１以上の画像処理フィルタ識別子を取得し、当該１以上の画像処理フィルタ識別子に一致する２以上の画像処理フィルタ識別子を、１以上の取得プログラムから検出してもよい。
【００４２】
また、画像処理フィルタ検出部１５は、例えば、画像処理フィルタ格納部１２に格納されている１以上の画像処理フィルタ識別子のうち、属性情報が、属性条件を満たす画像処理フィルタ識別子を取得し、当該１以上の画像処理フィルタ識別子に一致する２以上の画像処理フィルタ識別子を、１以上の取得プログラムから検出してもよい。
【００４３】
属性条件とは、予め決められた条件であり、画像処理フィルタの属性を示す条件である。属性条件は、属性情報を有する。また、属性条件は２以上の属性条件を連結する連結情報を有していてもよい。属性条件は、例えば、（１）「サイズ＝（３×３）」や、（２）「｛サイズ＝（３×３）｝ａｎｄ｛効果＝（エッジ検出）｝」などである。（１）は、「フィルタのサイズが『３×３』」であることを示す。（２）は、「フィルタのサイズが『３×３』であり、かつ効果が『エッジ検出』」であることを示す。また、属性条件は、通常、画像処理フィルタ検出部１５が保持しているが、任意の記憶領域に格納されていてもよい。
【００４４】
また、属性条件は、例えば、画像処理フィルタに対応する属性情報が同一であることであってもよい。この場合、画像処理フィルタ検出部１５は、例えば、画像処理フィルタ格納部１２に格納されている１以上の画像処理フィルタ識別子のうち、属性情報が同一である２以上の画像処理フィルタ識別子を、当該属性情報ごとに取得する。ここで、属性情報が同一の２以上の画像処理フィルタ識別子を、同一画像処理フィルタ識別子とする。そして、画像処理フィルタ検出部１５は、当該同一画像処理フィルタ識別子ごとに、同一画像処理フィルタ識別子が有する２以上の画像処理フィルタ識別子に一致する２以上の画像処理フィルタ識別子を、１以上の取得プログラムから検出する。
【００４５】
また、画像処理フィルタ検出部１５は、例えば、画像処理フィルタ格納部１２に格納されている一の統合可能画像処理フィルタ管理情報を取得し、当該統合可能画像処理フィルタ管理情報が有する２以上の画像処理フィルタ識別子に一致する２以上の画像処理フィルタ識別子を、１以上の取得プログラムから検出してもよい。また、このとき、画像処理フィルタ検出部１５は、２以上の統合可能画像処理フィルタ管理情報を取得し、当該各統合可能画像処理フィルタ管理情報ごとに、画像処理フィルタ識別子を検出してもよい。
【００４６】
また、画像処理フィルタ検出部１５は、例えば、同一の画像処理フィルタ識別子を２以上検出してもよいし、異なる画像処理フィルタ識別子を２以上検出してもよい。つまり、前者の場合、画像処理フィルタ検出部１５は、例えば、画像処理フィルタ格納部１２に格納されている一の画像処理フィルタ識別子を取得し、当該一の画像処理フィルタ識別子に一致する２以上の画像処理フィルタ識別子を、１以上の取得プログラムから検出する。また、後者の場合、画像処理フィルタ検出部１５は、例えば、画像処理フィルタ格納部１２に格納されている２以上の画像処理フィルタ識別子を取得し、当該２以上の画像処理フィルタ識別子に一致する２以上の画像処理フィルタ識別子を、１以上の取得プログラムから検出する。
【００４７】
なお、画像処理フィルタ検出部１５は、１以上の取得プログラムから２以上の画像処理フィルタ識別子を検出できればよく、その方法や手順などは問わない。
【００４８】
画像処理フィルタ統合部１６は、画像処理フィルタ検出部１５が検出した２以上の画像処理フィルタ識別子で識別される画像処理フィルタを統合する。そして、画像処理フィルタ統合部１６は、当該統合した画像処理フィルタである統合画像処理フィルタと、当該統合画像処理フィルタを識別する統合画像処理フィルタ識別子とを生成する。画像処理フィルタ統合部１６は、通常、画像処理フィルタ検出部１５が検出した２つの画像処理フィルタごとに、統合画像処理フィルタと、当該統合画像処理フィルタ識別子を生成することが好適である。
【００４９】
また、画像処理フィルタ統合部１６は、例えば、以下のいずれかの処理を行うことにより、統合画像処理フィルタを生成する。なお、統合画像処理フィルタの生成の方法は、以下のいずれかに限定されるものではない。また、以下において、画像処理フィルタ検出部１５が検出した２つの画像処理フィルタを、それぞれ、第一の画像処理フィルタ、第二の画像処理フィルタとする。
（１）第一の画像処理フィルタ、および第二の画像処理フィルタが、処理の手順を示すプログラムである場合：当該２つのプログラムを結合し、１つのプログラムを生成する。
（２）第一の画像処理フィルタ、および第二の画像処理フィルタが、処理の手順を示すプログラムである場合：当該２つのプログラムを呼び出すプログラムを生成する。
【００５０】
なお、上記（１）において、「結合する」、例えば、当該２つのプログラムをコンパイルすることや、当該２つのプログラムを連結することなどを含む。また、当該（１）の処理を行うことにより、画像処理フィルタの数を減らすことや、命令数を減らすこと、処理時間を短くすることができる。
【００５１】
また、上記（２）は、つまりは、当該２つのプログラムを概念上、１つのプログラムとして扱うことである。また、上記（２）において、画像処理フィルタ統合部１６は、例えば、当該２つのプログラムを呼び出す命令（当該２つのプログラムを識別するプログラム識別子を有する命令）を有するプログラムを生成する。また、当該（２）の処理を行うことにより、処理時間を短くすることができる。
【００５２】
また、画像処理フィルタ統合部１６は、例えば、以下のいずれかの処理を行うことにより、統合画像処理フィルタ識別子を生成する。なお、統合画像処理フィルタ識別子の生成の方法は、以下のいずれかに限定されるものではない。また、以下において、画像処理フィルタ検出部１５が検出した２つの画像処理フィルタを識別する画像処理フィルタ識別子を、それぞれ、第一の画像処理フィルタ識別子、第二の画像処理フィルタ識別子とする。
（１）第一の画像処理フィルタ識別子と、第二の画像処理フィルタ識別子とを連結する。
（２）第一の画像処理フィルタ識別子の一部と、第二の画像処理フィルタ識別子の一部とを連結する。
（３）第一画像処理フィルタ識別子と第二画像処理フィルタ識別子との共通部分を抽出する。
（４）任意の単語や文字列を組み合わせる。
【００５３】
上記において、（１）は、例えば、第一画像処理フィルタ識別子の後方に、第二画像処理フィルタ識別子を連結することや、第二画像処理フィルタ識別子の後方に、第一画像処理フィルタ識別子を連結することなどである。また、（３）は、例えば、第一画像処理フィルタ識別子が「Ｆｉｌｔｅｒ０１」であり、第二画像処理フィルタ識別子が「Ｆｉｌｔｅｒ０２」である場合、「Ｆｉｌｔｅｒ」を抽出する。（４）は、例えば、３つの単語「Ｆｉｌｔｅｒ」、「Ｒｅｊｅｃｔｉｏｎ」、「Ｎｏｉｓｅ」を、文字「＿」で連結し、「Ｆｉｌｔｅｒ＿Ｎｏｉｓｅ＿Ｒｅｊｅｃｔｉｏｎ」を生成する。
【００５４】
変更部１７は、画像処理フィルタ検出部１５が検出した２以上の画像処理フィルタ識別子を、統合画像処理フィルタを識別する統合画像処理フィルタ識別子で置換する。そして、変更部１７は、置換後のプログラムである変更プログラムを取得する。
【００５５】
変更部１７は、通常、画像処理フィルタ検出部１５が検出した２以上の画像処理フィルタ識別子のうち、取得プログラムにおいて最初に出現する画像処理フィルタ識別子と、統合画像処理フィルタ識別子とを置換する。そして、変更部１７は、最初に出現する画像処理フィルタ識別子以外の画像処理フィルタ識別子を、取得プログラムから削除する。
【００５６】
また、変更部１７は、通常、画像処理フィルタ検出部１５が検出した２以上の画像処理フィルタの入出力関係を維持するように、置換を行う。
【００５７】
例えば、取得プログラムのｎ行目からｎ＋２行目に、「ｃｏｎ１＝ｃｏｎｎｅｃｔ（Ｉｎｐｕｔ，ｆｉｌｔｅｒ０１．ｉｎｐｕｔ）」、「ｃｏｎ２＝ｃｏｎｎｎｅｃｔ（ｆｉｌｔｅｒ０１．ｏｕｔｐｕｔ，ｆｉｌｔｅｒ０２．ｉｎｐｕｔ）」、「ｃｏｎ３＝ｃｏｎｎｅｃｔ（ｆｉｌｔｅｒ０２．ｏｕｔｐｕｔ，Ｏｕｔｐｕｔ）」があり、「ｆｉｌｔｅｒ０１」と「ｆｉｌｔｅｒ０２」とを統合した統合画像処理フィルタを識別する統合画像処理フィルタ識別子が「ｆｉｌｔｅｒ＿ｆｕｓｉｏｎ」である場合、変更部１７は、以下のような手順で置換を行う。
（１）ｎ行目の画像処理フィルタ識別子「ｆｉｌｔｅｒ０１」を、統合画像処理フィルタ識別子「ｆｉｌｔｅｒ＿ｆｕｓｉｏｎ」に置換する。この結果、ｎ行目は、「ｃｏｎ１＝ｃｏｎｎｅｃｔ（Ｉｎｐｕｔ，ｆｉｌｔｅｒ＿ｆｕｓｉｏｎ．ｉｎｐｕｔ）」となる。
（２）ｎ＋２行目の画像処理フィルタ識別子「ｆｉｌｔｅｒ０２」を、統合画像処理フィルタ識別子「ｆｉｌｔｅｒ＿ｆｕｓｉｏｎ」に置換する。この結果、ｎ＋２行目は、「ｃｏｎ３＝ｃｏｎｎｅｃｔ（ｆｉｌｔｅｒ＿ｆｕｓｉｏｎ．ｏｕｔｐｕｔ，Ｏｕｔｐｕｔ）」となる。
（３）ｎ＋１行目を削除する。
【００５８】
また、例えば、取得プログラムのｎ行目に「ｉｍｇ＿ｂ＝ｆｉｌｔｅｒ０１（ｉｍｇ＿ａ）」、ｎ＋５行目に「ｉｍｇ＿ｃ＝ｆｉｌｔｅｒ０２（ｉｍｇ＿ｂ）」があり、「ｆｉｌｔｅｒ０１」と「ｆｉｌｔｅｒ０２」とを統合した統合画像処理フィルタを識別する統合画像処理フィルタ識別子が「ｆｉｌｔｅｒ＿ｆｕｓｉｏｎ」である場合、変更部１７は、以下のような手順で置換を行う。
（１）ｎ行目の画像処理フィルタ識別子「ｆｉｌｔｅｒ０１」を、統合画像処理フィルタ識別子「ｆｉｌｔｅｒ＿ｆｕｓｉｏｎ」に置換する。この結果、ｎ行目は、「ｉｍｇ＿ｂ＝ｆｉｌｔｅｒ＿ｆｕｓｉｏｎ（ｉｍｇ＿ａ）」となる。
（２）ｎ＋５行目の出力である「ｉｍｇ＿ｃ」を取得する。
（３）ｎ行目の出力と、（２）で取得した出力とを置換する。この結果、ｎ行目は、「ｉｍｇ＿ｃ＝ｆｉｌｔｅｒ＿ｆｕｓｉｏｎ（ｉｍｇ＿ａ）」となる。
（４）ｎ＋５行目を削除する。
【００５９】
なお、プログラム取得部１４、画像処理フィルタ検出部１５、画像処理フィルタ統合部１６、変更部１７は、通常、ＭＰＵやメモリ等から実現され得る。プログラム取得部１４等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現してもよい。
【００６０】
また、画像処理フィルタ統合装置１は、図示しない判断部を備えていてもよい。判断部は、画像処理フィルタ検出部１５が検出した２以上の画像処理フィルタ識別子で識別される画像処理フィルタが統合かのうであるか否かを判断する。なお、当該判断の方法は、画像処理フィルタ検出部１５が画像処理フィルタ識別子を検出する際の判断と同様であるので、説明を省略する。また、判断部は、画像処理フィルタ検出部１５が検出した画像処理フィルタが統合可能であるか否かを判断できればよく、その方法や手順などは問わない。
【００６１】
また、画像処理フィルタ統合装置１は、図示しない統合可否情報生成部と、蓄積部とを備えていてもよい。
【００６２】
統合可否情報生成部は、前述の判断部が統合可能であるか否かを判断した結果を示す統合可否情報を生成する。統合可否情報生成部は、通常、画像処理フィルタ検出部１５が検出した画像処理フィルタ識別子で識別される画像処理フィルタに対応する統合可否情報を生成する。例えば、当該画像処理フィルタについて、判断部が、統合可能であると判断した場合、統合可否情報生成部は、統合可能であることを示す統合可否情報を生成する。また、例えば、当該画像処理フィルタについて、判断部が、統合可能でないと判断した場合、統合可否情報生成部は、統合可能でないことを示す統合可否情報を生成する。なお、判断部が、統合可能でないと判断した場合、統合可否情報生成部は、統合可否情報を生成しなくてもよい。
【００６３】
また、蓄積部は、統合可否情報生成部が生成した統合可否情報を、画像処理フィルタ格納部１２に蓄積する。このとき、蓄積部は、通常、統合可否情報生成部が統合可否情報を生成した画像処理フィルタに対応付けて、統合可否情報を蓄積する。
【００６４】
なお、判断部、統合可否情報生成部、蓄積部は、通常、ＭＰＵやメモリ等から実現され得る。プログラム取得部１４等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現してもよい。
【００６５】
次に、画像処理フィルタ統合装置１の動作について説明する。なお、所定の情報におけるｉ番目の情報は、「情報［ｉ］」と記載するものとする。図２は、画像処理フィルタ統合装置１の全体動作を示すフローチャートである。
【００６６】
（ステップＳ２０１）受付部１３は、指示を受け付けたか否かを判断する。受け付けた場合は、ステップＳ２０２に進み、そうでない場合は、Ｓ２０１に戻る。
【００６７】
（ステップＳ２０２）受付部１３は、ステップＳ２０１で受け付けた指示が、プログラム識別子を有するか否かを判断する。有する場合は、ステップＳ２０３に進み、そうでない場合は、ステップＳ２０１に戻る。
【００６８】
（ステップＳ２０３）プログラム取得部１４は、ステップＳ２０１で受け付けた指示が有する１以上のプログラム識別子で識別されるプログラムを、プログラム格納部１１から取得する。ここで、ｍ行のプログラムが取得できたものとする。
【００６９】
（ステップＳ２０４）画像処理フィルタ検出部１５は、画像処理フィルタ格納部１２から、統合可能である画像処理フィルタを識別する画像処理フィルタ識別子を取得する。この処理の詳細は、図３のフローチャートを用いて説明する。
【００７０】
（ステップＳ２０５）画像処理フィルタ検出部１５は、ステップＳ２０３で取得したプログラムから、ステップＳ２０４で取得した２以上の画像処理フィルタ識別子を検出する。この処理の詳細は，図４のフローチャートを用いて説明する。
【００７１】
（ステップＳ２０６）画像処理フィルタ検出部１５は、ステップＳ２０５で検出した２以上の画像処理フィルタ識別子で識別される画像処理フィルタのうち、統合可能である２以上の画像処理フィルタを決定する。この処理の詳細は、図５のフローチャートを用いて説明する。
【００７２】
（ステップＳ２０７）画像処理フィルタ統合部１６は、ステップＳ２０６で決定した統合可能である２以上の画像処理フィルタを統合し、統合画像処理フィルタを生成する。この処理の詳細は、図６のフローチャートを用いて説明する。
【００７３】
（ステップＳ２０８）変更部１７は、ステップＳ２０３で取得したプログラムが有する画像処理フィルタ識別子であって、ステップＳ２０４で検出した画像処理フィルタ識別子を、ステップＳ２０７で生成した統合画像処理フィルタを識別する統合画像処理フィルタ識別子で置換し、置換後のプログラムである変更プログラムを取得する。そして、ステップＳ２０１に戻る。
【００７４】
なお、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理を終了してもよい。
【００７５】
図３は、図２のフローチャートのステップＳ２０４の画像処理フィルタ識別子の取得処理を示すフローチャートである。
【００７６】
（ステップＳ３０１）画像処理フィルタ検出部１５は、画像処理フィルタ格納部１２に格納されている画像処理フィルタ識別子を取得する。ここで、ｎ個の画像処理フィルタ識別子が取得できたものとする。
【００７７】
（ステップＳ３０２）画像処理フィルタ検出部１５は、変数ｃ１に０をセットする。
【００７８】
（ステップＳ３０３）画像処理フィルタ検出部１５は、カウンタｉに１をセットする。
【００７９】
（ステップＳ３０４）画像処理フィルタ検出部１５は、画像処理フィルタ［ｉ］に対応する統合可否情報が、統合可能であることを示すか否かを判断する。統合可能であることを示す場合は、ステップＳ３０５に進み、そうでない場合は、ステップＳ３０８に進む。
【００８０】
（ステップＳ３０５）画像処理フィルタ検出部１５は、画像処理フィルタ［ｉ］に対応する属性情報が、属性条件を満たすか否かを判断する。満たす場合は、ステップＳ３０６に進み、そうでない場合は、ステップＳ３０８に進む。
【００８１】
（ステップＳ３０６）画像処理フィルタ検出部１５は、ｃ１を１インクリメントする。
【００８２】
（ステップＳ３０７）画像処理フィルタ検出部１５は、インデックス番号を格納するｉｎｄｅｘ１［ｃ１］にｉをセットする。
【００８３】
（ステップＳ３０８）画像処理フィルタ検出部１５は、ｉがｎであるか否かを判断する。ｎである場合は、上位処理にリターンし、そうでない場合は、ステップＳ３０９に進む。
【００８４】
（ステップＳ３０９）画像処理フィルタ検出部１５は、ｉを１インクリメントし、ステップＳ３０４に戻る。
【００８５】
図４は、図２のフローチャートのステップＳ２０５の画像処理フィルタ識別子の検出処理を示すフローチャートである。
【００８６】
（ステップＳ４０１）画像処理フィルタ検出部１５は、変数ｃ２に０をセットする。
【００８７】
（ステップＳ４０２）画像処理フィルタ検出部１５は、カウンタｉに１をセットする。
【００８８】
（ステップＳ４０３）画像処理フィルタ検出部１５は、カウンタｊに１をセットする。
【００８９】
（ステップＳ４０４）画像処理フィルタ検出部１５は、変数ｍにｉｎｄｅｘ１［ｊ］をセットする。
【００９０】
（ステップＳ４０５）画像処理フィルタ検出部１５は、ステップＳ２０３で取得したプログラムのｉ行目が、画像処理フィルタ識別子［ｍ］に一致するか否かを判断する。一致する場合は、ステップＳ３０６に進み、そうでない場合は、ステップＳ３０９に進む。
【００９１】
（ステップＳ４０６）画像処理フィルタ検出部１５は、ｃ２を１インクリメントする。
【００９２】
（ステップＳ４０７）画像処理フィルタ検出部１５は、インデックス番号を格納するｉｎｄｅｘ２［ｃ２］にｍをセットする。
【００９３】
（ステップＳ４０８）画像処理フィルタ検出部１５は、行番号を格納するｌｉｎｅ２［ｃ２］にｉをセットする。
【００９４】
（ステップＳ４０９）画像処理フィルタ検出部１５は、ｊがｃ１であるか否かを判断する。ｃ１である場合は、ステップＳ４１１に進み、そうでない場合は、ステップＳ４１０に進む。
【００９５】
（ステップＳ４１０）画像処理フィルタ検出部１５は、ｊを１インクリメントし、ステップＳ４０４に戻る。
【００９６】
（ステップＳ４１１）画像処理フィルタ検出部１５は、ｉがｍであるか否かを判断する。ｍである場合は、上位処理にリターンし、そうでない場合は、ステップＳ４１２に進む。
【００９７】
（ステップＳ４１２）画像処理フィルタ検出部１５は、ｉを１インクリメントし、ステップＳ４０３に戻る。
【００９８】
図５は、図２のフローチャートのステップＳ２０６の統合可能な画像処理フィルタの決定処理を示すフローチャートである。
【００９９】
（ステップＳ５０１）画像処理フィルタ検出部１５は、変数ｃ３に０をセットする。
【０１００】
（ステップＳ５０２）画像処理フィルタ検出部１５は、カウンタｉに１をセットする。
【０１０１】
（ステップＳ５０３）画像処理フィルタ検出部１５は、カウンタｊにｉ＋１をセットする。
【０１０２】
（ステップＳ５０４）画像処理フィルタ検出部１５は、変数ｉｎｄｅｘ２１に、インデックス番号が格納されているｉｎｄｅｘ２［ｉ］をセットする。
【０１０３】
（ステップＳ５０５）画像処理フィルタ検出部１５は、変数ｉｎｄｅｘ２２に、インデックス番号が格納されているｉｎｄｅｘ２［ｊ］をセットする。
【０１０４】
（ステップＳ５０６）画像処理フィルタ検出部１５は、画像処理フィルタ［ｉｎｄｅｘ２１］と、画像処理フィルタ［ｉｎｄｅｘ２２］とが連続しているか否かを判断する。連続している場合は、ステップＳ５０７に進み、そうでない場合は、ステップＳ５０９に進む。
【０１０５】
（ステップＳ５０７）画像処理フィルタ検出部１５は、ｃ３を１インクリメントする。
【０１０６】
（ステップＳ５０８）画像処理フィルタ検出部１５は、統合する画像処理フィルタのペアのインデックス番号を格納するｐａｉｒ［ｃ３］に、ｉｎｄｅｘ２１、ｉｎｄｅｘ２２、ｌｉｎｅ２［ｉ］をセットする。
【０１０７】
（ステップＳ５０９）画像処理フィルタ検出部１５は、ｊがｃ２であるか否かを判断する。ｃ２である場合は、ステップＳ５１１に進み、そうでない場合は、ステップＳ５１０に進む。
【０１０８】
（ステップＳ５１０）画像処理フィルタ検出部１５は、ｊを１インクリメントし、ステップＳ５０４に戻る。
【０１０９】
（ステップＳ５１１）画像処理フィルタ検出部１５は、ｉがｃ２−１であるか否かを判断する。ｃ２−１である場合は、上位処理にリターンし、そうでない場合は、ステップＳ５１２に進む。
【０１１０】
（ステップＳ５１２）画像処理フィルタ検出部１５は、ｉを１インクリメントし、ステップＳ５０３に戻る。
【０１１１】
なお、図５のフローチャートにおいて、統合可能な２以上の画像処理フィルタを決定してもよい。
【０１１２】
図６は、図２のフローチャートのステップＳ２０７の統合画像処理フィルタの生成処理を示すフローチャートである。
【０１１３】
（ステップＳ６０１）画像処理フィルタ統合部１６は、カウンタｉに１をセットする。
【０１１４】
（ステップＳ６０２）画像処理フィルタ統合部１６は、変数ｉｎｄｅｘ３１に、統合する画像処理フィルタのペアのインデックス番号が格納されているｐａｉｒ［ｉ］が有するｉｎｄｅｘ２１をセットする。
【０１１５】
（ステップＳ６０３）画像処理フィルタ統合部１６は、変数ｉｎｄｅｘ３２に、統合する画像処理フィルタのペアのインデックス番号が格納されているｐａｉｒ［ｉ］が有するｉｎｄｅｘ２２をセットする。
【０１１６】
（ステップＳ６０４）画像処理フィルタ統合部１６は、統合画像処理フィルタ［ｃ３］に、画像処理フィルタ［ｉｎｄｅｘ３１］と、画像処理フィルタ［ｉｎｄｅｘ３２］とを統合したものをセットする。
【０１１７】
（ステップＳ６０５）画像処理フィルタ統合部１６は、統合画像処理フィルタ識別子［ｃ３］に、画像処理フィルタ識別子［ｉｎｄｅｘ３１］と、画像処理フィルタ識別子［ｉｎｄｅｘ３２］とを連結したものをセットする。
【０１１８】
（ステップＳ６０６）画像処理フィルタ統合部１６は、ｉがｃ３であるか否かを判断する。ｃ３である場合は、上位処理にリターンし、そうでない場合は、ステップＳ６０７に進む。
【０１１９】
（ステップＳ６０７）画像処理フィルタ統合部１６は、ｉを１インクリメントし、ステップＳ６０２に戻る。
【０１２０】
（具体例）
次に、画像処理フィルタ統合装置１の動作の具体例について説明する。なお、本具体例において、プログラム格納部１１には、図７、および図８に示すプログラムが格納されているものとする。図７のプログラムは、プログラム識別子であるファイル名「ｐｒｏｇｒａｍ０１．ｃ」を有する。また、図８のプログラムは、プログラム識別子であるファイル名「ｐｒｏｇｒａｍ０２．ｃ」を有する。
【０１２１】
また、以下の（例１）においては、画像処理フィルタ格納部１２には、図９に示す画像処理フィルタ管理情報が格納されているものとする。当該画像処理フィルタ管理情報は、各レコードを一意に特定するためのＩＤと、画像処理フィルタ識別子（項目名：識別子）と、画像処理フィルタ（項目名：フィルタ）と、統合可否情報とを有する。なお、画像処理フィルタ（項目名：フィルタ）は、当該画像処理フィルタであるプログラムのプログラム識別子である。また、当該プログラムは、画像処理フィルタ格納部１２に格納されているものとする。
また、以下の（例２）においては、画像処理フィルタ格納部１２には、図９の画像処理フィルタ管理情報に加え、図１０に示す統合可能画像処理フィルタ管理情報が格納されているものとする。当該統合可能画像処理フィルタ管理情報は、各レコードを一意に特定するためのＩＤと、画像処理フィルタ識別子（項目名：識別子）と、当該画像処理フィルタ識別子で識別される画像処理フィルタのうちのいずれか２つが、統合可能であることを示す情報（図中の「○」）を有する。また、図１０の各レコードは、図９の各レコードと対応しているものとする。
【０１２２】
（例１）
まず、ユーザが、プログラム中の画像処理フィルタによる処理を統合するために、ファイル名が「ｐｒｏｇｒａｍ０１．ｃ」であるプログラムのアイコンを、画像処理フィルタ統合装置１の上にドラッグ＆ドロップしたとする。すると、受付部１３は、当該プログラムを識別するプログラム識別子「ｐｒｏｇｒａｍ０１．ｃ」を有する指示を受け付ける。
【０１２３】
次に、プログラム取得部１４は、受付部１３が受け付けたプログラム識別子「ｐｒｏｇｒａｍ０１．ｃ」で識別される図７に示すプログラムを、プログラム格納部１１から取得する。
【０１２４】
次に、画像処理フィルタ検出部１５は、図７のプログラムから、図９の画像処理フィルタ管理情報が有する画像処理フィルタ識別子に一致する画像処理フィルタ識別子を検出する。このとき、画像処理フィルタ検出部１５は、図９の画像処理フィルタ識別子のうち、画像処理フィルタに対応する統合可否情報が、統合可能であることを示す画像処理フィルタ識別子を検出する。また、画像処理フィルタ検出部１５は、当該統合可能である画像処理フィルタを識別する画像処理フィルタ識別子であって、図７のプログラムにおいて連続する画像処理フィルタ識別子を検出する。
【０１２５】
図９において、統合可否情報により統合可能であることが示される画像処理フィルタ識別子は、「ＩＤ＝０１３」、「ＩＤ＝０１４」、「ＩＤ＝０３３」、「ＩＤ＝０３４」である。画像処理フィルタ検出部１５は、これらの画像処理フィルタ識別子を、図７のプログラムから検出し、図７の１０行目から１２行目までにおいて、図９の「ＩＤ＝０１３」、「ＩＤ＝０３３」の画像処理フィルタ識別子を、一時的に検出する。
【０１２６】
次に、画像処理フィルタ検出部１５は、図９の「ＩＤ＝０１３」、「ＩＤ＝０３３」の画像処理フィルタが、図７のプログラムにおいて連続しているか否かを判断する。図７の１１行目において、画像処理フィルタ「ＥｄｇｅＦｉｌｔｅｒ＿Ｓ」の出力と、画像処理フィルタ「ＥｄｇｅＦｉｌｔｅｒ＿Ｈ」の入力とを接続する命令が記述されている。従って、画像処理フィルタ検出部１５は、図９の「ＩＤ＝０１３」と「ＩＤ＝０３３」の画像処理フィルタは、図７のプログラムにおいて連続していると判断する。そして、画像処理フィルタ検出部１５は、統合可能である画像処理フィルタを識別する画像処理フィルタ識別子として、図７の１０行目から１２行目までにおいて、図９の「ＩＤ＝０１３」、「ＩＤ＝０３３」の画像処理フィルタ識別子を検出する。
【０１２７】
次に、画像処理フィルタ統合部１６は、図９の「ＩＤ＝０１３」、「ＩＤ＝０３３」の画像処理フィルタを統合し、統合画像処理フィルタと、統合画像処理フィルタ識別子を生成する。ここで、画像処理フィルタ統合部１６は、図９の「ＩＤ＝０１３」の画像処理フィルタであるプログラムと、「ＩＤ＝０３３」の画像処理フィルタであるプログラムとを結合し、統合画像処理フィルタであるプログラムを生成したものとする。また、画像処理フィルタ統合部１６は、図９の「ＩＤ＝０１３」の画像処理フィルタ識別子と、「ＩＤ＝０３３」の画像処理フィルタ識別子との共通部分である「ＥｄｇｅＦｉｌｔｅｒ」を、統合画像処理フィルタ識別子として生成したものとする。
【０１２８】
次に、変更部１７は、図７の１０行目から１２行目を、画像処理フィルタ統合部１６が生成した統合画像処理フィルタ識別子「ＥｄｇｅＦｉｌｔｅｒ」で変更する。このとき、変更部１７は、図７の１０行目について、「ＥｄｇｅＦｉｌｔｅｒ＿Ｓ」を「ＥｄｇｅＦｉｌｔｅｒ」に置換する。また、変更部１７は、図７の１２行目について、「ＥｄｇｅＦｉｌｔｅｒ＿Ｈ」を「ＥｄｇｅＦｉｌｔｅｒ」に置換する。そして、変更部１７は、図７の１１行目を削除する。この結果、変更部１７は、図１１に示す変更プログラムを取得する。
【０１２９】
（例２）
まず、ユーザが、（例１）と同様の操作を行い、プログラム取得部１４は、プログラム識別子「ｐｒｏｇｒａｍ０２．ｃ」で識別される図８に示すプログラムを、プログラム格納部１１から取得したとする。
【０１３０】
次に、画像処理フィルタ検出部１５は、図８のプログラムから、図１０の統合可能画像処理フィルタ管理情報が有する画像処理フィルタ識別子に一致する画像処理フィルタ識別子を検出する。このとき、画像処理フィルタ検出部１５は、図１０の画像処理フィルタ識別子のうち、他の画像処理フィルタと統合可能であることが示される画像処理フィルタ識別子を検出する。また、画像処理フィルタ検出部１５は、当該統合可能である画像処理フィルタを識別する画像処理フィルタ識別子であって、図８のプログラムにおいて連続する画像処理フィルタ識別子を検出する。
【０１３１】
図１０において、他の画像処理フィルタと統合可能であることが示される画像処理フィルタ識別子は、「ＩＤ＝０１３」、「ＩＤ＝０１４」、「ＩＤ＝０１５」、「ＩＤ＝０３３」、「ＩＤ＝０３４」、「ＩＤ＝０３５」である。画像処理フィルタ検出部１５は、これらの画像処理フィルタ識別子を、図８のプログラムから検出し、図８の１１行目、１２行目において、図１０の「ＩＤ＝０３３」の画像処理フィルタ識別子を、一時的に検出する。
【０１３２】
次に、画像処理フィルタ検出部１５は、図１０の「ＩＤ＝０３３」の画像処理フィルタ識別子で識別される図９の「ＩＤ＝０３３」画像処理フィルタが、図８のプログラムにおいて連続しているか否かを判断する。図８の１１行目において、画像処理フィルタ「ＥｄｇｅＦｉｌｔｅｒ＿Ｈ」の出力である「Ｉｍｇ＿ｂ」が、図８の１２行目において、画像処理フィルタ「ＥｄｇｅＦｉｌｔｅｒ＿Ｈ」の入力となっている。従って、画像処理フィルタ検出部１５は、図９の「ＩＤ＝０３３」の画像処理フィルタは、図８のプログラムにおいて連続していると判断する。そして、画像処理フィルタ検出部１５は、統合可能である画像処理フィルタを識別する画像処理フィルタ識別子として、図８の１１行目、１２行目において、図１０の「ＩＤ＝０３３」の画像処理フィルタ識別子を検出する。
【０１３３】
次に、画像処理フィルタ統合部１６は、図９の「ＩＤ＝０３３」の画像処理フィルタ同士を統合し、統合画像処理フィルタと、統合画像処理フィルタ識別子を生成する。ここで、画像処理フィルタ統合部１６は、図９の「ＩＤ＝０３３」の画像処理フィルタであるプログラム同士を結合し、統合画像処理フィルタであるプログラムを生成したものとする。また、画像処理フィルタ統合部１６は、図９の「ＩＤ＝０３３」の画像処理フィルタ識別子の一部分である「ＥｄｇｅＦｉｌｔｅｒ」を、統合画像処理フィルタ識別子として生成したものとする。
【０１３４】
次に、変更部１７は、図８の１１行目、１２行目を、画像処理フィルタ統合部１６が生成した統合画像処理フィルタ識別子「ＥｄｇｅＦｉｌｔｅｒ」で変更する。このとき、変更部１７は、図８の１１行目について、「ＥｄｇｅＦｉｌｔｅｒ＿Ｈ」を「ＥｄｇｅＦｉｌｔｅｒ」に置換する。そして、変更部１７は、図８の１２行目について、「ＥｄｇｅＦｉｌｔｅｒ＿Ｈ」の出力である「Ｉｍｇ＿ｃ」を取得する。そして、変更部１７は、図８の１１行目について、「Ｉｍｇ＿ｂ」を取得した「Ｉｍｇ＿ｃ」で置換する。そして、変更部１７は、図８の１２行目を削除する。この結果、変更部１７は、図１２に示す変更プログラムを取得する。
【０１３５】
なお、本具体例において、画像処理フィルタ格納部１２に、画像処理フィルタ管理情報（統合可否情報）が格納されている例を示したが、画像処理フィルタ格納部１２には、画像処理フィルタ管理情報（統合可否情報）は格納されていなくてもよい。
【０１３６】
また、本具体例において、画像処理フィルタ格納部１２に、図１０に示す統合可能画像処理フィルタ管理情報が格納されている例を示したが、統合可能画像処理フィルタ管理情報は、当該形式および内容に限定されるものではない。
【０１３７】
以上、本実施の形態による画像処理フィルタ統合装置１によれば、２以上の画像処理フィルタを統合することができる。
【０１３８】
また、本実施の形態による画像処理フィルタ統合装置１によれば、統合可否情報により統合可能であることが示される２以上の画像処理フィルタを統合することができる。
【０１３９】
また、本実施の形態による画像処理フィルタ統合装置１によれば、属性条件を満たす２以上の画像処理フィルタを統合することができる。
【０１４０】
また、本実施の形態による画像処理フィルタ統合装置１によれば、属性情報が同一である２以上の画像処理フィルタを統合することができる。
【０１４１】
また、本実施の形態による画像処理フィルタ統合装置１によれば、連続し、かつ属性条件を満たす２以上の画像処理フィルタを統合することができる。
【０１４２】
また、本実施の形態による画像処理フィルタ統合装置１によれば、連続する２以上の画像処理フィルタを統合することができる。
【０１４３】
また、本実施の形態による画像処理フィルタ統合装置１によれば、統合可能な画像処理フィルタの組み合わせを検出し、当該画像処理フィルタを統合することができる。
【０１４４】
また、本実施の形態による画像処理フィルタ統合装置１によれば、一の画像に対して画像処理フィルタを適用する回数を減らすことができる。
【０１４５】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段は、物理的に一の媒体で実現されてもよいことは言うまでもない。
【０１４６】
また、上記各実施の形態における画像処理フィルタ統合装置は、例えば、スタンドアロンの装置であってもよいし、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、例えば、ＡＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）として画像処理フィルタの統合が行われてもよい。
【０１４７】
また、上記各実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよいし、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【０１４８】
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよいし、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
【０１４９】
また、上記各実施の形態における画像処理フィルタ統合装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、プログラムを識別するプログラム識別子と、画像処理フィルタを識別する２以上の画像処理フィルタ識別子を有する１以上のプログラムと、１以上の画像処理フィルタと、当該画像処理フィルタを識別する画像処理フィルタ識別子とが格納されており、コンピュータを、１以上のプログラム識別子を有する指示を受け付ける受付部と、前記指示に含まれる１以上のプログラム識別子で識別されるプログラムを、前記プログラム格納部から取得するプログラム取得部と、統合可能である２以上の画像処理フィルタ識別子を、前記プログラム取得部が取得した１以上のプログラムから検出する画像処理フィルタ検出部と、
前記画像処理フィルタ検出部が検出した２以上の画像処理フィルタ識別子で識別される画像処理フィルタを統合し、統合した画像処理フィルタである統合画像処理フィルタと、当該統合画像処理フィルタを識別する統合画像処理フィルタ識別子とを生成する画像処理フィルタ統合部と、前記画像処理フィルタ検出部が検出した２以上の画像処理フィルタ識別子を、前記統合画像処理フィルタ識別子で置換し、当該置換後のプログラムである変更プログラムを取得する変更部として機能させるためのプログラムである。
【０１５０】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアでしか行われない処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理は少なくとも含まれない。
【０１５１】
また、上記プログラムは、サーバなどからダウンロードされることによって実行されてもよいし、所定の記録媒体（例えば、ＣＤ−ＲＯＭなどの光ディスクや磁気ディスク、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
【０１５２】
また、上記プログラムを実行するコンピュータは、単数であってもよいし、複数であってもよい。つまり、集中処理を行ってもよいし、あるいは分散処理を行ってもよい。
【０１５３】
また、図１３は、前述のプログラムを実行して、前述の実施の形態の画像処理フィルタ統合装置等を実現するコンピュータシステム９の概観図である。前述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。
【０１５４】
図１３において、コンピュータシステム９は、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ９０１１、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）ドライブ９０１２を含むコンピュータ９０１と、キーボード９０２と、マウス９０３と、モニタ９０４とを備える。
【０１５５】
図１４は、コンピュータシステム９のブロック図である。図１４において、コンピュータ９０１は、ＣＤ−ＲＯＭドライブ９０１１、ＦＤドライブ９０１２に加えて、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１３と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０１４と、ＣＰＵ９０１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０１５と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク９０１６と、ＣＤ−ＲＯＭドライブ９０１１、ＦＤドライブ９０１２、ＣＰＵ９０１３等を相互に接続するバス９０１７とを備える。ここでは図示しないが、コンピュータ９０１は、さらに、ＬＡＮへの接続を提供するネットワークカードを備えていてもよい。
【０１５６】
コンピュータシステム９に、前述の実施の形態の画像処理フィルタ統合装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ９１０１、またはＦＤ９１０２に記憶されて、ＣＤ−ＲＯＭドライブ９０１１またはＦＤドライブ９０１２に挿入され、さらにハードディスク９０１６に転送されてもよい。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ９０１に送信され、ハードディスク９０１６に記憶されてもよい。プログラムは実行の際にＲＡＭ９０１５にロードされる。プログラムは、ＣＤ−ＲＯＭ９１０１、ＦＤ９１０２またはネットワークから直接、ロードされてもよい。
【０１５７】
プログラムは、コンピュータ９０１に、前述の実施の形態の画像処理フィルタ統合装置等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくてもよい。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいればよい。コンピュータシステム９がどのように動作するかは周知であり、詳細な説明は省略する。
【０１５８】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１５９】
以上のように、本発明にかかる画像処理フィルタ統合装置は、２以上の画像処理フィルタを統合することができる。これにより、一の画像に対して画像処理フィルタを適用する回数を減らすことができるという効果を有し、プログラム最適化装置等として有用である。
【符号の説明】
【０１６０】
１  画像処理フィルタ統合装置
１１  プログラム格納部
１２  画像処理フィルタ格納部
１３  受付部
１４  プログラム取得部
１５  画像処理フィルタ検出部
１６  画像処理フィルタ統合部
１７  変更部
【図１】
2013073543.tif 000003
【図２】
2013073543.tif 000004
【図３】
2013073543.tif 000005
【図４】
2013073543.tif 000006
【図５】
2013073543.tif 000007
【図６】
2013073543.tif 000008
【図７】
2013073543.tif 000009
【図８】
2013073543.tif 000010
【図９】
2013073543.tif 000011
【図１０】
2013073543.tif 000012
【図１１】
2013073543.tif 000013
【図１２】
2013073543.tif 000014
【図１３】
2013073543.tif 000015
【図１４】
2013073543.tif 000016