JP5127687B2 - Bar code reading apparatus, bar code reading program, and bar code reading method - Google Patents
Bar code reading apparatus, bar code reading program, and bar code reading method Download PDFInfo
- Publication number
- JP5127687B2 JP5127687B2 JP2008316837A JP2008316837A JP5127687B2 JP 5127687 B2 JP5127687 B2 JP 5127687B2 JP 2008316837 A JP2008316837 A JP 2008316837A JP 2008316837 A JP2008316837 A JP 2008316837A JP 5127687 B2 JP5127687 B2 JP 5127687B2
- Authority
- JP
- Japan
- Prior art keywords
- bright
- barcode
- dark
- image
- area
- 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.)
- Expired - Fee Related
Links
Images
Description
本発明は、バーコードを含んだ領域を撮像し、撮像された画像からバーコードを読み取るバーコード読取装置、バーコード読取プログラム、バーコード読取方法に関する。 The present invention relates to a barcode reading apparatus, a barcode reading program, and a barcode reading method that capture an image of an area including a barcode and read the barcode from the captured image.
従来、カメラによってバーコードを含んだ領域が撮像され、撮像された画像に基づきバーコードをデコードする手法が開示されている。 Conventionally, a method has been disclosed in which a region including a barcode is captured by a camera, and the barcode is decoded based on the captured image.
また、波形を解読するために撮像画像を2回微分処理し、得られた画像から0クロス点を求める方法が知られている。 Also, a method is known in which a captured image is differentiated twice in order to decode a waveform, and a zero cross point is obtained from the obtained image.
なお、本発明の関連ある従来技術として、バーコードの画像が不鮮明であっても、情報を認識可能なバーコード認識装置、方法が開示されている(例えば特許文献1)。
しかしながら、ノイズがある撮像画像に対し、またバー幅の細いバーコードに対して、サブピクセルでの波形を解読するためには、上述の2回微分処理をすることで0クロス点を求める方法では、正確なバー幅を求めるのは困難であり、よって正確なバーコード読取を行うことができない。 However, in order to decipher the waveform at the sub-pixel for a picked-up image with noise or for a bar code with a narrow bar width, the method of obtaining the zero cross point by performing the above-described two-time differentiation process. Therefore, it is difficult to obtain an accurate bar width, and thus accurate barcode reading cannot be performed.
本発明は上述した課題を解決するためになされたものであり、撮像された画像が粗い、撮像された画像がぼやけている、ノイズがある、またバーコードのバー幅が細い等であってもバーコードの位置を的確に検出し、検出されたバーコード位置に基づきバーコードを的確にデコードすることができるバーコード読取装置、バーコード読取プログラム、バーコード読取方法を提供することを目的とする。 The present invention has been made to solve the above-described problems. Even when the captured image is rough, the captured image is blurred, noisy, or the barcode has a narrow bar width, etc. An object of the present invention is to provide a barcode reading apparatus, a barcode reading program, and a barcode reading method capable of accurately detecting the position of a barcode and accurately decoding the barcode based on the detected barcode position. .
上述した課題を解決するため、本発明の一態様に係るバーコード読取装置は、少なくともバーコードを含む領域を撮像する撮像部と、前記撮像部にて撮像された画像にバーコードスキャン方向での微分処理を少なくとも行い、該微分処理を行った画像の濃度値に基づき、前記微分処理を行った画像上での明領域と、前記微分処理を行った画像上での暗領域とを識別した明暗データを作成する明暗領域識別部と、前記明暗領域識別部によって作成された明暗データに対し、少なくとも明部分に挟まれた暗部分が明領域になるまで明領域を膨張させ、膨張させた明領域を、少なくとも、バー間のスペースが明領域となった前記バーコードと他の明領域との接触がなくなるまで縮退させ、縮退させた明領域を、膨張させる前のサイズに戻した明暗データを作成する膨張縮退部と、前記膨張縮退部によって作成された明暗データにおける、明領域それぞれのうちから最大面積の明領域を選定する選定部と、を備えることを特徴とする。 In order to solve the above-described problem, a barcode reader according to one embodiment of the present invention includes an imaging unit that captures at least an area including a barcode, and an image captured by the imaging unit in a barcode scanning direction. At least a differentiation process is performed, and based on a density value of the image subjected to the differentiation process, a bright area on the image subjected to the differentiation process and a dark area on the image subjected to the differentiation process are identified. Bright and dark area identification unit for creating data, and the bright area obtained by expanding the bright area until the dark part sandwiched by at least the bright part becomes a bright area with respect to the bright and dark data created by the bright and dark area identification unit At least until the bar code where the space between the bars becomes a bright area and contact with other bright areas disappears, and the reduced bright area is returned to the size before expansion. An expansion degeneracy unit for creating data, in contrast data created by the expansion degeneracy unit, characterized in that it comprises a selection unit, a selecting a bright region with the largest area among the respective bright areas.
また、本発明の一態様に係るバーコード読取プログラムは、少なくともバーコードを含む領域が撮像された画像を取得する取得ステップと、前記取得ステップによって取得された画像にバーコードスキャン方向での微分処理を少なくとも行い、該微分処理を行った画像の濃度値に基づき、前記微分処理を行った画像上での明領域と、前記微分処理を行った画像上での暗領域とを識別した明暗データを作成する明暗領域識別ステップと、前記明暗領域識別ステップよって作成された明暗データに対し、少なくとも明部分に挟まれた暗部分が明領域になるまで明領域を膨張させ、膨張させた明領域を、少なくとも、バー間のスペースが明領域となった前記バーコードと他の明領域との接触がなくなるまで縮退させ、縮退させた明領域を、膨張させる前のサイズに戻した明暗データを作成する膨張縮退ステップと、前記膨張縮退ステップによって作成された明暗データの明領域それぞれのうちから最大面積の明領域を選定する選定ステップと、前記選定ステップによって選定された明領域をバーコード位置とし、該バーコード位置に基づき前記取得ステップによって取得された画像内のバーコードをデコードするバーコード解読ステップと、をコンピュータに実行させることを特徴とする。 The barcode reading program according to one aspect of the present invention includes an acquisition step of acquiring an image in which at least a region including a barcode is captured, and a differentiation process in the barcode scan direction on the image acquired by the acquisition step At least, and based on the density value of the image subjected to the differentiation process, brightness data that identifies the bright area on the image subjected to the differentiation process and the dark area on the image subjected to the differentiation process The bright region is expanded until the dark portion sandwiched between at least the bright portions becomes the bright region with respect to the bright / dark data generated by the bright / dark region identification step and the bright / dark region identification step, At least, the bar code where the space between the bars becomes a bright area is degenerated until there is no contact with the other bright areas, and the degenerated bright area is expanded. An expansion / reduction step for creating brightness / darkness data returned to the previous size, a selection step for selecting a bright area of the maximum area from each of the bright areas of the brightness / darkness data created by the expansion / reduction step, and selection by the selection step The computer is caused to execute a barcode decoding step of decoding the barcode in the image acquired by the acquisition step based on the barcode position, with the bright area as a barcode position.
さらに、本発明の一態様に係るバーコード読取方法は、少なくともバーコードを含む領域が撮像された画像を取得する取得ステップと、前記取得ステップによって取得された画像にバーコードスキャン方向での微分処理を少なくとも行い、該微分処理を行った画像の濃度値に基づき、前記微分処理を行った画像上での明領域と、前記微分処理を行った画像上での暗領域とを識別した明暗データを作成する明暗領域識別ステップと、前記明暗領域識別ステップよって作成された明暗データに対し、少なくとも明部分に挟まれた暗部分が明領域になるまで明領域を膨張させ、膨張させた明領域を、少なくとも、バー間のスペースが明領域となった前記バーコードと他の明領域との接触がなくなるまで縮退させ、縮退させた明領域を、膨張させる前のサイズに戻した明暗データを作成する膨張縮退ステップと、前記膨張縮退ステップによって作成された明暗データの明領域それぞれのうちから最大面積の明領域を選定する選定ステップと、前記選定ステップによって選定された明領域をバーコード位置とし、該バーコード位置に基づき前記取得ステップによって取得された画像内のバーコードをデコードするバーコード解読ステップと、を実行することを特徴とする。 Furthermore, the barcode reading method according to one aspect of the present invention includes an acquisition step of acquiring an image in which at least a region including a barcode is captured, and a differentiation process in the barcode scan direction on the image acquired by the acquisition step At least, and based on the density value of the image subjected to the differentiation process, brightness data that identifies the bright area on the image subjected to the differentiation process and the dark area on the image subjected to the differentiation process The bright region is expanded until the dark portion sandwiched between at least the bright portions becomes the bright region with respect to the bright / dark data generated by the bright / dark region identification step and the bright / dark region identification step, At least before the bar code where the space between the bars is a bright area and the other bright areas are no longer in contact with each other, the degenerated bright area is not expanded. An expansion / reduction step for creating the brightness / darkness data returned to the size, a selection step for selecting a bright area of the maximum area from each of the bright areas of the brightness / darkness data created by the expansion / reduction step, and the selection step. And a barcode decoding step of decoding the barcode in the image acquired by the acquisition step based on the barcode position based on the barcode position.
撮像された画像からバーコードの位置を的確に検出することができる。 The position of the barcode can be accurately detected from the captured image.
本実施の形態では、NW−7のコード体系の仕様に準拠したバーコードを処理の対象とする。ここで、NW−7について説明する。尚、本実施の形態で開示するバーコード読取装置、バーコード読取プログラム、バーコード読取方法は、NW−7以外のコード体系(例えばCode−39)でも適用可能である。 In the present embodiment, a barcode that conforms to the specifications of the NW-7 code system is the target of processing. Here, NW-7 will be described. Note that the barcode reading apparatus, barcode reading program, and barcode reading method disclosed in the present embodiment can be applied to code systems other than NW-7 (for example, Code-39).
NW−7のコード体系では、4本のバーと3本のスペースの合計7本で1文字が構成される。また、文字と文字の間には、キャラクタギャップと呼ばれるワイドスペース部分があるものとする。 In the NW-7 code system, one character is composed of a total of seven bars of four bars and three spaces. Also, it is assumed that there is a wide space portion called a character gap between characters.
バーとスペースは幅が細いもの(ナローバー/ナロースペース)と、太いもの(ワイドバー/ワイドスペース)がある。尚、ナローとワイドの比率が2倍〜3倍であることとする。 Bars and spaces are narrow (narrow bar / narrow space) and thick (wide bar / wide space). The ratio between narrow and wide is 2 to 3 times.
また、バーコード幅の密度は、以下の通りである。本実施の形態では、高密度にも対応できる。
・低密度 : ナロー幅=0.40mm、比率2.5倍
・中密度 : ナロー幅=0.26mm 比率2.5倍
・高密度 : ナロー幅=0.19mm 比率2.25倍
Further, the density of the barcode width is as follows. In this embodiment, it is possible to cope with high density.
・ Low density: narrow width = 0.40mm, ratio 2.5 times ・ Medium density: narrow width = 0.26mm ratio 2.5 times ・ High density: narrow width = 0.19mm ratio 2.25 times
ナローバーとナロースペースは、バイナリーコードの0を表し、ワイドバーとワイドスペースはバイナリーコードの1を表す。すなわち、1文字は7ビットで表現されることになる。 Narrow bar and narrow space represent 0 of the binary code, and wide bar and wide space represent 1 of the binary code. That is, one character is expressed by 7 bits.
また、NW−7のコード体系には、以下の仕様がある。
・バーコードの左マージン、右マージンにナロースペースの10倍以上のスペースを要する。
・データフィールド長は96ビットで、12文字を表現する。
・開始文字、終了文字は「a」のみ。
The NW-7 code system has the following specifications.
-The bar code's left and right margins require more than 10 times the narrow space.
• The data field length is 96 bits and represents 12 characters.
・ Start character and end character are “a” only.
また、以下の説明では、バーコードの位置検出に特化したバーコード読取装置の形態を「実施の形態1」として説明し、バーコードの判読に特化したバーコード読取装置の形態を「実施の形態2」として説明する。また、以降の説明では、バーコードの配列方向すなわちスキャン方向を横軸(X軸)とした画像を対象とする。
In the following description, the form of the barcode reader specialized for barcode position detection will be described as “
(実施の形態1)
実施の形態1におけるバーコード読取装置の機能構成を、図1を参照しつつ説明する。バーコード読取装置100は、撮像部1、明暗領域識別部2、膨張縮退部3、位置抽出部4(選定部)、バーコード解読部5を備える。
(Embodiment 1)
A functional configuration of the barcode reading apparatus according to the first embodiment will be described with reference to FIG. The
撮像部1は、少なくともバーコードを含んだ領域を、レンズを介して動画として撮像し、撮像した映像を撮像素子に結像させビデオ信号として出力するカメラである。撮像部1は、例えば携帯電話機に代表される動画撮像機能を有する携帯端末機であり、ユーザはバーコード近傍を撮像し続けた状態で、撮像画像の動画を確認しながら作業を実施することができる。
The
明暗領域識別部2は、撮像された動画画像の1フレーム(1枚の静止画)に対し、シェーディング補正、X方向微分処理等の画像処理を実施し、画像処理後の画像の明るい領域(以下、白色領域(明領域)と称す)と暗い領域(以下、黒色領域(暗領域)と称す)を識別した画像を生成する。尚、実施の形態1では、白色領域、黒色領域とが2値化された画像が生成されるものとする。
The light / dark
膨張縮退部3は、明暗領域識別部2によって2値化された画像に対し、少なくとも白色部分に挟まれた黒色部分が白色領域になるまで(バー間の黒い隙間(濃度値が0のもの)が埋まるまで、すなわちバー間のスペース部が無くなるまで)白色領域を膨張させる。また、膨張縮退部3は、バーコードの白色領域が周辺の白色領域と接触しているのを切断するため、白色領域を縮退させる。
The expansion /
さらに、膨張縮退部3は、縮退させた白色領域を再度膨張させ、バーコードを元のサイズに戻す。尚、膨張縮退部3は、膨張処理、縮退処理、および元のバーコードサイズに戻すための膨張処理の各ステップで得られるデータを画像データとしてメモリに保持させるものとする。
Further, the expansion /
位置抽出部4は、膨張縮退部3によって膨張処理、縮退処理、および元のバーコードサイズに戻すための膨張処理が実行された画像データに対し、ラベリング処理を行い、白色領域を抽出する。その後、位置抽出部4は、白色領域のうちで一番大きい面積を選定する。尚、この最大面積がバーコードの位置となる。
The
バーコード解読部5は、位置抽出部4によって抽出された最大面積の白色領域をバーコードの位置とし、当該バーコードの位置に基づき、撮像部1によって撮像された画像内のバーコードをデコード(バーコード解読処理)する。
The
次に、本実施の形態におけるバーコード読取装置100の動作を図2のフローチャートを参照しつつ説明する。
Next, the operation of the
まず、撮像部1は、少なくともバーコードを含んだ領域を撮像し、撮像画像を取得する(S1)。次に明暗領域識別部2は、撮像された画像の平均濃度を算出し、平均濃度が一定範囲にない場合はゲイン値を変更し、平均濃度が一定範囲になるよう補正する(S2)。
First, the
明暗領域識別部2は、ゲインの変更が行われた画像に対し、シェーディング補正を行う(S3)。明暗領域識別部2は、シェーディング補正としてX方向(画像に対する横成分方向)で所定区域の最大の濃度値をその所定領域の中央の濃度値として平均化し、画素毎に、平均化処理をした濃度値で元の画像の濃度値を除算する。また明暗領域識別部2は、その後、除算した値に一定値を積算して各画素の濃度値とする。
The bright / dark
ここで、撮像部1によって得られた原画像のバーコード部を図3に、上述シェーディング補正までを施した画像を図4にそれぞれ示す。このように、ゲイン変更処理やシェーディング補正を行うことによって、照明などの外来光の影響を緩和するとともに、原画像のバーの部分とバー間のスペースとの区別をある程度を鮮明にすることができる。尚、図3、図4ではバーコードの画像(X軸、Y軸の2次元画像)を示したが、処理を高速にするため、実際は上述の通りX方向のみの1次元で処理が行われる。
Here, the barcode portion of the original image obtained by the
次に、明暗領域識別部2は、シェーディング補正が施された画像に対し、X方向に隣接した画素の濃度値の差分を取って各画素の濃度値とするX方向微分処理を行う(S4)。図5にX方向微分処理を施した画像を示す。図5に示すように明暗領域識別部2は、X方向微分処理を行うことでバーの部分を強調する。尚、本実施の形態においては、図5に示すように、X方向微分処理を施した後の画像は本来明るい領域近傍は低い濃度値となり、本来暗い領域近傍は高い濃度値となっていることに留意する。
Next, the light / dark
続いて明暗領域識別部2は、X方向微分処理を施した後の画像に対し2値化処理を行う(S5)。
Subsequently, the light / dark
2値化処理を行う際の閾値の選定方法について、図6、図7を参照しつつ説明する。まず、図6(A)にX方向微分処理を施した画像の濃度断面図(縦軸が濃度値、横軸が画素単位での画像上の位置)を示す。明暗領域識別部2は、ここで例えば20画素ずつの局所領域(図6(B)参照)の濃度値ヒストグラムを作成する。実施の形態1では、例えば濃度のピークが2画素分程度である場合、そのピーク10箇所分を局所領域の範囲とする。
A method of selecting a threshold value when performing binarization processing will be described with reference to FIGS. First, FIG. 6A shows a density cross-sectional view of an image that has been subjected to X-direction differentiation processing (the vertical axis is the density value, and the horizontal axis is the position on the image in units of pixels). Here, for example, the light / dark
図7に、縦軸を局所領域内の画素数(個数)、横軸を濃度値とした局所領域の濃度値ヒストグラムを示す。明暗領域識別部2は、濃度波形を2つのクラスに区切ったときに、双方の波形間の分散が最大になるような濃度値を閾値とする(クラス間分散)。明暗領域識別部2は、このように局所領域ごとに閾値を算出し、当該局所領域内の各画素と、算出された閾値を比較する。明暗領域識別部2は、当該画素の濃度値が算出された閾値以上である場合、当該画素を白色(濃度値255)とし、閾値未満である場合、当該画素を黒色(濃度値0)とする(図6(B)も参照)。
FIG. 7 shows a local area density value histogram in which the vertical axis represents the number of pixels in the local area (number) and the horizontal axis represents the density value. The light / dark
尚、明暗領域識別部2は、事前に設けられた所定の閾値以上を白色(濃度値255)、閾値未満を黒色(濃度値0)とする手法でも当然よい。図8に、2値化処理を施した画像を示す。
It should be noted that the light / dark
膨張縮退部3は、このように2値化された画像に対し、バーコード部分のバー間の黒い隙間(濃度値0)が全て埋まる(濃度値255になる)まで白色領域を膨張させる(S6)。図9に、白色領域を膨張させた画像を示す。
The expansion /
一般的に、バーコードは、バーの領域の下部にバーの配列によって示される数字が印字されている。図9に示したように白色領域を膨張させた画像では、印字された数字も膨張され、膨張したバーコード部分に数字部分がノイズとして接触した状態となってしまう。またバーコードの印刷の質、よごれの付着によっては、この印字された数字以外のノイズが発生している場合もある。よって、これらノイズとの接触を切断するため、膨張縮退部3は、ノイズとの接触が無くなるまで白色領域を縮退させる(S7)。縮退処理を行った後の画像を図10に示す。
In general, a barcode is printed with a number indicated by an array of bars at the bottom of the bar area. As shown in FIG. 9, in the image in which the white region is expanded, the printed numbers are also expanded, and the number portions are in contact with the expanded barcode portion as noise. Depending on the quality of bar code printing and the adhesion of dirt, noise other than the printed numbers may occur. Therefore, in order to cut | disconnect contact with these noises, the expansion /
続いて膨張縮退部3は、ステップS6、S7によって膨張、縮退処理を行った画像に対し、再度膨張処理を実施することで、白色領域を膨張、縮退処理実施前の元のサイズに戻す(S8)。元のサイズに戻った画像を図11に示す。
Subsequently, the expansion /
位置抽出部4は、S8の処理まで施された画像に対しラベリング処理を行う(S9)。すなわち、位置抽出部4は、バーコード部分を含めた白色領域の閉領域を抽出し、抽出した閉領域にラベルを付す。その後、位置抽出部4は、ラベルを付した閉領域のうちで、一番面積の大きいものをバーコードの位置として抽出する(S10)。尚、バーコードの位置の抽出は、特徴点(矩形領域の場合は各頂点)のX座標値、Y座標値を抽出するものとする。
The
位置抽出部4は、抽出されたバーコード位置の面積が所定の閾値以上でない場合はバーコードとしない、または、抽出した領域内に黒色領域が含まれている場合はバーコードとしない等の予め設けられた条件を満たさない場合、処理を撮像部1による撮像処理(S1)に戻す(S11、No)。また条件を満たしている場合(S11、Yes)、バーコード解読部5は、位置抽出部4によって抽出されたバーコードの位置情報に基づき原画像または上述S3のシェーディング補正が施された画像からバーコードを切り出し、切り出し画像をスキャンすることでバーコードをデコードする(S12)。尚、バーコード解読部5によるバーコード解読処理は、後述する実施の形態2の処理であってもよいし、また従来のバーコード解読処理であってもよい。
If the area of the extracted barcode position is not equal to or greater than a predetermined threshold, the
膨張縮退部3は、膨張率、縮退率として事前に設けられた値を、白色領域の面積に対し積算することでS6、S7、S8の膨張、縮退処理を実施してもよい。
The expansion /
バーコード読取装置100は、バーコードの位置を抽出できた場合に発信音等を鳴らしてユーザに通知してもよい。
The
以上のように、実施の形態1のバーコード読取装置100によって、バーコードの位置を的確に検出することができる。
As described above, the
(実施の形態2)
実施の形態1では、バーコードの位置を抽出する機能に特化したバーコード読取装置を説明したが、実施の形態2では、抽出されたバーコードを正確にデコードする機能を有するバーコード読取装置について説明する。
(Embodiment 2)
In the first embodiment, the barcode reader specialized in the function of extracting the barcode position has been described. In the second embodiment, the barcode reader having a function of accurately decoding the extracted barcode. Will be described.
図12に、実施の形態2におけるバーコード読取装置を示す。バーコード読取装置200は、バーコード位置抽出部11、スキャンデータ取得部12(濃度配列データ取得部)、バー幅算出部13、バー判定部14、コード抽出部15を備える。
FIG. 12 shows a barcode reader according to the second embodiment. The
バーコード位置抽出部11は、少なくともバーコードが撮像された画像からバーコードの位置を抽出する。
The barcode
スキャンデータ取得部12は、バーコード位置抽出部11によって位置が抽出されたバーコード部分に対し、所定のY座標でX方向にスキャンし、位置毎(画素毎)の濃度値をスキャンデータとして取得する。
The scan
バー幅算出部13は、スキャンデータから濃度値がピーク値となる位置をそれぞれ取得する。またバー幅算出部13は、ピーク値となる位置を中心とした、スキャンデータの所定範囲内の濃度平均値をピーク値となる位置ごとに算出する。バー幅算出部13は、平均濃度値に基づきバーコードのバーの幅およびバー間のスペースの幅を算出する。
The bar
バー判定部14は、バー幅算出部13によって算出されたバーの幅およびバー間のスペースの幅に基づき、当該バーまたはスペースの示す値が1か0かを判定し、0と1とで成るビット配列を作成する。
Based on the width of the bar calculated by the bar
コード抽出部15は、バー判定部14によって作成された0と1との配列に対応する文字を抽出する。
The
次に、バーコード読取装置200の動作について、図13のフローチャートを参照しつつ説明する。
Next, the operation of the
バーコード位置抽出部11は、少なくともバーコードが撮像された画像からバーコードの位置を抽出する(S51)。バーコード位置抽出部11は、例えば上述実施の形態1で示した構成であってもよいし、また、従来のバーコード位置抽出処理機能を有するものであってもよい。
The barcode
スキャンデータ取得部12は、バーコード位置抽出部11によって抽出された位置に基づきバーコードを撮像画像から切り出し、切り出されたバーコード部分に対し、所定のY座標値でX方向にスキャンし、位置毎(画素毎)の濃度値(以下、スキャンデータと称す)を取得する(S52)。尚、本実施の形態では検出したバーコード位置のY座標の中心値をスキャン位置とする。
The scan
バー幅算出部13は、取得されたスキャンデータで、濃度値がピークとなる位置を特定する(S53)。尚、ピークとなる位置とは、例えば横軸をスキャンデータの配列(すなわち、位置のデータ)、縦軸を濃度値とした波形グラフ上で、立ち上がり(右上がり勾配)から立ち下がり(右下がり勾配)に変化する位置、または立ち下がりから立ち上がりに変化する位置(換言すると、波形グラフと接する接線の傾きが0またはその近傍になる位置)をいう。この際、立ち下り量や立ち上がり量が波形グラフの平均高さの一定割合の値以上でない場合、バー幅算出部13は、局所部分でのノイズとして無視する。
The bar
またバー幅算出部13は、上述のように特定したピーク位置の前後の一定画素を局所領域とし、局所領域の濃度値の平均値(以下、局所平均濃度値)を算出する(S54)。尚、実施の形態1の2値化処理(S5)で使用したクラス間分散を用いてもよく、クラス間分散によって求められた値を局所平均濃度値としてもよい。または、前後のピーク濃度値の平均としてもよい。
In addition, the bar
さらにバー幅算出部13は、横軸(X軸)を位置のデータ、縦軸(Y軸)を濃度値とした上述局所領域に対する波形グラフと、算出した局所平均濃度値とが交差する点のX座標値を小数点レベルまで求め、波形グラフの立ち上がり部と局所平均濃度値とが交差する点のX座標値と、波形グラフの立ち下がり部と局所平均濃度値とが交差する点のX座標値との差を小数点レベルで計算し、算出された差をバーの幅、またはバー間のスペース幅とする(S55)。
Further, the bar
バー判定部14は、算出されたバーの幅、スペース幅に基づき、当該バー(またはスペース)の示す値が1か0かを判定し、0と1とで成る配列を作成する。バー判定部14は、所定の閾値よりバー幅(またはスペース幅)が大きい場合は1とし、小さい場合は0とする(後述のバーコードの仕様も参照)。
Based on the calculated bar width and space width, the
尚、バー判定部14は、上述実施の形態1の2値化処理(S5)のクラス間分散を用いて閾値を算出してもよい。図14に、縦軸をバーおよびバー間のスペースの個数、横軸にバー幅またはスペース幅(画素数)としたグラフを示す。バー判定部14は、波形を2つのクラスに区切ったときに、双方の波形間の分散が最大になるような値を幅判定の閾値とし、幅が閾値より大きければ1と判断し、小さければ0と判断する。
Note that the
コード抽出部15は、バー判定部14によって作成された0と1との配列から対応する文字を抽出する(S57)。図15に、コードと文字との対応を示す。図15(A)は、7ビットコードと文字との対応を示し、図15(B)に、バーコードと文字との対応を示す。
The
コード抽出部15は、NW−7で未登録の文字(すなわち上述のNW−7の仕様に準拠していない文字)があるかを判定する(S58)。ここで、未登録の文字がない、すなわち有効なコードである場合(S58、No)、次にコード抽出部15は、開始、終了文字が正しいかを判定する(S59)。開始、終了文字が正しい場合(S59、Yes)、デコードした文字列をユーザに表示し(S60)、処理は終了する。
The
一方、未登録の文字がある場合(S58、Yes)、または開始、終了文字が正しくない場合(S59、No)、読み込まれたバーコードのデータは不正であるため、バーコード位置抽出処理の画像入力処理を再度実施する(S61)。すなわち、S51から再度処理が行われる。 On the other hand, if there is an unregistered character (S58, Yes), or if the start and end characters are incorrect (S59, No), the read barcode data is invalid, so the barcode position extraction processing image The input process is performed again (S61). That is, the process is performed again from S51.
尚、動画画像の所定のフレームと次フレームとの前後の画像で、バーコードをデコードした結果を比較し、例えば3回の結果のうち2回以上が同じならその結果を正規のものとしてもよい。 It should be noted that the result of decoding the barcode is compared between the image before and after the predetermined frame and the next frame of the moving image. For example, if two or more of the three results are the same, the result may be normal. .
上述では、バーコードの位置が抽出され、それ以降についての動作を主に説明したが、以下、バーコード位置抽出処理を用いない場合について示す。 In the above description, the barcode position is extracted and the operation after that is mainly described. However, hereinafter, the case where the barcode position extraction process is not used will be described.
原画像全体に対し、スキャンデータ取得部12は、Y座標値の間隔を大きくとり、X軸方向に数本スキャンする。例えばスキャンデータ取得部12は、Y座標最大値の1/4、1/2、3/4のY座標値でスキャンする。バー幅算出部13、バー判定部14、コード抽出部15は、スキャンデータそれぞれに対し上述S57までの処理を実施する。
For the entire original image, the scan
バーコード読取装置200は、コード抽出部15によって抽出されたスキャンデータのうちで、例えば開始コードと終了コードがあり、その間の文字数が12文字である等、上述NW−7の仕様に沿うデータが含まれているスキャンデータにバーコードが含まれているものと判断する。さらに、スキャンデータ取得部12は、そのバーコードが含まれているスキャンデータをスキャンしたY座標値前後付近を複数箇所(例えば3箇所)スキャンし、バー幅算出部13、バー判定部14、コード抽出部15は、さらに、スキャンデータそれぞれに対し上述S57までの処理を実施する。この結果、複数回(例えば2回)以上同じコードが抽出された場合、それを正規のコードとする。
The
この場合、スキャンデータの濃度断面の波形上、X方向端部から一定割合の位置で濃度値が落ち込んだ部分(暗領域)がバーコード端と判断されてもよい。尚、バーコード端と判断された位置(画素)から一定画素以上次の山(明領域)が離れていたら、その次の濃度値が落ち込んだ部分がバーコード端とする。この処理が真のバーコード端が見つかるまで繰り返される。また仕様上、バーコードが始まる部分の前は白い部分が一定画素以上続くので、一定画素以上明領域が続いた後の落ち込んだ部分をバーコード端とする条件を付け加えた方がより正確性が増す。 In this case, on the waveform of the density cross section of the scan data, a portion (dark region) where the density value falls at a certain ratio from the end in the X direction may be determined as the end of the barcode. If the next peak (bright area) is more than a certain pixel away from the position (pixel) determined to be the barcode end, the portion where the next density value falls is the barcode end. This process is repeated until a true bar code edge is found. In addition, because of the specification, the white part continues for a certain number of pixels before the part where the barcode begins, so it is more accurate to add the condition that the bar code end is the depressed part after the bright area continues for a certain number of pixels. Increase.
また、スキャンデータ取得部12は、1フレーム画像に対し、バーコード位置内でY座標を数画素ずらして複数回スキャンし、デコードされた結果所定回以上が同じデコード結果の場合、その結果を正規のコードとしてもよい。例えば3回スキャンした場合、デコードされた結果3回のうち2回以上が同じコードならその結果を正規のものとする。
Further, the scan
また、撮像部1が携帯端末機である場合、ユーザの携帯端末機の持ち方によってバーコードの配列が反転する場合がある。上述の実施の形態で示したバーコード読取装置は、左から右、右から左、水平と垂直方向でもバーコードの読み取りが可能である。例えば左右が反転している場合、バーコード読取装置は、スキャンされたデータ配列の位置を反転する。
When the
上述の実施の形態で示したバーコード読取装置は、少なくともCPU(Central Processing Unit)、揮発性記憶装置である主記憶装置、不揮発性記憶装置をハードウェア資源として有する1台のコンピュータであってもよいし、また実施の形態1の撮像部1は携帯端末機、その他の機能ブロックはコンピュータとした構成で提供されてもよい。また、全ての機能ブロックを1台の携帯端末機(CPU、記憶装置等のハードウェアを少なくとも有する機器)に集約した状態で提供されてもよい。
The bar code reader shown in the above-described embodiment may be a single computer having at least a CPU (Central Processing Unit), a main storage device that is a volatile storage device, and a nonvolatile storage device as hardware resources. Alternatively, the
上述の各機能ブロックは、不揮発性記憶装置に予め導入されたソフトウェアが、CPU、主記憶装置等のハードウェア資源と協働することで実現される。 Each functional block described above is realized by software previously installed in a nonvolatile storage device cooperating with hardware resources such as a CPU and a main storage device.
上述の実施の形態において、バーコード読取プログラムは上述したバーコード読取装置の内部に予めインストールされているものとして記載したが、本発明におけるバーコード読取プログラムは記憶媒体に記憶されたものも含まれる。ここで記憶媒体とは、磁気テープ、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクドライブ等)、光ディスク(CD−ROM、DVDディスク等)、光磁気ディスク(MO等)、フラッシュメモリ等、バーコード読取装置に対し脱着可能な媒体や、さらにネットワークを介することで伝送可能な媒体等、上述したバーコード読取装置におけるコンピュータで読み取りや実行が可能な全ての媒体をいう。 In the above-described embodiment, the barcode reading program is described as being installed in advance in the above-described barcode reading apparatus. However, the barcode reading program according to the present invention includes that stored in a storage medium. . Here, the storage medium is a magnetic tape, a magnetic disk (floppy (registered trademark) disk, hard disk drive, etc.), an optical disk (CD-ROM, DVD disk, etc.), a magneto-optical disk (MO, etc.), a flash memory, etc. It refers to all media that can be read and executed by a computer in the barcode reader described above, such as media that can be attached to and detached from the reader, and media that can be transmitted via a network.
1 撮像部、2 明暗領域識別部、3 膨張縮退部、4 位置抽出部、5 バーコード解読部、11 バーコード位置抽出部、12 スキャンデータ取得部、バー幅算出部、14 バー判定部、15 コード抽出部、100、200 バーコード読取装置。
DESCRIPTION OF
Claims (4)
前記撮像部にて撮像された画像に該画像に対する横成分方向での微分処理を少なくとも行い、該微分処理を行った画像の濃度値に基づき、前記微分処理を行った画像上での明領域と、前記微分処理を行った画像上での暗領域とを識別した明暗データを作成する明暗領域識別部と、
前記明暗領域識別部によって作成された明暗データに対し、明領域の内のバー状の明領域である明部分に挟まれた暗領域である暗部分が少なくとも明領域になるまで明領域を膨張させ、膨張させた明領域を、少なくとも、明領域となった暗部分と前記明部分とを含む明領域と他の明領域との接触がなくなるまで縮退させ、縮退させた明領域を、膨張させる前のサイズに戻した明暗データを作成する膨張縮退部と、
前記膨張縮退部によって作成された明暗データにおける、明領域それぞれのうちから最大面積の明領域を選定する選定部と、
前記選定部によって選定された明領域をバーコード位置とし、該バーコード位置に基づき前記撮像部によって撮像された画像内のバーコードをデコードするバーコード解読部と、
を備えるバーコード読取装置。 An imaging unit for imaging an area including at least a barcode;
The image picked up by the image pickup unit is at least subjected to a differentiation process in the horizontal component direction with respect to the image, and based on the density value of the image subjected to the differentiation process, a bright region on the image subjected to the differentiation process A light / dark region identifying unit for creating light / dark data identifying dark regions on the image subjected to the differentiation process;
The bright region is expanded until the dark portion that is a dark region sandwiched between the bright portions that are bar-shaped bright regions in the bright region becomes at least a bright region with respect to the light and dark data created by the light and dark region identifying unit. The expanded bright region is degenerated until there is no contact between the bright region including at least the dark portion that has become the bright region and the bright portion and another bright region, and before the expanded bright region is expanded An expansion / reduction unit that creates brightness / darkness data returned to the size of
In the brightness / darkness data created by the expansion / reduction part, a selection part for selecting the bright area of the maximum area from each of the bright areas,
A barcode decoding unit that decodes a barcode in an image captured by the imaging unit based on the barcode position, with the bright region selected by the selection unit as a barcode position;
A barcode reader.
前記明暗領域識別部は、前記撮像部によって撮像された画像に対し、シェーディング補正を行い、該シェーディング補正後の画像に対し前記横成分方向での微分処理を行い、該微分処理後の画像に対し2値化処理を行うことで、明領域と暗領域とを識別した明暗データを作成することを特徴とするバーコード読取装置。 The barcode reader according to claim 1, wherein
The light / dark region identifying unit performs shading correction on the image captured by the imaging unit, performs a differentiation process in the horizontal component direction on the image after the shading correction, and performs an operation on the image after the differentiation process. A bar code reading apparatus characterized in that, by performing binarization processing, light / dark data in which a bright area and a dark area are identified is created.
前記取得ステップによって取得された画像に該画像に対する横成分方向での微分処理を少なくとも行い、該微分処理を行った画像の濃度値に基づき、前記微分処理を行った画像上での明領域と、前記微分処理を行った画像上での暗領域とを識別した明暗データを作成する明暗領域識別ステップと、
前記明暗領域識別ステップよって作成された明暗データに対し、明領域の内のバー状の明領域である明部分に挟まれた暗領域である暗部分が少なくとも明領域になるまで明領域を膨張させ、膨張させた明領域を、少なくとも、明領域となった暗部分と前記明部分とを含む明領域と他の明領域との接触がなくなるまで縮退させ、縮退させた明領域を、膨張させる前のサイズに戻した明暗データを作成する膨張縮退ステップと、
前記膨張縮退ステップによって作成された明暗データの明領域それぞれのうちから最大面積の明領域を選定する選定ステップと、
前記選定ステップによって選定された明領域をバーコード位置とし、該バーコード位置に基づき前記取得ステップによって取得された画像内のバーコードをデコードするバーコード解読ステップと、
をコンピュータに実行させるバーコード読取プログラム。 An acquisition step of acquiring an image in which an area including at least a barcode is captured;
The image acquired by the acquisition step is at least subjected to a differentiation process in the lateral component direction with respect to the image, and based on the density value of the image subjected to the differentiation process, a bright region on the image subjected to the differentiation process, A light / dark region identifying step for creating light / dark data identifying dark regions on the image subjected to the differentiation process;
The bright area is expanded until the dark area, which is the dark area sandwiched between the bright areas that are bar-shaped bright areas in the bright area, is at least the bright area with respect to the light / dark data created by the bright / dark area identifying step. The expanded bright region is degenerated until there is no contact between the bright region including at least the dark portion that has become the bright region and the bright portion and another bright region, and before the expanded bright region is expanded An expansion / reduction step to create light / dark data returned to the size of
A selection step of selecting a bright area of the maximum area from each of the bright areas of the brightness data created by the expansion / reduction step;
A barcode decoding step for decoding the barcode in the image acquired by the acquisition step based on the barcode position, with the bright area selected by the selection step as a barcode position;
Barcode reading program that causes a computer to execute.
前記取得ステップによって取得された画像に該画像に対する横成分方向での微分処理を少なくとも行い、該微分処理を行った画像の濃度値に基づき、前記微分処理を行った画像上での明領域と、前記微分処理を行った画像上での暗領域とを識別した明暗データを作成する明暗領域識別ステップと、
前記明暗領域識別ステップよって作成された明暗データに対し、明領域の内のバー状の明領域である明部分に挟まれた暗領域である暗部分が少なくとも明領域になるまで明領域を膨張させ、膨張させた明領域を、少なくとも、明領域となった暗部分と前記明部分とを含む明領域と他の明領域との接触がなくなるまで縮退させ、縮退させた明領域を、膨張させる前のサイズに戻した明暗データを作成する膨張縮退ステップと、
前記膨張縮退ステップによって作成された明暗データの明領域それぞれのうちから最大面積の明領域を選定する選定ステップと、
前記選定ステップによって選定された明領域をバーコード位置とし、該バーコード位置に基づき前記取得ステップによって取得された画像内のバーコードをデコードするバーコード解読ステップと、
を実行するバーコード読取方法。 An acquisition step of acquiring an image in which an area including at least a barcode is captured;
The image acquired by the acquisition step is at least subjected to a differentiation process in the lateral component direction with respect to the image, and based on the density value of the image subjected to the differentiation process, a bright region on the image subjected to the differentiation process, A light / dark region identifying step for creating light / dark data identifying dark regions on the image subjected to the differentiation process;
The bright area is expanded until the dark area, which is the dark area sandwiched between the bright areas that are bar-shaped bright areas in the bright area, is at least the bright area with respect to the light / dark data created by the bright / dark area identifying step. The expanded bright region is degenerated until there is no contact between the bright region including at least the dark portion that has become the bright region and the bright portion and another bright region, and before the expanded bright region is expanded An expansion / reduction step to create light / dark data returned to the size of
A selection step of selecting a bright area of the maximum area from each of the bright areas of the brightness data created by the expansion / reduction step;
A barcode decoding step for decoding the barcode in the image acquired by the acquisition step based on the barcode position, with the bright area selected by the selection step as a barcode position;
Bar code reading method to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008316837A JP5127687B2 (en) | 2008-12-12 | 2008-12-12 | Bar code reading apparatus, bar code reading program, and bar code reading method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008316837A JP5127687B2 (en) | 2008-12-12 | 2008-12-12 | Bar code reading apparatus, bar code reading program, and bar code reading method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010140311A JP2010140311A (en) | 2010-06-24 |
JP5127687B2 true JP5127687B2 (en) | 2013-01-23 |
Family
ID=42350397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008316837A Expired - Fee Related JP5127687B2 (en) | 2008-12-12 | 2008-12-12 | Bar code reading apparatus, bar code reading program, and bar code reading method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5127687B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101748877B1 (en) * | 2010-12-16 | 2017-06-19 | 엘지이노텍 주식회사 | Apparatus and method for recognizing barcode |
JP6460025B2 (en) * | 2016-03-17 | 2019-01-30 | 京セラドキュメントソリューションズ株式会社 | Image reading apparatus and image forming apparatus |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04332853A (en) * | 1991-05-08 | 1992-11-19 | Matsushita Electric Ind Co Ltd | Inspecting apparatus of pattern |
JPH07298047A (en) * | 1994-04-22 | 1995-11-10 | Canon Inc | Image reader |
JPH0896059A (en) * | 1994-09-28 | 1996-04-12 | Toshiba Corp | Bar code reader |
-
2008
- 2008-12-12 JP JP2008316837A patent/JP5127687B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010140311A (en) | 2010-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4180497B2 (en) | Code type discrimination method and code boundary detection method | |
US8254683B2 (en) | Code image processing method | |
JP4911340B2 (en) | Two-dimensional code detection system and two-dimensional code detection program | |
JP4327101B2 (en) | Code recognition method and apparatus | |
JP4525787B2 (en) | Image extraction apparatus and image extraction program | |
Chen et al. | PiCode: A new picture-embedding 2D barcode | |
JP4658848B2 (en) | Character string recognition method and character string recognition apparatus | |
EP0999519B1 (en) | Distortion correction method in optical code reading | |
JP2001357345A (en) | Method for positioning and reading two-dimensional bar code | |
JP6171167B2 (en) | Character recognition device, character recognition method, and character recognition program | |
JP4945739B2 (en) | Character string recognition method and character string recognition apparatus | |
JP5121685B2 (en) | Bar code reading apparatus, bar code reading program, and bar code reading method | |
JPWO2017141802A1 (en) | Image processing apparatus, character recognition apparatus, image processing method, and program recording medium | |
US9076225B2 (en) | Image processing device, an image processing method and a program to be used to implement the image processing | |
JP5127687B2 (en) | Bar code reading apparatus, bar code reading program, and bar code reading method | |
JP4398498B2 (en) | Code boundary detection method | |
JP5737387B2 (en) | Image processing device | |
JP4874706B2 (en) | QR code reader | |
JP4454297B2 (en) | Binarization processing apparatus and binarization processing method | |
JP5125961B2 (en) | Binarization processing apparatus, information processing apparatus, binarization processing method, and binarization processing program | |
JP4905767B2 (en) | Two-dimensional code detection system and two-dimensional code detection program | |
JP5453594B2 (en) | Symbol information reading apparatus and symbol information reading method | |
JP3545227B2 (en) | Image processing method and apparatus, optical character reader | |
JP4892362B2 (en) | Character recognition program, character recognition device, and character recognition method | |
JPH1097588A (en) | Ruled-line recognizing method, table processing method, and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100412 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100517 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100524 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110221 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120731 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120914 |
|
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: 20121002 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121030 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151109 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |