説明

画像処理装置、画像処理方法、及びコンピュータプログラム

【課題】フィルタリング処理を実行した場合であっても、一次元コード又は二次元コードの内容を正しく読み取ることができる画像処理装置、画像処理方法、及びコンピュータプログラムを提供する。
【解決手段】少なくとも一の一次元コード又は二次元コードを含む画像を取得し、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成する。生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る。また、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成し、生成した第二のフィルタリング画像に対して他の画像処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バーコードのような一次元コード又はQRコードのような二次元コードを含む画像に対するフィルタリング処理を実行する画像処理装置、画像処理方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、バーコードのような一次元コード又はQRコードのような二次元コードを読み取る各種の画像処理装置は、一次元コード又は二次元コードの読み取り精度を高めるため、一次元コード又は二次元コードを示すシンボルを含む画像に対して、ユーザが指定した所定の画像フィルタを用いることが多い。図1は、撮像された入力画像の例示図であり、理解しやすいようにDM(Data Matrix)コードを拡大した状態を示している。なお、図1では2PPC(Pixel per Cell)の二次元コードを想定している。
【0003】
図1に示すように、DMコードは隣接する二辺にL字型のシンボルを有しており、二辺のそれぞれが対向する辺では、シンボルとして白色、黒色が交互に表示されるという固有の特徴を有している。これらの、二次元コードに固有の特徴をより際立たせるようフィルタリング処理を実行することにより、二次元コードをより確実に検出することができ、またデコード処理の精度を高めることもできる。
【0004】
例えば特許文献1の画像処理装置では、各種の画像のノイズを除去するモルフォロジー演算処理(モルフォロジーフィルタ)が開示されている。特許文献1では、カーネルサイズが3画素×3画素であるモルフォロジーフィルタ、又はカーネルサイズが5画素×5画素であるモルフォロジーフィルタが用いられている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−311971号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
図2は、図1に示す入力画像に対して、カーネルサイズが3画素×3画素であるモルフォロジーフィルタを用いたフィルタリング画像の例示図である。図2に示すように、カーネルサイズが3画素×3画素であるモルフォロジーフィルタを用いてフィルタリング処理を実行した場合、フィルタリング処理により生成された収縮画像(以下、フィルタリング画像)として図1に示す元の入力画像で白色となっている部分の一部が灰色となり、結果として白色部分が少なくなっていることが分かる。特に白色部分が狭くなっているため、白色、黒色が交互に表示されるタイミングパターンを強調することができず、多少のノイズを拾っただけでもセルのタイミング情報を正しく読み取ることができないおそれがあるという問題点があった。これは、カーネルサイズが3画素×3画素よりも大きいモルフォロジーフィルタを用いてフィルタリング処理を実行した場合であっても同様である。
【0007】
本発明は上記事情に鑑みてなされたものであり、フィルタリング処理を実行した場合であっても、一次元コード又は二次元コードの内容を正しく読み取ることができる画像処理装置、画像処理方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために第1発明に係る画像処理装置は、画像中の一次元コード又は二次元コードを読み取る画像処理装置において、少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段と、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成する第一のフィルタリング手段とを備え、生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取るようにしてあることを特徴とする。
【0009】
また、第2発明に係る画像処理装置は、第1発明において、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成する第二のフィルタリング手段を備え、生成した第二のフィルタリング画像に対して他の画像処理を実行するようにしてあることを特徴とする。
【0010】
また、第3発明に係る画像処理装置は、第1又は第2発明において、前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するフィルタリング画像生成手段と、生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するスコア算出手段と、算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するフィルタ特定手段とを備え、特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取るようにしてあることを特徴とする。
【0011】
次に、上記目的を達成するために第4発明に係る画像処理方法は、画像中の一次元コード又は二次元コードを読み取る画像処理装置で実行することが可能な画像処理方法において、少なくとも一の一次元コード又は二次元コードを含む画像を取得するステップと、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成するステップとを含み、生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取ることを特徴とする。
【0012】
また、第5発明に係る画像処理方法は、第4発明において、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成するステップを含み、生成した第二のフィルタリング画像に対して他の画像処理を実行することを特徴とする。
【0013】
また、第6発明に係る画像処理方法は、第4又は第5発明において、前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するステップと、生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するステップと、算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するステップとを含み、特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取ることを特徴とする。
【0014】
次に、上記目的を達成するために第7発明に係るコンピュータプログラムは、画像中の一次元コード又は二次元コードを読み取る画像処理装置で実行することが可能なコンピュータプログラムにおいて、前記画像処理装置を、少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成する第一のフィルタリング手段、及び生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る手段として機能させることを特徴とする。
【0015】
また、第8発明に係るコンピュータプログラムは、第7発明において、前記画像処理装置を、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成する第二のフィルタリング手段、及び生成した第二のフィルタリング画像に対して他の画像処理を実行する手段として機能させることを特徴とする。
【0016】
また、第9発明に係るコンピュータプログラムは、第7又は第8発明において、前記画像処理装置を、前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するフィルタリング画像生成手段、生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するスコア算出手段、算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するフィルタ特定手段、及び特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る手段として機能させることを特徴とする。
【0017】
第1発明、第4発明及び第7発明では、少なくとも一の一次元コード又は二次元コードを含む画像を取得し、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成し、生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る。カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成することにより、各種一般的な位置検出の画像処理に用いるフィルタリング画像としてはオフセットが生じるために適切ではないものの、オフセットが均等に生じることから一次元コード又は二次元コードの位置決めをするためのフィルタリング画像としては有用であり、白色と黒色とのバランスを保持して調整することができ、タイミングパターンを適切に強調することができる。したがって、多少のノイズを拾った場合であっても、セルのタイミング情報を正しく読み取ることができ、高い精度で一次元コード又は二次元コードを読み取ることが可能となる。
【0018】
第2発明、第5発明及び第8発明では、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成し、生成した第二のフィルタリング画像に対して他の画像処理を実行する。一次元コード又は二次元コードの読み取り処理以外の画像処理については、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて別個に生成した第二のフィルタリング画像に対して実行する。これにより、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いることによるオフセットの影響を排除した状態で一次元コード又は二次元コードの読み取り処理以外の画像処理を実行することができる。
【0019】
第3発明、第6発明及び第9発明では、一次元コード又は二次元コードを読み取る場合、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成し、生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出する。算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定し、特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る。これにより、例えばユーザが事前に指定してある、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタのうち、読み取りスコアの最も高いフィルタ、又は複数のフィルタの組み合わせを用いてフィルタリング処理を実行することができ、高い精度で一次元コード又は二次元コードを読み取ることが可能となる。
【発明の効果】
【0020】
本発明によれば、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成することにより、各種一般的な位置検出の画像処理に用いるフィルタリング画像としてはオフセットが生じるために適切ではないものの、オフセットが均等に生じることから一次元コード又は二次元コードの位置決めをするためのフィルタリング画像としては有用であり、白色と黒色とのバランスを保持して調整することができ、タイミングパターンを適切に強調することができる。したがって、多少のノイズを拾った場合であっても、セルのタイミング情報を正しく読み取ることができ、高い精度で一次元コード又は二次元コードを読み取ることが可能となる。
【図面の簡単な説明】
【0021】
【図1】撮像された入力画像の例示図である。
【図2】カーネルサイズが3画素×3画素であるモルフォロジーフィルタを用いたフィルタリング画像の例示図である。
【図3】本発明の実施の形態1に係る画像処理装置の構成を模式的に示すブロック図である。
【図4】本発明の実施の形態1に係る画像処理装置の一構成例を示す機能ブロック図である。
【図5】本発明の実施の形態1に係る画像処理装置の、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて生成したフィルタリング画像の例示図である。
【図6】本発明の実施の形態1に係る画像処理装置の主制御部のフィルタリング処理の手順を示すフローチャートである。
【図7】本発明の実施の形態2に係る画像処理装置の一構成例を示す機能ブロック図である。
【図8】本発明の実施の形態2に係る画像処理装置の主制御部のフィルタ特定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0022】
以下、本発明の実施の形態に係る画像処理装置について、図面を参照しながら説明する。なお、参照する図面を通じて、同一又は同様の構成又は機能を有する要素については、同一又は同様の符号を付して、詳細な説明を省略する。
【0023】
(実施の形態1)
図3は、本発明の実施の形態1に係る画像処理装置の構成を模式的に示すブロック図である。図3に示すように本実施の形態1に係る画像処理装置2は、カメラ3、コンソール4、PLC6とデータ通信することが可能に接続されている。
【0024】
実施の形態1に係る画像処理装置2は、少なくともCPU(中央演算装置)、LSI等で構成された主制御部21、メモリ22、記憶装置23、ビデオインタフェース24、入出力インタフェース25、可搬型ディスクドライブ26、通信インタフェース27及び上述したハードウェアを接続する内部バス28で構成されている。主制御部21は、内部バス28を介して画像処理装置2の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置23に記憶されているコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ22は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
【0025】
記憶装置23は、内蔵される固定型記憶装置(ハードディスク、フラッシュメモリ)、ROM等で構成されている。記憶装置23に記憶されているコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM、フラッシュメモリ等の可搬型記録媒体90から、可搬型ディスクドライブ26によりダウンロードされ、実行時には記憶装置23からメモリ22へ展開して実行される。もちろん、通信インタフェース27を介して外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【0026】
記憶装置23には、カメラ3にて撮像した画像の画像データも記憶する。記憶してある画像データに基づいて、各種のフィルタリング処理を実行する。
【0027】
通信インタフェース27は内部バス28に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置23は、画像処理装置2に内蔵される構成に限定されるものではなく、通信インタフェース27を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記録媒体であっても良い。
【0028】
ビデオインタフェース24は、内部バス28に接続されており、コンソール4の表示装置401に接続されることにより、所望の画像を表示する。入出力インタフェース25は、内部バス28に接続されており、コンソール4のキーボード402を介してデータの入力を受け付ける。なお、コンソール4は、表示装置401とキーボード402とが一体になっていることに限定されるものではなく、別個に構成されても良いし、液晶パネル等と一体となったタッチパネル等の入力情報を取得する装置全般を含む広い概念である。
【0029】
カメラ3は、CCD撮像素子を備えたCCDカメラ等であり、少なくとも一の二次元コード5を含む画像を撮像して取得する。画像処理装置2は、二次元コードの読み取り処理だけでなく、さまざまな画像処理を実行する。PLC6は、画像処理装置2を含む各種の装置からデータを受信し、受信した内容に応じて画像処理装置2及び/又は各種の装置へ指示を送信する装置である。
【0030】
図4は、本発明の実施の形態1に係る画像処理装置2の一構成例を示す機能ブロック図である。図4において、本実施の形態1に係る画像処理装置2は、カメラ3と、コンソール4と、PLC6とから構成される。なお、実施の形態1では、二次元コードを含む画像から二次元コードをデコードする場合について説明する。
【0031】
画像取得手段(取得手段)201は、少なくとも一の二次元コードを含む画像を、カメラ3で撮像することにより取得する。画像を取得する方法は、カメラ3による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置23に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース27を介して読み出すことで取得しても良い。取得した画像はコンソール4に表示しても良いし、しなくても良い。
【0032】
第一のフィルタリング手段202は、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いたフィルタリング処理を実行してフィルタリング画像(第一のフィルタリング画像)を生成する。図5は、本発明の実施の形態1に係る画像処理装置2の、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて生成したフィルタリング画像の例示図である。図5は、図1に示す入力画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて生成したフィルタリング画像を示している。
【0033】
図2と比較して、図5の方が図1に示す元の入力画像で白色となっている部分は白色のまま残り、結果として白色部分が図2ほど少なくなることがない。したがって、白色、黒色が交互に表示されるタイミングパターンをより強調することができ、ノイズを拾った場合であってもセルのタイミング情報を正しく読み取ることができる。
【0034】
図4に戻って、二次元コード読み取り手段203は、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて生成したフィルタリング画像(第一のフィルタリング画像)に基づいて、二次元コードに固有のファインダーパターンの位置と姿勢とを検出することで二次元コードを検出し、検出した二次元コードをデコードする。デコードにより読み取ることができた情報は、PLC6へ送信され、所定の後処理が実行される。
【0035】
第二のフィルタリング手段204は、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いたフィルタリング処理を実行してフィルタリング画像(第二のフィルタリング画像)を生成する。第二のフィルタリング手段204で用いるフィルタは、カーネルサイズの異なるモルフォロジーフィルタ、例えばカーネルサイズが3画素×3画素であるモルフォロジーフィルタ、カーネルサイズが5画素×5画素であるモルフォロジーフィルタ等であっても良いし、平均値フィルタ、カーネルフィルタ、ソーベルフィルタ等、実行する画像処理の種類に適合した他の種類のフィルタであっても良い。
【0036】
画像処理手段205は、二次元コードの読み取り処理以外の画像処理を、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて生成したフィルタリング画像(第二のフィルタリング画像)に対して実行する。実行した画像処理に関する情報は、PLC6へ送信され、所定の後処理が実行される。
【0037】
図6は、本発明の実施の形態1に係る画像処理装置2の主制御部21のフィルタリング処理の手順を示すフローチャートである。図6に示すように、画像処理装置2の主制御部21は、少なくとも一の二次元コードを含む画像を、カメラ3で撮像することにより取得する(ステップS601)。画像を取得する方法は、カメラ3による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置23に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース27を介して読み出すことで取得しても良い。
【0038】
主制御部21は、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いたフィルタリング処理を実行してフィルタリング画像を生成する(ステップS602)。主制御部21は、生成したフィルタリング画像に基づいて、二次元コードに固有のファインダーパターンの位置と姿勢とを検出することで二次元コードを検出し(ステップS603)、検出した二次元コードをデコードする(ステップS604)。主制御部21は、デコードにより読み取ることができた情報を、PLC6へ送信し(ステップS607)、受信したPLC6は所定の後処理を実行する。
【0039】
一方、主制御部21は、取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いたフィルタリング処理を実行してフィルタリング画像を生成する(ステップS605)。用いるフィルタは、カーネルサイズの異なるモルフォロジーフィルタ、例えばカーネルサイズが3画素×3画素であるモルフォロジーフィルタ、カーネルサイズが5画素×5画素であるモルフォロジーフィルタ等であっても良いし、平均値フィルタ、カーネルフィルタ、ソーベルフィルタ等、実行する画像処理の種類に適合した他の種類のフィルタであっても良い。
【0040】
主制御部21は、二次元コードの読み取り処理以外の画像処理を、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて生成したフィルタリング画像に対して実行する(ステップS606)。主制御部21は、実行した画像処理に関する情報をPLC6へ送信し(ステップS607)、受信したPLC6は所定の後処理を実行する。
【0041】
以上のように本実施の形態1によれば、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成することにより、白色と黒色とのバランスが崩れていないフィルタリング画像を生成することができるので、タイミングパターンを確実に強調することができる。したがって、多少のノイズを拾った場合であっても、セルのタイミング情報を正しく読み取ることができ、高い精度で二次元コードを読み取ることが可能となる。
【0042】
また、二次元コードの読み取り処理以外の画像処理については、取得した画像に対して、別個にカーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて生成した第二のフィルタリング画像に対して実行することができるので、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いることによるオフセットの影響を排除した状態で二次元コードの読み取り処理以外の画像処理を実行することができる。一次元コードを含む画像から一次元コードを読み取る場合も同様である。
【0043】
(実施の形態2)
本発明の実施の形態2に係る画像処理装置の構成は、実施の形態1と同様であることから、同一の符号を付することにより、詳細な説明は省略する。本実施の形態2は、一次元コード又は二次元コードの読み取り処理を実行する前に、複数の種類のフィルタを単独で、又は複数組み合わせて用いて生成した複数のフィルタリング画像のうち、最も読み取りスコアが高いフィルタリング画像の生成に用いたフィルタ又はフィルタの組み合わせを特定しておき、特定したフィルタ又はフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る点で実施の形態1とは相違する。
【0044】
図7は、本発明の実施の形態2に係る画像処理装置2の一構成例を示す機能ブロック図である。図7において、本実施の形態2に係る画像処理装置2は、カメラ3と、コンソール4と、PLC6とから構成される。なお、実施の形態2では、二次元コードを含む画像から二次元コードをデコードする場合について説明する。
【0045】
画像取得手段(取得手段)201は、少なくとも一の二次元コードを含む画像を、カメラ3で撮像することにより取得する。画像を取得する方法は、カメラ3による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置23に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース27を介して読み出すことで取得しても良い。取得した画像はコンソール4に表示しても良いし、しなくても良い。
【0046】
フィルタリング画像生成手段206は、取得した画像に対して、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタを用いたフィルタリング処理を実行し、複数のフィルタリング画像を生成する。複数のフィルタの種類は、事前にユーザによる指定を受け付けておいても良いし、製品出荷時に指定を受け付けても良い。また、フィルタリング画像は、それぞれのフィルタを単独で用いて生成したフィルタリング画像だけではなく、複数のフィルタの中から所定数のフィルタの組み合わせを選択して用いて生成したフィルタリング画像も含む。
【0047】
例えば5個のフィルタの指定を受け付けていた場合、そこから2個のフィルタの組み合わせを選択してフィルタリング画像を生成するときには、 52 =10個のフィルタリング画像が、また順序も特定しているときには、52 =20個のフィルタリング画像が、それぞれ生成される。
【0048】
スコア算出手段207は、生成した複数のフィルタリング画像ごとに、二次元コードの読み取りやすさを表す指標である読み取りスコアを算出する。読み取りスコアは、二次元コードの読み取りやすさを表す指標であれば特に限定されるものではない。
【0049】
例えば二次元コードでは、全領域を正しく読み取ることができなかった場合に誤りを訂正するための情報として誤り訂正情報を有している。そして、二次元コードを読み取った場合、該二次元コードが有する誤り訂正情報のうちどの程度の誤り訂正情報を用いて誤りが訂正されたのか、誤り訂正情報の活用率を検出することができるようになっている。
【0050】
すなわち、誤り訂正情報を用いることなく二次元コードを読み取ることができた場合には、誤り訂正情報の活用率は‘0%’、誤り訂正情報のうち30%の誤り訂正情報を用いて二次元コードを読み取ることができた場合には、誤り訂正情報の活用率は‘30%’と検出される。したがって、読み取りスコアとして、前者は100%、後者は70%として読み取りスコアを算出することができる。もちろん段階的に20%ずつスコア帯を定めておく等、様々な算出方法を用いることができる。
【0051】
フィルタ特定手段208は、複数のフィルタリング画像ごとに算出した読み取りスコアを比較して、最も読み取りスコアの高いフィルタリング画像の生成に用いたフィルタ又はフィルタの組み合わせを特定する。特定したフィルタ又はフィルタの組み合わせに関する情報は記憶装置23に記憶され、以後、二次元コード読み取り手段203は、フィルタ特定手段208にて特定されたフィルタ又はフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて、二次元コードに固有のファインダーパターンの位置と姿勢とを検出することで二次元コードを検出し、検出した二次元コードをデコードする。デコードにより読み取ることができた情報は、PLC6へ送信され、所定の後処理が実行される。
【0052】
このように最適なフィルタ又はフィルタの組み合わせを特定することにより、例えばユーザが事前に指定してある、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタのうち読み取りスコアの最も高いフィルタ、又はフィルタの組み合わせを用いてフィルタリング処理を実行することができ、高い精度で二次元コードを読み取ることが可能となる。
【0053】
図8は、本発明の実施の形態2に係る画像処理装置2の主制御部21のフィルタ特定処理の手順を示すフローチャートである。図8に示すように、画像処理装置2の主制御部21は、少なくとも一の二次元コードを含む画像を、カメラ3で撮像することにより取得する(ステップS801)。画像を取得する方法は、カメラ3による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置23に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース27を介して読み出すことで取得しても良い。
【0054】
主制御部21は、取得した画像に対して、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタから、一のフィルタ又は一のフィルタの組み合わせを選択する(ステップS802)。選択対象となる複数のフィルタの種類は、事前にユーザによる指定を受け付け、記憶装置23に記憶しておく。
【0055】
主制御部21は、選択した一のフィルタ又は一のフィルタの組み合わせを用いてフィルタリング処理を実行して複数のフィルタリング画像を生成し(ステップS803)、生成したフィルタリング画像に基づいて二次元コードを読み取る(ステップS804)。主制御部21は、フィルタリング画像ごとに二次元コードの読み取りやすさを表す指標である読み取りスコアを算出する(ステップS805)。読み取りスコアは、二次元コードの読み取りやすさを表す指標であれば特に限定されるものではない。
【0056】
主制御部21は、算出した読み取りスコアを、選択した一のフィルタ又は一のフィルタの組み合わせに対応付けて、記憶装置23に記憶する(ステップS806)。主制御部21は、すべてのフィルタ又はフィルタの組み合わせを選択したか否かを判断する(ステップS807)。
【0057】
主制御部21が、まだ選択していないフィルタ又はフィルタの組み合わせが存在すると判断した場合(ステップS807:NO)、主制御部21は、次のフィルタ又はフィルタの組み合わせを選択し(ステップS808)、処理をステップS803へ戻して上述した処理を繰り返す。主制御部21が、すべてのフィルタ又はフィルタの組み合わせを選択したと判断した場合(ステップS807:YES)、主制御部21は、記憶装置23に記憶してある読み取りスコアに基づいて、最も読み取りスコアが高いフィルタ又はフィルタの組み合わせを特定し(ステップS809)、記憶装置23に記憶する。
【0058】
以上のように本実施の形態2によれば、例えばユーザが事前に指定してある、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタのうち読み取りスコアの最も高いフィルタ又はフィルタの組み合わせを用いてフィルタリング処理を実行することができ、高い精度で二次元コードを読み取ることが可能となる。一次元コードを含む画像から一次元コードを読み取る場合も同様である。
【0059】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば画像処理装置2に、データ通信することが可能に外部コンピュータを接続し、フィルタリング画像の生成処理等を外部コンピュータにて実行しても良い。
【符号の説明】
【0060】
2 画像処理装置
3 カメラ
4 コンソール
5 二次元コード
6 PLC
21 主制御部
22 メモリ
23 記憶装置
24 ビデオインタフェース
25 入出力インタフェース
26 可搬型ディスクドライブ
27 通信インタフェース
28 内部バス
90 可搬型記録媒体
100 コンピュータプログラム

