【解決手段】 制御部は、撮像画像中の第1エリア内の1個以上の情報コードが、一括コード群を構成する複数個の情報コードをすべて含んでいる場合に(S20でYES)、当該複数個の情報コードを含む第2エリアを特定し(S22)、第2エリアとマーカが重なる場合に(S24でYES)、第2内の一括コード群のデコード結果に対応する一括データを出力する(S26)。
【発明を実施するための形態】
【0009】
以下に説明する実施例の主要な特徴を列記しておく。なお、以下に示す技術要素は、それぞれ独立した技術要素であって、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。
【0010】
(特徴1)制御部は、第1の判断処理において否定的に判断される場合に、1個以上の情報コードのうちの1個の情報コードであり、個別に読み取られることによってデータがデコードされる情報コードである個別コードを含む第3の領域を特定してもよい。そして、制御部は、特定された第3の領域と、マーカとが重なる場合に、メモリ内の1個以上のデータのうち、第3の領域内の個別コードのデコード結果に対応するデータを出力してもよい。
【0011】
この構成によると、情報コード読取装置は、撮像画像中の第1の領域内の1個以上の情報コードが、一括コード群を構成する複数個の情報コードをすべて含んでいない場合に、1個以上の情報コードのうちの1個の個別コードを含む第3の領域を特定し、第3の領域とマーカが重なる場合に、第3の領域内の個別コードのデコード結果に対応するデータを出力する。即ち、この構成によると、第3の領域がマーカで指定される場合に、複数個の情報コードを一括してデコードする処理等の他のデコード処理が行われることなく、第3の領域内の個別コードのデコード結果に対応するデータが出力される。従って、この構成によると、マーカで指定される領域内に存在する個別コードのデコード結果に対応するデータも適切に出力することができる。
【0012】
(特徴2)制御部は、第1の判断処理が実行された後、データが出力されない場合において、さらに、第1の領域のうちの未特定の領域内に少なくとも1個の情報データが含まれる場合に、少なくとも1個の情報コードが、一括コード群を構成する複数個の情報コードをすべて含んでいるか否かを判断する第2の判断処理をさらに実行してもよい。
【0013】
第1の判断処理が実行された後、デコードデータが出力されない場合は、マーカが、第1の領域のうちの未特定の領域内の他の情報コードに重ねられていた可能性がある。上記の構成によると、情報コード読取装置は、上記未特定の領域内に少なくとも1個の情報コードが含まれる場合に、少なくとも1個の情報コードが、一括コード群を構成する複数個の情報コードをすべて含んでいるか否かを判断する第2の判断処理をさらに実行する。従って、上記の構成によると、情報コード読取装置は、第1の判断処理が実行された後にデコードデータが出力されない場合に、未特定の領域内に含まれる情報コードに対応するデコードデータを出力し得る。従って、マーカで指定される領域内に存在する情報コードに存在するデコードデータをより適切に出力し得る。
【0014】
(特徴3)マーカの位置を示すためのマーカ光を読取対象媒体上に照射する照射部をさらに備えてもよい。
【0015】
この構成によると、マーカ位置を視覚的に把握し易くなる。そのため、ユーザが、デコードデータの出力を希望する領域を適切に指定することができる。
【0016】
(特徴4)第1の領域は、撮像画像の全体であってもよい。
【0017】
(特徴5)マーカの面積は、情報コードの面積より小さくてもよい。
【0018】
(実施例)
(情報コード読取装置10の構成;
図1)
図1に示すように、本実施例の情報コード読取装置10は、情報コード(例えば二次元コード、バーコード等)を読み取ってデータを取得するための装置である。情報コード読取装置10は、撮像部12と、照明部14と、マーカ光照射部16と、操作部18と、表示部20と、通信インターフェース(以下では「通信I/F」と記載する)22と、制御部24と、メモリ26と、を備える。
【0019】
撮像部12は、1個以上の情報コードが付された読取対象媒体を撮像可能な撮像装置である。照明部14は、読取対象媒体を照明する照明装置である。マーカ光照射部16は、読取対象媒体上に、読取対象部分に対応するマーカを表わすマーカ光を照射するためのレーザ光照射装置である。操作部18は、複数個のキーを有する。情報コード読取装置10のユーザは、操作部18を操作して、情報コード読取装置10に様々な指示を入力することができる。表示部20は、様々な情報を表示するディスプレイである。通信I/F22は、図示しない外部装置(例えば、POS端末等)と通信を実行するためのインターフェースである。
【0020】
制御部24は、メモリ26に記憶されているプログラムに従って様々な処理を実行する。また、メモリ26は、後述の読取処理(
図4参照)に伴って取得される様々な情報(例えば読取対象媒体の撮像画像、デコード結果等)を記憶するための領域を有している。
【0021】
(情報コード読取装置10の読取対象;
図2、
図3)
本実施例の情報コード読取装置10の読取対象について説明する。本実施例の情報コード読取装置10は、個別コードと、一括コード群とを読取処理の対象とする。
図2、
図3は、それぞれ、個別コードICと、一括コード群PCと、の一例を示す。
【0022】
図2に示される個別コードICは、単一の情報コードとして個別に読み取られることによってデータがデコードされるコードである。情報コード読取装置10は、1個の個別コードICを読み取ることによって、当該個別コードICに記録されている1個のデータをデコードすることができる。
【0023】
図3に示される一括コード群PCは、複数個(
図3の例では4個)のコードC1〜C4によって構成されている。一括コード群PCは、各コードC1〜C4が一括で(即ち略同タイミングで)読み取られることによって、1個のデータがデコードされるコード群である。各コードC1〜C4のそれぞれには、一括コード群PCに記録されるべき1個のデータを4分割した分割データが記録されている。さらに、各コードC1〜C4のそれぞれには、当該情報コードが一括コード群PCの一部を構成するコードであることを示すパリティ情報も記録されている。情報コード読取装置10は、読み取った情報コードにパリティ情報が含まれている場合に、当該情報コードが一括コード群PCの一部を構成するコードであることを判別することができる。そして、情報コード読取装置10は、一括コード群PCを構成する4個のコードC1〜C4をすべて一括で読み取ることによって、一括コード群PCに記録されている1個のデータをデコードすることができる。
【0024】
(制御部24が実行する読取処理;
図4)
続いて、
図4を参照して、情報コード読取装置10の制御部24が実行する読取処理について説明する。情報コード読取装置10のユーザは、デコードを希望する情報コード(即ち一括コード群又は個別コード)が付された読取対象媒体に対して撮像部12の撮影範囲を向けた状態で、操作部18に所定の読取開始指示を入力することができる。操作部18において読取開始指示が入力されると、制御部24は、
図4の読取処理を開始する。
【0025】
S10では、制御部24は、読取対象媒体の撮像画像を取得する。具体的には、まず、制御部24は、照明部14によって撮像部12の撮影範囲に存在する読取対象媒体に対して照明光を照射するとともに、撮像部12によって、撮影範囲に存在する読取対象媒体の撮影を開始する。同時に、制御部24は、マーカ光照射部16は、読取対象媒体上に、読取対象部分に対応するマーカを表わすマーカ光を照射する。また、制御部24は、表示部20に、撮像部12が現在撮影している画像(即ち、読取対象媒体及び読取対象媒体上のマーカ光)を表示させるとともに、ユーザに対して、デコードを希望する情報コードにマーカ光が重なるように情報コード読取装置10の向きを調整するように促すためのメッセージを表示させる。そして、撮像部12は、読取対象媒体の画像を撮影する。この結果、制御部24は、撮像部12によって撮影された読取対象媒体の画像(以下では「撮像画像」と呼ぶ)を取得する。
【0026】
続くS12では、制御部24は、撮像画像(例えば
図5の符号50)中におけるマーカ(例えば
図5の符号M)の位置(例えば
図5のP1、P2等)を検出する。マーカの位置は、撮像画像中に含まれるマーカ光の画像の位置に対応する。制御部24は、撮像画像中の所定位置(例えば中心位置)を原点として定めた場合におけるマーカの中心部分のX座標及びY座標を特定することにより、撮像画像中におけるマーカの位置を検出する。
【0027】
続くS14では、制御部24は、撮像画像の全範囲を、第1エリア(例えば
図5の符号R1)として特定する。第1エリアはデコードの対象となる最大の領域を示す。第1エリアには、少なくとも1個の情報コードが含まれる。
【0028】
続くS16では、制御部24は、第1エリアに含まれる全ての情報コード(即ち一括コード群及び/又は個別コード)のデコード処理を実行する。
【0029】
S18では、制御部24は、S16のデコード処理によって少なくとも1個のデータがデコードされたか否かを判断する。
【0030】
例えば、
図5のケースAのように第1エリアR1内に1組の一括コード群PCが含まれる場合には、制御部24は、当該一括コード群PCに記録されたデータをデコードする。また、
図6のケースBのように第1エリアR1内に1個の個別コードICが含まれる場合には、制御部24は、当該個別コードICに記録されたデータをデコードする。また、
図7のケースCのように第1エリアR1内に1組の一括コード群PC及び1個の個別コードICが含まれる場合には、制御部24は、当該一括コード群PCに記録されたデータをデコードするとともに、当該個別コードICに記録されたデータをデコードする。また、
図8のケースDのように第1エリアR1内に2個の個別コードIC1、IC2が含まれる場合には、制御部24は、個別コードIC1、IC2のそれぞれに記録されたデータをデコードする。また、
図9のケースEのように第1エリアR1内に一括コード群PCを構成する4個のコードC1〜C4のうちの2個のコードC2、C4と、1個の個別コードICとが含まれる場合には、制御部24は、個別コードICに記録されたデータをデコードする。この場合、一括コード群PCに記録されたデータはデコードされない。上記の
図5〜
図9のような各ケースでは、制御部24は、S18でYESと判断し、S19に進む。
【0031】
一方、
図10のケースFのように第1エリアR1内に一括コード群PCを構成する4個のコードC1〜C4のうちの2個のコードC2、C4のみが含まれる場合には、制御部24は、データをデコードすることができない。このようなケースでは、制御部24は、S18でNOと判断し、S50に進む。また、上記の
図5〜
図9のような各ケースにおいても、撮像画像に含まれる情報コードの画像がいずれも不鮮明である等の理由により、データがデコードされない場合もある。このような場合にも、制御部24は、S18でNOと判断し、S50に進む。S50では、制御部24は、所定のエラー処理(例えば、表示部20に所定のエラーメッセージを表示させる処理等)を実行する。S50を終えると、
図4の読取処理が終了(即ちエラー終了)する。
【0032】
S19では、制御部24は、デコードされた1個以上のデータをメモリ26に記憶させる。
【0033】
続くS20では、制御部24は、第1エリア内にデータをデコード可能な一括コード群が含まれているか否かを判断する。例えば、
図5のケースA、
図7のケースCのように、第1エリアR1内に少なくとも1組の一括コード群PCを構成するコードC1〜C4がすべて含まれる場合、制御部24は、S20でYESと判断し、S22に進む。一方、
図6のケースB、
図8のケースDのように、第1エリアR1内に個別コードID(ID1、ID2)のみが含まれており一括コード群が含まれていない場合、若しくは、
図9のケースEのように、第1エリアR1内に一括コード群PCを構成するコードC1〜C4のうちの一部のみが含まれている場合(即ち、一括コード群PCを構成するすべてのコードC1〜C4が第1エリアR1内に含まれていない場合)には、制御部24は、S20でNOと判断し、S30に進む。
【0034】
S22では、制御部24は、第1エリア内で、第1エリアより狭いエリアである第2エリアを特定する。第2エリアは、第1エリアに含まれる一括コード群を含むエリアである。例えば、
図5のケースA、
図7のケースCでは、制御部24は、第1エリアR1内の一括コード群PCを構成する各コードC1〜C4を含むエリアを第2エリアR2として特定する。なお、具体例の図示は省略するが、仮に、第1エリア内に複数組の一括コード群が含まれている場合には、制御部24は、どちらか一方の一括コード群を含むエリアを第2エリアとして特定する。
【0035】
続くS24では、制御部24は、マーカが第2エリアに重なっているか否かを判断する。詳しく言うと、S24では、制御部24は、S12で検出されたマーカの位置が、第2エリアに重なるか否かを判断する。制御部24は、マーカの少なくとも一部が第2エリアに重なっている場合にS24でYESと判断する。例えば、
図7のケースCの位置P21に存在するマーカMのように、マーカMが第2エリアR2内に存在している場合には、制御部24は、S24でYESと判断し、S26に進む。
【0036】
S26では、制御部24は、メモリ26に記憶されている1個以上のデータ(S19)のうち、第2エリアに含まれる一括コードのデコード結果のデータ(以下では「一括データ」と呼ぶ)を出力する。具体的には、例えば、制御部24は、メモリ26内の一括データを、通信I/F22を介して外部装置に送信する。さらに、制御部24は、一括データのうちの少なくとも一部を、表示部20に表示させる。S26を終えると、
図4の読取処理(即ち正常終了)が終了する。
【0037】
一方、
図7の位置P22、P23に存在するマーカMのように、マーカMが第2エリアR2に重なっていない場合、制御部24は、S24でNOと判断し、S36に進む。この場合、上記の一括データは出力されない。
【0038】
S30では、制御部24は、第1エリア内で、第1エリアより狭いエリアである第3エリアを特定する。第3エリアは、第1エリアに含まれる1個の個別コードを含むエリアである。例えば、
図6のケースBでは、制御部24は、第1エリアR1内の個別コードICを含むエリアを第3エリアR3として特定する。また、
図8のケースDのように、第1エリア内に2個の個別コードIC1、IC2が含まれている場合には、制御部24は、一方の個別コードIC1を含むエリアを第3エリアR3として特定する。
【0039】
続くS32では、制御部24は、マーカが第3エリアに重なっているか否かを判断する。即ち、S32では、制御部24は、S12で検出されたマーカの位置が、第3エリアに重なるか否かを判断する。制御部24は、マーカの少なくとも一部が第3エリアに重なっている場合にS32でYESと判断する。例えば、
図8のケースDの位置P31に存在するマーカMのように、マーカMが第3エリアR3内に存在する場合、制御部24は、S32でYESと判断し、S34に進む。
【0040】
S34では、制御部24は、メモリ26に記憶されている1個以上のデータ(S19)のうち、第3エリアに含まれる個別コードのデコード結果のデータ(以下では「個別データ」と呼ぶ)を出力する。データの出力手法は、S26と同様である。S34を終えると、
図4の読取処理が終了(即ち正常終了)する。
【0041】
一方、
図8の位置P32、P33に存在するマーカMのように、マーカMが第3エリアR3に重なっていない場合、制御部24は、S32でNOと判断し、S36に進む。この場合、上記の個別データは出力されない。
【0042】
S36では、制御部24は、第1エリアのうちの未特定のエリア内に情報コード(即ち他の一括コード群又は個別コード)が存在するか否かを判断する。未特定のエリア(即ち、S22で特定された第2のエリア又はS30で特定された第3のエリアとは異なるエリア)にも情報コードが含まれる場合には、制御部24は、S36でYESと判断し、S20に戻る。S20では、制御部24は、第1エリアのうちの未特定のエリア内に、データをデコード可能な一括コード群が含まれているか否かを判断する。そして、制御部24は、S20の判断結果に応じて、それ以降の各処理を再度実行する。例えば、
図7のケースCにおいて、マーカMが、第2エリアR2外の位置P23(即ち個別コードIC上)に存在していたためにS24でNOと判断された場合の例を想定する。この例では、個別コードICを含むエリアは未特定である。そのため、制御部24は、S36でYESと判断し、S20に戻る。未特定のエリア内には個別コードICのみが存在するため、制御部24は、S20でNOと判断する。そして、制御部24は、個別コードICを含むエリアを新たに第3のエリアとして特定する(S30)。この場合、今度はマーカが第3エリア内(即ち位置P23)に存在することになるため(S32でYES)、制御部24は、個別コードICの個別データを出力することができる(S34)。
【0043】
これに対し、未特定のエリア内に情報コードが含まれていない場合には、制御部24は、S36でNOと判断し、S38に進む。ここで、未特定のエリア内に情報コードが含まれていない場合には、未特定のエリア内に一括コード群の一部のみが含まれている場合(即ち一括コード群を構成するすべてのコードが存在していない場合)も含まれる。S38では、制御部24は、所定のエラー処理を実行する。S38を終えると、
図4の読取処理が終了(即ちエラー終了)する。
【0044】
(具体的なケース;
図5〜
図10)
続いて、
図5〜
図10を参照して、
図4の読取処理によって実現される具体的なケースについて説明する。
図5〜
図10の各ケースは、撮像画像50(
図4のS10)に含まれる情報コードの構成が異なる。
図5〜
図10のいずれのケースにおいても、撮像画像50の全範囲が第1エリアR1として特定されている(S14)。
【0045】
(ケースA;
図5)
図5に示すケースAは、第1エリアR1(即ち撮像画像50の全範囲)内に1組の一括コード群PCが含まれるケースである。この場合、制御部24は、一括コード群PCに記録されている一括データをデコードし(S18でYES)、その一括データをメモリ26に記憶させる(S19)。そして、制御部24は、S20でYESと判断し、一括コード群PCを含むエリアを第2エリアR2として特定する(S22)。
【0046】
これ以降の処理はマーカMの位置に応じて異なる。本実施例では、マーカMは十字形状のポインタであり、その面積は情報コードの面積よりも小さい。マーカMが位置P1(即ち第2エリアR2内)に配置されていた場合、制御部24は、S24でYESと判断し、メモリ26内の一括データを出力する(S26)。一方、マーカMが位置P2(即ち第2エリアR2外)に配置されていた場合、制御部24は、S24でNOと判断し、一括データを出力しない。そして、制御部24は、未特定のエリア内に他の情報コードが存在しないと判断し(S36でNO)、読取処理をエラー終了する。
【0047】
(ケースB;
図6)
図6に示すケースBは、第1エリアR1内に1個の個別コードPCが含まれるケースである。この場合、制御部24は、個別コードICに記録されている個別データをデコードし(S18でYES)、その個別データをメモリ26に記憶させる(S19)。そして、制御部24は、S20でNOと判断し、個別コードICを含むエリアを第3エリアR3として特定する(S30)。
【0048】
マーカMが個別コードIC上の位置P11(即ち第3エリアR3内)に配置されていた場合、制御部24は、S32でYESと判断し、メモリ26内の個別データを出力する(S34)。一方、マーカMが位置P12(即ち第3エリアR3外)に配置されていた場合、制御部24は、S24でNOと判断し、個別データを出力しない。そして、制御部24は、未特定のエリア内に他の情報コードが存在しないと判断し(S36でNO)、読取処理をエラー終了する。
【0049】
(ケースC;
図7)
図7に示すケースCは、第1エリアR1内に1組の一括コード群PC及び1個の個別コードICが含まれるケースである。この場合、制御部24は、一括コード群PCに記録された一括データをデコードするとともに、個別コードICに記録された個別データをデコードし、それらをメモリ26に記憶させる(S19)。そして、制御部24は、S20でYESと判断し、一括コード群PCを含むエリアを第2エリアR2として特定する(S22)。
【0050】
マーカMが位置P21(即ち第2エリアR2内)に配置されていた場合、制御部24は、S24でYESと判断し、メモリ26内の一括データを出力する(S26)。一方、マーカMが位置P22又はP23(即ち第2エリアR2外)に配置されていた場合、制御部24は、S24でNOと判断し、一括データを出力しない。この場合、制御部24は、未特定のエリア内に他の情報コード(即ち個別コードIC)が存在すると判断する(S36でYES)。未特定のエリア内には個別コードICのみが存在するため、制御部24は、2回目のS20でNOと判断し、個別コードICを含むエリアを第3エリア(図示しない)として特定する(S30)。
【0051】
この場合、マーカMが個別コードIC上の位置P22(即ち第3エリア内)に配置されていた場合、制御部24は、S32でYESと判断し、メモリ26内の個別データを出力する(S34)。
【0052】
一方、マーカMが個別コードIC外の位置P23(即ち第3エリア外)に配置されていた場合、制御部24は、S32でNOと判断し、個別データを出力しない。そして、制御部24は、未特定のエリア内に他の情報コードが存在しないと判断し(S36でNO)、読取処理をエラー終了する。
【0053】
(ケースD;
図8)
図8に示すケースDは、第1エリアR1内に2個の個別コードIC1、IC2が含まれるケースである。この場合、制御部24は、個別コードIC1、IC2のそれぞれに記録された個別データをデコードし、それらをメモリ26に記憶させる(S19)。そして、制御部24は、S20でNOと判断し、一方の個別コードIC1を含むエリアを第3エリアR3として特定する(S30)。
【0054】
マーカMが個別コードIC1上の位置P31(即ち第3エリアR3内)に配置されていた場合、制御部24は、S32でYESと判断し、メモリ26内の個別コードIC1に対応する個別データを出力する(S34)。一方、マーカMが位置P32又はP33(即ち第3エリアR3外)に配置されていた場合、制御部24は、S32でNOと判断し、個別コードIC1に対応する個別データを出力しない。この場合、制御部24は、未特定のエリア内に他の情報コード(即ち個別コードIC2)が存在すると判断する(S36でYES)。未特定のエリア内には個別コードIC2のみが存在するため、制御部24は、2回目のS20でNOと判断し、個別コードIC2を含むエリアを新たに第3エリア(図示しない)として特定する(S30)。
【0055】
この場合、マーカMが個別コードIC2上の位置P32(即ち新たな第3エリア内)に配置されていた場合、制御部24は、S32でYESと判断し、メモリ26内の個別コードIC2に対応する個別データを出力する(S34)。
【0056】
一方、マーカMが個別コードIC2外の位置P33(即ち第3エリア外)に配置されていた場合、制御部24は、S32でNOと判断し、個別コードIC2に対応する個別データを出力しない。そして、制御部24は、未特定のエリア内に他の情報コードが存在しないと判断し(2回目のS36でNO)、読取処理をエラー終了する。
【0057】
(ケースE;
図9)
図9に示すケースEは、第1エリアR1内に一括コード群PCを構成する4個のコードC1〜C4のうちの一部(即ちコードC2、C4)と、1個の個別コードICとが含まれるケースである。この場合、制御部24は、個別コードICに記録された個別データをデコードし、メモリ26に記憶させる(S19)。このケースでは、第1エリアR1内に一括コード群PCを構成するコードのうちの一部しか含まれないため、一括コード群PCに記録された一括データはデコードされない。そして、制御部24は、S20でNOと判断し、個別コードICを含むエリアを第3エリアR3として特定する(S30)。
【0058】
マーカMが個別コードIC上の位置P41(即ち第3エリアR3内)に配置されていた場合、制御部24は、S32でYESと判断し、メモリ26内の個別データを出力する(S34)。一方、マーカMが位置P42又はP43(即ち第3エリアR3外)に配置されていた場合、制御部24は、S32でNOと判断し、個別データを出力しない。このケースでは、未特定のエリア内には一括コードPCの一部(C2、C4)しか存在しない。そのため、制御部24は、未特定のエリア内に他の情報コードが存在しないと判断し(S36でNO)、読取処理をエラー終了する。
【0059】
(ケースF;
図10)
図10に示すケースFは、第1エリアR1内に一括コード群PCを構成する4個のコードC1〜C4のうちの一部(即ちコードC2、C4)のみが含まれるケースである。この場合、制御部24は、データをデコードすることができない(S18でNO)。制御部24は、S20以降の処理に進むことなく、読取処理をエラー終了する。
【0060】
以上、本実施例の情報コード読取装置10の構成及び動作について説明した。上記の通り、本実施例では、制御部24は、撮像画像中の第1エリア内の1個以上の情報コードが、一括コード群を構成する複数個の情報コードをすべて含んでいる場合に(
図4のS20でYES)、当該複数個の情報コードを含む第2エリアを特定し(S22)、第2エリアとマーカが重なる場合に(S24でYES)、第2内の一括コード群のデコード結果に対応する一括データを出力する(S26)。即ち、本実施例によると、ユーザが、読取対象媒体を撮像する際に、第2エリアをマーカ光によって指定する場合に、複数個の情報コードのいずれか1個を個別にデコードする処理等の他のデコード処理が行われることなく、第2エリア内の一括コード群のデコード結果に対応する一括データが出力される。従って、本実施例の情報コード読取装置10によると、マーカによって指定される領域内に存在する一括コード群のデコード結果に対応する一括データを適切に出力することができる。
【0061】
また、本実施例では、制御部24は、撮像画像中の第1エリア内の1個以上の情報コードが、一括コード群を構成する複数個の情報コードをすべて含んでいない場合に(S20でNO)、1個以上の情報コードのうちの1個の個別コードを含む第3エリアを特定し(S30)、第3エリアとマーカが重なる場合に(S32でYES)、第3エリア内の個別コードのデコード結果に対応する個別データを出力する(S34)。即ち、この構成によると、ユーザが第3エリアをマーカによって指定する場合に、複数個の情報コードを一括してデコードする処理等の他のデコード処理が行われることなく、第3エリア内の個別コードのデコード結果に対応する個別データが出力される。従って、本実施例では、マーカで指定される領域内に存在する個別コードのデコード結果に対応する個別データも適切に出力することができる。
【0062】
特定された第2エリア(又は第3エリア)にマーカが重なっていないことによってデータが出力されない場合、マーカが第1エリアのうちの未特定のエリアに存在する他の情報コードに重ねられていた可能性がある。本実施例では、制御部24は、特定された第2エリア(又は第3エリア)にマーカが重なっていない場合に(S24でNO又はS32でNO)、第1エリアの未特定のエリア内に情報コードが含まれるか否かを判断する(S36)。そして、未特定のエリア内に情報コードが含まれる場合に(S36でYES)、制御部24は、未特定のエリア内の1個以上の情報コードが、一括コード群を構成する複数個の情報コードをすべて含んでいるか否かを判断する(S20)。従って、本実施例では、情報コード読取装置10は、特定された第2エリア(又は第3エリア)にマーカが重なっていないことによってデータが出力されない場合に、未特定のエリア内に含まれる情報コードに対応するデータを出力し得る。従って、マーカで指定される領域内に存在する情報コードに存在するデータをより適切に出力し得る。
【0063】
本実施例では、情報コード読取装置10はマーカ光照射部16を備え、撮像部12が読取対象画像を撮影する際に、マーカ光照射部16によって読取対象媒体上にマーカ光が照射される。そのため、本実施例では、ユーザがマーカの位置を視覚的に把握し易くなる。そのため、ユーザが、データの出力を希望する領域を適切に指定することができる。
【0064】
本実施例と請求項の記載の対応関係を説明しておく。第1エリア(S14)、第2エリア(S22)、第3エリア(S30)が、それぞれ、「第1の領域」、「第2の領域」、「第3の領域」の一例である。S20の処理が「第1の判断処理」の一例である。S36でYESと判断された後のS20の処理が「第2の判断処理」の一例である。
【0065】
以上、本発明の実施例について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例を採用してもよい。
【0066】
(変形例1)上記の実施例では、制御部24は、撮像画像の全範囲を第1エリアとして特定する。これに限られず、制御部24は、撮像画像のうちの情報コードを含む領域がすべて含まれていれば、撮像画像のうちの任意の範囲を第1エリアとして特定してもよい。
【0067】
(変形例2)上記の実施例では、
図5等に示すように、マーカMの形状は、十字形状のポインタであり、その面積は情報コードの面積よりも小さい。これに限られず、マーカMは、四角枠、円形など、任意の形状であってもよい。また、マーカMの面積も、情報コードの面積以上であってもよい。
【0068】
(変形例3)上記の実施例では、情報コード読取装置10はマーカ光照射部16を備え、撮像部12が読取対象画像を撮影する際に、マーカ光照射部16によって読取対象媒体上にマーカ光が照射される。変形例では、情報コード読取装置10はマーカ光照射部16を備えていなくてもよい。その場合、制御部24は、撮像部12が読取対象画像を撮影する際に、表示部20に、撮像部12が現在撮影している画像(即ち、読取対象媒体)を表示させるとともに、表示部20内の画像にマーカを表わす画像を合成するようにしてもよい。
【0069】
(変形例4)上記の各ケース(
図5〜
図10)では、情報コードはいずれも2次元コードであるが、情報コードはバーコードであってもよい。
【0070】
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。