JP2017027368A - 情報コード読取装置 - Google Patents
情報コード読取装置 Download PDFInfo
- Publication number
- JP2017027368A JP2017027368A JP2015145254A JP2015145254A JP2017027368A JP 2017027368 A JP2017027368 A JP 2017027368A JP 2015145254 A JP2015145254 A JP 2015145254A JP 2015145254 A JP2015145254 A JP 2015145254A JP 2017027368 A JP2017027368 A JP 2017027368A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- partial
- partial image
- information code
- imaging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Studio Devices (AREA)
Abstract
【課題】情報コードの表示態様を変えずに、情報コードを読み取ることができない事態を回避する技術を提供する。【解決手段】情報コード読取装置10は、情報コードに対して異なる角度で配置される複数個の撮像部14と、制御部12とを備えている。制御部12は、複数個の撮像部14のうちの1個の撮像部を用いて撮像された情報コードの第1部分領域の画像を表す第1部分画像データと、複数個の撮像部14のうちの他の撮像部を用いて撮像された情報コードの第2部分領域の画像を表す第2部分画像データと、を含む合成画像データであって、情報コードを表す合成画像データを生成し、合成画像データに基づいてデコードする。【選択図】図2
Description
本明細書で開示する技術は、情報コードを読み取る情報コード読取装置に関する。
特許文献1には、情報コードを表示する表示方法が開示されている。この表示方法では、同一の情報コードの画像を時間間隔を置いて複数回表示器の画面に表示する。表示器には、各回で互いに90度回転した状態の画像が表示される。この表示方法では、表示器の画面に傷や汚れが付着していたり、画面の鏡面反射によって、例えば1回目の表示で、読取装置が画面に表示された情報コードの一部を読み取ることができない場合であっても、2回目以降の表示で、読み取れなかった情報コードの一部を読み取ることができる。
特許文献1の技術では、表示器が情報コードを回転させて表示することができる。このため、光の反射等によって情報コードを読み取ることができない場合に、情報コードを読み取るために情報コードに対して読取装置を移動させずに済む。しかしながら、情報コードは、表示器以外に例えば包装紙やポスター等に印刷され、情報コードを回転して表示させることができない物体に表れている場合が一般的であり、その場合には対応できないといった課題がある。
本明細書は、情報コードの表示態様を変えずに、情報コードを読み取ることができない事態を回避する技術を提供する。
本明細書で開示する情報コード読取装置は、情報コードに対して異なる角度で配置される複数個の撮像部と、制御部とを備えている。制御部は、複数個の撮像部のうちの1個の撮像部を用いて撮像された情報コードの第1部分領域の画像を表す第1部分画像データと、複数個の撮像部のうちの他の撮像部を用いて撮像された情報コードの第2部分領域の画像を表す第2部分画像データと、を含む合成画像データであって、情報コードを表す合成画像データを生成し、合成画像データに基づいてデコードする。
上記の情報コード読取装置では、複数の撮像部が、情報コードに対して異なる角度で配置される。そして、情報コード読取装置は、複数の撮像部のうち、2個以上の撮像部で撮像された部分的な情報コードの画像を表す部分画像データを用いて、合成画像データが生成される。この構成によれば、1個の撮像部では情報コードの第2部分領域が光の反射等で読み取れない一方、他の撮像部では情報コードの第2部分領域が読み取れている状況において、情報コード読取装置は、第2部分領域の画像を表す第2部分画像データを含む合成画像データに基づいて、デコードすることができる。これにより、情報コードの表示態様を変えずに、情報コードを読み取ることができない事態を回避することができる。
以下に説明する実施例の主要な特徴を列記しておく。なお、以下に示す技術要素は、それぞれ独立した技術要素であって、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。
(特徴1)制御部は、複数個の撮像部のそれぞれから、当該撮像部を用いて撮像された第1部分領域の画像を表す第1候補部分画像データを取得し、取得された複数の第1候補部分画像データを用いて、複数の第1候補部分画像データによって表される複数の画像の質を示す指標を比較する比較処理を実行することによって、複数の第1候補部分画像データから、1個の第1部分画像データを選択し、第2部分画像データと、選択された第1部分画像データと、を含む合成画像データを生成してもよい。
この構成によると、複数個の撮像部を用いて、情報コードの1個の部分領域を撮像し、それにより得られる複数の候補部分画像から、デコードに最適な部分画像データを選択することができる。
(特徴2)情報コードは、第1部分領域と第2部分領域とを含む複数の部分領域を含み、制御部は、複数個の撮像部のそれぞれから、複数の部分領域のそれぞれについて、当該部分領域の画像を表す候補部分画像データを取得し、複数の部分領域のそれぞれについて、当該部分領域の画像を表す複数の候補部分画像データを用いた比較処理を実行することによって、複数の候補部分画像データから1個の部分画像データを選択し、選択された複数の部分画像データであって、それぞれが複数の部分領域のそれぞれを表す複数の部分画像データを含む合成画像データを生成してもよい。
この構成によると、情報コードの複数の部分領域のそれぞれについて、複数個の撮像部から取得される複数の部分画像データの中から、1個の部分画像データを選択することができる。このため、複数の部分領域のそれぞれについて、デコードに最適な部分画像データを用いて、合成画像データを生成することができる。
(特徴3)制御部は、複数の部分領域のそれぞれについて、当該部分領域の画像を表す複数の候補部分画像データを用いた比較処理の結果、複数の部分領域のいずれの部分領域においても、複数の撮像部のうちの第1撮像部から取得された部分画像データが選択される場合、第1撮像部を用いて得られた複数の部分画像データを用いて合成画像データを生成し、複数の部分領域のうち、第1部分領域の画像を表す部分画像データとして、複数の撮像部のうちの第1撮像部を用いて得られる第1部分画像データが選択され、第2領域の画像を表す部分画像データとして、複数の撮像部のうちの第2撮像部を用いて得られる第2部分画像データが選択される場合、第1部分画像データと第2部分画像データと、を含む合成画像データを生成してもよい。
この構成によると、比較処理の結果、複数の部分領域のいずれの領域においても、1個の撮像部から取得された部分画像データがデコードに最適な部分画像データである場合、1個の撮像部から取得された複数の部分画像データを用いて、合成画像データを生成することができる。このため、他の撮像部から取得された複数の部分画像データがデコードに適していない場合にも、デコードに最適な合成画像データを生成することができる。
(特徴4)情報コードは、2次元コードであり、制御部は、複数個の撮像部のそれぞれから、当該撮像部を用いて撮像された情報コードを示す全体画像データを取得し、取得された複数の全体画像データのそれぞれについて、当該全体画像データによって表される情報コードの4辺のうち、互いに接続される2辺の中点の位置をそれぞれ特定し、各中点から垂直に伸びる線によって分割される4個の部分領域のそれぞれの画像を表す候補部分画像データを取得してもよい。
この構成によると、全体画像データによって表される情報コードを、4個の部分領域に均一に分割することができる。この結果、一方の撮像部の部分画像データと他方の撮像部の部分画像データとを合成する際に、境界部分が合わずに合成することができない事態を回避することができる。
(特徴5)指標は、画像の白色と黒色とのコントラストを含み、制御部は、比較処理において、複数の部分画像データのうち、コントラストが最も高い部分画像データを選択してもよい。
この構成によると、コントラストが最も高い部分画像データをもとに合成画像データを生成することができる。この結果、コントラストが高い合成画像データに基づいてデコードすることができる。このため、デコードすることができない事態を抑制することができる。
(特徴6)制御部は、複数個の撮像部のそれぞれを用いて、当該撮像部を用いて撮像された情報コードを表す画像データを取得し、取得された複数の画像データのそれぞれに基づいて、デコードすることを試行し、複数の画像データのいずれを用いてもデコードすることができない場合に、合成画像データに基づいてデコードしてもよい。
この構成によると、1個の撮像部を用いて撮像された情報コードを表す画像データに基づいてデコードすることが可能である場合、合成画像データに基づいてデコードせずに、情報コードを読み取ることができる。
図面を参照して実施例の情報コード読取装置10を説明する。図1に示すように、情報コード読取装置10は、制御部12と、撮像部14と、メモリ16と、操作部18と、表示部20と、を備える。撮像部14は、第1撮像部14aと、第2撮像部14bと、第3撮像部14cと、第4撮像部14dと、第5撮像部14eと、を備える。以下、5つの撮像部14aから14eをまとめて撮像部14と表現することがある。
制御部12は、CPUを備える。制御部12は、メモリ16内のプログラムに従って様々な処理を実行する。制御部12が実行する処理の内容は後で詳しく説明する。
撮像部14は、2次元コード等の各種情報コードを撮像することができる。撮像部14は、5つの撮像部14a〜14eを備える。5つの撮像部14a〜14eは、それぞれ、レンズと撮像素子とを備える。撮像素子は、例えばCCDイメージセンサ、CMOSイメージセンサ等のイメージセンサである。情報コード読取装置10を用いて撮像する場合、撮像素子は、レンズを通して得られる画像を電気信号に変換し、該電気信号を制御部12に供給する。
図2に示すように、第1撮像部14aは、撮像部14の中心に位置する。4個の第2撮像部14b〜第5撮像部14eは、第1撮像部14aの周りに等間隔に配置されている。なお、図2で示される2次元コード30は、撮像部14に向いている。従って、図2の2次元コード30は、実際には2次元コード30の裏側が図示されている。第2撮像部14b、第3撮像部14c、第4撮像部14d及び第5撮像部14e(詳細には各撮像部のレンズ)は、それぞれ、第1撮像部14a(詳細には第1撮像部14aのレンズ)に対して異なる角度に傾斜している。なお、第2〜第5撮像部14b〜14eは、それぞれ、第1撮像部14aに対して、例えば5度だけ傾斜している。このため、第1撮像部14a(詳細には第1撮像部14aのレンズ)が2次元コード30の鉛直上方に配置される場合、第2〜第5撮像部14b〜14eは、それぞれ、2次元コード30に対して鉛直上方からずれた位置に配置される。この結果、例えば、各撮像部14a〜14eから見たときに2次元コード30上で光が反射する位置は異なる。図2では、撮像部14a、14d、14eのレンズの中心から2次元コード30の中心に向かう2点鎖線が図示されており、2次元コード30によって隠れる部分は破線で示されている。
メモリ16は、例えばROM、RAM、等の不揮発性メモリを有しており、様々なプログラムを記憶している。また、メモリ16は、様々な情報(例えば、後述の撮像データなど)を記憶する領域を有している。
操作部18は、複数のキーを備える。情報コード読取装置10の利用者は、操作部18を操作して、情報コード読取装置10に様々な情報を入力することができる。表示部20は、例えば液晶ディスプレイを有し、様々な情報を表示する。
続いて、図3〜図10を参照して、情報コード読取装置10の制御部12が2次元コード30をデコードする場合に実行する読取処理について説明する。
最初に、2次元コード30について説明する。図4に示すように、2次元コード30Aには、種々のデータが記録されている。なお、2次元コード30Aは、第1撮像部14aで撮像された2次元コード30を表す画像である。2次元コード30Aの内部は、N×N個の正方形のセルに区切られている。各セルは、白(明)もしく黒(暗)に色分けされている。2次元コード30Aは、位置決め用シンボル4a〜4cと、タイミングパターン6a、6bを有している。位置決め用シンボル4a〜4cは、黒セルと白セルが特定比率(1:1:3:1:1)に配置されている。位置決め用シンボル4a〜4cは、2次元コード30の位置を検出するためのパターンである。タイミングパターン6aでは、位置決め用シンボル4a、4bの間において、図4の上下方向に白セルと黒セルが交互に配置されている。タイミングパターン6bでは、位置決め用シンボル4a、4cの間において、図4の左右方向に白セルと黒セルが交互に配置されている。タイミングパターン6a、6bは、2次元コード30の各セルの中心座標を求めるためのパターンである。
次いで、制御部12が実行する読取処理を説明する。情報コード読取装置10の利用者は、撮像部14を読取対象の2次元コード30(図2参照)に向けた状態で、操作部18を操作して、所定の読取操作を入力することができる。読取操作が入力されると、図3に示す読取処理が開始される。S10では、制御部12は、撮像部14に撮像を実行させる。制御部12は、5個の撮像部14に同時に撮像を実行させる。さらに、S10では、制御部12は、5個の撮像部14のそれぞれから、撮像結果を示す信号を取得する。そして、制御部12は、取得済みの信号を用いて、5個の撮像部14のそれぞれで撮像された2次元コード30を表す画像データを生成する。制御部12は、生成済みの5つの画像データをメモリ16に記憶させる。
次いで、S12では、制御部12は、S10でメモリ16に記憶済みの5つの画像データ(即ち、2次元コード30A〜30E(図4、図6〜図9参照)を表す画像データ)のうち、デコード可能な画像データが存在するか否かを判断する。なお、2次元コード30Aを表す画像データは第1撮像部14aから取得される信号から生成されており、2次元コード30Bを表す画像データは第1撮像部14bから、2次元コード30Cを表す画像データは第1撮像部14cから、2次元コード30Dを表す画像データは第1撮像部14dから、2次元コード30Eを表す画像データは第1撮像部14eからそれぞれ取得される信号から生成されている。
具体的には、5つの画像データから1つの画像データを選択し、デコード処理を試行する。デコード処理は公知の方法で試行される。例えば、第1撮像部14aを用いて2次元コード30が適切に撮像されている場合、第1撮像部14aから取得される画像データを用いて、デコード処理を実行することができる(S12でYES)。一方、例えば、2次元コード30の周囲に強い光源が存在するために、2次元コード30から光が鏡面反射している状況や、2次元コード30が平坦面に示されていない状況で、第1撮像部14aを用いて2次元コード30が適切に撮像されていない場合、第1撮像部14aから取得される画像データを用いて、デコード処理を実行することができない。この場合、残り4つの画像データから第2撮像部14bから取得される画像データを選択し、デコード処理を試行する。第2撮像部14bを用いたデコード処理を実行することができない場合、同様に第3撮像部14c、第4撮像部14d、第5撮像部14eの画像データを順に選択し、デコード処理を試行する。
選択済みの1つの画像データを用いてデコード処理が実行できた場合(S12でYES)、デコード結果を表示部20に表示させて、読取処理を終了する。一方、5つの画像データのいずれの画像データを用いてもデコード処理が実行できない場合(S12でNO)、S14に進む。
S14では、制御部12は、S10においてメモリ16に記憶されている5つの画像データで表される5つの2次元コード30A〜30Eをそれぞれ4分割にする。すなわち、制御部12は、20個の部分画像データを生成する。分割の方法について、図4及び図5を用いて説明する。まず、図4に示すように、制御部12は、1つの画像データで表される2次元コード30Aの位置決め用シンボル4a〜4cを用いて2次元コード30の互いに直接的に接続されている2辺の中点を特定する。具体的には、制御部12は、シンボル4aの左上部分104aとシンボル4bの左下部分104b間の距離を測定し、左上部分104aと104bのそれぞれから等距離にある2次元コード30の辺40上の点を中点50と特定する。同様に、制御部12は、シンボル4aの左上部分104aとシンボル4cの右上部分104c間の距離を測定し、辺42上の点を中点52と特定する。次いで、制御部12は、中点50から辺40に対して垂直な線60と辺44との交点を辺44の中点54として特定する。同様に、制御部12は、中点52から辺42に対して垂直な線62と辺46との交点を辺46の中点56として特定する。
次いで、制御部12は、辺40の中点50と両端との中央位置(例えば図6の中点70)を特定する。具体的には、左上部分104aと中点50のそれぞれから等距離にある2次元コード30の辺40上の点を特定し、左下部分104bと中点50のそれぞれから等距離にある2次元コード30の辺40上の点を特定する。同様に、各辺42〜46の中点52〜56と各部分104a〜104cを用いて、辺42〜46上で中点と両端との中央位置を特定する。
そして、制御部12は、タイミングパターン6a,6bを用いて、特定済みの中点50、52、54、56のそれぞれの座標を特定し、特定済みの座標をメモリ16に記憶させる。次いで、図5に示すように、制御部12は、線60及び線62で区切られる4つの部分領域の部分画像A1〜D1のそれぞれを表す4つの部分画像データを生成する。制御部12は、他の4つの2次元コード30B〜30Eを表す4つの画像データに対して、同様に処理を実行して、部分画像データを生成する。
また、制御部12は、部分画像A1〜D1を表す部分画像データのそれぞれに対応付けて、4つの中点50、52、54、56のうち、当該部分画像の頂点に位置する中点の座標(例えば部分画像A1では中点50,52)を、各部分画像A1〜D1の部分画像データに対応付けてメモリ16に記憶させている。さらに、辺42〜46上で中点と両端との中央位置のうち、部分画像A1〜D1に含まれる中央位置を当該部分画像A1〜D1の部分画像データに対応付けてメモリ16に記憶させている。4つの2次元コード30B〜30Eの部分画像A2〜D5でも同様である。
次いで、S16では、制御部12は、20個の部分画像データによって表される部分画像A1〜D5(図4、図6〜図9参照)のコントラストを計測する。コントラストの計測方法を図6を用いて説明する。図6において、2次元コード30の左上領域を部分画像A2と呼ぶ。以下、図6の2次元コード30Bの右上領域を部分画像B2、左下領域を部分画像C2、右下領域を部分画像D2と呼ぶ。なお、同様に、図4の2次元コード30Aの左上領域を部分画像A1、右上領域を部分画像B1、左下領域を部分画像C1、右下領域を部分画像D1と呼ぶ。図7の2次元コード30Cの左上領域を部分画像A3、右上領域を部分画像B3、左下領域を部分画像C3、右下領域を部分画像D3と呼ぶ。図8の2次元コード30Dの左上領域を部分画像A4、右上領域を部分画像B4、左下領域を部分画像C4、右下領域を部分画像D4と呼ぶ。図9の2次元コード30Eの左上領域を部分画像A5、右上領域を部分画像B5、左下領域を部分画像C5、右下領域を部分画像D5と呼ぶ。
図6において、部分画像A2のコントラストの計測の方法を説明する。なお、部分画像A2以外の19個の部分画像についても同様の方法でコントラストを計測する。この方法では、部分画像A2の中心部のコントラストを計測する。これにより、コントラストの計測に要する時間を短縮することができる。なお、部分画像A2全体のコントラストを計測してもよい。
部分画像A2の中心部のコントラストを計測するために、最初に、部分画像A2の中心部92を特定する。具体的には、制御部12は、部分画像A2を表す部分画像データと対応付けて記憶されているシンボル4aの左上部分104aと中点50との中央位置である中点70と、シンボル4aの左上部分104aと中点52との中央位置である中点72とのそれぞれから、各辺40、42に対して描かれる垂直な線80、82の交点を、部分画像A2の中心点90と特定する。次いで、制御部12は、中心点90から所定半径の領域(以下では中心部92と呼ぶ)を特定する。制御部12は、取り込んだ2次元コード30Bの大きさに基づいて半径r(例えば半径rは2次元コード30Bの一辺の長さの8分の1)を決める。なお、半径rは、中心部92が部分画像A2内に収まっており、かつ、少なくとも白(明)と黒(暗)のセルが1つずつ含まれている大きさに設定することができる。
情報コード読取装置10において、2次元コード30を読み取る際、光源(図示略)が、2次元コード30に向かって光を照射する。2次元コード30からの反射光は、撮像部14にあるレンズにより結像され、撮像素子(図示略)により受光される。制御部12は、撮像素子により受光された反射光のうち、中心部92の範囲内にあるセルから、最も明るいもの(白)と最も暗いもの(黒)の輝度から、コントラストを数値化する(例えば、最も明るいセルの輝度÷最も暗いセルの輝度により数値化する)。制御部12は、上述したコントラストの数値を部分画像A2を表す部分画像データに対応付けてメモリ16に記憶させる。
同様の方法で、制御部12は、残りの19個の部分画像A1〜A5、B1〜B5、C1〜C5、D1〜D5のコントラストを計測し、それぞれの部分画像データと対応付けて、コントラストをメモリ16に記憶させる。
次いで、S18では、制御部12は、比較処理を実行する。即ち、制御部12は、計測したコントラストに基づいて、4つの領域のそれぞれの部分画像のうち、最もコントラストが高い部分画像を選択する。具体的には、まず、制御部12は、5つの撮像部14のそれぞれで撮像された左上領域の部分画像A1,A2,A3,A4,A5を表す5つの部分画像データ(以下では「候補部分画像データ」と呼ぶ)を、メモリ16から取得する。次いで、5つの候補部分画像データのコントラストを比較して、最もコントラストが高い候補部分画像データを選択する。以下同様にして、右上領域の部分画像B1〜B5を表す5つ候補部分画像データと、左下領域の部分画像C1〜C5を表す5つ候補部分画像データと、右下領域の部分画像D1〜D5を表す5つ候補部分画像データと、のそれぞれから、最もコントラストが高い候補部分画像データ(以下では「選択部分画像データ」と呼ぶ)を選択する。
次いで、S20では、制御部12は、選択された4つの領域の画像を表す4つの選択部分画像データを合成する。例えば、図10に示すように、制御部12は、部分画像A4、B2、C3、D1を表す選択部分画像データを用いて合成画像(以下では「合成2次元コード38」と呼ぶ)を表す合成画像データを生成する。
具体的には、制御部12は、上述したように、5つの2次元コード30A〜30Eのそれぞれについて、各辺の4つの中点50、52、54、56の座標をメモリ16に記憶させている。また、制御部12は、各部分画像A4、B2、C3、D1の頂点の座標のうち4つの中点50、52、54、56の座標に対応する座標を、部分画像A4、B2、C3、D1の部分画像データに対応付けてメモリ16に記憶させている。すなわち、制御部12は、部分画像A4の右上の頂点136aと左下の頂点236aの座標をメモリ16に記憶させている。以下同様に、制御部12は、部分画像B2の左上の頂点136bと右下の頂点236bの座標をメモリ16に記憶させている。制御部12は、部分画像C3の左上の頂点136cと右下の頂点236cの座標をメモリ16に記憶させている。制御部12は、部分画像D1の右上の頂点136dと左下の頂点236dの座標をメモリ16に記憶させている。
図10に示すように、制御部12は、5つの2次元コード30A〜30Eのそれぞれについてメモリ16に記憶された各辺の4つの中点50、52、54、56の座標の中から、1個の中点50、52、54、56を選択する。例えば、選択済みの4つの部分画像データのうち、2次元コード30Aの部分画像データが最も多い場合、2次元コード30Aの中点50、52、54、56を選択する。選択済みの4つの部分画像データが、それぞれ異なる2次元コード30A〜30Eから選択されている場合、任意の2次元コード30A〜30Eの4つの中点50、52、54、56を選択する。なお、撮像部14の2次元コード30に対する角度が異なることから、2次元コード30A〜30Eの4つの中点50、52、54、56の座標は、一致していない。
次いで、部分画像A4の左下の頂点236aが、中点50に配置されるとともに、部分画像A4の右上の頂点136aが、中点52に配置されるように、部分画像データ内の各セルの座標を修正する。例えば、選択済みの中点50、52が2次元コード30Dの中点50、52である場合、頂点236aと中点50及び頂点136aと中点52は互いに一致する。この場合、セルの座標は修正されない。一方、例えば、選択済みの中点50、52が2次元コード30Dと異なる2次元コード30の中点50、52である場合、頂点236aと中点50及び頂点136aと中点52は互いに一致しない。この場合、頂点236aと中点50が一致し、頂点136aと中点52が一致するように、各セルの座標を修正する。以下同様に、制御部12は、部分画像B2の左上の頂点136bが、中点52に配置されるとともに、部分画像B2の右下の頂点236bが、中点54に配置されるように、部分画像データ内の各セルの座標を修正する。制御部12は、部分画像C3の左上の頂点136cが、中点50に配置されるとともに、部分画像C3の右下の頂点236cが、中点56に配置されるように、部分画像データ内の各セルの座標を修正する。制御部12は、部分画像D1の右上の頂点136dが、中点54に配置されるとともに、部分画像D1の左下の頂点236dが、中点56に配置されるように、部分画像データ内の各セルの座標を修正する。この結果、合成2次元コード38を表す合成画像データが生成される。
次いで、S22では、制御部12は、S20で生成済みの合成画像データをデコードするデコード処理を行う。制御部12は、デコード処理が実行される場合(S22でYES)、デコード結果を表示部20に表示させて、読取処理を終了する。一方、制御部12は、デコード処理が実行できない場合(S22でNO)、表示部20にエラーを表示させて(S24)、読取処理を終了する。
次いで、本実施例の効果を説明する。制御部12は、S18の比較処理において、メモリ16に記憶された左上領域の部分画像A1〜A5のコントラストを比較する。ここで、図4、6に示す部分画像A1、A2のコントラストはほぼ同じである。一方、図7に示す2次元コード30Cの部分画像A3のコントラストが最も低い。また、図8に示す2次元コード30Dの部分画像A4のコントラストが最も高い。
さらに、図9に示す2次元コード30の部分画像A5において、鏡面反射が起きている反射部分R以外の部分は、部分画像A1、A2のコントラストとほぼ同じとする。鏡面反射は、2次元コード30が平坦である場合に、光源の種類や強さ、撮像部の2次元コード30に対する角度によって発生する。また、例えば、2次元コード30が印刷された紙などにしわが入っていると、予期しない部分で鏡面反射が起こる。鏡面反射が発生している反射部分Rでは、黒色のセルの輝度が高く、セルの明暗の区別はできない。また、反射部分Rの周囲でも、黒色のセルの輝度が高くなり、コントラストは低くなる。このため、鏡面反射が発生している反射部分Rを含む部分画像A5のコントラストは相対的に低い。これにより、比較処理では、鏡面反射を含む部分画像を表す部分画像データが選択される事態を回避することができる。この結果、鏡面反射を含む部分画像が合成画像データで表される合成2次元コード38に含まれることを防止することができる。
なお、比較処理では、極端に明るいと判定されたセルを含む部分画像を表す部分画像データを候補部分画像データから削除してもよい。
上記の結果、制御部12は、左上領域の部分画像A4を、左上領域の部分画像A1〜A5のうち最もコントラストが高いものと判定し、左上領域の部分画像A4を選択部分画像36aとする。同様にして、制御部12は、B1〜B5、C1〜C5、D1〜D5のそれぞれの領域から選択部分画像36b、36c、36dを選択する。本明細書では、例えば、部分画像B2が選択部分画像36bであり、部分画像C3が選択部分画像36cであり、部分画像D1が選択部分画像36dである。なお、図4、6〜9は、左上領域の部分画像A1〜A5の中から選択部分画像36aを選択する例を示すための図であり、各部分画像のコントラストを正確に表すものではない。制御部12は、各選択部分画像を用いて、上述したとおり、合成2次元コード38を生成する。
これにより、5つの2次元コード30に対応する画像データのうち1つの画像データについてデコード処理ができない場合(例えば、2次元コード30が印刷された紙などにしわがあり、鏡面反射を起こす場合や、コントラストが低くてデコード処理をできない場合)であっても、2次元コード30のデコード処理を実行することができる。この結果、2次元コード30の表示態様を変えずに、2次元コード30を読み取ることができない事態を回避することができる。
実施例における中点の特定の方法は一例であり、別の方法を用いてもよい。実施例では、辺40上の中点50から線60を引いて対向する辺44上の中点54を特定している。同様に、辺42上の中点52から線62を引いて対向する辺46上の中点56を特定している。しかしながら、シンボル4aの左上部分104aとシンボル4bの左下部分104b間の距離の2分の1の距離を、シンボル4cの右上部分104cを起点に辺44上でとり、その点を中点54と特定してもよい。同様に、シンボル4aの左上部分104aとシンボル4bの左下部分104b間の距離の2分の1の距離を、シンボル4bの左下部分104bを起点に辺46上でとり、その点を中点56と特定してもよい。
また、実施例における選択部分画像36の合成の方法は一例であり、別の方法を用いてもよい。実施例では、選択部分画像36a、36b、36c、36dの各2点の座標をメモリ16に記憶させており、これらをもとに合成している。しかしながら、アラインメントマーク(図示略)のある選択部分画像36dの4分割する前の2次元コード(例えば、2次元コード30A)を基準として、選択部分画像36a、36b、36cを重ね合わせてもよい。すなわち、選択部分画像36aに含まれる位置決め用シンボル4aを2次元コード30Aの位置決め用シンボル4aに重なるように合成してもよい。以下同様に、選択部分画像36bに含まれる位置決め用シンボル4cを2次元コード30Aの位置決め用シンボル4cに重なるように合成してもよい。選択部分画像36cに含まれる位置決め用シンボル4bを2次元コード30Aの位置決め用シンボル4bに重なるように合成してもよい。
あるいは、合成の際に、中点を基準にせずに、各選択部分画像36a、36b、36c、36dの頂点を重ね合せてもよい。例えば、図10において、部分画像A4の頂点136aと部分画像B2の頂点136bが重なるように、部分画像データ内のセルの座標を修正してもよい。また、あるいは、部分画像データ内のセルの座標を修正せずに、4つの部分画像データを合成してもよい。
また、実施例では、5つの撮像部14を用いて2次元コード30を撮像している。しかしながら、これは一例であり、撮像部14の数は5つに限られない。例えば、撮像部の数は、2つでも、6つ以上でもよい。
また、実施例では、5つの撮像部14で2次元コード30を撮像し(S10)、その5つの画像データのうち1つの画像データでデコード可能か否かを判定している。そして、いずれの画像データでもデコードできないと判定した場合(S12でNO)、制御部12は、5つの画像をそれぞれ4分割する(S14)。しかしながら、5つの撮像部14で2次元コード30を撮像した後、直ちに制御部12は、5つの画像を4分割してもよい。すなわち、撮像した2次元コード30の画像データのうち1つの画像データでデコード可能かを判定しなくてもよい。これにより、合成2次元コード38を表す合成画像データをデコードするまでに要する時間を短縮することができる。
さらに、実施例では、5つの画像を4分割している。しかしながら、これは一例であり、例えば3分割以下でも5分割以上でもよい。2分割の場合、上述した4分割の場合と同様の方法を用いることができる。例えば、シンボル4aとシンボル4cから距離が等しい辺42上の中点52から、辺42に対して90度となるように対向する辺46に向かって線62を引き、この線62によって画像を2分割することができる。9分割の場合も、上述した4分割の場合と同様の方法を用いることができる。例えば、辺40上のシンボル4aとシンボル4bを3等分する2点をとり、これらを起点として辺40に対して90度となるように2つの線を対向する辺44に向かって引いてもよい。同様に、辺42上の2点からも対向する辺46に向かって2つの線を引いてもよい。これら4つの線により、画像を9分割することができる。
また、実施例では、5つの撮像部14で撮像された全ての2次元コード30A〜30Eを4つの分割し(図2のS14)、4つの領域のそれぞれについて、比較処理(S18)で選択された4つの部分画像データを合成している。しかしながら、合成画像データを生成する方法は、これに限られず、例えば、第1撮像部14aで撮像された2次元コード30Aの画像データを用いてデコードが実行できない場合に、2次元コード30A内でデコードが実行できない原因となっている領域(例えば鏡面反射が含まれている領域)を特定し、特定された1個以上の領域の画像のみを、他の撮像部14b〜14eのいずれかで撮像された2次元コード30B〜Eの対応する領域の画像に置換することによって、合成画像データを生成してもよい。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時の請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は、複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
4 :位置決め用シンボル
6 :タイミングパターン
10 :情報コード読取装置
12 :制御部
14 :撮像部
16 :メモリ
18 :操作部
20 :表示部
30 :2次元コード
38 :合成2次元コード
90 :中心点
92 :中心部
6 :タイミングパターン
10 :情報コード読取装置
12 :制御部
14 :撮像部
16 :メモリ
18 :操作部
20 :表示部
30 :2次元コード
38 :合成2次元コード
90 :中心点
92 :中心部
Claims (7)
- 情報コードを読み取る情報コード読取装置であって、
前記情報コードに対して異なる角度で配置される複数個の撮像部と、
制御部と、を備え、
前記制御部は、
前記複数個の撮像部のうちの1個の撮像部を用いて撮像された前記情報コードの第1部分領域の画像を表す第1部分画像データと、前記複数個の撮像部のうちの他の撮像部を用いて撮像された前記情報コードの第2部分領域の画像を表す第2部分画像データと、を含む合成画像データであって、前記情報コードを表す前記合成画像データを生成し、
前記合成画像データに基づいてデコードする、情報コード読取装置。 - 前記制御部は、
前記複数個の撮像部のそれぞれから、当該撮像部を用いて撮像された前記第1部分領域の前記画像を表す第1候補部分画像データを取得し、
取得された複数の前記第1候補部分画像データを用いて、前記複数の第1候補部分画像データによって表される複数の画像の質を示す指標を比較する比較処理を実行することによって、前記複数の第1候補部分画像データから、1個の前記第1部分画像データを選択し、
前記第2部分画像データと、選択された前記第1部分画像データと、を含む前記合成画像データを生成する、請求項1に記載の情報コード読取装置。 - 前記情報コードは、前記第1部分領域と前記第2部分領域とを含む複数の部分領域を含み、
前記制御部は、
前記複数個の撮像部のそれぞれから、前記複数の部分領域のそれぞれについて、当該部分領域の画像を表す候補部分画像データを取得し、
前記複数の部分領域のそれぞれについて、当該部分領域の画像を表す複数の候補部分画像データを用いた前記比較処理を実行することによって、前記複数の候補部分画像データから1個の部分画像データを選択し、
選択された複数の部分画像データであって、それぞれが前記複数の部分領域のそれぞれを表す前記複数の部分画像データを含む前記合成画像データを生成する、請求項2に記載の情報コード読取装置。 - 前記制御部は、前記複数の部分領域のそれぞれについて、当該部分領域の画像を表す複数の候補部分画像データを用いた前記比較処理の結果、
前記複数の部分領域のいずれの部分領域においても、前記複数の撮像部のうちの第1撮像部から取得された部分画像データが選択される場合、前記第1撮像部を用いて得られた前記複数の部分画像データを用いて合成画像データを生成し、
前記複数の部分領域のうち、前記第1部分領域の画像を表す部分画像データとして、前記複数の撮像部のうちの前記第1撮像部を用いて得られる前記第1部分画像データが選択され、前記第2領域の画像を表す部分画像データとして、前記複数の撮像部のうちの第2撮像部を用いて得られる前記第2部分画像データが選択される場合、前記第1部分画像データと前記第2部分画像データと、を含む前記合成画像データを生成する、請求項3に記載の情報コード読取装置。 - 前記情報コードは、2次元コードであり、
前記制御部は、
前記複数個の撮像部のそれぞれから、当該撮像部を用いて撮像された前記情報コードを示す全体画像データを取得し、
取得された複数の前記全体画像データのそれぞれについて、当該全体画像データによって表される前記情報コードの4辺のうち、互いに接続される2辺の中点の位置をそれぞれ特定し、各中点から垂直に伸びる線によって分割される4個の部分領域のそれぞれの画像を表す前記候補部分画像データを取得する、請求項3又は4に記載の情報コード読取装置。 - 前記指標は、画像の白色と黒色とのコントラストを含み、
前記制御部は、前記比較処理において、前記複数の部分画像データのうち、前記コントラストが最も高い部分画像データを選択する、請求項2から5のいずれか一項に記載の情報コード読取装置。 - 前記制御部は、
前記複数個の撮像部のそれぞれを用いて、当該撮像部を用いて撮像された前記情報コードを表す画像データを取得し、
取得された複数の前記画像データのそれぞれに基づいて、デコードすることを試行し、
前記複数の画像データのいずれを用いてもデコードすることができない場合に、前記合成画像データに基づいてデコードする、請求項1から6のいずれか一項に記載の情報コード読取装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015145254A JP2017027368A (ja) | 2015-07-22 | 2015-07-22 | 情報コード読取装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015145254A JP2017027368A (ja) | 2015-07-22 | 2015-07-22 | 情報コード読取装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017027368A true JP2017027368A (ja) | 2017-02-02 |
Family
ID=57946068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015145254A Pending JP2017027368A (ja) | 2015-07-22 | 2015-07-22 | 情報コード読取装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017027368A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021044481A (ja) * | 2019-09-13 | 2021-03-18 | 株式会社ディスコ | 加工装置 |
JP2021077005A (ja) * | 2019-11-07 | 2021-05-20 | キヤノン株式会社 | 画像処理装置、画像処理方法およびプログラム |
-
2015
- 2015-07-22 JP JP2015145254A patent/JP2017027368A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021044481A (ja) * | 2019-09-13 | 2021-03-18 | 株式会社ディスコ | 加工装置 |
JP2021077005A (ja) * | 2019-11-07 | 2021-05-20 | キヤノン株式会社 | 画像処理装置、画像処理方法およびプログラム |
JP7493927B2 (ja) | 2019-11-07 | 2024-06-03 | キヤノン株式会社 | 画像処理装置、画像処理方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10240982B2 (en) | Measurement system, information processing apparatus, information processing method, and medium | |
JP5576726B2 (ja) | 三次元計測装置、三次元計測方法、及びプログラム | |
US20150339508A1 (en) | Two-dimensional code | |
JP5311143B2 (ja) | 測定装置および方法、並びに、プログラム | |
JP6166852B1 (ja) | レンズ歪みを測定する方法及びシステム | |
CN208887565U (zh) | 一种非接触式高精度的三维测量系统 | |
JP2009264862A (ja) | 3次元形状計測方法および装置 | |
JP2009204343A (ja) | 3次元形状計測方法および装置 | |
JP6576664B2 (ja) | エッジ検出偏り補正値計算方法、エッジ検出偏り補正方法、及びプログラム | |
US8659765B2 (en) | Three-dimensional shape determining apparatus and three-dimensional shape determining method | |
JP6061133B2 (ja) | テストチャート及びその使用方法 | |
CN108463793B (zh) | 图像识别装置、图像识别方法以及图像识别单元 | |
US20150369589A1 (en) | Positional shift amount measurement method, correction table generation apparatus, imaging apparatus, and projecting apparatus | |
JP2017027368A (ja) | 情報コード読取装置 | |
JP2014059239A (ja) | 形状計測装置及び形状計測方法 | |
JP5277986B2 (ja) | 演算装置、演算プログラム、面形状測定装置、及び面形状測定方法 | |
JP2012198763A (ja) | コードリーダ | |
JP2010197201A (ja) | Mtf測定用チャート、mtf測定装置およびmtf測定プログラム | |
CN108475147B (zh) | 图像识别装置、图像识别方法以及图像识别单元 | |
US10083384B2 (en) | Display device for displaying barcode | |
JP5322824B2 (ja) | 解像度変換装置および解像度変換方法 | |
CN110443750A (zh) | 检测视频序列中的运动的方法 | |
JP2008186487A (ja) | 二次元情報コードの表示方法 | |
US10142643B2 (en) | Marker generating method, marker decoding method, and marker reading device | |
JP4985213B2 (ja) | 3次元形状計測方法および装置ならびにプログラム |