【特許請求の範囲】
【請求項1】
画像中の一次元コード又は二次元コードを読み取る画像処理装置において、
少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段と、
取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成する第一のフィルタリング手段と
を備え、
生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取るようにしてあることを特徴とする画像処理装置。
【請求項2】
取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成する第二のフィルタリング手段を備え、
生成した第二のフィルタリング画像に対して他の画像処理を実行するようにしてあることを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するフィルタリング画像生成手段と、
生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するスコア算出手段と、
算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するフィルタ特定手段と
を備え、
特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取るようにしてあることを特徴とする請求項1又は2記載の画像処理装置。
【請求項4】
画像中の一次元コード又は二次元コードを読み取る画像処理装置で実行することが可能な画像処理方法において、
少なくとも一の一次元コード又は二次元コードを含む画像を取得するステップと、
取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成するステップと
を含み、
生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取ることを特徴とする画像処理方法。
【請求項5】
取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成するステップを含み、
生成した第二のフィルタリング画像に対して他の画像処理を実行することを特徴とする請求項4記載の画像処理方法。
【請求項6】
前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するステップと、
生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するステップと、
算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するステップと
を含み、
特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取ることを特徴とする請求項4又は5記載の画像処理方法。
【請求項7】
画像中の一次元コード又は二次元コードを読み取る画像処理装置で実行することが可能なコンピュータプログラムにおいて、
前記画像処理装置を、
少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段、
取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタを用いて第一のフィルタリング画像を生成する第一のフィルタリング手段、及び
生成した第一のフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る手段
として機能させることを特徴とするコンピュータプログラム。
【請求項8】
前記画像処理装置を、
取得した画像に対して、カーネルサイズが2画素×2画素であるモルフォロジーフィルタ以外のフィルタを用いて第二のフィルタリング画像を生成する第二のフィルタリング手段、及び
生成した第二のフィルタリング画像に対して他の画像処理を実行する手段
として機能させることを特徴とする請求項7記載のコンピュータプログラム。
【請求項9】
前記画像処理装置を、
前記一次元コード又は前記二次元コードを読み取る場合、少なくともカーネルサイズが2画素×2画素であるモルフォロジーフィルタを含む複数のフィルタを単独で、又は複数組み合わせて、第一のフィルタリング画像を含む複数のフィルタリング画像を生成するフィルタリング画像生成手段、
生成した複数のフィルタリング画像ごとに、一次元コード又は二次元コードの読み取りやすさを表す指標である読み取りスコアを算出するスコア算出手段、
算出した読み取りスコアの最も高いフィルタリング画像の生成に用いたフィルタ、又は複数のフィルタの組み合わせを特定するフィルタ特定手段、及び
特定したフィルタ、又は複数のフィルタの組み合わせを用いて生成したフィルタリング画像に基づいて一次元コード又は二次元コードを読み取る手段
として機能させることを特徴とする請求項7又は8記載のコンピュータプログラム。

【図3】
image rotate

【図4】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図1】
image rotate

【図2】
image rotate

【図5】
image rotate


【公開番号】特開2012−15957(P2012−15957A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−153090(P2010−153090)
【出願日】平成22年7月5日(2010.7.5)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】