(57)【要約】【課題】画像付き２次元コードが曲面に形成されている場合でも、画像を精度よく平面画像に変換することができるコード読み取り装置を提供する。【解決手段】コード領域と画像とが組み合わせられており、コード領域には、データコード語と誤り訂正コード語とが記録されている２次元コードである画像付き２次元コードから、データコード語を読み取るコード読み取り装置であって、コード領域に記録されたデータコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部（Ｓ２０）と、データコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部（Ｓ６０）と、補正後のセル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部（Ｓ７０）と、基準点に基づいて定まる分割領域を平面画像に復元する復元処理を行う復元処理部（Ｓ８０）とを備える。【選択図】図３
2020013210.tif 000002
【特許請求の範囲】
【請求項１】
コード領域（１１０）と画像（１２０）とが組み合わせられており、前記コード領域には、複数色のセルによりデータコード語と誤り訂正コード語とが記録されている２次元コードである画像付き２次元コード（１００）から、前記データコード語を読み取るコード読み取り装置であって、
前記画像付き２次元コードを撮像可能な撮像部（２３）と、
前記撮像部によって前記画像付き２次元コードが撮像された場合に、前記コード領域に記録された前記データコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部（Ｓ２０）と、
前記データ読み取り部が前記データコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部（Ｓ６０）と、
補正後の前記セル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部（Ｓ７０）と、
前記基準点に基づいて定まる前記分割領域を平面画像に復元する復元処理を行う復元処理部（Ｓ８０）と、を備えるコード読み取り装置。
【請求項２】
請求項１に記載のコード読み取り装置であって、
前記基準点設定部は、前記画像を挟んで前記コード領域が形成されている場合、前記画像を挟んで前記基準点を設定するコード読み取り装置。
【請求項３】
請求項１または２に記載のコード読み取り装置であって、
前記復元処理部は、画像全体の一部の前記分割領域を前記平面画像に復元するコード読み取り装置。
【請求項４】
請求項１〜３のいずれか１項に記載のコード読み取り装置であって、
前記基準点設定部は、セル座標間の間隔が狭いほど前記基準点間の間隔を狭くするコード読み取り装置。
【請求項５】
請求項２に記載のコード読み取り装置であって、
前記基準点設定部は、前記コード領域において、基準点設定方向が前記全体復元領域の一辺に沿った方向であり、前記基準点設定方向において両隣が他色になっている１つのセルである単独セル（１３４、１３５）が、前記画像を挟んで互いに向かい合う位置に存在している場合、前記単独セルのセル座標を前記基準点に設定するコード読み取り装置。
【請求項６】
請求項５に記載のコード読み取り装置であって、
前記基準点設定部は、前記コード領域において前記画像に近いセルから順に、前記画像から離れる方向に前記単独セルを探索するコード読み取り装置。
【請求項７】
請求項５または６に記載のコード読み取り装置であって、
前記基準点設定部は、前記基準点を決めるためのセルの候補として最初に設定するセルである初回候補セル（１３０）を、前記基準点設定方向において等セル間隔に設定し、前記初回候補セルおよび前記初回候補セルに対して前記基準点設定方向に連続する同色のセルを含む同色セルブロックが誤り訂正されていない場合、前記初回候補セルのセル座標を前記基準点に設定するコード読み取り装置。
【請求項８】
請求項７に記載のコード読み取り装置であって、
前記基準点設定部は、前記初回候補セルを含む前記同色セルブロックが誤り訂正されている場合、前記初回候補セルに対して前記基準点設定方向に隣接するセルを含み前記画像に対して接近離隔方向に延びるセル列を探索範囲（１３３）とし、前記探索範囲を前記画像に近いセルから順に探索し、前記画像を挟んで互いに向かい合う位置に１対の前記単独セルがある場合に、その１対の前記単独セルのセル座標を前記基準点に設定するコード読み取り装置。
【請求項９】
請求項７または８に記載のコード読み取り装置であって、
前記基準点設定部は、前記初回候補セルを含む前記同色セルブロックが誤り訂正されている場合、前記初回候補セルに対して前記基準点設定方向に隣接するセルを含み前記画像に対して接近離隔方向に延びるセル列を探索範囲（１３３）とし、前記探索範囲に、同色セルが基準点設定方向に連結しており、かつ、前記探索範囲内で同色セルの連結が終了しているセルである独立連結セル（１３７、１３８、１３９）が、前記画像を挟んで、前記基準点設定方向において同じ位置にある場合、１対の前記独立連結セルの中心を、前記基準点に設定するコード読み取り装置。
【請求項１０】
請求項７〜９のいずれか１項に記載のコード読み取り装置であって、
前記基準点設定部は、前記初回候補セルを含む前記同色セルブロックが誤り訂正されている場合、前記初回候補セルを含み前記画像に対して接近離隔方向に延びるセル列に、相互に１列ずれて存在している２つのエッジであって、２つのエッジ間が１セル分である段差エッジ（１４０）がある場合、前記基準点設定方向において２つのエッジの中間に前記基準点を設定するコード読み取り装置。
【請求項１１】
コード領域（１１０）と画像（１２０）とが組み合わせられており、前記コード領域には、複数色のセルによりデータコード語と誤り訂正コード語とが記録されている２次元コードである画像付き２次元コード（１００）から、前記データコード語を読み取るために、前記画像付き２次元コードを撮像可能な撮像部（２３）と、コンピュータ（４０）とを備えたコード読み取り装置において、前記コンピュータを、  
前記撮像部によって前記画像付き２次元コードが撮像された場合に、前記コード領域に記録された前記データコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部（Ｓ２０）と、
前記データ読み取り部が前記データコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部（Ｓ６０）と、
補正後の前記セル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部（Ｓ７０）と、
前記基準点に基づいて定まる前記分割領域を平面画像に復元する復元処理を行う復元処理部（Ｓ８０）として機能させるためのコード読み取りプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
コード読み取り装置およびコード読み取りプログラムに関し、特に、２次元コードとともに示された画像の歪みを補正する機能を備えた装置およびプログラムに関する。
【背景技術】
【０００２】
特許文献１に、２次元コード内に付された画像を読み取り装置で利用する技術が開示されている。特許文献１に開示されている２次元コードは、全体として正方形状であり、２次元コードの中央部分に画像領域が形成されている。特許文献１には、画像領域に対して、画像領域の４隅を特定して正規化することも開示されている。正規化された後の画像は、パターンマッチングなどに用いられる。
【０００３】
なお、画像領域が２次元コードの中央にある場合に以外に、１対の長方形状のコード領域に画像領域が挟まれている２次元コードも知られている。以下では、コード領域と画像とが組み合わせられている２次元コードを、画像付き２次元コードとする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１６８１３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
画像全体の４隅を特定して正規化する技術は、画像の１対の隅間を直線とみなしており、その１対の隅間の距離を変更するだけである。一方、画像付き２次元コードが曲面に形成されている場合、画像の１対の隅間は、平面であれば直線であっても、撮像された画像では曲線である。
【０００６】
したがって、画像付き２次元コードが曲面に形成されている場合、画像全体の４隅を特定して正規化するだけでは、正規化後の画像は、正しい平面画像とは大きく異なった画像になってしまう可能性がある。
【０００７】
本開示は、この事情に基づいて成されたものであり、その目的とするところは、画像付き２次元コードが曲面に形成されている場合でも、画像を精度よく平面画像に変換することができるコード読み取り装置、および、コード読み取りプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的は独立請求項に記載の特徴の組み合わせにより達成され、また、下位請求項は更なる有利な具体例を規定する。特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、開示した技術的範囲を限定するものではない。
【０００９】
上記目的を達成するためのコード読み取り装置は、コード領域（１１０）と画像（１２０）とが組み合わせられており、コード領域には、複数色のセルによりデータコード語と誤り訂正コード語とが記録されている２次元コードである画像付き２次元コード（１００）から、データコード語を読み取るコード読み取り装置であって、
画像付き２次元コードを撮像可能な撮像部（２３）と、
撮像部によって画像付き２次元コードが撮像された場合に、コード領域に記録されたデータコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部（Ｓ２０）と、
データ読み取り部がデータコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部（Ｓ６０）と、
補正後のセル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部（Ｓ７０）と、
基準点に基づいて定まる分割領域を平面画像に復元する復元処理を行う復元処理部（Ｓ８０）と、を備える。
【００１０】
データ読み取り部によりデータコード語の読み取りができたとき、２次元コードは各列のセルの配列が判別できたことになる。そして、セルの配列が定まると、セルの配列を、画像付き２次元コードを撮像した画像（以下、コード撮像画像）を画像解析することで抽出できるセル配列と照らし合わせることで、コード撮像画像におけるセルの座標を補正することができる。
【００１１】
そして、補正後のセル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する。このようにして基準点を設定することから、画像付き２次元コードが曲面に形成されていても、画像付き２次元コードが平面にあるときの基準点の間隔が分かる。したがって、このようにして基準点を設定することで、復元処理では、分割領域の基準点を、画像付き２次元コードが平面にあるときの位置に精度よく戻すことができる。
【００１２】
しかも、この復元処理では、画像全体を含む基準点を設定して画像を復元するのではなく、画像を分割した分割領域を対象として復元処理を行う。２次元コードが曲面に形成されていることにより、平面画像では直線である線が曲線になっているとしても、分割領域とすることで、各分割領域に含まれる曲線は、画像全体よりは、元の直線に対する歪みが少ない曲線になっている。
【００１３】
これらのことから、セル座標に基づいて分割領域の基準点を設定し、分割領域を単位として復元処理をすることで、画像付き２次元コードが曲面に形成されている場合でも、画像を精度よく平面画像に戻すことができる。
【００１４】
請求項２に記載のコード読み取り装置では、基準点設定部は、画像を挟んでコード領域が形成されている場合、画像を挟んで基準点を設定する。
【００１５】
このようにすることで、コード撮像画像が、画像付き２次元コードを斜めから撮像した画像であっても、分割領域の基準となる各基準点を、画像付き２次元コードを平面としたときの座標に正しく対応させることができる。
【００１６】
請求項３に記載のコード読み取り装置では、復元処理部は、画像全体の一部の分割領域を平面画像に復元する。
【００１７】
画像全体の一部の分割領域を平面画像に復元すれば、画像全部を複数の分割領域に分割して、全部の分割領域を平面画像に復元するよりも、復元処理時間を短くすることができる。
【００１８】
請求項４に記載のコード読み取り装置では、基準点設定部は、セル座標間の間隔が狭いほど基準点間の間隔を狭くする。
【００１９】
撮影された画像において、セル座標間の間隔が狭い部分は、セル座標間の間隔が広い部分に比較して、平面画像に対する歪みが大きい部分である。しかし、セル座標間の間隔が狭いほど基準点間の間隔を狭くすれば、歪みが大きい部分に対して、相対的に小さい分割領域を設定できる。よって、一定間隔で基準点を設定するよりも、精度のよい平面画像を復元することができる。
【００２０】
請求項５に記載のコード読み取り装置では、基準点設定部は、コード領域において、基準点設定方向が全体復元領域の一辺に沿った方向であり、基準点設定方向において両隣が他色になっている１つのセルである単独セル（１３３、１３４）が、画像を挟んで互いに向かい合う位置に存在している場合、単独セルのセル座標を基準点に設定する。
【００２１】
単独セルのセル座標を基準点とすることで基準点を精度よく決めることができ、その結果、平面画像の復元精度が向上する。
【００２２】
請求項６に記載のコード読み取り装置では、基準点設定部は、コード領域において画像に近いセルから順に、画像から離れる方向に単独セルを探索する。
【００２３】
画像に近い側にある単独セルを基準点を設定することになるので、分割領域を小さくすることができる。
【００２４】
請求項７に記載のコード読み取り装置では、基準点設定部は、基準点を決めるためのセルの候補として最初に設定するセルである初回候補セル（１３０）を、基準点設定方向において等セル間隔に設定し、初回候補セルおよび初回候補セルに対して基準点設定方向に連続する同色のセルを含む同色セルブロックが誤り訂正されていない場合、初回候補セルのセル座標を基準点に設定する。
【００２５】
このようにすれば、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に設定できる。
【００２６】
請求項８に記載のコード読み取り装置では、基準点設定部は、初回候補セルを含む同色セルブロックが誤り訂正されている場合、初回候補セルに対して基準点設定方向に隣接するセルを含み画像に対して接近離隔方向に延びるセル列を探索範囲（１３３）とし、探索範囲を画像に近いセルから順に探索し、画像を挟んで互いに向かい合う位置に１対の単独セルがある場合に、その１対の単独セルのセル座標を基準点に設定する。
【００２７】
このようにすれば、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。
【００２８】
請求項９に記載のコード読み取り装置では、基準点設定部は、初回候補セルを含む同色セルブロックが誤り訂正されている場合、初回候補セルに対して基準点設定方向に隣接するセルを含み画像に対して接近離隔方向に延びるセル列を探索範囲（１３３）とし、探索範囲に、同色セルが基準点設定方向に連結しており、かつ、探索範囲内で同色セルの連結が終了しているセルである独立連結セル（１３７、１３８、１３９）が、画像を挟んで、基準点設定方向において同じ位置にある場合、その１対の独立連結セルの中心を、基準点に設定する。
【００２９】
このようにしても、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。
【００３０】
請求項１０に記載のコード読み取り装置では、基準点設定部は、初回候補セルを含む同色セルブロックが誤り訂正されている場合、初回候補セルを含み画像に対して接近離隔方向に延びるセル列に、相互に１列ずれて存在している２つのエッジであって、２つのエッジ間が１セル分である段差エッジ（１４０）がある場合、基準点設定方向において２つのエッジの中間に基準点を設定する。
【００３１】
このようにすれば、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点設定方向における基準点間の距離を等間隔に設定できる。
【００３２】
請求項１１に記載のコード読み取りプログラムは、請求項１のコード読み取り装置が備えるプログラムである。すなわち、コード読み取りプログラムは、
コード領域（１１０）と画像（１２０）とが組み合わせられており、コード領域には、複数色のセルによりデータコード語と誤り訂正コード語とが記録されている２次元コードである画像付き２次元コード（１００）から、データコード語を読み取るために、画像付き２次元コードを撮像可能な撮像部（２３）と、コンピュータ（４０）とを備えたコード読み取り装置において、コンピュータを、  
撮像部によって画像付き２次元コードが撮像された場合に、コード領域に記録されたデータコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部（Ｓ２０）と、
データ読み取り部がデータコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部（Ｓ６０）と、
補正後のセル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部（Ｓ７０）と、
基準点に基づいて定まる分割領域を平面画像に復元する復元処理を行う復元処理部（Ｓ８０）として機能させるためのコード読み取りプログラムである。
【図面の簡単な説明】
【００３３】
【図１】実施形態となるコード読み取り装置１０の機械的構成を示すブロック図である。
【図２】画像付き２次元コード１００を撮像したコード撮像画像の一例を示す図である。
【図３】制御回路４０が実行する画像復元処理を示すフローチャートである。
【図４】湾曲の検出方法の一例を説明する図である。
【図５】図３のＳ７０の基準点設定処理を詳しく示すフローチャートである。
【図６】図５のＳ７２で設定する初回候補セル１３０を説明する図である。
【図７】図５のＳ７４で実行する基準セル変更処理を詳しく示すフローチャートである。
【図８】Ｓ７４１において単独セルを探索する探索範囲１３３を例示する図である。
【図９】図７のＳ７４５で拡大した後の探索範囲１３３を例示する図である。
【図１０】図７のＳ７４７で探索する１対の独立連結セルを例示する図である。
【図１１】図７のＳ７４７で探索する１セル分の段差エッジ１４０を例示する図である。
【図１２】図３のＳ８０の湾曲復元処理を詳しく示すフローチャートである。
【図１３】図１２のＳ８１で作成する分割領域１５０の一例を示す図である。
【図１４】図２に示す画像１２０を復元した平面復元画像を示す図である。
【図１５】実施形態とは異なる画像付き２次元コード２００を示す図である。
【図１６】画像付き２次元コード１００が円筒体２５０に表されている状態を示す図である。
【図１７】図１６の画像付き２次元コード１００の部分の拡大図である。
【図１８】画像付き２次元コード３００を示す図である。
【図１９】画像付き２次元コード４００を示す図である。
【図２０】画像付き２次元コード５００を示す図である。
【発明を実施するための形態】
【００３４】
以下、実施形態を図面に基づいて説明する。図１は、実施形態となるコード読み取り装置１０の機械的構成を示すブロック図である。なお、外見は省略しているが、このコード読み取り装置１０は携帯型である。コード読み取り装置１０は、２次元コードに記録されているデータコード語を光学的に読み取る装置である。
【００３５】
［機械的構成の説明］
回路部２０は、図示しないハウジング内に収容されている。この回路部２０は、主に、光学系とコンピュータ系と電源系とから構成されている。光学系は、マーカ光投射器６０、発光ダイオード２１、受光センサ２３、結像レンズ２７等から構成されている。
【００３６】
発光ダイオード２１は、ハウジング本体の読取口（図示せず）を介して読み取り面Ｒに向けて照明光Ｌｆを照射可能に構成されている。受光センサ２３は、撮像部の一例であり、読み取り面Ｒに照射された照明光Ｌｆが反射して生じた反射光Ｌｒを受光可能に構成される。例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を数１０万から数１００万個オーダでｍ行ｎ列の２次元に配列して構成されている。受光素子は、受光した光を電気信号に変換して出力する。
【００３７】
この受光センサ２３の受光面２３ａは、ハウジング本体外から上述の読取口を介して外観可能に位置しており、受光センサ２３は、結像レンズ２７を介して入射する入射光をこの受光面２３ａで受光可能に配置されている。
【００３８】
結像レンズ２７は、外部から読取口を介して入射する入射光を集光して受光センサ２３の受光面２３ａに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。発光ダイオード２１から照射された照明光Ｌｆが読み取り面Ｒに反射して読取口に入射する反射光Ｌｒは、結像レンズ２７により集光され、これにより、受光センサ２３の受光面２３ａにコード像が結像する。マーカ光投射器６０は、２次元コードの読み取り範囲を示すマーカ光Ｍを読み取り面Ｒに投射する。
【００３９】
次に、コンピュータ系の構成概要を説明する。コンピュータ系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、無線通信部４７、通信インタフェース４８等から構成されている。このコンピュータ系は、前述した光学系によって撮像されたコード像の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路４０は、コード読み取り装置１０の全体システムに関する制御も行っている。
【００４０】
光学系の受光センサ２３から出力される画像信号（アナログ信号）は、増幅回路３１に入力されて所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されて、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データは、メモリ３５に入力されて蓄積される。なお、同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されている。また、アドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００４１】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭがこれに相当する。ＲＯＭには、画像処理プログラム、コード読み取りプログラムの他、マーカ光投射器６０、発光ダイオード２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００４２】
制御回路４０は、コード読み取り装置１０全体を制御可能なコンピュータであり、ＣＰＵ、システムバス、入出力インタフェース等からなる。この制御回路４０は、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）と接続可能に構成されている。また、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８、マーカ光投射器６０等が制御回路４０に接続されている。
【００４３】
この制御回路４０は、例えば、２次元コードのデコード処理、および２次元コードが備えている画像の復元処理を行う。その他にも、電源スイッチ４１や操作スイッチ４２の監視や管理、ＬＥＤ４３の点消灯、ブザー４４の鳴動のオンオフ、液晶表示器４６の画面制御、通信インタフェース４８の通信制御、マーカ光投射器６０からのマーカ光Ｍの投射制御等を行う。
【００４４】
電源系は、電源スイッチ４１、電池４９等により構成されており、制御回路４０により管理される電源スイッチ４１のオンオフによって、上述した各装置や各回路に、電池４９から供給される駆動電圧の導通や遮断が制御されている。
【００４５】
［画像付き２次元コード１００の説明］
コード読み取り装置１０は種々の２次元コードが読み取り可能であり、図２に示す画像付き２次元コード１００を読み取ることもできる。図２に示す画像付き２次元コード１００は、フレームＱＲと呼ばれる２次元コードである。フレームＱＲは登録商標である。
【００４６】
図２に示す画像付き２次元コード１００は、本来の形状は正方形である。しかし、図２では湾曲した形状になっている。この理由は、図２は、円柱状の曲面に形成された画像付き２次元コード１００を撮像したものだからである。
【００４７】
画像付き２次元コード１００は、四角枠形状にコード領域１１０が形成されており、このコード領域１１０と画像１２０とが組み合わせられたコードである。画像１２０は、四角枠形状のコード領域１１０の内側に配置されている。
【００４８】
コード領域１１０には、明セルと暗セルとがそれぞれ多数配置されており、明セルと暗セルにより、種々の規定パターン、データコード語、誤り訂正コード語が符号表現される。一方、画像１２０は、符号を読み取る必要がない部分である。
【００４９】
規定パターンには、位置検出パターン１１１などがある。位置検出パターン１１１の周囲には、フォーマット情報を記録する領域がある。コード領域１１０において、データコード語が記録される部分と、誤り訂正コード語が記録される部分は、規格等により予め定められている。フォーマットが分かれば、データコード語が記録される部分と、誤り訂正コード語が記録される部分がどこであるかは決定可能である。この画像付き２次元コード１００のコード領域１１０の生成方法は、特許文献１に記載された方法と同じ方法を採用することができる。
【００５０】
本実施形態のコード読み取り装置１０は、コード読み取りプログラムを実行することで、コード領域１１０に記録されているデータコード語を読み取ることに加えて、画像１２０の歪みを補正する機能を備える。画像１２０の歪みを補正する機能は特許文献１にも開示されている。しかし、本実施形態のコード読み取り装置１０は、円筒面などの曲面に画像付き２次元コード１００が形成されている場合に、特許文献１に開示されている画像補正処理よりも、歪みの少ない復元画像を得ることができる。以下、本実施形態のコード読み取り装置１０が行う画像復元処理について説明する。
【００５１】
［画像復元処理の説明］
図３に、制御回路４０が実行する画像復元処理を示す。ステップ（以下、ステップを省略）Ｓ１０では、画像付き２次元コード１００を含む画像を撮像する。Ｓ２０はデータ読み取り部としての処理であり、データ読み取り処理を行う。データ読み取り処理は、Ｓ１０で撮像した画像からコード領域１１０を特定し、そのコード領域１１０からデータコード語を読み取る処理である。コード領域１１０からデータコード語を読み取る処理は、特許文献１に記載された処理と同じ処理である。ここでは、画像復元処理に関連する部分を中心に、データ読み取り処理を説明する。
【００５２】
データ読み取り処理では、コード領域１１０の湾曲を検出しており、湾曲に応じてセルの配列方向を推定する。湾曲の検出方法の一例を図４に示す。図４に示す例では、位置検出パターン１１１において、画像付き２次元コード１００の同一の外辺上の点となる４つの頂点１１２ａ、１１２ｂ、１１２ｃ、１１２ｄを決定する。これら４つの頂点を通る線の中点１１３と、両端の頂点１１２ａ、１１２ｄを通る直線の中点１１４との差ｄを求める。この差ｄが大きいほどコード領域１１０の湾曲が大きいとする。
【００５３】
このようにして検出した湾曲になるように各列のセルが配列しているとして、各列の明暗を検出する。セルの明暗の変化は、Ｓ１０で撮像した画像をエッジ検出することで決定する。また、撮像した画像における各セルの大きさは、撮像した画像における画像付き２次元コード１００の全体の大きさと、フォーマット情報から決定できる１辺のセル数から計算する。
【００５４】
また、データ読み取り処理では、データコード語を正しく読み取るために、誤り訂正処理を行う。誤り訂正処理は、誤り訂正コード語を用いた演算を行って、復号できなかったシンボルキャラクタや間違って復号したシンボルキャラクタを訂正する処理である。なお、誤り訂正コード語は、たとえばリード・ソロモン符号であり、データコード語から生成する。
【００５５】
Ｓ３０では、Ｓ２０でのデータ読み取り処理の結果が、読み取り成功であったか否かを判断する。読み取り成功である場合、誤り訂正処理により、データコード語が正しく復元されたことになる。Ｓ３０の判断がＹＥＳであればＳ４０に進む。一方、Ｓ３０の判断がＮＯであればＳ１０に戻り、撮像をやり直す。
【００５６】
Ｓ４０では、Ｓ１０で撮像した画像付き２次元コード１００が湾曲しているか否かを判断する。Ｓ２０で実行するデータ読み取り処理では、コード領域１１０の湾曲を検出しているので、このＳ４０ではＳ２０での検出結果に基づいて判断を行う。たとえば、図４に示す差ｄの大きさに基づいて、Ｓ１０で撮像した画像付き２次元コード１００が湾曲しているか否かを判断する。Ｓ４０の判断がＮＯであればＳ５０へ進み、ＹＥＳであればＳ６０へ進む。
【００５７】
Ｓ５０では平面復元処理を行う。平面復元処理では、まず、画像１２０の全体を含む全体復元領域の頂点を特定する。ここでの頂点は、コード領域１１０において、画像１２０との境界となる四角枠の各頂点であり、頂点により囲まれる領域が全体復元領域である。
【００５８】
頂点を特定した後は、複数の頂点間の間隔が、フォーマットにより定まる規定の頂点間の間隔になるように全体復元領域の形状を変換する。変換処理には、たとえば、射影変換処理を用いる。射影変換処理を用いて画像を変換する処理は特許文献１にも開示されている。
【００５９】
Ｓ６０はセル座標補正部としての処理であり、セル座標補正を行う。セル座標補正は、各セルの中心座標を補正する処理である。セル座標補正を行う理由は次の通りである。Ｓ１０で撮像した画像付き２次元コード１００が湾曲している場合、同じセル列内のセルであっても画像上の大きさは異なる。たとえば、図２に示している画像付き２次元コード１００では、図左右方向の正面から離れたセルほど、画像上でのサイズは小さくなっている。
【００６０】
したがって、１セル列の長さを、フォーマット情報から決定した１セル列のセル数で割った長さを、単純に１セルの長さとするだけでは、画像上での各セルの大きさを正しく決定することができない。その結果、画像解析結果から決定できる明セルおよび暗セルが、何セル分であるかを正しく決定できない。
【００６１】
しかし、誤り訂正処理を含んでいるデータ読み取り処理により読み取りが成功した場合には、データコード領域のセルの配列が決定できていることになる。加えて、フォーマット情報から、画像付き２次元コード１００のセル数、規定パターンの位置も決定できる。さらに、誤り訂正コード語は、データコード語から生成することができる。これらのことから、読み取りに成功している場合、コード領域１１０の全てのセルの明暗が決定できることになる。
【００６２】
そこで、読み取り結果から定まる各セル列の明セルおよび暗セルの配列を、画像解析結果から決定できる各セル列の明セルおよび暗セルの配列に当てはめる。これにより、画像解析結果から決定できる各セル列の明セルおよび暗セルが、何セルの連続であるかが決定できる。この決定結果をもとに、画像上での各セルの中心座標を再決定する。この処理がセル座標補正である。
【００６３】
Ｓ７０で基準点設定部としての処理であり、基準点設定処理を行う。基準点は、画像１２０の全体を含む全体復元領域を分割した分割領域を定める点である。基準点設定処理は、詳しくは、図５に示す処理である。
【００６４】
図５において、Ｓ７１では湾曲方向を推定する。図２の例では、画像の左右方向が湾曲している方向であり、上下方向は湾曲していない。湾曲方向を推定するために、図４に示す差ｄを、画像付き２次元コード１００において、互いに同じ辺に位置する２つの位置検出パターン１１１について算出する。図２の例では、左右方向に並んだ２つの位置検出パターン１１１および上下方向に並んだ２つの位置検出パターンのそれぞれに対して差ｄを算出する。そして、その差ｄが相対的に大きい側を湾曲方向とする。
【００６５】
続くＳ７２では、セル中心が基準点となるセルである基準セルの候補として、初回候補セル１３０を設定する。初回候補セル１３０は、全体復元領域を定める図６に示す四角枠１３２において、湾曲方向に沿った方向に等間隔に並んだセルである。
【００６６】
図６は、初回候補セル１３０を説明するための図であり、図示の便宜上、湾曲していない状態で画像付き２次元コード１００を示し、また、説明に不要な部分は省略している。また、図６では、初回候補セル１３０の位置を黒色の四角で示しているが、これは、初回候補セル１３０の位置を示すものに過ぎず、暗セルを意味している訳ではない。図６では、コード領域１１０内のセルの色は示していない。
【００６７】
四角枠１３２は、セルの結合により形成され、画像１２０を含むように定められる。本実施形態では、四角枠１３２は、具体的には、画像１２０に隣接するセルにより形成される。初回候補セル１３０は、四角枠１３２において、湾曲方向に沿った方向となる一対の辺に、互いに対向するように設定される。初回候補セル１３０の間隔は、図６では４セル間隔としているが、３セル以下の間隔でもよい。また、５セル以上でもよい。初回候補セル１３０の間隔が狭いと、平面復元画像が、正しい平面画像に近い画像になる利点があるが、処理が煩雑になる。反対に、初回候補セル１３０の間隔が広いと、処理は簡単になるが、平面復元画像に湾曲の影響が残る程度が増加する。これらを考慮して初回候補セル１３０の間隔を決定する。
【００６８】
Ｓ７３では、初回候補セル１３０と、その初回候補セル１３０に対して基準点設定方向に連続する同色のセルを含む同色セルブロックに対して誤り訂正がされているか否かを判断する。この同色セルブロックに含まれる少なくとも１つのセルが誤り訂正されている場合、Ｓ７３の判断はＹＥＳになり、この同色セルブロックに含まれる全てのセルが誤り訂正されていない場合、Ｓ７３の判断がＮＯになる。
【００６９】
Ｓ７３の判断は、初回候補セル１３０ごとに行う。Ｓ７３の判断がＮＯであれば図５の処理を終了し、図３のＳ８０に進む。この場合、Ｓ７２で設定した初回候補セル１３０がそのまま基準セルになり、基準セルのセル中心を基準点とする。
【００７０】
図６において、×印を付しているセルが誤り訂正されているセルである。上側の左から３番目の初回候補セル１３０に×印が付されている。したがって、図６の例では、上側の左から３番目の初回候補セル１３０についてはＳ７３の判断がＹＥＳになる。Ｓ７３の判断がＹＥＳであればＳ７４に進む。
【００７１】
Ｓ７４では基準セル変更処理を行う。基準セル変更処理は、詳しくは図７に示す処理である。図７において、Ｓ７４１では、初回候補セル１３０がある列を画像１２０から離隔する方向に、画像１２０側から順に、単独セルがあるか否かを探索する。
【００７２】
図８に、Ｓ７４１において単独セルを探索する探索範囲１３３を例示する。図８の例では、誤り訂正された同色セルブロックに含まれている初回候補セル１３０が画像１２０の上側にあるため、その初回候補セル１３０がある列を画像１２０から離隔する方向に延びる探索範囲１３３は、画像１２０から上方向に延びている。
【００７３】
単独セルは、基準点設定方向において両隣が他色になっている１つのセルである。図８には、いくつかの暗セルと明セルを示している。図８において、探索範囲１３３内には、暗セルである単独セル１３４および明セルである単独セル１３５が存在する。
【００７４】
Ｓ７２４では、探索の結果、単独セルがあったか否かを判断する。Ｓ７２４の判断がＹＥＳであればＳ７４３に進む。Ｓ７４３では、探索できた単独セルに対して、画像１２０を挟んで対向する位置に基準セルが設定されているか否かを判断する。図８の例では、画像１２０の下側に設定されている初回候補セル１３０は、いずれも、誤り訂正されていないことから、そのまま基準セルになる。したがって、図８の例において、上側の左から３番目の初回候補セル１３０に対して図７の処理が実行された場合、Ｓ７４３の判断はＹＥＳになる。Ｓ７４３の判断がＹＥＳであればＳ７４４に進む。Ｓ７４４では、Ｓ７４１で探索できた単独セルのセル中心を基準点とする。
【００７５】
Ｓ７４２の判断がＮＯである場合、および、Ｓ７４３の判断がＮＯである場合には、Ｓ７４５に進む。Ｓ７４５では、探索範囲１３３を基準点設定方向の両側に拡張する。図９には、拡大後の探索範囲１３３を例示している。図９に示す探索範囲１３３は、初回候補セル１３０に対して基準点設定方向に隣接するセルを含み画像１２０に対して接近離隔方向に延びるセル列である。
【００７６】
また、図９に示すように、Ｓ７４５を実行する場合には、画像１２０を基準にして、Ｓ７４１で設定した探索範囲１３３とは反対側についても探索範囲１３３を設定する。そして、１対の探索範囲１３３について、Ｓ７４１と同様に単独セルを探索する。
【００７７】
図９に示す例は、図８とは異なるセルパターンである。図６、図８と同様、コード領域１１０内のセルの色は示していない。ただし、一点鎖線で囲んだセル色明示範囲１３６については、セルの色を示している。
【００７８】
Ｓ７４６では、画像１２０を挟んで一対の単独セルが検出できたか否かを判断する。図９の例では、探索範囲１３３において、図８に対して右側に拡張された部分に、一対の単独セルが検出できている。
【００７９】
Ｓ７４６の判断がＹＥＳであればＳ７４４に進み、Ｓ７４４において、Ｓ７４３での探索の結果、抽出した一対の単独セルのセル中心を基準点とする。Ｓ７４６の判断がＮＯであればＳ７４７に進む。
【００８０】
Ｓ７４７では、探索範囲１３３に１対の独立連結セルがあるか否かを判断する。独立連結セルは、同色セルが基準点設定方向に連結している複数のセル（以下、連結セル）であり、かつ、探索範囲１３３内で同色セルの連結が終了している連結セルである。画像１２０を挟んで基準点設定方向において同じ位置に同じセル数の独立連結セルがある場合、１対の独立連結セルがあるとする。
【００８１】
図１０には、図９とは異なるセルパターンであり、拡張された探索範囲１３３に１対の単独セルはないが、１対の独立連結セルがある例を示している。図１０の例では、暗セルが３つ連結した独立連結セル１３７、暗セルが２つ連結した独立連結セル１３８、明セルが２つ連結した独立連結セル１３９が、上下両側の探索範囲１３３にそれぞれ１対存在している。
【００８２】
Ｓ７４７の判断がＹＥＳであればＳ７４８に進む。Ｓ７４８では、Ｓ７４７で検出した１対の独立連結セルの中心を基準点に決定する。たとえば、暗セルが３つ連結した独立連結セル１３７であれば、その３つの暗セルの中心を基準点に決定する。
【００８３】
Ｓ７４７の判断がＮＯであればＳ７４９に進む。Ｓ７４９では、誤り訂正がされていることにより基準セルに採用されなかった初回候補セル１３０を含み、画像１２０に対して接近離隔する方向の列に、１セル分の段差エッジがあるか否かを判断する。エッジは、撮像画像の輝度値が急峻に変化する点であり、明セルと暗セルの境界である。段差エッジは、１組のエッジであって、その１組のエッジが同一列ではなく、１列ずれて存在しているものを意味する。１セル分の段差エッジは、１組の段差エッジ間が１セル分であることを意味する。
【００８４】
１組の段差エッジ間が１セル分であるか否かは、コード読み取り結果と、エッジの位置の比較から決定する。具体的には、データ読み取り処理により得られたセル種類の配列とエッジの位置とから、エッジが、基準点設定方向において端からそれぞれ何セル目と何セル目の境界であるかを求める。この境界の位置が１セル分ずれている場合に、１組の段差エッジ間が１セル分であるとする。
【００８５】
図１１には、図９、図１０とは異なるセルパターンであり、拡張された探索範囲１３３に、１対の単独セルおよび１対の独立連結セルはないが、１セル分の段差エッジ１４０がある例を示している。図１１において、セル色明示範囲１３６に、２つのエッジ１４１、１４２が示されている。エッジ１４１は画像１２０から数えて３列目に存在しており、エッジ１４２は画像１２０から数えて４列目に存在している。
【００８６】
Ｓ７４９の判断がＹＥＳであればＳ７５０に進む。Ｓ７５０では、Ｓ７４９で検出した１セル分の段差エッジ１４０を構成する２つのエッジ１４１、１４２の基準点設定方向の位置の中点を、基準点の基準点設定方向の座標とする。基準点の、基準点設定方向に直交する方向の座標は、段差エッジ１４０に含まれる座標であればよい。たとえば、エッジ１４１により定まるセルの中心、エッジ１４２により定まるセルの中心、これら２つのセルの境界のいずれかを、基準点の、基準点設定方向に直交する方向の座標とする。
【００８７】
Ｓ７４９の判断がＮＯである場合、Ｓ７４４、Ｓ７４８、Ｓ７５０のいずれかを実行した場合には図７の処理を終了する。図７の処理を終了することで図５の処理も終了することになるので、図３のＳ８０に進む。
【００８８】
図３のＳ８０は復元処理部としての処理であり、湾曲復元処理を実行する。湾曲復元処理は、画像１２０が湾曲している場合に、その画像１２０を平面画像に復元する処理である。Ｓ８０の湾曲復元処理あるいはＳ５０の平面復元処理を実行して得た画像を、平面復元画像とする。湾曲復元処理は、詳しくは図１２に示す処理である。
【００８９】
図１２において、Ｓ８１では、分割領域１５０を作成する。分割領域１５０は、Ｓ７０の基準点設定処理で設定した基準点を４つの頂点とする四角形の領域である。図１３に、分割領域１５０の一例を示している。なお、図１３に示す画像付き２次元コード１００では、分割領域１５０の説明に不要な要素は省略している。図１３には、基準点１５１が、画像１２０を挟んで上下に８つずつ設定されており、分割領域１５０は７つ形成されている。分割領域１５０は、画像１２０の一方の側において互いに隣接する２つの基準点１５１と、その２つの基準点１５１と画像１２０を挟んで対向する、互いに隣接する２つの基準点１５１を４つの頂点とする四角形の領域である。なお、これら分割領域１５０を全部組み合わせた領域が全体復元領域である。
【００９０】
Ｓ８２では、Ｓ８１で作成した分割領域１５０を１つずつ射影変換する。これにより、分割領域１５０は、各頂点がデータ読み取り処理で得たセルの配列から定まる、分割領域１５０を正面から見た形状に変換される。本実施形態では、変換後の形状は長方形であるので、変換後の分割領域１５０を長方形領域とする。
【００９１】
Ｓ８３では、全部の分割領域１５０を変換したか否かを判断する。この判断がＮＯであればＳ８２に戻り、まだ変換していない分割領域１５０を長方形領域に変換する。Ｓ８３の判断がＹＥＳになった場合、Ｓ８４に進む。
【００９２】
Ｓ８４では、全部の長方形領域を合成する。これにより平面復元画像が作成できる。図１４には、図２に示す画像１２０を、このようにして復元した平面復元画像を示している。
【００９３】
説明を図３に戻す。Ｓ５０またはＳ８０を実行後はＳ９０に進む。Ｓ９０では、Ｓ５０またはＳ８０で作成した平面復元画像を出力する。出力先は、画面、紙、他の処理装置などである。
【００９４】
［実施形態のまとめ］
データ読み取り処理（Ｓ２０）によりデータコード語の読み取りができたとき（Ｓ３０：ＹＥＳ）、画像付き２次元コード１００は各列のセルの配列が判別できたことになる。そして、セルの配列が定まると、セルの配列を、Ｓ１０で撮像したコード撮像画像を画像解析することで抽出できるセル配列と照らし合わせることで、コード撮像画像におけるセルの座標を補正することができる（Ｓ６０）。
【００９５】
そして、補正後のセル座標に基づいて、画像１２０の全体を含む全体復元領域を分割した分割領域１５０を定める点になる基準点１５１を設定する。このようにして基準点１５１を設定することから、画像付き２次元コード１００が曲面に形成されていても、画像付き２次元コード１００が平面にあるときの基準点１５１の間隔が分かる。したがって、このようにして基準点１５１を設定することで、湾曲復元処理（Ｓ８０）では、分割領域１５０の基準点１５１を、画像付き２次元コード１００が平面にあるときの位置に精度よく戻すことができる。
【００９６】
しかも、湾曲復元処理（Ｓ８０）では、画像１２０の全体を含む基準点１５１を設定して画像１２０を復元するのではなく、画像１２０を分割した分割領域１５０ごと復元処理を行う。したがって、画像付き２次元コード１００が曲面に形成されていることにより、平面画像では直線である線が曲線になっているとしても、その曲線は、画像１２０の全体を含む全体復元領域よりは分割領域１５０のほうが直線との乖離が少ない。そのため、分割領域１５０に含まれる基準点設定方向のセル列を、精度よく歪みの少ない配列に戻すことができる。よって、分割領域１５０を正面から見た画像に戻した長方形領域を合成して得られる平面復元画像は、画像１２０が精度よく平面画像に変換された画像になる。
【００９７】
また、基準点１５１を、画像１２０を挟んで設定しているので、画像１２０が斜め方向から撮像されている場合でも、分割領域１５０の各頂点を、画像付き２次元コード１００を平面としたときの座標に正しく対応させることができる。
【００９８】
また、基準点１５１として、画像１２０を挟んで互いに向かい合う位置にある単独セル１３４、１３５のセル座標を設定するので、精度のよい基準点１５１を設定することができ、その結果、平面画像の復元精度が向上する。
【００９９】
また、単独セル１３４、１３５を、画像１２０に近い側から順に探索するので、基準点１５１を画像１２０に近い位置に決定でき、その結果、分割領域１５０を小さくすることができる。
【０１００】
また、初回候補セル１３０を基準点設定方向において等間隔に設定しつつ、かつ、初回候補セル１３０を含む同色セルブロックが誤り訂正されている場合には、基準セルを変更する。これにより、誤った位置を基準点１５１に設定してしまうことを抑制しつつ、基準点１５１を等間隔に設定できる。
【０１０１】
また、初回候補セル１３０を基準セルに設定しない場合、探索範囲１３３を、基準点設定方向に隣接するセル列に拡張して１対の単独セルを基準セルに設定する。この処理によって、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。
【０１０２】
また、初回候補セル１３０を基準セルに設定しない場合、探索範囲１３３に１対の独立連結セルを探索し、独立連結セルの中心を基準点に設定することもできる。この処理によっても、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。
【０１０３】
また、初回候補セル１３０を基準セルに設定しない場合、初回候補セル１３０と同じセル列に、１セル分の段差エッジ１４０があれば、その段差エッジ１４０が備える２つのエッジ１４１、１４２間を１セルと見たて、基準点を設定することもできる。この処理によって、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点設定方向における基準点間の距離を等間隔に設定できる。
【０１０４】
以上、実施形態を説明したが、開示した技術は上述の実施形態に限定されるものではなく、次の変形例も開示した範囲に含まれ、さらに、下記以外にも要旨を逸脱しない範囲内で種々変更して実施できる。なお、以下の説明において、それまでに使用した符号と同一番号の符号を有する要素は、特に言及する場合を除き、それ以前の実施形態における同一符号の要素と同一である。また、構成の一部のみを説明している場合、構成の他の部分については先に説明した実施形態を適用できる。
【０１０５】
＜変形例１＞
実施形態では、画像１２０の全部を平面復元処理をしていたが、画像１２０の一部のみを平面画像復元処理の対象としてもよい。画像付き２次元コードは、データ読み取り処理においてデータコード後の読み取りに成功した場合に復元処理を行う。データコード語に復元範囲を記録しておけば、画像のどの範囲を復元処理すればよいかを決定することができる。
【０１０６】
図１５は、前述した実施形態とは異なる画像付き２次元コード２００を示している。画像付き２次元コード２００は、アンケートの回答を画像２２０としている。アンケートの回答は、チェック欄２２１を画像解析すればよく、チェック欄２２１が何に対するチェックであるかは、画像解析をする必要がない既知の事項である。
【０１０７】
そこで、チェック欄２２１を含む１つの分割領域１５０のみ、復元処理をして平面復元画像とする。この場合、分割領域１５０は１つのみであるが、画像２２０の一部を復元処理する領域とし、残りは復元処理をしない領域に分割していることになる。
【０１０８】
この変形例１において、基準点および分割領域の設定方法は実施形態と同じとし、復元処理をする領域を、チェック欄２２１を含む分割領域１５０のみとすることができる。また、チェック欄２２１を含む１つの分割領域１５０のみを形成するように基準点を設定してもよい。
【０１０９】
この変形例１で示したように、画像２２０の一部の分割領域１５０のみを平面復元画像にするようにすれば、画像２２０の全部を複数の分割領域に分割して、全部の分割領域を平面画像に復元するよりも、復元処理時間を短くすることができる。
【０１１０】
＜変形例２＞
実施形態において、Ｓ１０で撮像したコード撮像画像は、画像横方向の中心から、画像左右方向の端に向かうほどセルの間隔が狭くなっていた。図１６には、画像付き２次元コード１００を撮像した別例を概念的に示している。図１６では、画像付き２次元コード１００は円筒体２５０に表されている。図１６において一点鎖線は、コード読み取り装置１０に対する円筒体２５０の正面の位置である。図１６に示す例では、画像付き２次元コード１００は、円筒体２５０の正面に位置していない。
【０１１１】
図１７は、図１６に示す画像付き２次元コード１００の拡大図である。図１７に示すように、画像付き２次元コード１００は、円筒体２５０の正面から離れるほど、セルの間隔が狭くなっている。したがって、図１６、図１７に示す例では、セル座標補正後の各セルの中心座標の間隔は、図右側ほど狭くなる。コード撮像画像において、セル座標間の間隔が狭い部分は、セル座標間の間隔が広い部分に比較して、平面画像に対する歪みが大きい部分である。
【０１１２】
この例において、コード撮像画像において等間隔になるように基準点を設定してしまうと、図１７の右側と左側とで、基準点間に含まれるセルの数が異なってしまう。しかし、同じコード撮像画像内でセルの大きさが異なって写っているとしても、等セル間隔で基準点を設定することで、セルの中心座標の間隔が狭いほど、基準点の間隔を狭くすることができる。
【０１１３】
これにより、歪みが大きい部分に対して、相対的に小さい分割領域を設定できる。よって、コード撮像画像において一定間隔で基準点を設定するよりも、精度のよい平面画像を復元することができる。
【０１１４】
＜変形例３＞
画像付き２次元コードは、実施形態に示したものに限られない。他にも、図１８に示すように、１対の長方形状のコード領域３１０が画像３２０を挟んでいる画像付き２次元コード３００でもよい。また、図１９に示すように、画像４２０を小さくし、コード領域４１０を大きくした画像付き２次元コード４００でもよい。画像４２０が小さい場合、画像４２０をデータコード語を記録する領域に重畳して、誤り訂正機能で、画像４２０により読み取れないデータコード語を復元するようにしてもよい。
【０１１５】
さらに、図２０に示すように、画像５２０がコード領域５１０に囲われていない画像付き２次元コード５００が備えている画像５２０を復元処理の対象としてもよい。この場合、画像５２０を挟んで基準点を設定することはできない。そこで、コード領域５１０において画像５２０に近い位置に一列に基準点を配置し、隣接する基準点間を１辺として所定形状の分割領域を設定する。所定形状は、たとえば長方形であり、隣接する基準点間を短辺とする。この場合、長辺の延びる方向は、基準点を通り、その基準点を端とする２つの短辺の角度を２等分する方向とする。長辺の長さは、画像付き２次元コード５００が撮像された大きさに基づいて決定すればよい。
【０１１６】
＜変形例４＞
画像付き２次元コードが備えている画像の形状は四角形に限られない。画像付き２次元コードが備えている画像の形状は、四角形以外の多角形、丸型など、形状に制限はない。全体復元領域を、その画像を含む所定形状（たとえば四角形など）にすればよいからである。
【０１１７】
＜変形例５＞
分割領域は、四角形である必要はなく、他の形状、たとえば、三角形でもよい。
【０１１８】
＜変形例６＞
コード読み取り装置として、スマートフォンを用いることもできる。
【符号の説明】
【０１１９】
１０：コード読み取り装置    ２３：受光センサ（撮像部）    ４０：制御回路    １００：画像付き２次元コード    １１０：コード領域    １１１：位置検出パターン    １１３：中点    １１４：中点    １２０：画像    １３０：初回候補セル    １３２：四角枠    １３３：探索範囲    １３４：単独セル    １３５：単独セル    １３６：セル色明示範囲    １３７、１３８、１３９：独立連結セル    １４０：段差エッジ    １４１：エッジ    １４２：エッジ    １５０：分割領域    １５１：基準点    ２００：画像付き２次元コード    ２２０：画像    ２２１：チェック欄    ２５０：円筒体    ３００：画像付き２次元コード    ３１０：コード領域    ３２０：画像    ４００：画像付き２次元コード    ４１０：コード領域    ４２０：画像    ５００：画像付き２次元コード    ５１０：コード領域    ５２０：画像  Ｓ２０：データ読み取り部    Ｓ６０：セル座標補正部    Ｓ７０：基準点設定部    Ｓ８０：復元処理部
【図１】
2020013210.tif 000003
【図２】
2020013210.tif 000004
【図３】
2020013210.tif 000005
【図４】
2020013210.tif 000006
【図５】
2020013210.tif 000007
【図６】
2020013210.tif 000008
【図７】
2020013210.tif 000009
【図８】
2020013210.tif 000010
【図９】
2020013210.tif 000011
【図１０】
2020013210.tif 000012
【図１１】
2020013210.tif 000013
【図１２】
2020013210.tif 000014
【図１３】
2020013210.tif 000015
【図１４】
2020013210.tif 000016
【図１５】
2020013210.tif 000017
【図１６】
2020013210.tif 000018
【図１７】
2020013210.tif 000019
【図１８】
2020013210.tif 000020
【図１９】
2020013210.tif 000021
【図２０】
2020013210.tif 000022