JP7091898B2 - Code reader and code reader - Google Patents
Code reader and code reader Download PDFInfo
- Publication number
- JP7091898B2 JP7091898B2 JP2018133406A JP2018133406A JP7091898B2 JP 7091898 B2 JP7091898 B2 JP 7091898B2 JP 2018133406 A JP2018133406 A JP 2018133406A JP 2018133406 A JP2018133406 A JP 2018133406A JP 7091898 B2 JP7091898 B2 JP 7091898B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- cell
- code
- reference point
- cells
- 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.)
- Active
Links
- 238000012937 correction Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 23
- 238000003384 imaging method Methods 0.000 claims description 12
- 239000003086 colorant Substances 0.000 claims description 7
- 238000000034 method Methods 0.000 description 98
- 230000008569 process Effects 0.000 description 92
- 238000001514 detection method Methods 0.000 description 10
- 238000005452 bending Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 239000003550 marker Substances 0.000 description 7
- 238000010191 image analysis Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 238000005286 illumination Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Landscapes
- Image Processing (AREA)
Description
コード読み取り装置およびコード読み取りプログラムに関し、特に、2次元コードとともに示された画像の歪みを補正する機能を備えた装置およびプログラムに関する。 The present invention relates to a code reading device and a code reading program, and more particularly to a device and a program having a function of correcting distortion of an image shown together with a two-dimensional code.
特許文献1に、2次元コード内に付された画像を読み取り装置で利用する技術が開示されている。特許文献1に開示されている2次元コードは、全体として正方形状であり、2次元コードの中央部分に画像領域が形成されている。特許文献1には、画像領域に対して、画像領域の4隅を特定して正規化することも開示されている。正規化された後の画像は、パターンマッチングなどに用いられる。
なお、画像領域が2次元コードの中央にある場合に以外に、1対の長方形状のコード領域に画像領域が挟まれている2次元コードも知られている。以下では、コード領域と画像とが組み合わせられている2次元コードを、画像付き2次元コードとする。 A two-dimensional code in which an image area is sandwiched between a pair of rectangular code areas is also known, except when the image area is in the center of the two-dimensional code. In the following, a two-dimensional code in which a code area and an image are combined is referred to as a two-dimensional code with an image.
画像全体の4隅を特定して正規化する技術は、画像の1対の隅間を直線とみなしており、その1対の隅間の距離を変更するだけである。一方、画像付き2次元コードが曲面に形成されている場合、画像の1対の隅間は、平面であれば直線であっても、撮像された画像では曲線である。 The technique of identifying and normalizing the four corners of an entire image considers a pair of corners of an image as a straight line and only changes the distance between the pair of corners. On the other hand, when the two-dimensional code with an image is formed on a curved surface, the pair of corners of the image is a straight line if it is a plane, but is a curved line in the captured image.
したがって、画像付き2次元コードが曲面に形成されている場合、画像全体の4隅を特定して正規化するだけでは、正規化後の画像は、正しい平面画像とは大きく異なった画像になってしまう可能性がある。 Therefore, when the two-dimensional code with an image is formed on a curved surface, the image after normalization will be a significantly different image from the correct planar image simply by specifying and normalizing the four corners of the entire image. There is a possibility that it will end up.
本開示は、この事情に基づいて成されたものであり、その目的とするところは、画像付き2次元コードが曲面に形成されている場合でも、画像を精度よく平面画像に変換することができるコード読み取り装置、および、コード読み取りプログラムを提供することにある。 The present disclosure is based on this circumstance, and the purpose of the present disclosure is to accurately convert an image into a flat image even when a two-dimensional code with an image is formed on a curved surface. The purpose of the present invention is to provide a code reading device and a code reading program.
上記目的は独立請求項に記載の特徴の組み合わせにより達成され、また、下位請求項は更なる有利な具体例を規定する。特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、開示した技術的範囲を限定するものではない。 The above object is achieved by a combination of the features described in the independent claims, and the sub-claims specify further advantageous specific examples. The reference numerals in parentheses described in the claims indicate, as one embodiment, the correspondence with the specific means described in the embodiments described later, and do not limit the disclosed technical scope.
上記目的を達成するためのコード読み取り装置は、コード領域(110)と画像(120)とが組み合わせられており、コード領域には、複数色のセルによりデータコード語と誤り訂正コード語とが記録されている2次元コードである画像付き2次元コード(100)から、データコード語を読み取るコード読み取り装置であって、
画像付き2次元コードを撮像可能な撮像部(23)と、
撮像部によって画像付き2次元コードが撮像された場合に、コード領域に記録されたデータコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部(S20)と、
データ読み取り部がデータコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部(S60)と、
補正後のセル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部(S70)と、
基準点に基づいて定まる分割領域を平面画像に復元する復元処理を行う復元処理部(S80)と、を備える。
A code reading device for achieving the above object is a combination of a code area (110) and an image (120), and a data code word and an error correction code word are recorded in the code area by cells of a plurality of colors. It is a code reading device that reads a data code word from a two-dimensional code (100) with an image, which is a two-dimensional code.
An image pickup unit (23) capable of capturing a two-dimensional code with an image, and
A data reading unit (S20) that reads the data code word recorded in the code area while performing error correction processing when a two-dimensional code with an image is imaged by the imaging unit.
A cell coordinate correction unit (S60) that corrects cell coordinates based on an array of cells determined by the data reading unit reading a data code word, and a cell coordinate correction unit (S60).
Based on the corrected cell coordinates, a reference point setting unit (S70) that sets a reference point that becomes a point that determines the divided area obtained by dividing the entire restoration area including the entire image, and
It is provided with a restoration processing unit (S80) that performs restoration processing for restoring a divided region determined based on a reference point to a flat image.
データ読み取り部によりデータコード語の読み取りができたとき、2次元コードは各列のセルの配列が判別できたことになる。そして、セルの配列が定まると、セルの配列を、画像付き2次元コードを撮像した画像(以下、コード撮像画像)を画像解析することで抽出できるセル配列と照らし合わせることで、コード撮像画像におけるセルの座標を補正することができる。 When the data code word can be read by the data reading unit, the two-dimensional code can determine the array of cells in each column. Then, once the cell arrangement is determined, the cell arrangement is compared with the cell arrangement that can be extracted by image analysis of the image obtained by capturing the two-dimensional code with an image (hereinafter referred to as the code captured image), thereby forming the code captured image. The cell coordinates can be corrected.
そして、補正後のセル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する。このようにして基準点を設定することから、画像付き2次元コードが曲面に形成されていても、画像付き2次元コードが平面にあるときの基準点の間隔が分かる。したがって、このようにして基準点を設定することで、復元処理では、分割領域の基準点を、画像付き2次元コードが平面にあるときの位置に精度よく戻すことができる。 Then, based on the corrected cell coordinates, a reference point is set, which is a point that determines the divided area obtained by dividing the entire restored area including the entire image. By setting the reference points in this way, even if the two-dimensional code with an image is formed on a curved surface, the interval between the reference points when the two-dimensional code with an image is on a plane can be known. Therefore, by setting the reference point in this way, in the restoration process, the reference point of the divided region can be accurately returned to the position when the two-dimensional code with an image is on a plane.
しかも、この復元処理では、画像全体を含む基準点を設定して画像を復元するのではなく、画像を分割した分割領域を対象として復元処理を行う。2次元コードが曲面に形成されていることにより、平面画像では直線である線が曲線になっているとしても、分割領域とすることで、各分割領域に含まれる曲線は、画像全体よりは、元の直線に対する歪みが少ない曲線になっている。 Moreover, in this restoration process, instead of setting a reference point including the entire image to restore the image, the restoration process is performed for the divided area obtained by dividing the image. Since the two-dimensional code is formed on a curved surface, even if a line that is a straight line in a plane image is a curved line, by making it a divided area, the curve included in each divided area is larger than the entire image. It is a curve with less distortion than the original straight line.
これらのことから、セル座標に基づいて分割領域の基準点を設定し、分割領域を単位として復元処理をすることで、画像付き2次元コードが曲面に形成されている場合でも、画像を精度よく平面画像に戻すことができる。 From these facts, by setting the reference point of the divided area based on the cell coordinates and performing the restoration process in units of the divided area, even if the two-dimensional code with an image is formed on a curved surface, the image can be accurately displayed. You can revert to a 2D image.
請求項2に記載のコード読み取り装置では、基準点設定部は、画像を挟んでコード領域が形成されている場合、画像を挟んで基準点を設定する。 In the code reading device according to claim 2, when the code area is formed by sandwiching the image, the reference point setting unit sets the reference point by sandwiching the image.
このようにすることで、コード撮像画像が、画像付き2次元コードを斜めから撮像した画像であっても、分割領域の基準となる各基準点を、画像付き2次元コードを平面としたときの座標に正しく対応させることができる。 By doing so, even if the code captured image is an image obtained by capturing the two-dimensional code with an image from an angle, when each reference point as a reference of the divided region is set as a plane with the two-dimensional code with an image as a plane. It can correspond correctly to the coordinates.
請求項3に記載のコード読み取り装置では、復元処理部は、画像全体の一部の分割領域を平面画像に復元する。 In the code reading device according to claim 3, the restoration processing unit restores a part of the divided region of the entire image to a flat image.
画像全体の一部の分割領域を平面画像に復元すれば、画像全部を複数の分割領域に分割して、全部の分割領域を平面画像に復元するよりも、復元処理時間を短くすることができる。 Restoring a part of the divided area of the entire image to a flat image can shorten the restoration processing time compared to dividing the entire image into a plurality of divided areas and restoring the entire divided area to a flat image. ..
請求項4に記載のコード読み取り装置では、基準点設定部は、セル座標間の間隔が狭いほど基準点間の間隔を狭くする。 In the code reading device according to claim 4, the reference point setting unit narrows the distance between the reference points as the distance between the cell coordinates becomes narrower.
撮影された画像において、セル座標間の間隔が狭い部分は、セル座標間の間隔が広い部分に比較して、平面画像に対する歪みが大きい部分である。しかし、セル座標間の間隔が狭いほど基準点間の間隔を狭くすれば、歪みが大きい部分に対して、相対的に小さい分割領域を設定できる。よって、一定間隔で基準点を設定するよりも、精度のよい平面画像を復元することができる。 In the captured image, the portion where the interval between the cell coordinates is narrow is the portion where the distortion with respect to the plane image is large as compared with the portion where the interval between the cell coordinates is wide. However, if the distance between the reference points is narrowed as the distance between the cell coordinates is narrower, a relatively small division area can be set for the portion having a large distortion. Therefore, it is possible to restore a planar image with higher accuracy than setting reference points at regular intervals.
請求項5に記載のコード読み取り装置では、基準点設定部は、コード領域において、基準点設定方向が全体復元領域の一辺に沿った方向であり、基準点設定方向において両隣が他色になっている1つのセルである単独セル(133、134)が、画像を挟んで互いに向かい合う位置に存在している場合、単独セルのセル座標を基準点に設定する。 In the code reading device according to claim 5, in the code area, the reference point setting direction is the direction along one side of the entire restoration area, and both sides are in other colors in the reference point setting direction. When the single cell (133, 134), which is one of the cells, exists at a position facing each other across the image, the cell coordinates of the single cell are set as the reference point.
単独セルのセル座標を基準点とすることで基準点を精度よく決めることができ、その結果、平面画像の復元精度が向上する。 By using the cell coordinates of a single cell as the reference point, the reference point can be accurately determined, and as a result, the restoration accuracy of the planar image is improved.
請求項6に記載のコード読み取り装置では、基準点設定部は、コード領域において画像に近いセルから順に、画像から離れる方向に単独セルを探索する。 In the code reading device according to claim 6, the reference point setting unit searches for a single cell in the direction away from the image in order from the cell closest to the image in the code area.
画像に近い側にある単独セルを基準点を設定することになるので、分割領域を小さくすることができる。 Since the reference point is set for the single cell on the side closer to the image, the division area can be reduced.
請求項7に記載のコード読み取り装置では、基準点設定部は、基準点を決めるためのセルの候補として最初に設定するセルである初回候補セル(130)を、基準点設定方向において等セル間隔に設定し、初回候補セルおよび初回候補セルに対して基準点設定方向に連続する同色のセルを含む同色セルブロックが誤り訂正されていない場合、初回候補セルのセル座標を基準点に設定する。 In the code reading device according to claim 7, the reference point setting unit sets the first candidate cell (130), which is the first cell to be set as the cell candidate for determining the reference point, at equal cell intervals in the reference point setting direction. If the cell block of the same color including the cells of the same color that are continuous in the reference point setting direction for the first candidate cell and the first candidate cell is not error-corrected, the cell coordinates of the first candidate cell are set as the reference point.
このようにすれば、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に設定できる。 By doing so, it is possible to set the reference points at equal intervals while suppressing the setting of the wrong position as the reference point.
請求項8に記載のコード読み取り装置では、基準点設定部は、初回候補セルを含む同色セルブロックが誤り訂正されている場合、初回候補セルに対して基準点設定方向に隣接するセルを含み画像に対して接近離隔方向に延びるセル列を探索範囲(133)とし、探索範囲を画像に近いセルから順に探索し、画像を挟んで互いに向かい合う位置に1対の単独セルがある場合に、その1対の単独セルのセル座標を基準点に設定する。 In the code reading device according to claim 8, when the same color cell block including the first candidate cell is erroneously corrected, the reference point setting unit includes a cell adjacent to the first candidate cell in the reference point setting direction and an image. The cell sequence extending in the approaching and separating directions is set as the search range (133), the search range is searched in order from the cell closest to the image, and when there is a pair of single cells at positions facing each other across the image, the 1st Set the cell coordinates of a pair of single cells as the reference point.
このようにすれば、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。 By doing so, it is possible to set the reference points at intervals close to equal intervals while suppressing the setting of an erroneous position as the reference point.
請求項9に記載のコード読み取り装置では、基準点設定部は、初回候補セルを含む同色セルブロックが誤り訂正されている場合、初回候補セルに対して基準点設定方向に隣接するセルを含み画像に対して接近離隔方向に延びるセル列を探索範囲(133)とし、探索範囲に、同色セルが基準点設定方向に連結しており、かつ、探索範囲内で同色セルの連結が終了しているセルである独立連結セル(137、138、139)が、画像を挟んで、基準点設定方向において同じ位置にある場合、その1対の独立連結セルの中心を、基準点に設定する。 In the code reading device according to claim 9, when the same color cell block including the first candidate cell is erroneously corrected, the reference point setting unit includes a cell adjacent to the first candidate cell in the reference point setting direction and an image. The cell row extending in the approaching and separating directions is set as the search range (133), and the cells of the same color are connected in the reference point setting direction in the search range, and the connection of the cells of the same color is completed within the search range. When the independently linked cells (137, 138, 139), which are cells, are at the same position in the reference point setting direction across the image, the center of the pair of independently linked cells is set as the reference point.
このようにしても、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。 Even in this way, the reference points can be set at intervals close to equal intervals while suppressing the setting of an erroneous position as the reference point.
請求項10に記載のコード読み取り装置では、基準点設定部は、初回候補セルを含む同色セルブロックが誤り訂正されている場合、初回候補セルを含み画像に対して接近離隔方向に延びるセル列に、相互に1列ずれて存在している2つのエッジであって、2つのエッジ間が1セル分である段差エッジ(140)がある場合、基準点設定方向において2つのエッジの中間に基準点を設定する。
In the code reading device according to
このようにすれば、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点設定方向における基準点間の距離を等間隔に設定できる。 By doing so, it is possible to set the distances between the reference points in the reference point setting direction at equal intervals while suppressing the setting of an erroneous position as the reference point.
請求項11に記載のコード読み取りプログラムは、請求項1のコード読み取り装置が備えるプログラムである。すなわち、コード読み取りプログラムは、
コード領域(110)と画像(120)とが組み合わせられており、コード領域には、複数色のセルによりデータコード語と誤り訂正コード語とが記録されている2次元コードである画像付き2次元コード(100)から、データコード語を読み取るために、画像付き2次元コードを撮像可能な撮像部(23)と、コンピュータ(40)とを備えたコード読み取り装置において、コンピュータを、
撮像部によって画像付き2次元コードが撮像された場合に、コード領域に記録されたデータコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部(S20)と、
データ読み取り部がデータコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部(S60)と、
補正後のセル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部(S70)と、
基準点に基づいて定まる分割領域を平面画像に復元する復元処理を行う復元処理部(S80)として機能させるためのコード読み取りプログラムである。
The code reading program according to claim 11 is a program included in the code reading device according to
A code area (110) and an image (120) are combined, and the code area is a two-dimensional code with an image in which a data code word and an error correction code word are recorded by cells of a plurality of colors. In a code reading device including an image pickup unit (23) capable of capturing a two-dimensional code with an image and a computer (40) in order to read a data code word from the code (100), the computer is operated.
A data reading unit (S20) that reads the data code word recorded in the code area while performing error correction processing when a two-dimensional code with an image is imaged by the imaging unit.
A cell coordinate correction unit (S60) that corrects cell coordinates based on an array of cells determined by the data reading unit reading a data code word, and a cell coordinate correction unit (S60).
Based on the corrected cell coordinates, a reference point setting unit (S70) that sets a reference point that becomes a point that determines the divided area obtained by dividing the entire restoration area including the entire image, and
This is a code reading program for functioning as a restoration processing unit (S80) that performs restoration processing for restoring a divided area determined based on a reference point to a flat image.
以下、実施形態を図面に基づいて説明する。図1は、実施形態となるコード読み取り装置10の機械的構成を示すブロック図である。なお、外見は省略しているが、このコード読み取り装置10は携帯型である。コード読み取り装置10は、2次元コードに記録されているデータコード語を光学的に読み取る装置である。
Hereinafter, embodiments will be described with reference to the drawings. FIG. 1 is a block diagram showing a mechanical configuration of a
[機械的構成の説明]
回路部20は、図示しないハウジング内に収容されている。この回路部20は、主に、光学系とコンピュータ系と電源系とから構成されている。光学系は、マーカ光投射器60、発光ダイオード21、受光センサ23、結像レンズ27等から構成されている。
[Explanation of mechanical configuration]
The
発光ダイオード21は、ハウジング本体の読取口(図示せず)を介して読み取り面Rに向けて照明光Lfを照射可能に構成されている。受光センサ23は、撮像部の一例であり、読み取り面Rに照射された照明光Lfが反射して生じた反射光Lrを受光可能に構成される。例えば、C-MOSやCCD等の固体撮像素子である受光素子を数10万から数100万個オーダでm行n列の2次元に配列して構成されている。受光素子は、受光した光を電気信号に変換して出力する。
The
この受光センサ23の受光面23aは、ハウジング本体外から上述の読取口を介して外観可能に位置しており、受光センサ23は、結像レンズ27を介して入射する入射光をこの受光面23aで受光可能に配置されている。
The
結像レンズ27は、外部から読取口を介して入射する入射光を集光して受光センサ23の受光面23aに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。発光ダイオード21から照射された照明光Lfが読み取り面Rに反射して読取口に入射する反射光Lrは、結像レンズ27により集光され、これにより、受光センサ23の受光面23aにコード像が結像する。マーカ光投射器60は、2次元コードの読み取り範囲を示すマーカ光Mを読み取り面Rに投射する。
The
次に、コンピュータ系の構成概要を説明する。コンピュータ系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示器46、無線通信部47、通信インタフェース48等から構成されている。このコンピュータ系は、前述した光学系によって撮像されたコード像の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路40は、コード読み取り装置10の全体システムに関する制御も行っている。
Next, the outline of the computer system configuration will be described. The computer system includes an
光学系の受光センサ23から出力される画像信号(アナログ信号)は、増幅回路31に入力されて所定ゲインで増幅された後、A/D変換回路33に入力されて、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データは、メモリ35に入力されて蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されている。また、アドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
The image signal (analog signal) output from the
メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROMがこれに相当する。ROMには、画像処理プログラム、コード読み取りプログラムの他、マーカ光投射器60、発光ダイオード21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
The
制御回路40は、コード読み取り装置10全体を制御可能なコンピュータであり、CPU、システムバス、入出力インタフェース等からなる。この制御回路40は、内蔵された入出力インタフェースを介して種々の入出力装置(周辺装置)と接続可能に構成されている。また、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48、マーカ光投射器60等が制御回路40に接続されている。
The
この制御回路40は、例えば、2次元コードのデコード処理、および2次元コードが備えている画像の復元処理を行う。その他にも、電源スイッチ41や操作スイッチ42の監視や管理、LED43の点消灯、ブザー44の鳴動のオンオフ、液晶表示器46の画面制御、通信インタフェース48の通信制御、マーカ光投射器60からのマーカ光Mの投射制御等を行う。
The
電源系は、電源スイッチ41、電池49等により構成されており、制御回路40により管理される電源スイッチ41のオンオフによって、上述した各装置や各回路に、電池49から供給される駆動電圧の導通や遮断が制御されている。
The power supply system is composed of a
[画像付き2次元コード100の説明]
コード読み取り装置10は種々の2次元コードが読み取り可能であり、図2に示す画像付き2次元コード100を読み取ることもできる。図2に示す画像付き2次元コード100は、フレームQRと呼ばれる2次元コードである。フレームQRは登録商標である。
[Explanation of
The
図2に示す画像付き2次元コード100は、本来の形状は正方形である。しかし、図2では湾曲した形状になっている。この理由は、図2は、円柱状の曲面に形成された画像付き2次元コード100を撮像したものだからである。
The original shape of the two-
画像付き2次元コード100は、四角枠形状にコード領域110が形成されており、このコード領域110と画像120とが組み合わせられたコードである。画像120は、四角枠形状のコード領域110の内側に配置されている。
The two-
コード領域110には、明セルと暗セルとがそれぞれ多数配置されており、明セルと暗セルにより、種々の規定パターン、データコード語、誤り訂正コード語が符号表現される。一方、画像120は、符号を読み取る必要がない部分である。
A large number of bright cells and dark cells are arranged in the
規定パターンには、位置検出パターン111などがある。位置検出パターン111の周囲には、フォーマット情報を記録する領域がある。コード領域110において、データコード語が記録される部分と、誤り訂正コード語が記録される部分は、規格等により予め定められている。フォーマットが分かれば、データコード語が記録される部分と、誤り訂正コード語が記録される部分がどこであるかは決定可能である。この画像付き2次元コード100のコード領域110の生成方法は、特許文献1に記載された方法と同じ方法を採用することができる。
The specified pattern includes a
本実施形態のコード読み取り装置10は、コード読み取りプログラムを実行することで、コード領域110に記録されているデータコード語を読み取ることに加えて、画像120の歪みを補正する機能を備える。画像120の歪みを補正する機能は特許文献1にも開示されている。しかし、本実施形態のコード読み取り装置10は、円筒面などの曲面に画像付き2次元コード100が形成されている場合に、特許文献1に開示されている画像補正処理よりも、歪みの少ない復元画像を得ることができる。以下、本実施形態のコード読み取り装置10が行う画像復元処理について説明する。
The
[画像復元処理の説明]
図3に、制御回路40が実行する画像復元処理を示す。ステップ(以下、ステップを省略)S10では、画像付き2次元コード100を含む画像を撮像する。S20はデータ読み取り部としての処理であり、データ読み取り処理を行う。データ読み取り処理は、S10で撮像した画像からコード領域110を特定し、そのコード領域110からデータコード語を読み取る処理である。コード領域110からデータコード語を読み取る処理は、特許文献1に記載された処理と同じ処理である。ここでは、画像復元処理に関連する部分を中心に、データ読み取り処理を説明する。
[Explanation of image restoration process]
FIG. 3 shows an image restoration process executed by the
データ読み取り処理では、コード領域110の湾曲を検出しており、湾曲に応じてセルの配列方向を推定する。湾曲の検出方法の一例を図4に示す。図4に示す例では、位置検出パターン111において、画像付き2次元コード100の同一の外辺上の点となる4つの頂点112a、112b、112c、112dを決定する。これら4つの頂点を通る線の中点113と、両端の頂点112a、112dを通る直線の中点114との差dを求める。この差dが大きいほどコード領域110の湾曲が大きいとする。
In the data reading process, the curvature of the
このようにして検出した湾曲になるように各列のセルが配列しているとして、各列の明暗を検出する。セルの明暗の変化は、S10で撮像した画像をエッジ検出することで決定する。また、撮像した画像における各セルの大きさは、撮像した画像における画像付き2次元コード100の全体の大きさと、フォーマット情報から決定できる1辺のセル数から計算する。
Assuming that the cells in each column are arranged so as to have the curvature detected in this way, the light and darkness of each column is detected. The change in brightness of the cell is determined by edge detection of the image captured by S10. Further, the size of each cell in the captured image is calculated from the total size of the two-
また、データ読み取り処理では、データコード語を正しく読み取るために、誤り訂正処理を行う。誤り訂正処理は、誤り訂正コード語を用いた演算を行って、復号できなかったシンボルキャラクタや間違って復号したシンボルキャラクタを訂正する処理である。なお、誤り訂正コード語は、たとえばリード・ソロモン符号であり、データコード語から生成する。 Further, in the data reading process, an error correction process is performed in order to correctly read the data code word. The error correction process is a process of correcting a symbol character that could not be decoded or a symbol character that was erroneously decoded by performing an operation using an error correction code word. The error correction code word is, for example, a Reed-Solomon code, and is generated from the data code word.
S30では、S20でのデータ読み取り処理の結果が、読み取り成功であったか否かを判断する。読み取り成功である場合、誤り訂正処理により、データコード語が正しく復元されたことになる。S30の判断がYESであればS40に進む。一方、S30の判断がNOであればS10に戻り、撮像をやり直す。 In S30, it is determined whether or not the result of the data reading process in S20 is the reading success. If the reading is successful, it means that the data code word has been correctly restored by the error correction process. If the determination in S30 is YES, the process proceeds to S40. On the other hand, if the judgment of S30 is NO, the process returns to S10 and the imaging is repeated.
S40では、S10で撮像した画像付き2次元コード100が湾曲しているか否かを判断する。S20で実行するデータ読み取り処理では、コード領域110の湾曲を検出しているので、このS40ではS20での検出結果に基づいて判断を行う。たとえば、図4に示す差dの大きさに基づいて、S10で撮像した画像付き2次元コード100が湾曲しているか否かを判断する。S40の判断がNOであればS50へ進み、YESであればS60へ進む。
In S40, it is determined whether or not the two-
S50では平面復元処理を行う。平面復元処理では、まず、画像120の全体を含む全体復元領域の頂点を特定する。ここでの頂点は、コード領域110において、画像120との境界となる四角枠の各頂点であり、頂点により囲まれる領域が全体復元領域である。
In S50, a plane restoration process is performed. In the plane restoration process, first, the vertices of the entire restoration region including the
頂点を特定した後は、複数の頂点間の間隔が、フォーマットにより定まる規定の頂点間の間隔になるように全体復元領域の形状を変換する。変換処理には、たとえば、射影変換処理を用いる。射影変換処理を用いて画像を変換する処理は特許文献1にも開示されている。
After identifying the vertices, the shape of the entire restoration area is transformed so that the spacing between the plurality of vertices becomes the spacing between the specified vertices determined by the format. For the conversion process, for example, a projective transformation process is used. A process of transforming an image using a projective transformation process is also disclosed in
S60はセル座標補正部としての処理であり、セル座標補正を行う。セル座標補正は、各セルの中心座標を補正する処理である。セル座標補正を行う理由は次の通りである。S10で撮像した画像付き2次元コード100が湾曲している場合、同じセル列内のセルであっても画像上の大きさは異なる。たとえば、図2に示している画像付き2次元コード100では、図左右方向の正面から離れたセルほど、画像上でのサイズは小さくなっている。
S60 is a process as a cell coordinate correction unit, and performs cell coordinate correction. The cell coordinate correction is a process of correcting the center coordinates of each cell. The reason for performing cell coordinate correction is as follows. When the two-
したがって、1セル列の長さを、フォーマット情報から決定した1セル列のセル数で割った長さを、単純に1セルの長さとするだけでは、画像上での各セルの大きさを正しく決定することができない。その結果、画像解析結果から決定できる明セルおよび暗セルが、何セル分であるかを正しく決定できない。 Therefore, if the length of one cell row divided by the number of cells in one cell row determined from the format information is simply set as the length of one cell, the size of each cell on the image is correct. I can't decide. As a result, it is not possible to correctly determine how many bright cells and dark cells can be determined from the image analysis result.
しかし、誤り訂正処理を含んでいるデータ読み取り処理により読み取りが成功した場合には、データコード領域のセルの配列が決定できていることになる。加えて、フォーマット情報から、画像付き2次元コード100のセル数、規定パターンの位置も決定できる。さらに、誤り訂正コード語は、データコード語から生成することができる。これらのことから、読み取りに成功している場合、コード領域110の全てのセルの明暗が決定できることになる。
However, if the reading is successful by the data reading process including the error correction process, the array of cells in the data code area can be determined. In addition, the number of cells of the two-
そこで、読み取り結果から定まる各セル列の明セルおよび暗セルの配列を、画像解析結果から決定できる各セル列の明セルおよび暗セルの配列に当てはめる。これにより、画像解析結果から決定できる各セル列の明セルおよび暗セルが、何セルの連続であるかが決定できる。この決定結果をもとに、画像上での各セルの中心座標を再決定する。この処理がセル座標補正である。 Therefore, the array of light cells and dark cells in each cell row determined from the reading result is applied to the array of bright cells and dark cells in each cell row that can be determined from the image analysis result. Thereby, it is possible to determine how many cells the bright cells and dark cells in each cell row, which can be determined from the image analysis result, are continuous. Based on this determination result, the center coordinates of each cell on the image are redetermined. This process is cell coordinate correction.
S70で基準点設定部としての処理であり、基準点設定処理を行う。基準点は、画像120の全体を含む全体復元領域を分割した分割領域を定める点である。基準点設定処理は、詳しくは、図5に示す処理である。
It is a process as a reference point setting unit in S70, and a reference point setting process is performed. The reference point is a point that defines a divided area obtained by dividing the entire restored area including the
図5において、S71では湾曲方向を推定する。図2の例では、画像の左右方向が湾曲している方向であり、上下方向は湾曲していない。湾曲方向を推定するために、図4に示す差dを、画像付き2次元コード100において、互いに同じ辺に位置する2つの位置検出パターン111について算出する。図2の例では、左右方向に並んだ2つの位置検出パターン111および上下方向に並んだ2つの位置検出パターンのそれぞれに対して差dを算出する。そして、その差dが相対的に大きい側を湾曲方向とする。
In FIG. 5, in S71, the bending direction is estimated. In the example of FIG. 2, the left-right direction of the image is curved, and the vertical direction is not curved. In order to estimate the bending direction, the difference d shown in FIG. 4 is calculated for two
続くS72では、セル中心が基準点となるセルである基準セルの候補として、初回候補セル130を設定する。初回候補セル130は、全体復元領域を定める図6に示す四角枠132において、湾曲方向に沿った方向に等間隔に並んだセルである。
In the following S72, the
図6は、初回候補セル130を説明するための図であり、図示の便宜上、湾曲していない状態で画像付き2次元コード100を示し、また、説明に不要な部分は省略している。また、図6では、初回候補セル130の位置を黒色の四角で示しているが、これは、初回候補セル130の位置を示すものに過ぎず、暗セルを意味している訳ではない。図6では、コード領域110内のセルの色は示していない。
FIG. 6 is a diagram for explaining the
四角枠132は、セルの結合により形成され、画像120を含むように定められる。本実施形態では、四角枠132は、具体的には、画像120に隣接するセルにより形成される。初回候補セル130は、四角枠132において、湾曲方向に沿った方向となる一対の辺に、互いに対向するように設定される。初回候補セル130の間隔は、図6では4セル間隔としているが、3セル以下の間隔でもよい。また、5セル以上でもよい。初回候補セル130の間隔が狭いと、平面復元画像が、正しい平面画像に近い画像になる利点があるが、処理が煩雑になる。反対に、初回候補セル130の間隔が広いと、処理は簡単になるが、平面復元画像に湾曲の影響が残る程度が増加する。これらを考慮して初回候補セル130の間隔を決定する。
The
S73では、初回候補セル130と、その初回候補セル130に対して基準点設定方向に連続する同色のセルを含む同色セルブロックに対して誤り訂正がされているか否かを判断する。この同色セルブロックに含まれる少なくとも1つのセルが誤り訂正されている場合、S73の判断はYESになり、この同色セルブロックに含まれる全てのセルが誤り訂正されていない場合、S73の判断がNOになる。
In S73, it is determined whether or not the error is corrected for the
S73の判断は、初回候補セル130ごとに行う。S73の判断がNOであれば図5の処理を終了し、図3のS80に進む。この場合、S72で設定した初回候補セル130がそのまま基準セルになり、基準セルのセル中心を基準点とする。
The determination of S73 is performed for each
図6において、×印を付しているセルが誤り訂正されているセルである。上側の左から3番目の初回候補セル130に×印が付されている。したがって、図6の例では、上側の左から3番目の初回候補セル130についてはS73の判断がYESになる。S73の判断がYESであればS74に進む。
In FIG. 6, the cell marked with x is an error-corrected cell. The
S74では基準セル変更処理を行う。基準セル変更処理は、詳しくは図7に示す処理である。図7において、S741では、初回候補セル130がある列を画像120から離隔する方向に、画像120側から順に、単独セルがあるか否かを探索する。
In S74, the reference cell change process is performed. The reference cell change process is the process shown in FIG. 7 in detail. In FIG. 7, in S741, it is searched for whether or not there is a single cell in the direction in which the row in which the
図8に、S741において単独セルを探索する探索範囲133を例示する。図8の例では、誤り訂正された同色セルブロックに含まれている初回候補セル130が画像120の上側にあるため、その初回候補セル130がある列を画像120から離隔する方向に延びる探索範囲133は、画像120から上方向に延びている。
FIG. 8 illustrates a
単独セルは、基準点設定方向において両隣が他色になっている1つのセルである。図8には、いくつかの暗セルと明セルを示している。図8において、探索範囲133内には、暗セルである単独セル134および明セルである単独セル135が存在する。
A single cell is a cell having other colors on both sides in the reference point setting direction. FIG. 8 shows some dark cells and light cells. In FIG. 8, within the
S724では、探索の結果、単独セルがあったか否かを判断する。S724の判断がYESであればS743に進む。S743では、探索できた単独セルに対して、画像120を挟んで対向する位置に基準セルが設定されているか否かを判断する。図8の例では、画像120の下側に設定されている初回候補セル130は、いずれも、誤り訂正されていないことから、そのまま基準セルになる。したがって、図8の例において、上側の左から3番目の初回候補セル130に対して図7の処理が実行された場合、S743の判断はYESになる。S743の判断がYESであればS744に進む。S744では、S741で探索できた単独セルのセル中心を基準点とする。
In S724, as a result of the search, it is determined whether or not there is a single cell. If the determination in S724 is YES, the process proceeds to S743. In S743, it is determined whether or not the reference cell is set at the position facing the single cell that can be searched with the
S742の判断がNOである場合、および、S743の判断がNOである場合には、S745に進む。S745では、探索範囲133を基準点設定方向の両側に拡張する。図9には、拡大後の探索範囲133を例示している。図9に示す探索範囲133は、初回候補セル130に対して基準点設定方向に隣接するセルを含み画像120に対して接近離隔方向に延びるセル列である。
If the determination in S742 is NO, and if the determination in S743 is NO, the process proceeds to S745. In S745, the
また、図9に示すように、S745を実行する場合には、画像120を基準にして、S741で設定した探索範囲133とは反対側についても探索範囲133を設定する。そして、1対の探索範囲133について、S741と同様に単独セルを探索する。
Further, as shown in FIG. 9, when executing S745, the
図9に示す例は、図8とは異なるセルパターンである。図6、図8と同様、コード領域110内のセルの色は示していない。ただし、一点鎖線で囲んだセル色明示範囲136については、セルの色を示している。
The example shown in FIG. 9 has a cell pattern different from that in FIG. Similar to FIGS. 6 and 8, the color of the cell in the
S746では、画像120を挟んで一対の単独セルが検出できたか否かを判断する。図9の例では、探索範囲133において、図8に対して右側に拡張された部分に、一対の単独セルが検出できている。
In S746, it is determined whether or not a pair of single cells could be detected with the
S746の判断がYESであればS744に進み、S744において、S743での探索の結果、抽出した一対の単独セルのセル中心を基準点とする。S746の判断がNOであればS747に進む。 If the determination in S746 is YES, the process proceeds to S744, and in S744, the cell center of the pair of single cells extracted as a result of the search in S743 is set as the reference point. If the judgment of S746 is NO, the process proceeds to S747.
S747では、探索範囲133に1対の独立連結セルがあるか否かを判断する。独立連結セルは、同色セルが基準点設定方向に連結している複数のセル(以下、連結セル)であり、かつ、探索範囲133内で同色セルの連結が終了している連結セルである。画像120を挟んで基準点設定方向において同じ位置に同じセル数の独立連結セルがある場合、1対の独立連結セルがあるとする。
In S747, it is determined whether or not there is a pair of independently connected cells in the
図10には、図9とは異なるセルパターンであり、拡張された探索範囲133に1対の単独セルはないが、1対の独立連結セルがある例を示している。図10の例では、暗セルが3つ連結した独立連結セル137、暗セルが2つ連結した独立連結セル138、明セルが2つ連結した独立連結セル139が、上下両側の探索範囲133にそれぞれ1対存在している。
FIG. 10 shows an example in which the cell pattern is different from that of FIG. 9, and there is no pair of single cells in the expanded
S747の判断がYESであればS748に進む。S748では、S747で検出した1対の独立連結セルの中心を基準点に決定する。たとえば、暗セルが3つ連結した独立連結セル137であれば、その3つの暗セルの中心を基準点に決定する。
If the judgment of S747 is YES, the process proceeds to S748. In S748, the center of the pair of independently connected cells detected in S747 is determined as a reference point. For example, in the case of an independently
S747の判断がNOであればS749に進む。S749では、誤り訂正がされていることにより基準セルに採用されなかった初回候補セル130を含み、画像120に対して接近離隔する方向の列に、1セル分の段差エッジがあるか否かを判断する。エッジは、撮像画像の輝度値が急峻に変化する点であり、明セルと暗セルの境界である。段差エッジは、1組のエッジであって、その1組のエッジが同一列ではなく、1列ずれて存在しているものを意味する。1セル分の段差エッジは、1組の段差エッジ間が1セル分であることを意味する。
If the judgment of S747 is NO, the process proceeds to S747. In S749, whether or not there is a step edge for one cell in the row in the direction of approaching and separating from the
1組の段差エッジ間が1セル分であるか否かは、コード読み取り結果と、エッジの位置の比較から決定する。具体的には、データ読み取り処理により得られたセル種類の配列とエッジの位置とから、エッジが、基準点設定方向において端からそれぞれ何セル目と何セル目の境界であるかを求める。この境界の位置が1セル分ずれている場合に、1組の段差エッジ間が1セル分であるとする。 Whether or not there is one cell between one set of stepped edges is determined from the code reading result and the comparison of the edge positions. Specifically, from the cell type array obtained by the data reading process and the edge position, it is determined which cell number and cell number boundary the edge is from the end in the reference point setting direction, respectively. When the position of this boundary is deviated by one cell, it is assumed that one set of step edges is one cell.
図11には、図9、図10とは異なるセルパターンであり、拡張された探索範囲133に、1対の単独セルおよび1対の独立連結セルはないが、1セル分の段差エッジ140がある例を示している。図11において、セル色明示範囲136に、2つのエッジ141、142が示されている。エッジ141は画像120から数えて3列目に存在しており、エッジ142は画像120から数えて4列目に存在している。
In FIG. 11, the cell pattern is different from that in FIGS. 9 and 10, and the expanded
S749の判断がYESであればS750に進む。S750では、S749で検出した1セル分の段差エッジ140を構成する2つのエッジ141、142の基準点設定方向の位置の中点を、基準点の基準点設定方向の座標とする。基準点の、基準点設定方向に直交する方向の座標は、段差エッジ140に含まれる座標であればよい。たとえば、エッジ141により定まるセルの中心、エッジ142により定まるセルの中心、これら2つのセルの境界のいずれかを、基準点の、基準点設定方向に直交する方向の座標とする。
If the judgment of S749 is YES, the process proceeds to S750. In S750, the midpoint of the positions of the two
S749の判断がNOである場合、S744、S748、S750のいずれかを実行した場合には図7の処理を終了する。図7の処理を終了することで図5の処理も終了することになるので、図3のS80に進む。 If the determination in S749 is NO, and if any one of S744, S748, and S750 is executed, the process of FIG. 7 is terminated. Since the process of FIG. 5 is also completed by ending the process of FIG. 7, the process proceeds to S80 of FIG.
図3のS80は復元処理部としての処理であり、湾曲復元処理を実行する。湾曲復元処理は、画像120が湾曲している場合に、その画像120を平面画像に復元する処理である。S80の湾曲復元処理あるいはS50の平面復元処理を実行して得た画像を、平面復元画像とする。湾曲復元処理は、詳しくは図12に示す処理である。
S80 in FIG. 3 is a process as a restoration process unit, and executes a curve restoration process. The curvature restoration process is a process of restoring an
図12において、S81では、分割領域150を作成する。分割領域150は、S70の基準点設定処理で設定した基準点を4つの頂点とする四角形の領域である。図13に、分割領域150の一例を示している。なお、図13に示す画像付き2次元コード100では、分割領域150の説明に不要な要素は省略している。図13には、基準点151が、画像120を挟んで上下に8つずつ設定されており、分割領域150は7つ形成されている。分割領域150は、画像120の一方の側において互いに隣接する2つの基準点151と、その2つの基準点151と画像120を挟んで対向する、互いに隣接する2つの基準点151を4つの頂点とする四角形の領域である。なお、これら分割領域150を全部組み合わせた領域が全体復元領域である。
In FIG. 12, in S81, the
S82では、S81で作成した分割領域150を1つずつ射影変換する。これにより、分割領域150は、各頂点がデータ読み取り処理で得たセルの配列から定まる、分割領域150を正面から見た形状に変換される。本実施形態では、変換後の形状は長方形であるので、変換後の分割領域150を長方形領域とする。
In S82, the divided
S83では、全部の分割領域150を変換したか否かを判断する。この判断がNOであればS82に戻り、まだ変換していない分割領域150を長方形領域に変換する。S83の判断がYESになった場合、S84に進む。
In S83, it is determined whether or not all the divided
S84では、全部の長方形領域を合成する。これにより平面復元画像が作成できる。図14には、図2に示す画像120を、このようにして復元した平面復元画像を示している。
In S84, all the rectangular areas are combined. This makes it possible to create a plane restoration image. FIG. 14 shows a plane restored image obtained by restoring the
説明を図3に戻す。S50またはS80を実行後はS90に進む。S90では、S50またはS80で作成した平面復元画像を出力する。出力先は、画面、紙、他の処理装置などである。 The explanation is returned to FIG. After executing S50 or S80, the process proceeds to S90. In S90, the plane restoration image created in S50 or S80 is output. The output destination is a screen, paper, another processing device, or the like.
[実施形態のまとめ]
データ読み取り処理(S20)によりデータコード語の読み取りができたとき(S30:YES)、画像付き2次元コード100は各列のセルの配列が判別できたことになる。そして、セルの配列が定まると、セルの配列を、S10で撮像したコード撮像画像を画像解析することで抽出できるセル配列と照らし合わせることで、コード撮像画像におけるセルの座標を補正することができる(S60)。
[Summary of embodiments]
When the data code word can be read by the data reading process (S20) (S30: YES), the two-
そして、補正後のセル座標に基づいて、画像120の全体を含む全体復元領域を分割した分割領域150を定める点になる基準点151を設定する。このようにして基準点151を設定することから、画像付き2次元コード100が曲面に形成されていても、画像付き2次元コード100が平面にあるときの基準点151の間隔が分かる。したがって、このようにして基準点151を設定することで、湾曲復元処理(S80)では、分割領域150の基準点151を、画像付き2次元コード100が平面にあるときの位置に精度よく戻すことができる。
Then, based on the corrected cell coordinates, a
しかも、湾曲復元処理(S80)では、画像120の全体を含む基準点151を設定して画像120を復元するのではなく、画像120を分割した分割領域150ごと復元処理を行う。したがって、画像付き2次元コード100が曲面に形成されていることにより、平面画像では直線である線が曲線になっているとしても、その曲線は、画像120の全体を含む全体復元領域よりは分割領域150のほうが直線との乖離が少ない。そのため、分割領域150に含まれる基準点設定方向のセル列を、精度よく歪みの少ない配列に戻すことができる。よって、分割領域150を正面から見た画像に戻した長方形領域を合成して得られる平面復元画像は、画像120が精度よく平面画像に変換された画像になる。
Moreover, in the bending restoration process (S80), the
また、基準点151を、画像120を挟んで設定しているので、画像120が斜め方向から撮像されている場合でも、分割領域150の各頂点を、画像付き2次元コード100を平面としたときの座標に正しく対応させることができる。
Further, since the
また、基準点151として、画像120を挟んで互いに向かい合う位置にある単独セル134、135のセル座標を設定するので、精度のよい基準点151を設定することができ、その結果、平面画像の復元精度が向上する。
Further, since the cell coordinates of the
また、単独セル134、135を、画像120に近い側から順に探索するので、基準点151を画像120に近い位置に決定でき、その結果、分割領域150を小さくすることができる。
Further, since the
また、初回候補セル130を基準点設定方向において等間隔に設定しつつ、かつ、初回候補セル130を含む同色セルブロックが誤り訂正されている場合には、基準セルを変更する。これにより、誤った位置を基準点151に設定してしまうことを抑制しつつ、基準点151を等間隔に設定できる。
Further, when the
また、初回候補セル130を基準セルに設定しない場合、探索範囲133を、基準点設定方向に隣接するセル列に拡張して1対の単独セルを基準セルに設定する。この処理によって、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。
When the
また、初回候補セル130を基準セルに設定しない場合、探索範囲133に1対の独立連結セルを探索し、独立連結セルの中心を基準点に設定することもできる。この処理によっても、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点を等間隔に近い間隔で設定できる。
Further, when the
また、初回候補セル130を基準セルに設定しない場合、初回候補セル130と同じセル列に、1セル分の段差エッジ140があれば、その段差エッジ140が備える2つのエッジ141、142間を1セルと見たて、基準点を設定することもできる。この処理によって、誤った位置を基準点に設定してしまうことを抑制しつつ、基準点設定方向における基準点間の距離を等間隔に設定できる。
Further, when the
以上、実施形態を説明したが、開示した技術は上述の実施形態に限定されるものではなく、次の変形例も開示した範囲に含まれ、さらに、下記以外にも要旨を逸脱しない範囲内で種々変更して実施できる。なお、以下の説明において、それまでに使用した符号と同一番号の符号を有する要素は、特に言及する場合を除き、それ以前の実施形態における同一符号の要素と同一である。また、構成の一部のみを説明している場合、構成の他の部分については先に説明した実施形態を適用できる。 Although the embodiments have been described above, the disclosed techniques are not limited to the above-described embodiments, and the following modifications are also included in the disclosed scope, and further, within a range other than the following that does not deviate from the gist. It can be changed in various ways. In the following description, the element having the same number as the code used so far is the same as the element having the same code in the previous embodiments, unless otherwise specified. Further, when only a part of the configuration is described, the embodiment described above can be applied to the other parts of the configuration.
<変形例1>
実施形態では、画像120の全部を平面復元処理をしていたが、画像120の一部のみを平面画像復元処理の対象としてもよい。画像付き2次元コードは、データ読み取り処理においてデータコード後の読み取りに成功した場合に復元処理を行う。データコード語に復元範囲を記録しておけば、画像のどの範囲を復元処理すればよいかを決定することができる。
<
In the embodiment, the
図15は、前述した実施形態とは異なる画像付き2次元コード200を示している。画像付き2次元コード200は、アンケートの回答を画像220としている。アンケートの回答は、チェック欄221を画像解析すればよく、チェック欄221が何に対するチェックであるかは、画像解析をする必要がない既知の事項である。
FIG. 15 shows a two-
そこで、チェック欄221を含む1つの分割領域150のみ、復元処理をして平面復元画像とする。この場合、分割領域150は1つのみであるが、画像220の一部を復元処理する領域とし、残りは復元処理をしない領域に分割していることになる。
Therefore, only one divided
この変形例1において、基準点および分割領域の設定方法は実施形態と同じとし、復元処理をする領域を、チェック欄221を含む分割領域150のみとすることができる。また、チェック欄221を含む1つの分割領域150のみを形成するように基準点を設定してもよい。
In this
この変形例1で示したように、画像220の一部の分割領域150のみを平面復元画像にするようにすれば、画像220の全部を複数の分割領域に分割して、全部の分割領域を平面画像に復元するよりも、復元処理時間を短くすることができる。
As shown in the first modification, if only a part of the divided
<変形例2>
実施形態において、S10で撮像したコード撮像画像は、画像横方向の中心から、画像左右方向の端に向かうほどセルの間隔が狭くなっていた。図16には、画像付き2次元コード100を撮像した別例を概念的に示している。図16では、画像付き2次元コード100は円筒体250に表されている。図16において一点鎖線は、コード読み取り装置10に対する円筒体250の正面の位置である。図16に示す例では、画像付き2次元コード100は、円筒体250の正面に位置していない。
<Modification 2>
In the embodiment, in the code captured image captured by S10, the cell spacing becomes narrower from the center in the lateral direction of the image toward the edge in the left-right direction of the image. FIG. 16 conceptually shows another example in which the two-
図17は、図16に示す画像付き2次元コード100の拡大図である。図17に示すように、画像付き2次元コード100は、円筒体250の正面から離れるほど、セルの間隔が狭くなっている。したがって、図16、図17に示す例では、セル座標補正後の各セルの中心座標の間隔は、図右側ほど狭くなる。コード撮像画像において、セル座標間の間隔が狭い部分は、セル座標間の間隔が広い部分に比較して、平面画像に対する歪みが大きい部分である。
FIG. 17 is an enlarged view of the two-
この例において、コード撮像画像において等間隔になるように基準点を設定してしまうと、図17の右側と左側とで、基準点間に含まれるセルの数が異なってしまう。しかし、同じコード撮像画像内でセルの大きさが異なって写っているとしても、等セル間隔で基準点を設定することで、セルの中心座標の間隔が狭いほど、基準点の間隔を狭くすることができる。 In this example, if the reference points are set so as to be evenly spaced in the code captured image, the number of cells included between the reference points differs between the right side and the left side of FIG. However, even if the cell sizes are different in the same code captured image, by setting the reference points at equal cell intervals, the narrower the distance between the center coordinates of the cells, the narrower the distance between the reference points. be able to.
これにより、歪みが大きい部分に対して、相対的に小さい分割領域を設定できる。よって、コード撮像画像において一定間隔で基準点を設定するよりも、精度のよい平面画像を復元することができる。 As a result, it is possible to set a relatively small divided region for a portion having a large distortion. Therefore, it is possible to restore a plane image with higher accuracy than setting reference points at regular intervals in the code captured image.
<変形例3>
画像付き2次元コードは、実施形態に示したものに限られない。他にも、図18に示すように、1対の長方形状のコード領域310が画像320を挟んでいる画像付き2次元コード300でもよい。また、図19に示すように、画像420を小さくし、コード領域410を大きくした画像付き2次元コード400でもよい。画像420が小さい場合、画像420をデータコード語を記録する領域に重畳して、誤り訂正機能で、画像420により読み取れないデータコード語を復元するようにしてもよい。
<Modification 3>
The two-dimensional code with an image is not limited to that shown in the embodiment. Alternatively, as shown in FIG. 18, a two-
さらに、図20に示すように、画像520がコード領域510に囲われていない画像付き2次元コード500が備えている画像520を復元処理の対象としてもよい。この場合、画像520を挟んで基準点を設定することはできない。そこで、コード領域510において画像520に近い位置に一列に基準点を配置し、隣接する基準点間を1辺として所定形状の分割領域を設定する。所定形状は、たとえば長方形であり、隣接する基準点間を短辺とする。この場合、長辺の延びる方向は、基準点を通り、その基準点を端とする2つの短辺の角度を2等分する方向とする。長辺の長さは、画像付き2次元コード500が撮像された大きさに基づいて決定すればよい。
Further, as shown in FIG. 20, the
<変形例4>
画像付き2次元コードが備えている画像の形状は四角形に限られない。画像付き2次元コードが備えている画像の形状は、四角形以外の多角形、丸型など、形状に制限はない。全体復元領域を、その画像を含む所定形状(たとえば四角形など)にすればよいからである。
<Modification example 4>
The shape of the image included in the two-dimensional code with an image is not limited to a quadrangle. The shape of the image included in the two-dimensional code with an image is not limited to a polygon such as a polygon other than a quadrangle or a round shape. This is because the entire restoration area may be formed into a predetermined shape (for example, a quadrangle) including the image.
<変形例5>
分割領域は、四角形である必要はなく、他の形状、たとえば、三角形でもよい。
<Modification 5>
The dividing area does not have to be a quadrangle and may be another shape, for example a triangle.
<変形例6>
コード読み取り装置として、スマートフォンを用いることもできる。
<Modification 6>
A smartphone can also be used as a code reading device.
10:コード読み取り装置 23:受光センサ(撮像部) 40:制御回路 100:画像付き2次元コード 110:コード領域 111:位置検出パターン 113:中点 114:中点 120:画像 130:初回候補セル 132:四角枠 133:探索範囲 134:単独セル 135:単独セル 136:セル色明示範囲 137、138、139:独立連結セル 140:段差エッジ 141:エッジ 142:エッジ 150:分割領域 151:基準点 200:画像付き2次元コード 220:画像 221:チェック欄 250:円筒体 300:画像付き2次元コード 310:コード領域 320:画像 400:画像付き2次元コード 410:コード領域 420:画像 500:画像付き2次元コード 510:コード領域 520:画像 S20:データ読み取り部 S60:セル座標補正部 S70:基準点設定部 S80:復元処理部
10: Code reader 23: Light receiving sensor (imaging unit) 40: Control circuit 100: Two-dimensional code with image 110: Code area 111: Position detection pattern 113: Midpoint 114: Midpoint 120: Image 130: First candidate cell 132 : Square frame 133: Search range 134: Single cell 135: Single cell 136: Cell color
Claims (11)
前記画像付き2次元コードを撮像可能な撮像部(23)と、
前記撮像部によって前記画像付き2次元コードが撮像された場合に、前記コード領域に記録された前記データコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部(S20)と、
前記データ読み取り部が前記データコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部(S60)と、
補正後の前記セル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部(S70)と、
前記基準点に基づいて定まる前記分割領域を平面画像に復元する復元処理を行う復元処理部(S80)と、を備えるコード読み取り装置。 A code area (110) and an image (120) are combined, and the code area has an image 2 which is a two-dimensional code in which a data code word and an error correction code word are recorded by cells of a plurality of colors. A code reading device that reads the data code word from the dimension code (100).
An imaging unit (23) capable of capturing the two-dimensional code with an image and
A data reading unit (S20) that reads the data code word recorded in the code area while performing error correction processing when the two-dimensional code with an image is imaged by the imaging unit.
A cell coordinate correction unit (S60) that corrects cell coordinates based on an array of cells determined by the data reading unit reading the data code word.
Based on the corrected cell coordinates, a reference point setting unit (S70) for setting a reference point that is a point for defining a divided area obtained by dividing the entire restoration area including the entire image, and a reference point setting unit (S70).
A code reading device including a restoration processing unit (S80) that performs restoration processing for restoring the divided region determined based on the reference point to a flat image.
前記基準点設定部は、前記画像を挟んで前記コード領域が形成されている場合、前記画像を挟んで前記基準点を設定するコード読み取り装置。 The code reading device according to claim 1.
The reference point setting unit is a code reading device that sets the reference point by sandwiching the image when the code region is formed by sandwiching the image.
前記復元処理部は、画像全体の一部の前記分割領域を前記平面画像に復元するコード読み取り装置。 The code reading device according to claim 1 or 2.
The restoration processing unit is a code reading device that restores the divided region of a part of the entire image to the plane image.
前記基準点設定部は、セル座標間の間隔が狭いほど前記基準点間の間隔を狭くするコード読み取り装置。 The code reading device according to any one of claims 1 to 3.
The reference point setting unit is a code reading device that narrows the distance between the reference points as the distance between the cell coordinates becomes narrower.
前記基準点設定部は、前記コード領域において、基準点設定方向が前記全体復元領域の一辺に沿った方向であり、前記基準点設定方向において両隣が他色になっている1つのセルである単独セル(134、135)が、前記画像を挟んで互いに向かい合う位置に存在している場合、前記単独セルのセル座標を前記基準点に設定するコード読み取り装置。 The code reading device according to claim 2.
In the code area, the reference point setting unit is a single cell in which the reference point setting direction is along one side of the entire restoration area and both sides are in other colors in the reference point setting direction. A code reading device that sets the cell coordinates of the single cell to the reference point when the cells (134, 135) are located at positions facing each other across the image.
前記基準点設定部は、前記コード領域において前記画像に近いセルから順に、前記画像から離れる方向に前記単独セルを探索するコード読み取り装置。 The code reading device according to claim 5.
The reference point setting unit is a code reading device that searches for the single cell in the direction away from the image in order from the cell closest to the image in the code area.
前記基準点設定部は、前記基準点を決めるためのセルの候補として最初に設定するセルである初回候補セル(130)を、前記基準点設定方向において等セル間隔に設定し、前記初回候補セルおよび前記初回候補セルに対して前記基準点設定方向に連続する同色のセルを含む同色セルブロックが誤り訂正されていない場合、前記初回候補セルのセル座標を前記基準点に設定するコード読み取り装置。 The code reading device according to claim 5 or 6.
The reference point setting unit sets initial candidate cells (130), which are cells first set as cell candidates for determining the reference point, at equal cell intervals in the reference point setting direction, and sets the initial candidate cells at equal cell intervals. And a code reading device that sets the cell coordinates of the first candidate cell to the reference point when the same color cell block including cells of the same color that are continuous in the reference point setting direction is not erroneously corrected for the first candidate cell.
前記基準点設定部は、前記初回候補セルを含む前記同色セルブロックが誤り訂正されている場合、前記初回候補セルに対して前記基準点設定方向に隣接するセルを含み前記画像に対して接近離隔方向に延びるセル列を探索範囲(133)とし、前記探索範囲を前記画像に近いセルから順に探索し、前記画像を挟んで互いに向かい合う位置に1対の前記単独セルがある場合に、その1対の前記単独セルのセル座標を前記基準点に設定するコード読み取り装置。 The code reading device according to claim 7.
When the same color cell block including the initial candidate cell is erroneously corrected, the reference point setting unit includes a cell adjacent to the initial candidate cell in the reference point setting direction and is close to and separated from the image. The cell row extending in the direction is set as the search range (133), the search range is searched in order from the cell closest to the image, and when there is a pair of the single cells at positions facing each other across the image, the pair thereof. A code reading device that sets the cell coordinates of the single cell of the above to the reference point.
前記基準点設定部は、前記初回候補セルを含む前記同色セルブロックが誤り訂正されている場合、前記初回候補セルに対して前記基準点設定方向に隣接するセルを含み前記画像に対して接近離隔方向に延びるセル列を探索範囲(133)とし、前記探索範囲に、同色セルが基準点設定方向に連結しており、かつ、前記探索範囲内で同色セルの連結が終了しているセルである独立連結セル(137、138、139)が、前記画像を挟んで、前記基準点設定方向において同じ位置にある場合、1対の前記独立連結セルの中心を、前記基準点に設定するコード読み取り装置。 The code reading device according to claim 7 or 8.
When the same color cell block including the initial candidate cell is erroneously corrected, the reference point setting unit includes a cell adjacent to the initial candidate cell in the reference point setting direction and is close to and separated from the image. The cell row extending in the direction is set as the search range (133), and the cells of the same color are connected to the search range in the reference point setting direction, and the cells of the same color are connected within the search range. When the independently linked cells (137, 138, 139) are at the same position in the reference point setting direction across the image, a code reading device that sets the center of the pair of independently linked cells to the reference point. ..
前記基準点設定部は、前記初回候補セルを含む前記同色セルブロックが誤り訂正されている場合、前記初回候補セルを含み前記画像に対して接近離隔方向に延びるセル列に、相互に1列ずれて存在している2つのエッジであって、2つのエッジ間が1セル分である段差エッジ(140)がある場合、前記基準点設定方向において2つのエッジの中間に前記基準点を設定するコード読み取り装置。 The code reading device according to any one of claims 7 to 9.
When the same color cell block including the initial candidate cell is erroneously corrected, the reference point setting unit is displaced by one row from the cell row including the initial candidate cell and extending in the approaching and separating direction with respect to the image. A code for setting the reference point in the middle of the two edges in the reference point setting direction when there is a stepped edge (140) in which two edges exist and the distance between the two edges is one cell. Reader.
前記撮像部によって前記画像付き2次元コードが撮像された場合に、前記コード領域に記録された前記データコード語を、誤り訂正処理を行いつつ読み取るデータ読み取り部(S20)と、
前記データ読み取り部が前記データコード語を読み取ったことにより定まるセルの配列に基づいて、セル座標を補正するセル座標補正部(S60)と、
補正後の前記セル座標に基づいて、画像全体を含む全体復元領域を分割した分割領域を定める点になる基準点を設定する基準点設定部(S70)と、
前記基準点に基づいて定まる前記分割領域を平面画像に復元する復元処理を行う復元処理部(S80)として機能させるためのコード読み取りプログラム。 A code area (110) and an image (120) are combined, and the code area has an image 2 which is a two-dimensional code in which a data code word and an error correction code word are recorded by cells of a plurality of colors. In a code reading device including an image pickup unit (23) capable of capturing the two-dimensional code with an image and a computer (40) in order to read the data code word from the dimension code (100), the computer is used.
A data reading unit (S20) that reads the data code word recorded in the code area while performing error correction processing when the two-dimensional code with an image is imaged by the imaging unit.
A cell coordinate correction unit (S60) that corrects cell coordinates based on an array of cells determined by the data reading unit reading the data code word.
Based on the corrected cell coordinates, a reference point setting unit (S70) for setting a reference point that is a point for defining a divided area obtained by dividing the entire restoration area including the entire image, and a reference point setting unit (S70).
A code reading program for functioning as a restoration processing unit (S80) that performs restoration processing for restoring the divided area determined based on the reference point to a flat image.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018133406A JP7091898B2 (en) | 2018-07-13 | 2018-07-13 | Code reader and code reader |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018133406A JP7091898B2 (en) | 2018-07-13 | 2018-07-13 | Code reader and code reader |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020013210A JP2020013210A (en) | 2020-01-23 |
JP7091898B2 true JP7091898B2 (en) | 2022-06-28 |
Family
ID=69169227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018133406A Active JP7091898B2 (en) | 2018-07-13 | 2018-07-13 | Code reader and code reader |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7091898B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222517A (en) | 1998-11-27 | 2000-08-11 | Denso Corp | Method and device for reading two-dimensional code, and recording medium |
JP2004362053A (en) | 2003-06-02 | 2004-12-24 | Hitachi Information Technology Co Ltd | Two-dimensional code reading device |
JP2009129222A (en) | 2007-11-26 | 2009-06-11 | Denso Wave Inc | Optical information reading apparatus |
JP2012181757A (en) | 2011-03-02 | 2012-09-20 | Denso Wave Inc | Optical information reader |
JP2015135701A (en) | 2015-04-15 | 2015-07-27 | 国立大学法人 鹿児島大学 | Two-dimensional code, image reader, image reading method, program, and storage medium |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011049690A (en) * | 2009-08-25 | 2011-03-10 | Fuji Xerox Co Ltd | Two-dimensional code generator, image forming system, two-dimensional code reader, computer program, and medium |
-
2018
- 2018-07-13 JP JP2018133406A patent/JP7091898B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222517A (en) | 1998-11-27 | 2000-08-11 | Denso Corp | Method and device for reading two-dimensional code, and recording medium |
JP2004362053A (en) | 2003-06-02 | 2004-12-24 | Hitachi Information Technology Co Ltd | Two-dimensional code reading device |
JP2009129222A (en) | 2007-11-26 | 2009-06-11 | Denso Wave Inc | Optical information reading apparatus |
JP2012181757A (en) | 2011-03-02 | 2012-09-20 | Denso Wave Inc | Optical information reader |
JP2015135701A (en) | 2015-04-15 | 2015-07-27 | 国立大学法人 鹿児島大学 | Two-dimensional code, image reader, image reading method, program, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
JP2020013210A (en) | 2020-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9892300B2 (en) | Two-dimensional code | |
US9451132B2 (en) | System for capturing a document in an image signal | |
US6249008B1 (en) | Code reader having replaceable optics assemblies supporting multiple illuminators | |
JP4186915B2 (en) | Optical information reader | |
JP2012145559A (en) | Marker | |
US20210097321A1 (en) | Dual-pattern optical 3d dimensioning | |
JP4951735B2 (en) | Optical information reader | |
WO2016166914A1 (en) | Two-dimensional code, two-dimensional code record carrier, method for reading two-dimensional code, program for reading two-dimensional code, and device for reading two-dimensional code | |
JP5857712B2 (en) | Stereo image generation apparatus, stereo image generation method, and computer program for stereo image generation | |
JP2007122243A (en) | Optical information verification device | |
JP6246176B2 (en) | Three-dimensional information code and three-dimensional information code reading device | |
JP7091898B2 (en) | Code reader and code reader | |
JP5720623B2 (en) | Two-dimensional code reader | |
US20230267628A1 (en) | Decoding an image for active depth sensing to account for optical distortions | |
US20190295277A1 (en) | Projection control device, marker detection method, and storage medium | |
EP3798569B1 (en) | Dual-pattern optical 3d dimensioning | |
JP4871918B2 (en) | Image conversion apparatus, image conversion method, image conversion program, and computer-readable recording medium recording the image conversion program | |
JP6368997B2 (en) | Image clipping device and image clipping program | |
JP4314148B2 (en) | Two-dimensional code reader | |
JP7167553B2 (en) | Two-dimensional code | |
JP2018092270A (en) | Reading device, reading program and reading method | |
JP5522093B2 (en) | Optical information reader | |
JP6219911B2 (en) | Two-dimensional code, image reading apparatus, image reading method and program | |
JP4378491B2 (en) | Code image output device | |
JP4102742B2 (en) | Optical information reader and image data analysis method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210303 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220517 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220530 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7091898 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |