(57)【要約】【課題】フィルタリング処理を実行した場合であっても、一次元コード又は二次元コードの内容を正しく読み取ることができる画像処理装置、画像処理方法、及びコンピュータプログラムを提供する。【解決手段】少なくとも一の一次元コード又は二次元コードを含む画像を取得し、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成する。生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る。また、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成し、生成した第二のフィルタリング画像に対して他の画像処理を実行する。【選択図】図６
2012015957.tif 000002
【特許請求の範囲】
【請求項１】
画像中の一次元コード又は二次元コードを読み取る画像処理装置において、
少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段と、
取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成する第一のフィルタリング手段と
を備え、
生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取るようにしてあることを特徴とする画像処理装置。
【請求項２】
取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成する第二のフィルタリング手段を備え、
生成した第二のフィルタリング画像に対して他の画像処理を実行するようにしてあることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するフィルタリング画像生成手段と、
生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するスコア算出手段と、
算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するフィルタ特定手段と
を備え、
特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取るようにしてあることを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
画像中の一次元コード又は二次元コードを読み取る画像処理装置で実行することが可能な画像処理方法において、
少なくとも一の一次元コード又は二次元コードを含む画像を取得するステップと、
取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成するステップと
を含み、
生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取ることを特徴とする画像処理方法。
【請求項５】
取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成するステップを含み、
生成した第二のフィルタリング画像に対して他の画像処理を実行することを特徴とする請求項４記載の画像処理方法。
【請求項６】
前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するステップと、
生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するステップと、
算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するステップと
を含み、
特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取ることを特徴とする請求項４又は５記載の画像処理方法。
【請求項７】
画像中の一次元コード又は二次元コードを読み取る画像処理装置で実行することが可能なコンピュータプログラムにおいて、
前記画像処理装置を、
少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段、
取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成する第一のフィルタリング手段、及び
生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る手段
として機能させることを特徴とするコンピュータプログラム。
【請求項８】
前記画像処理装置を、
取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成する第二のフィルタリング手段、及び
生成した第二のフィルタリング画像に対して他の画像処理を実行する手段
として機能させることを特徴とする請求項７記載のコンピュータプログラム。
【請求項９】
前記画像処理装置を、
前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するフィルタリング画像生成手段、
生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するスコア算出手段、
算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するフィルタ特定手段、及び
特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る手段
として機能させることを特徴とする請求項７又は８記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコードのような一次元コード又はＱＲコードのような二次元コードを含む画像に対するフィルタリング処理を実行する画像処理装置、画像処理方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、バーコードのような一次元コード又はＱＲコードのような二次元コードを読み取る各種の画像処理装置は、一次元コード又は二次元コードの読み取り精度を高めるため、一次元コード又は二次元コードを示すシンボルを含む画像に対して、ユーザが指定した所定の画像フィルタを用いることが多い。図１は、撮像された入力画像の例示図であり、理解しやすいようにＤＭ（Ｄａｔａ  Ｍａｔｒｉｘ）コードを拡大した状態を示している。なお、図１では２ＰＰＣ（Ｐｉｘｅｌ  ｐｅｒ  Ｃｅｌｌ）の二次元コードを想定している。
【０００３】
図１に示すように、ＤＭコードは隣接する二辺にＬ字型のシンボルを有しており、二辺のそれぞれが対向する辺では、シンボルとして白色、黒色が交互に表示されるという固有の特徴を有している。これらの、二次元コードに固有の特徴をより際立たせるようフィルタリング処理を実行することにより、二次元コードをより確実に検出することができ、またデコード処理の精度を高めることもできる。
【０００４】
例えば特許文献１の画像処理装置では、各種の画像のノイズを除去するモルフォロジー演算処理（モルフォロジーフィルタ）が開示されている。特許文献１では、カーネルサイズが３画素×３画素であるモルフォロジーフィルタ、又はカーネルサイズが５画素×５画素であるモルフォロジーフィルタが用いられている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３１１９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図２は、図１に示す入力画像に対して、カーネルサイズが３画素×３画素であるモルフォロジーフィルタを用いたフィルタリング画像の例示図である。図２に示すように、カーネルサイズが３画素×３画素であるモルフォロジーフィルタを用いてフィルタリング処理を実行した場合、フィルタリング処理により生成された収縮画像（以下、フィルタリング画像）として図１に示す元の入力画像で白色となっている部分の一部が灰色となり、結果として白色部分が少なくなっていることが分かる。特に白色部分が狭くなっているため、白色、黒色が交互に表示されるタイミングパターンを強調することができず、多少のノイズを拾っただけでもセルのタイミング情報を正しく読み取ることができないおそれがあるという問題点があった。これは、カーネルサイズが３画素×３画素よりも大きいモルフォロジーフィルタを用いてフィルタリング処理を実行した場合であっても同様である。
【０００７】
本発明は上記事情に鑑みてなされたものであり、フィルタリング処理を実行した場合であっても、一次元コード又は二次元コードの内容を正しく読み取ることができる画像処理装置、画像処理方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために第１発明に係る画像処理装置は、画像中の一次元コード又は二次元コードを読み取る画像処理装置において、少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段と、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成する第一のフィルタリング手段とを備え、生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取るようにしてあることを特徴とする。
【０００９】
また、第２発明に係る画像処理装置は、第１発明において、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成する第二のフィルタリング手段を備え、生成した第二のフィルタリング画像に対して他の画像処理を実行するようにしてあることを特徴とする。
【００１０】
また、第３発明に係る画像処理装置は、第１又は第２発明において、前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するフィルタリング画像生成手段と、生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するスコア算出手段と、算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するフィルタ特定手段とを備え、特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取るようにしてあることを特徴とする。
【００１１】
次に、上記目的を達成するために第４発明に係る画像処理方法は、画像中の一次元コード又は二次元コードを読み取る画像処理装置で実行することが可能な画像処理方法において、少なくとも一の一次元コード又は二次元コードを含む画像を取得するステップと、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成するステップとを含み、生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取ることを特徴とする。
【００１２】
また、第５発明に係る画像処理方法は、第４発明において、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成するステップを含み、生成した第二のフィルタリング画像に対して他の画像処理を実行することを特徴とする。
【００１３】
また、第６発明に係る画像処理方法は、第４又は第５発明において、前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するステップと、生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するステップと、算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するステップとを含み、特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取ることを特徴とする。
【００１４】
次に、上記目的を達成するために第７発明に係るコンピュータプログラムは、画像中の一次元コード又は二次元コードを読み取る画像処理装置で実行することが可能なコンピュータプログラムにおいて、前記画像処理装置を、少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成する第一のフィルタリング手段、及び生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る手段として機能させることを特徴とする。
【００１５】
また、第８発明に係るコンピュータプログラムは、第７発明において、前記画像処理装置を、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成する第二のフィルタリング手段、及び生成した第二のフィルタリング画像に対して他の画像処理を実行する手段として機能させることを特徴とする。
【００１６】
また、第９発明に係るコンピュータプログラムは、第７又は第８発明において、前記画像処理装置を、前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するフィルタリング画像生成手段、生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するスコア算出手段、算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するフィルタ特定手段、及び特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る手段として機能させることを特徴とする。
【００１７】
第１発明、第４発明及び第７発明では、少なくとも一の一次元コード又は二次元コードを含む画像を取得し、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成し、生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る。カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成することにより、各種一般的な位置検出の画像処理に用いるフィルタリング画像としてはオフセットが生じるために適切ではないものの、オフセットが均等に生じることから一次元コード又は二次元コードの位置決めをするためのフィルタリング画像としては有用であり、白色と黒色とのバランスを保持して調整することができ、タイミングパターンを適切に強調することができる。したがって、多少のノイズを拾った場合であっても、セルのタイミング情報を正しく読み取ることができ、高い精度で一次元コード又は二次元コードを読み取ることが可能となる。
【００１８】
第２発明、第５発明及び第８発明では、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成し、生成した第二のフィルタリング画像に対して他の画像処理を実行する。一次元コード又は二次元コードの読み取り処理以外の画像処理については、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて別個に生成した第二のフィルタリング画像に対して実行する。これにより、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いることによるオフセットの影響を排除した状態で一次元コード又は二次元コードの読み取り処理以外の画像処理を実行することができる。
【００１９】
第３発明、第６発明及び第９発明では、一次元コード又は二次元コードを読み取る場合、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成し、生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出する。算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定し、特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る。これにより、例えばユーザが事前に指定してある、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタのうち、読み取りスコアの最も高いフィルタ、又は複数のフィルタの組み合わせを用いてフィルタリング処理を実行することができ、高い精度で一次元コード又は二次元コードを読み取ることが可能となる。
【発明の効果】
【００２０】
本発明によれば、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成することにより、各種一般的な位置検出の画像処理に用いるフィルタリング画像としてはオフセットが生じるために適切ではないものの、オフセットが均等に生じることから一次元コード又は二次元コードの位置決めをするためのフィルタリング画像としては有用であり、白色と黒色とのバランスを保持して調整することができ、タイミングパターンを適切に強調することができる。したがって、多少のノイズを拾った場合であっても、セルのタイミング情報を正しく読み取ることができ、高い精度で一次元コード又は二次元コードを読み取ることが可能となる。
【図面の簡単な説明】
【００２１】
【図１】撮像された入力画像の例示図である。
【図２】カーネルサイズが３画素×３画素であるモルフォロジーフィルタを用いたフィルタリング画像の例示図である。
【図３】本発明の実施の形態１に係る画像処理装置の構成を模式的に示すブロック図である。
【図４】本発明の実施の形態１に係る画像処理装置の一構成例を示す機能ブロック図である。
【図５】本発明の実施の形態１に係る画像処理装置の、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて生成したフィルタリング画像の例示図である。
【図６】本発明の実施の形態１に係る画像処理装置の主制御部のフィルタリング処理の手順を示すフローチャートである。
【図７】本発明の実施の形態２に係る画像処理装置の一構成例を示す機能ブロック図である。
【図８】本発明の実施の形態２に係る画像処理装置の主制御部のフィルタ特定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態に係る画像処理装置について、図面を参照しながら説明する。なお、参照する図面を通じて、同一又は同様の構成又は機能を有する要素については、同一又は同様の符号を付して、詳細な説明を省略する。
【００２３】
（実施の形態１）
図３は、本発明の実施の形態１に係る画像処理装置の構成を模式的に示すブロック図である。図３に示すように本実施の形態１に係る画像処理装置２は、カメラ３、コンソール４、ＰＬＣ６とデータ通信することが可能に接続されている。
【００２４】
実施の形態１に係る画像処理装置２は、少なくともＣＰＵ（中央演算装置）、ＬＳＩ等で構成された主制御部２１、メモリ２２、記憶装置２３、ビデオインタフェース２４、入出力インタフェース２５、可搬型ディスクドライブ２６、通信インタフェース２７及び上述したハードウェアを接続する内部バス２８で構成されている。主制御部２１は、内部バス２８を介して画像処理装置２の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置２３に記憶されているコンピュータプログラム１００に従って、種々のソフトウェア的機能を実行する。メモリ２２は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラム１００の実行時にロードモジュールが展開され、コンピュータプログラム１００の実行時に発生する一時的なデータ等を記憶する。
【００２５】
記憶装置２３は、内蔵される固定型記憶装置（ハードディスク、フラッシュメモリ）、ＲＯＭ等で構成されている。記憶装置２３に記憶されているコンピュータプログラム１００は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ等の可搬型記録媒体９０から、可搬型ディスクドライブ２６によりダウンロードされ、実行時には記憶装置２３からメモリ２２へ展開して実行される。もちろん、通信インタフェース２７を介して外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００２６】
記憶装置２３には、カメラ３にて撮像した画像の画像データも記憶する。記憶してある画像データに基づいて、各種のフィルタリング処理を実行する。
【００２７】
通信インタフェース２７は内部バス２８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置２３は、画像処理装置２に内蔵される構成に限定されるものではなく、通信インタフェース２７を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記録媒体であっても良い。
【００２８】
ビデオインタフェース２４は、内部バス２８に接続されており、コンソール４の表示装置４０１に接続されることにより、所望の画像を表示する。入出力インタフェース２５は、内部バス２８に接続されており、コンソール４のキーボード４０２を介してデータの入力を受け付ける。なお、コンソール４は、表示装置４０１とキーボード４０２とが一体になっていることに限定されるものではなく、別個に構成されても良いし、液晶パネル等と一体となったタッチパネル等の入力情報を取得する装置全般を含む広い概念である。
【００２９】
カメラ３は、ＣＣＤ撮像素子を備えたＣＣＤカメラ等であり、少なくとも一の二次元コード５を含む画像を撮像して取得する。画像処理装置２は、二次元コードの読み取り処理だけでなく、さまざまな画像処理を実行する。ＰＬＣ６は、画像処理装置２を含む各種の装置からデータを受信し、受信した内容に応じて画像処理装置２及び／又は各種の装置へ指示を送信する装置である。
【００３０】
図４は、本発明の実施の形態１に係る画像処理装置２の一構成例を示す機能ブロック図である。図４において、本実施の形態１に係る画像処理装置２は、カメラ３と、コンソール４と、ＰＬＣ６とから構成される。なお、実施の形態１では、二次元コードを含む画像から二次元コードをデコードする場合について説明する。
【００３１】
画像取得手段（取得手段）２０１は、少なくとも一の二次元コードを含む画像を、カメラ３で撮像することにより取得する。画像を取得する方法は、カメラ３による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置２３に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース２７を介して読み出すことで取得しても良い。取得した画像はコンソール４に表示しても良いし、しなくても良い。
【００３２】
第一のフィルタリング手段２０２は、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いたフィルタリング処理を実行してフィルタリング画像（第一のフィルタリング画像）を生成する。図５は、本発明の実施の形態１に係る画像処理装置２の、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて生成したフィルタリング画像の例示図である。図５は、図１に示す入力画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて生成したフィルタリング画像を示している。
【００３３】
図２と比較して、図５の方が図１に示す元の入力画像で白色となっている部分は白色のまま残り、結果として白色部分が図２ほど少なくなることがない。したがって、白色、黒色が交互に表示されるタイミングパターンをより強調することができ、ノイズを拾った場合であってもセルのタイミング情報を正しく読み取ることができる。
【００３４】
図４に戻って、二次元コード読み取り手段２０３は、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて生成したフィルタリング画像（第一のフィルタリング画像）に基づいて、二次元コードに固有のファインダーパターンの位置と姿勢とを検出することで二次元コードを検出し、検出した二次元コードをデコードする。デコードにより読み取ることができた情報は、ＰＬＣ６へ送信され、所定の後処理が実行される。
【００３５】
第二のフィルタリング手段２０４は、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いたフィルタリング処理を実行してフィルタリング画像（第二のフィルタリング画像）を生成する。第二のフィルタリング手段２０４で用いるフィルタは、カーネルサイズの異なるモルフォロジーフィルタ、例えばカーネルサイズが３画素×３画素であるモルフォロジーフィルタ、カーネルサイズが５画素×５画素であるモルフォロジーフィルタ等であっても良いし、平均値フィルタ、カーネルフィルタ、ソーベルフィルタ等、実行する画像処理の種類に適合した他の種類のフィルタであっても良い。
【００３６】
画像処理手段２０５は、二次元コードの読み取り処理以外の画像処理を、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて生成したフィルタリング画像（第二のフィルタリング画像）に対して実行する。実行した画像処理に関する情報は、ＰＬＣ６へ送信され、所定の後処理が実行される。
【００３７】
図６は、本発明の実施の形態１に係る画像処理装置２の主制御部２１のフィルタリング処理の手順を示すフローチャートである。図６に示すように、画像処理装置２の主制御部２１は、少なくとも一の二次元コードを含む画像を、カメラ３で撮像することにより取得する(ステップＳ６０１)。画像を取得する方法は、カメラ３による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置２３に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース２７を介して読み出すことで取得しても良い。
【００３８】
主制御部２１は、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いたフィルタリング処理を実行してフィルタリング画像を生成する(ステップＳ６０２)。主制御部２１は、生成したフィルタリング画像に基づいて、二次元コードに固有のファインダーパターンの位置と姿勢とを検出することで二次元コードを検出し(ステップＳ６０３)、検出した二次元コードをデコードする(ステップＳ６０４)。主制御部２１は、デコードにより読み取ることができた情報を、ＰＬＣ６へ送信し（ステップＳ６０７）、受信したＰＬＣ６は所定の後処理を実行する。
【００３９】
一方、主制御部２１は、取得した画像に対して、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いたフィルタリング処理を実行してフィルタリング画像を生成する(ステップＳ６０５)。用いるフィルタは、カーネルサイズの異なるモルフォロジーフィルタ、例えばカーネルサイズが３画素×３画素であるモルフォロジーフィルタ、カーネルサイズが５画素×５画素であるモルフォロジーフィルタ等であっても良いし、平均値フィルタ、カーネルフィルタ、ソーベルフィルタ等、実行する画像処理の種類に適合した他の種類のフィルタであっても良い。
【００４０】
主制御部２１は、二次元コードの読み取り処理以外の画像処理を、カーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて生成したフィルタリング画像に対して実行する(ステップＳ６０６)。主制御部２１は、実行した画像処理に関する情報をＰＬＣ６へ送信し(ステップＳ６０７)、受信したＰＬＣ６は所定の後処理を実行する。
【００４１】
以上のように本実施の形態１によれば、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成することにより、白色と黒色とのバランスが崩れていないフィルタリング画像を生成することができるので、タイミングパターンを確実に強調することができる。したがって、多少のノイズを拾った場合であっても、セルのタイミング情報を正しく読み取ることができ、高い精度で二次元コードを読み取ることが可能となる。
【００４２】
また、二次元コードの読み取り処理以外の画像処理については、取得した画像に対して、別個にカーネルサイズが２画素×２画素であるモルフォロジーフィルタ以外のフィルタを用いて生成した第二のフィルタリング画像に対して実行することができるので、カーネルサイズが２画素×２画素であるモルフォロジーフィルタを用いることによるオフセットの影響を排除した状態で二次元コードの読み取り処理以外の画像処理を実行することができる。一次元コードを含む画像から一次元コードを読み取る場合も同様である。
【００４３】
（実施の形態２）
本発明の実施の形態２に係る画像処理装置の構成は、実施の形態１と同様であることから、同一の符号を付することにより、詳細な説明は省略する。本実施の形態２は、一次元コード又は二次元コードの読み取り処理を実行する前に、複数の種類のフィルタを単独で、又は複数組み合わせて用いて生成した複数のフィルタリング画像のうち、最も読み取りスコアが高いフィルタリング画像の生成に用いたフィルタ又はフィルタの組み合わせを特定しておき、特定したフィルタ又はフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る点で実施の形態１とは相違する。
【００４４】
図７は、本発明の実施の形態２に係る画像処理装置２の一構成例を示す機能ブロック図である。図７において、本実施の形態２に係る画像処理装置２は、カメラ３と、コンソール４と、ＰＬＣ６とから構成される。なお、実施の形態２では、二次元コードを含む画像から二次元コードをデコードする場合について説明する。
【００４５】
画像取得手段（取得手段）２０１は、少なくとも一の二次元コードを含む画像を、カメラ３で撮像することにより取得する。画像を取得する方法は、カメラ３による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置２３に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース２７を介して読み出すことで取得しても良い。取得した画像はコンソール４に表示しても良いし、しなくても良い。
【００４６】
フィルタリング画像生成手段２０６は、取得した画像に対して、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタを用いたフィルタリング処理を実行し、複数のフィルタリング画像を生成する。複数のフィルタの種類は、事前にユーザによる指定を受け付けておいても良いし、製品出荷時に指定を受け付けても良い。また、フィルタリング画像は、それぞれのフィルタを単独で用いて生成したフィルタリング画像だけではなく、複数のフィルタの中から所定数のフィルタの組み合わせを選択して用いて生成したフィルタリング画像も含む。
【００４７】
例えば５個のフィルタの指定を受け付けていた場合、そこから２個のフィルタの組み合わせを選択してフィルタリング画像を生成するときには、 5Ｃ2 ＝１０個のフィルタリング画像が、また順序も特定しているときには、5Ｐ2 ＝２０個のフィルタリング画像が、それぞれ生成される。
【００４８】
スコア算出手段２０７は、生成した複数のフィルタリング画像ごとに、二次元コードの読み取りやすさを表す指標である読み取りスコアを算出する。読み取りスコアは、二次元コードの読み取りやすさを表す指標であれば特に限定されるものではない。
【００４９】
例えば二次元コードでは、全領域を正しく読み取ることができなかった場合に誤りを訂正するための情報として誤り訂正情報を有している。そして、二次元コードを読み取った場合、該二次元コードが有する誤り訂正情報のうちどの程度の誤り訂正情報を用いて誤りが訂正されたのか、誤り訂正情報の活用率を検出することができるようになっている。
【００５０】
すなわち、誤り訂正情報を用いることなく二次元コードを読み取ることができた場合には、誤り訂正情報の活用率は‘０％’、誤り訂正情報のうち３０％の誤り訂正情報を用いて二次元コードを読み取ることができた場合には、誤り訂正情報の活用率は‘３０％’と検出される。したがって、読み取りスコアとして、前者は１００％、後者は７０％として読み取りスコアを算出することができる。もちろん段階的に２０％ずつスコア帯を定めておく等、様々な算出方法を用いることができる。
【００５１】
フィルタ特定手段２０８は、複数のフィルタリング画像ごとに算出した読み取りスコアを比較して、最も読み取りスコアの高いフィルタリング画像の生成に用いたフィルタ又はフィルタの組み合わせを特定する。特定したフィルタ又はフィルタの組み合わせに関する情報は記憶装置２３に記憶され、以後、二次元コード読み取り手段２０３は、フィルタ特定手段２０８にて特定されたフィルタ又はフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて、二次元コードに固有のファインダーパターンの位置と姿勢とを検出することで二次元コードを検出し、検出した二次元コードをデコードする。デコードにより読み取ることができた情報は、ＰＬＣ６へ送信され、所定の後処理が実行される。
【００５２】
このように最適なフィルタ又はフィルタの組み合わせを特定することにより、例えばユーザが事前に指定してある、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタのうち読み取りスコアの最も高いフィルタ、又はフィルタの組み合わせを用いてフィルタリング処理を実行することができ、高い精度で二次元コードを読み取ることが可能となる。
【００５３】
図８は、本発明の実施の形態２に係る画像処理装置２の主制御部２１のフィルタ特定処理の手順を示すフローチャートである。図８に示すように、画像処理装置２の主制御部２１は、少なくとも一の二次元コードを含む画像を、カメラ３で撮像することにより取得する(ステップＳ８０１)。画像を取得する方法は、カメラ３による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置２３に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース２７を介して読み出すことで取得しても良い。
【００５４】
主制御部２１は、取得した画像に対して、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタから、一のフィルタ又は一のフィルタの組み合わせを選択する(ステップＳ８０２)。選択対象となる複数のフィルタの種類は、事前にユーザによる指定を受け付け、記憶装置２３に記憶しておく。
【００５５】
主制御部２１は、選択した一のフィルタ又は一のフィルタの組み合わせを用いてフィルタリング処理を実行して複数のフィルタリング画像を生成し(ステップＳ８０３)、生成したフィルタリング画像に基づいて二次元コードを読み取る(ステップＳ８０４)。主制御部２１は、フィルタリング画像ごとに二次元コードの読み取りやすさを表す指標である読み取りスコアを算出する（ステップＳ８０５）。読み取りスコアは、二次元コードの読み取りやすさを表す指標であれば特に限定されるものではない。
【００５６】
主制御部２１は、算出した読み取りスコアを、選択した一のフィルタ又は一のフィルタの組み合わせに対応付けて、記憶装置２３に記憶する（ステップＳ８０６）。主制御部２１は、すべてのフィルタ又はフィルタの組み合わせを選択したか否かを判断する（ステップＳ８０７）。
【００５７】
主制御部２１が、まだ選択していないフィルタ又はフィルタの組み合わせが存在すると判断した場合（ステップＳ８０７：ＮＯ）、主制御部２１は、次のフィルタ又はフィルタの組み合わせを選択し（ステップＳ８０８）、処理をステップＳ８０３へ戻して上述した処理を繰り返す。主制御部２１が、すべてのフィルタ又はフィルタの組み合わせを選択したと判断した場合（ステップＳ８０７：ＹＥＳ）、主制御部２１は、記憶装置２３に記憶してある読み取りスコアに基づいて、最も読み取りスコアが高いフィルタ又はフィルタの組み合わせを特定し（ステップＳ８０９）、記憶装置２３に記憶する。
【００５８】
以上のように本実施の形態２によれば、例えばユーザが事前に指定してある、少なくともカーネルサイズが２画素×２画素であるモルフォロジーフィルタを含む複数のフィルタのうち読み取りスコアの最も高いフィルタ又はフィルタの組み合わせを用いてフィルタリング処理を実行することができ、高い精度で二次元コードを読み取ることが可能となる。一次元コードを含む画像から一次元コードを読み取る場合も同様である。
【００５９】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば画像処理装置２に、データ通信することが可能に外部コンピュータを接続し、フィルタリング画像の生成処理等を外部コンピュータにて実行しても良い。
【符号の説明】
【００６０】
２  画像処理装置
３  カメラ
４  コンソール
５  二次元コード
６  ＰＬＣ
２１  主制御部
２２  メモリ
２３  記憶装置
２４  ビデオインタフェース
２５  入出力インタフェース
２６  可搬型ディスクドライブ
２７  通信インタフェース
２８  内部バス
９０  可搬型記録媒体
１００  コンピュータプログラム
【図３】
2012015957.tif 000003
【図４】
2012015957.tif 000004
【図６】
2012015957.tif 000005
【図７】
2012015957.tif 000006
【図８】
2012015957.tif 000007
【図１】
2012015957.tif 000008
【図２】
2012015957.tif 000009
【図５】
2012015957.tif 000010