JP2012164058A - スキャナ装置及びプログラム - Google Patents

スキャナ装置及びプログラム Download PDF

Info

Publication number
JP2012164058A
JP2012164058A JP2011022690A JP2011022690A JP2012164058A JP 2012164058 A JP2012164058 A JP 2012164058A JP 2011022690 A JP2011022690 A JP 2011022690A JP 2011022690 A JP2011022690 A JP 2011022690A JP 2012164058 A JP2012164058 A JP 2012164058A
Authority
JP
Japan
Prior art keywords
data
range
image data
variable
barcode
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.)
Granted
Application number
JP2011022690A
Other languages
English (en)
Other versions
JP5321610B2 (ja
Inventor
Toru Kitagawa
徹 北川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2011022690A priority Critical patent/JP5321610B2/ja
Priority to US13/355,703 priority patent/US8746567B2/en
Priority to CN201210024501.4A priority patent/CN102682262B/zh
Publication of JP2012164058A publication Critical patent/JP2012164058A/ja
Application granted granted Critical
Publication of JP5321610B2 publication Critical patent/JP5321610B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10851Circuits for pulse shaping, amplifying, eliminating noise signals, checking the function of the sensing device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10554Moving beam scanning

Landscapes

  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Character Input (AREA)
  • Cash Registers Or Receiving Machines (AREA)

Abstract

【課題】バーコード読み取りの正確性及びレスポンスを向上することである。
【解決手段】スキャナ装置10は、レーザ光を出射して反射光を受光することによりバーコードをスキャンしてイメージデータを取得するスキャナ部18と、スキャナ部18により取得されたイメージデータのうち、レーザ光の振れ幅の端部分をデータ不安定範囲として判定し、データ不安定範囲でない部分をデータ安定範囲として判定し、判定されたデータ不安定範囲について、前記バーコードの黒バー及び白スペースの太さを判定するための閾値に対するイメージデータの誤差の許容度を低く設定し、当該閾値及び許容度を用いてデータ不安定範囲をデコードし、判定されたデータ安定範囲について、閾値に対するイメージデータの誤差の許容度を高く設定し、当該閾値及び許容度を用いてデータ安定範囲をデコードするCPU11と、を備える。
【選択図】 図1

Description

本発明は、スキャナ装置及びプログラムに関する。
従来、レーザ光を用いて1次元のバーコードをスキャンするスキャナ装置が知られている。このスキャナ装置は、レーザ光を横方向に振って出射し、バーコードで反射された反射光を受光して得られたイメージデータを、所定の閾値を用いてデコードすることにより、バーコードをスキャンしている。このイメージデータは、バーコードのイメージに応じて、得られた黒バーのデータ幅と白スペースのデータ幅とを順に(交互に)並べたデータ構造を有する。また、所定の閾値とは、黒バー及び白スペースのデータ幅(太さ)を判定するための閾値である。
イメージデータのデコードに用いる閾値は、スキャナ装置の種類、光学系(レンズの倍率)、バーの太さ等に応じて予め設定されている。また、外部からの設定入力により、イメージデータのデコードに用いる閾値を変更可能なスキャナ装置が知られている(例えば、特許文献1参照)。
特開平6−290294号公報
しかし、従来のスキャナ装置では、レーザ光の振れ幅(照射幅)の両端部分で反射光が不十分となることがあり、取得するイメージデータが不安定となるため、黒バー及び白スペースの比率を正しく取得できないおそれがあるという特性があった。そのため、レーザ光の振れ幅の両端部分でバーコードをスキャンすると、黒バー及び白スペースの比率が崩れて見えてしまい、そのイメージデータをデコードした結果、誤読してしまうおそれがあった。
誤読を回避する方法として、従来のスキャナ装置において、閾値をきつく調整する方法が考えられる。閾値をきつく調整するとは、閾値に対するイメージデータの誤差許容度を低く調整することである。
しかし、閾値を単純にきつく調整した場合、黒バー及び白スペースの比率の正しいレーザ光の振れ幅の中央部分のスキャンデータに対する読み取りもきつくなるため、同じ幅の黒バーや白スペースの印刷比率に少しでも誤差がある場合や、読み取り距離が離れた場合などに読み取りができなくなってしまうおそれがあった。
本発明の課題は、バーコード読み取りの正確性及びレスポンスを向上することである。
上記課題を解決するために、本発明のスキャナ装置は、
レーザ光を出射して反射光を受光することによりバーコードをスキャンしてイメージデータを取得するスキャナ部と、
前記スキャナ部により取得されたイメージデータのうち、前記レーザ光の振れ幅の端部分をデータ不安定範囲として判定し、当該データ不安定範囲でない部分をデータ安定範囲として判定する判定部と、
前記判定部により判定されたデータ不安定範囲について、前記バーコードの黒バー及び白スペースのデータ幅を判定するための閾値に対するイメージデータの誤差の許容度を低く設定し、当該閾値及び許容度を用いて当該データ不安定範囲をデコードし、前記判定部により判定されたデータ安定範囲について、前記閾値に対するイメージデータの誤差の許容度を高く設定し、当該閾値及び許容度を用いて当該データ安定範囲をデコードするデコード部と、を備える。
本発明によれば、バーコード読み取りの正確性及びレスポンスを向上することができる。
本発明の実施の形態のスキャナ装置の構成を示すブロック図である。 スキャナ部の構成を示すブロック図である。 スキャン処理を示すフローチャートである。 スキャン処理の初期化処理を示すフローチャートである。 バーコードに関する全イメージデータ幅、左端のデータ不安定範囲、データ不安定及び安定範囲、バーコード開始位置を示す図である。 スキャン処理のバーコード開始位置解析処理を示すフローチャートである。 バーコードに関する1キャラクタのデータ幅、キャラクタ開始位置、左端からキャラクタ開始位置までのデータ幅を示す図である。 スキャン処理のデータ不安定範囲判定処理を示すフローチャートである。 スキャン処理の4値化処理を示すフローチャートである。
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。なお、本発明は、図示例に限定されるものではない。
先ず、図1及び図2を参照して、本実施の形態の装置構成を説明する。図1に、本実施の形態のスキャナ装置10の構成を示す。図2に、スキャナ部18の構成を示す。
図1に示すように、本実施の形態のスキャナ装置10は、読み取り対象物としての1次元のバーコードを読み取り管理するハンディターミナルである。スキャナ装置10は、例えば、倉庫や、小売店の店舗等で使用される。バーコードは、例えば、倉庫や店舗等に並べられた商品に付されているものとする。
スキャナ装置10は、CPU(Central Processing Unit)11と、操作部12と、RAM(Random Access Memory)13と、表示部14と、ROM(Read Only Memory)15と、無線通信部16と、フラッシュメモリ17と、スキャナ部18と、報知部19と、電源部20と、を備える。電源部20を除くスキャナ装置10の各部は、バス21を介して互いに接続されている。
CPU11は、スキャナ装置10の各部を制御する。CPU11は、各種プログラムのうち指定されたプログラムをROM15から読み出してRAM13に展開し、展開されたプログラムとの協働で各種処理を実行する。
CPU11は、スキャンプログラム151に従い、スキャナ部18により取得されたイメージデータのうち、レーザ光の振れ幅の両端部分をデータ不安定範囲として判定し、当該データ不安定範囲でない中央部分をデータ安定範囲として判定する。そして、CPU11は、前記判定されたデータ不安定範囲について、前記バーコードの黒バー及び白スペースのデータ幅を判定するための閾値に対するイメージデータの誤差の許容度を低く設定し、当該閾値及び許容度を用いて当該データ不安定範囲をデコードする。そして、CPU11は、前記判定されたデータ安定範囲について、前記閾値に対するイメージデータの誤差の許容度を高く設定し、当該閾値及び許容度を用いて当該データ安定範囲をデコードする。
操作部12は、文字入力キー等の各種キーからなるキー群を備え、ユーザからの各キーの押下入力に応じた操作情報をCPU11に出力する。操作部12は、少なくとも、スキャナ部18を用いたバーコードスキャンのトリガキーを有する。
RAM13は、揮発性の半導体メモリであり、各種データ及び各種プログラムを格納するワークエリアを有する。
表示部14は、LCD(Liquid Crystal Display)、EL(ElectroLuminescent)ディスプレイ等の表示パネルを備える表示部であり、CPU11から入力される表示情報に応じて表示パネルに各種表示を行う。
ROM15は、各種データ及び各種プログラムを記憶する読み出し専用の半導体メモリである。ROM15には、スキャンプログラム151が記憶されている。
無線通信部16は、携帯電話通信方式の無線通信部である。無線通信部16は、アンテナ、変調部、復調部、信号処理部等を備え、基地局と無線通信を行う。無線通信部16は、送信する情報の信号を、信号処理部で信号処理し、変調部により変調してアンテナから無線電波として基地局に送信する。この基地局は、通信先の機器と通信ネットワークを介して接続されている。また、無線通信部16は、アンテナにより基地局から受信した無線電波の受信信号を復調部により復調し、信号処理部で信号処理して受信情報を得る。このようにして、無線通信部16は、基地局を介して、通信先の機器と通信を行う。また、無線通信部16は、無線LAN(Local Area Network)方式の無線通信部とし、アクセスポイントを介して、通信先の機器と通信を行うこととしてもよい。
フラッシュメモリ17は、情報を読み出し及び書き込み可能に記憶する不揮発性の半導体メモリである。
スキャナ部18は、CPU11の制御信号に従い、一次元のバーコードをスキャンして、バーコードのイメージデータを取得し、そのイメージデータをCPU11に出力するレーザスキャナ部である。図2に示すように、スキャナ部18は、発光部181と、バイブレーションミラー182と、受光部183と、ゲイン回路184と、二値化回路185と、を備える。
発光部181は、レーザ光Lを発光して出射する。バイブレーションミラー182は、CPU11の制御信号に従い、モータ(図示略)等によりバイブレートされることにより、発光部181から出射されたレーザ光Lを反射して左右に広げる。受光部183は、バイブレーションミラー182により反射されたレーザ光Lが実際に読み取り対象物(バーコード)に当たった反射光を受光して電気信号に変換するモジュールである。
ゲイン回路184は、受光部183で受光した反射光の電気信号を増幅して波形を最適化する。二値化回路185は、ゲイン回路184で最適化された電気信号をバーコードのイメージデータとしての二値データに変換してCPU11に出力する。CPU11は、二値化回路185から入力されたイメージデータをデコードする。
報知部19は、CPU11の制御に応じて、ブザー音を出力する報知部である。報知部19は、バーコードスキャンが成功した場合に、ブザー音出力するよう制御される。
電源部20は、リチウム電池等の二次電池であり、スキャナ装置10の各部に電源供給を行う。
次に、図3〜図9を参照して、スキャナ装置10の動作を説明する。図3に、スキャン処理を示す。図4に、スキャン処理の初期化処理を示す。図5に、バーコードBに関する全イメージデータ幅T、データ不安定範囲T1、データ不安定及び安定範囲T2、バーコード開始位置Pos1を示す。図6に、スキャン処理のバーコード開始位置解析処理を示す。図7に、バーコードBに関する1キャラクタのデータ幅Char、キャラクタ開始位置Pos、左端からキャラクタ開始位置Posまでのデータ幅Sumを示す。図8に、スキャン処理のデータ不安定範囲判定処理を示す。図9に、スキャン処理の4値化処理を示す。
スキャナ装置10で実行されるスキャン処理は、読み取り対象のバーコードをスキャンして情報を読み取る処理である。予め、ユーザにより、スキャナ部18のレーザ光の出射方向に、読み取り対象のバーコードが合わせられるように、スキャナ装置10の位置及び姿勢が調整される。より具体的には、スキャナ部18のレーザ光の振れ幅の方向が、バーコードの長手方向に合わせられる。
ここでは、バーコードに含まれる各キャラクタが6本のエレメント(3本の黒バー及び3本の白スペース)で構成される規格であるCode128のバーコードを読み取る例を説明する。しかし、これに限定されるものではなく、バーコードに含まれる各キャラクタがCode128以外の6本のエレメントからなる規格や、各キャラクタが6以外の本数のエレメントからなる規格のバーコードを読み取る構成としてもよい。
スキャナ装置10において、ユーザにより操作部12のバーコードスキャンのトリガボタンが押下されたことをトリガとして、CPU11は、ROM15から読み出されて適宜RAM13に展開されたスキャンプログラム151との協働で、スキャン処理を実行する。CPU11は、スキャン処理の開始とともに、タイマのカウントを開始する。
先ず、CPU11は、タイマのカウント値に応じて、スキャン処理開始から予め設定された所定時間を経過してタイムアウトしたか否かを判別する(ステップS11)。この所定時間は、スキャン処理を終了するためのタイムアウトの時間である。タイムアウトした場合(ステップS11;YES)、スキャン処理が終了する。
タイムアウトしていない場合(ステップS11;NO)、CPU11は、スキャナ部18からバーコードのイメージデータの取得を完了する(ステップS12)。イメージデータは、バーコードのイメージの左から右へ並んだ黒バー及び白スペースの各データ幅の配列Dat[0],Dat[1],Dat[2]…を有するものとする。例えば、バーコードの左横の白スペースのデータ幅が配列Dat[0]となり、バーコードの最も左の黒バーのデータ幅が配列Dat[1]となる。
そして、CPU11は、ステップS12で取得したバーコードのイメージデータについて、初期化処理を行う(ステップS13)。ここで、図4及び図5を参照して、ステップS13の初期化処理を説明する。先ず、CPU11は、イメージデータのデータ幅の変数Tに0を設定し、ループカウンタiに0を設定する(ステップS131)。そして、CPU11は、ループカウンタiが、ステップS12で取得したイメージデータの黒バー及び白スペースの本数DatNumより小さいか否かを判別する(ステップS132)。
i<DatNumである場合(ステップS132;YES)、CPU11は、変数Tに配列Dat[i]を加算して新たな変数Tを算出し、ループカウンタiを1インクリメントし(ステップS133)、ステップS132に移行される。
i≧DatNumである場合(ステップS132;NO)、CPU11は、変数Tに、予め設定された定数aを乗算して、データ不安定範囲(のデータ幅)T1を算出する(ステップS134)。そして、CPU11は、変数Tに、予め設定された定数bを用いた(1−b)を乗算して、データ不安定及び安定範囲(のデータ幅)T2を算出し(ステップS135)、初期化処理を終了する。
図5に示すように、ステップS134の時点で、変数Tは、ステップS12で取得されたイメージデータの全イメージデータ幅Tとなる。バーコードBは、ステップS12でのイメージデータ読み取り対象のバーコードとする。また、レーザ光の振れ幅の軌跡L1は、スキャナ部18から出射されバーコードBを含む紙上に照射されたレーザ光の振れ幅の軌跡である。軌跡L1は、バーコードBの全ての黒バーを横切るようにとられている。また、ステップS12で軌跡L1に対応する長さのイメージデータが取得されている。
データ不安定範囲T1は、軌跡L1の左端部分でデコードが不安定になる範囲のデータ幅である。データ不安定及び安定範囲T2は、全イメージデータ長Tから、軌跡L1の右端部分でデコードが不安定になる範囲を除いた範囲のデータ幅である。つまり、不安定範囲及び安定範囲T2は、軌跡L1上におけるデータ不安定範囲T1とデコードが安定するデータ安定範囲との長さである。また、軌跡L1の右端部分のデータ不安定範囲は、T×aの値となる。
定数a,bは、それぞれ、レーザ光の振れ幅の軌跡L1全体に対するデータ不安定範囲の割合を表す値で、0〜1.00の間の値となる。また、定数a,bは、スキャナ部18(スキャナ装置10)の光学的特性とレーザ光の振れのスピード特性とに応じて決定される値で、予めスキャンプログラム151に記憶させる(含まれる)値となる。レーザ光の振れのスピード特性とは、スキャナ部18のレーザ光の振れ幅において、バーコード上のレーザ光の振れのスピードが一定にならない特性である。より具体的には、例えば左から右へレーザ光が振れる場合に、バーコード上のレーザ光の振れのスピードは、加速→安定→減速のように変化する。このため、レーザ光の振れ幅の両端において、イメージデータの黒バー及び白スペースのデータ幅の比率誤差が大きくなるおそれがある。
図3に戻り、ステップS13の実行後、CPU11は、バーコード開始位置解析処理を実行する(ステップS14)。ここで、図6を参照して、ステップS14のバーコード開始位置解析処理を説明する。
先ず、CPU11は、バーコード開始位置の変数Pos1を1に設定する(ステップS141)。そして、CPU11は、変数Sumに配列Dat[0]を設定する(ステップS142)。変数Sumは、イメージデータのうち、左端から変数Pos1の黒バー又は白スペースの1つ左の黒バー又は白スペースまでの幅の値の変数である。
そして、CPU11は、変数Pos1+1が本数DatNumより小さいか否かを判別する(ステップS143)。ステップS143では、変数Pos1+1がイメージデータのバーコードの右端を超えておらず正常か、同じく超えており異常かが判別されている。
Pos1+1<DatNumである場合(ステップS143;YES)、正常であり、CPU11は、配列Dat[Pos1+1]×10が配列Dat[Pos1−1]より小さいか否かを判別する(ステップS144)。ステップS144では、配列Dat[Pos1+1]の10倍の値が、これと同じ色で左隣の配列Dat[Pos1−1]より小さく、その同じ色で左隣の配列Dat[Pos1−1]がイメージデータのバーコードの左隣の大きな白スペース部分であるか否かが判別されている。
Dat[Pos1+1]×10≧Dat[Pos1−1]である場合(ステップS144;NO)、配列Dat[Pos1−1]が大きな白スペース部分でなく、CPU11は、変数Sumに配列Dat[Pos1]を加算して新たな変数Sumを算出する(ステップS145)。そして、CPU11は、変数Pos1を1インクリメントし(ステップS146)、ステップS143に移行される。
Dat[Pos1+1]×10<Dat[Pos1−1]である場合(ステップS144;YES)、配列Dat[Pos1−1]が大きな白スペース部分であり、CPU11は、キャラクタ開始位置の変数Posに、バーコード開始位置である変数Pos1を設定する(ステップS147)。図7に示すように、変数Posは、後述するデータ不安定範囲判定処理において、バーコード開始位置Pos1から右側に移動させるキャラクタ開始位置の変数となる。そして、CPU11は、バーコード開始位置を検出した旨を設定し(ステップS148)、バーコード開始位置解析処理を終了する。
Pos1+1≧DatNumである場合(ステップS143;NO)、異常であり、CPU11は、バーコード開始位置を未検出の旨を設定し(ステップS149)、
バーコード開始位置解析処理を終了する。
図3に戻り、ステップS14の実行後、CPU11は、ステップS14(ステップS148,S149)での設定結果に基づいて、バーコード開始位置を検出したか否かを判別する(ステップS15)。バーコード開始位置を検出した場合(ステップS15;YES)、CPU11は、変数Pos+6の値が本数DatNumより小さいか否かを判別する(ステップS16)。ステップS16で加算する6は、バーコードの1キャラクタ分の黒バー及び白スペースの数である。
Pos+6<DatNumである場合(ステップS16;YES)、CPU11は、データ不安定範囲判定処理を実行する(ステップS17)。ここで、図8を参照して、ステップS17のデータ不安定範囲判定処理を説明する。
先ず、CPU11は、配列Dat[Pos],Dat[Pos+1],Dat[Pos+2],Dat[Pos+3],Dat[Pos+4],Dat[Pos+5]を加算して、1キャラクタ分のイメージデータのデータ幅の変数Charを算出する(ステップS171)。そして、CPU11は、変数Sumが、データ不安定範囲T1よりも小さいか否かを判別する(ステップS172)。図7に示すように、変数Sumは、イメージデータのうち、左端から変数Posの黒バー又は白スペースの左隣の黒バー又は白スペースまでのデータ幅の変数である。ステップS172では、変数Posのキャラクタを含まないデータ幅の変数Sumが、軌跡L1の左側のデータ不安定範囲T1内にあるか否かが判別されている。
Sum≧T1である場合(ステップS172;NO)、変数Sumがデータ不安定範囲T1外にあると判定される。
そして、CPU11は、変数SumにステップS171で算出した変数Charを加算して新たな変数Sumを算出する(ステップS173)。そして、CPU11は、変数Sumが、データ不安定及び安定範囲T2より大きい否かを判別する(ステップS174)。ステップS174では、変数Posのキャラクタを含むデータ幅の変数Sumが、軌跡L1の右側のデータ不安定範囲内にあるか否かが判別されている。
T2≧Sumである場合(ステップS174;NO)、変数Sumが右側のデータ不安定範囲外にあり、CPU11は、現在の変数Posのキャラクタ位置がデータ不安定範囲外(データ安定範囲内)であるとして判定し(ステップS175)、データ不安定範囲判定処理を終了する。
Sum<T1である場合(ステップS172;YES)、変数Sumがデータ不安定範囲T1内にあり、CPU11は、変数SumにステップS171で算出した変数Charを加算して新たな変数Sumを算出する(ステップS176)。さらに、CPU11は、現在の変数Posのキャラクタ位置がデータ不安定範囲内であるとして判定し(ステップS177)、データ不安定範囲判定処理を終了する。T2<Sumである場合(ステップS174;YES)、変数Sumが右側のデータ不安定範囲内にあり、ステップS177に移行される。
データ不安定範囲判定処理では、変数Posに対応するキャラクタがデータ不安定範囲T1又は右側のデータ不安定範囲に一部でも含まれていれば、当該キャラクタがデータ不安定範囲内にあると判定される。
図3に戻り、ステップS17の実行後、CPU11は、ステップS17(ステップS175,S176)の判定結果に基づいて、イメージデータの1キャラクタ分(変数Posに対応する変数Charの分のイメージデータ)がデータ不安定範囲内にあるか否かを判別する(ステップS18)。
イメージデータの1キャラクタ分がデータ不安定範囲内にない場合(ステップS18;NO)、1キャラクタ分が軌跡L1の中央部分のデータ安定範囲にあり、CPU11は、変数cに0を設定する(ステップS19)。イメージデータの1キャラクタ分がデータ不安定範囲内にある場合(ステップS18;YES)、CPU11は、変数cに0.25を設定する(ステップS20)。変数cは、黒バー及び白スペースの比率誤差について、どこまで許容するのかを表すパラメータである。変数cが小さいほど誤差を許容してイメージデータの解析を行うことになる。つまり、変数cは、イメージデータのデコードにおける黒バー及び白スペースのデータ幅を判定するための閾値に対するイメージデータの誤差の許容度に対応する変数である。
そして、CPU11は、4値化判定処理を行う(ステップS21)。ここで、図9を参照して、ステップS21の4値化判定処理を説明する。Code128の規格において、黒バー及び白スペースのデータ幅は、4種類の値(太さ)が設定されている。4値化判定処理は、1キャラクタ分のイメージデータにおいて、閾値及び変数cを用いて、3本の各黒バー及び3本の各白スペースのデータ幅を4種類の値のいずれであるかを判定する処理である。
先ず、CPU11は、変数Charを11で除算した値を変数Mとして設定する(ステップS211)。Code128の規格において、1キャラクタ分のイメージデータのデータ幅は、11値で一定である。ステップS211では、1キャラクタ分の変数Charを11(値)で除算することにより、1値に対応するイメージデータのデータ幅を変数Mとして算出している。
そして、CPU11は、変数Mを0.5倍した値を変数B05として設定し、変数Mを1.5倍した値を変数B15として設定し、変数Mを2.5倍した値を変数B25として設定し、変数Mを3.5倍した値を変数B35として設定し、変数Mを4.5倍した値を変数B45として設定する(ステップS212)。変数B05,B15,B25,B35,B45は、順に、1値の0.5、1.5、2.5、3.5、4.5倍に対応するイメージデータのデータ幅の変数である。4値化判定処理において、変数B05,B15,B25,B35,B45は、黒バー及び白スペースのデータ幅を判定する(4値化する)ための閾値として使用される。
そして、CPU11は、ループカウンタiに変数Posを設定する(ステップS213)。そして、CPU11は、ループカウンタiが変数Pos+6よりも小さいか否かを判別する(ステップS214)。i<Pos+6である場合(ステップS214;YES)、CPU11は、配列Dat[i]が変数B15よりも小さいか否かを判別する(ステップS215)。
Dat[i]<B15である場合(ステップS215;YES)、CPU11は、ループカウンタiに対応する黒バー又は白スペースのデータ幅の4値の配列R[i]に1を設定する(ステップS216)。そして、CPU11は、配列Dat[i]から変数B05を減算した値を変数W1として設定し、変数B15から配列Dat[i]を減算した値を変数W2として設定する(ステップS217)。変数W1は、配列Dat[i]と、配列Dat[i]の左側の閾値(変数B05,B15,B25又はB35)と、の間の距離の変数である。変数W2は、配列Dat[i]の右側の閾値(変数B15,B25,B35又はB45)と、配列Dat[i]と、の間の距離の変数である。
Dat[i]≧B15である場合(ステップS215;NO)、CPU11は、配列Dat[i]が変数B25よりも小さいか否かを判別する(ステップS218)。Dat[i]<B25である場合(ステップS218;YES)、CPU11は、配列R[i]に2を設定する(ステップS219)。そして、CPU11は、配列Dat[i]から変数B15を減算した値を変数W1として設定し、変数B25から配列Dat[i]を減算した値を変数W2として設定する(ステップS220)。
Dat[i]≧B25である場合(ステップS218;NO)、CPU11は、配列Dat[i]が変数B35よりも小さいか否かを判別する(ステップS221)。Dat[i]<B35である場合(ステップS221;YES)、CPU11は、配列R[i]に3を設定する(ステップS222)。そして、CPU11は、配列Dat[i]から変数B25を減算した値を変数W1として設定し、変数B35から配列Dat[i]を減算した値を変数W2として設定する(ステップS223)。
Dat[i]≧B35である場合(ステップS221;NO)、CPU11は、配列R[i]に4を設定する(ステップS224)。そして、CPU11は、配列Dat[i]から変数B35を減算した値を変数W1として設定し、変数B45から配列Dat[i]を減算した値を変数W2として設定する(ステップS225)。
ステップS217,S220,S223,S225の実行後、CPU11は、変数W1が、変数Mに変数cを乗算した値よりも小さいか否かを判別する(ステップS226)。W1≧M×cである場合(ステップS226;NO)、変数W1(配列Dat[i])が許容誤差内にあり、CPU11は、変数W2が、変数Mに変数cを乗算した値よりも小さいか否かを判別する(ステップS227)。
W2≧M×cである場合(ステップS227;NO)、変数W2(配列Dat[i])が許容誤差内にあり、CPU11は、ループカウンタiを1インクリメントし(ステップS228)、ステップS214に移行される。W1<M×cである場合(ステップS226;YES)、CPU11は、変数Posに対応する1キャラクタの黒バー及び白スペースの4値化が失敗した旨を設定し(ステップS229)、4値化処理を終了する。W2<M×cである場合(ステップS227;YES)、ステップS229に移行される。
変数W1,W2が小さい場合、1値と2値との差や、2値と3値との差等、本来異なるレベルとなるべきデータ幅の差異が小さく、比率があいまいになり、誤読の危険性が高くなるため、ステップS229で4値化が失敗した旨が設定されている。
i≧Pos+6である場合(ステップS214;NO)、CPU11は、変数Posに対応する1キャラクタの黒バー及び白スペースの4値化が成功した旨を設定し(ステップS230)、4値化処理を終了する。
図3に戻り、CPU11は、ステップS21(ステップS229,S230)の4値化処理の結果に応じて、変数Posに対応する1キャラクタの黒バー及び白スペースの4値化が成功したか否かを判別する(ステップS22)。4値化が成功した場合(ステップS22;YES)、CPU11は、ステップS21の4値化判定処理で得られたキャラクタの配列R[i]をキャラクタコードに変換する(ステップS23)。そして、CPU11は、ステップS23で変換したキャラクタコードが、バーコードの右端を示すストップコードであるか否かを判別する(ステップS24)。
ストップコードでない場合(ステップS24;NO)、CPU11は、変数Posを6インクリメントし(ステップS25)、ステップS15に移行される。ストップコードである場合(ステップS24;YES)、CPU11は、ステップS23で変換されたキャラクタコードを用いてチェックデジット等のチェック処理を行い、そのチェック結果に応じて、最終的にデコードが成功したか否かを判別する(ステップS26)。ステップS18〜S26が一連のデコード処理となる。
デコードが失敗した場合(ステップS26;NO)、CPU11は、スキャナ部18から次のイメージデータが入力されるのを待ち(ステップS27)、ステップS11に移行される。バーコード開始位置を検出していない場合(ステップS15;NO)、Pos+6≧DatNumである場合(ステップS16;NO)、又は4値化が失敗した場合(ステップS22;NO)、ステップS27に移行される。
デコードが成功した場合(ステップS26;YES)、CPU11は、ステップS23で得られたキャラクタコードを含むデコード結果を表示部14に表示し、報知部19にブザー音を出力させ(ステップS28)、スキャン処理を終了する。ステップS28において、デコード結果は、例えば、フラッシュメモリ17に記憶される。
以上、本実施の形態によれば、スキャナ装置10は、スキャナ部18により取得されたバーコードのイメージデータのうち、レーザ光の振れ幅の端部分をデータ不安定範囲として判定し、当該データ不安定範囲以外の中央部分をデータ安定範囲として判定する。そして、スキャナ装置10は、前記判定されたデータ不安定範囲について、前記バーコードの黒バー及び白スペースの太さを判定するための閾値(変数B05,B15,B25,B35,B45)に対するイメージデータの誤差の許容度を低く(変数cを高く)設定し、当該閾値及び許容度を用いて当該データ不安定範囲をデコードする。また、スキャナ装置10は、前記判定されたデータ安定範囲について、前記閾値に対するイメージデータの誤差の許容度を高く(変数cを低く)設定(通常レベルに設定)し、当該閾値及び許容度を用いて当該データ安定範囲をデコードする。このため、バーコードのデータ不安定範囲の読み取りの正確性を向上できるとともに、バーコードのデータ安定範囲の読み取りのレスポンスを向上できる。
また、スキャナ装置10は、スキャナ部18により取得されたイメージデータのうち、左端から所定の第1の割合(変数a)のデータ幅と、右端から所定の第2の割合(変数b)のデータ幅と、をデータ不安定範囲と判定する。このため、スキャナ部18の光学的特性とレーザ光の振れのスピード特性とに応じて変数a,bを設定して、左端及び右端のデータ不安定範囲を判定できる。また、変数a=変数bだけでなく、変数a≠変数bとしても設定できる。
また、スキャナ装置10は、スキャナ部18により取得されたイメージデータについて、バーコードの1キャラクタ内の閾値に対するイメージデータの誤差の許容度を同じ値に設定し、データ不安定範囲及びデータ安定範囲の境界上のキャラクタの誤差の許容度を低く設定する。このため、データ不安定範囲及びデータ安定範囲の境界にバラツキが発生しても、境界上のキャラクタの読み取りの正確性を向上することができる。
以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体としてROM15を使用した例を開示したが、この例に限定されない。
その他のコンピュータ読み取り可能な媒体として、フラッシュメモリ等の不揮発性メモリ、CD−ROM等の可搬型記録媒体を適用することが可能である。
また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
なお、上記実施の形態における記述は、本発明に係るスキャナ装置及びプログラムの一例であり、これに限定されるものではない。
上記実施の形態では、スキャナ装置10がハンディターミナルである構成としたが、これに限定されるものではない。スキャナ装置10としては、レーザ方式のスキャナ部を有するPDA(Personal Digital Assistant)、ECR(Electronic Cash Register)に接続されたスキャナ装置等、他のスキャナ装置を用いる構成としてもよい。
また、上記実施の形態では、バーコードの1キャラクタ内の誤差の許容度を同じに設定し、データ不安定範囲及びデータ安定範囲の境界上のキャラクタの閾値に対応する誤差の許容度を低く設定することとしたが、これに限定されるものではない。例えば、データ不安定範囲及びデータ安定範囲の境界上のキャラクタの閾値に対応する誤差の許容度を高く設定する構成としてもよい。また、バーコードのエレメント(黒バー及び白スペース)毎に誤差の許容度を設定する構成としてもよい。
また、上記実施の形態におけるスキャナ装置10の各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。
本発明の実施の形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
〔付記〕
<請求項1>
レーザ光を出射して反射光を受光することによりバーコードをスキャンしてイメージデータを取得するスキャナ部と、
前記スキャナ部により取得されたイメージデータのうち、前記レーザ光の振れ幅の端部分をデータ不安定範囲として判定し、当該データ不安定範囲でない部分をデータ安定範囲として判定する判定部と、
前記判定部により判定されたデータ不安定範囲について、前記バーコードの黒バー及び白スペースのデータ幅を判定するための閾値に対するイメージデータの誤差の許容度を低く設定し、当該閾値及び許容度を用いて当該データ不安定範囲をデコードし、前記判定部により判定されたデータ安定範囲について、前記閾値に対するイメージデータの誤差の許容度を高く設定し、当該閾値及び許容度を用いて当該データ安定範囲をデコードするデコード部と、を備えるスキャナ装置。
<請求項2>
前記判定部は、前記スキャナ部により取得されたイメージデータのうち、左端から所定の第1の割合のデータ幅と、右端から所定の第2の割合のデータ幅と、を前記データ不安定範囲と判定する請求項1に記載のスキャナ装置。
<請求項3>
前記デコード部は、前記スキャナ部により取得されたイメージデータについて、前記バーコードの1キャラクタ内の前記誤差の許容度を同じ値に設定し、前記データ不安定範囲及び前記データ安定範囲の境界上のキャラクタの前記誤差の許容度を低く設定する請求項1又は2に記載のスキャナ装置。
<請求項4>
コンピュータを、
レーザ光を出射して反射光を受光することによりバーコードをスキャンしてイメージデータを取得するスキャナ部と、
前記スキャナ部により取得されたイメージデータのうち、前記レーザ光の振れ幅の端部分をデータ不安定範囲として判定し、当該データ不安定範囲でない部分をデータ安定範囲として判定する判定部、
前記判定部により判定されたデータ不安定範囲について、前記バーコードの黒バー及び白スペースのデータ幅を判定するための閾値に対するイメージデータの誤差の許容度を低く設定し、当該閾値及び許容度を用いて当該データ不安定範囲をデコードし、前記判定部により判定されたデータ安定範囲について、前記閾値に対するイメージデータの誤差の許容度を高く設定し、当該閾値及び許容度を用いて当該データ安定範囲をデコードするデコード部、
として機能させるためのプログラム。
10 スキャナ装置
11 CPU
12 操作部
13 RAM
14 表示部
15 ROM
16 無線通信部
17 フラッシュメモリ
18 スキャナ部
181 発光部
182 バイブレーションミラー
183 受光部
184 ゲイン回路
185 二値化回路
19 報知部
20 電源部
21 バス

Claims (4)

  1. レーザ光を出射して反射光を受光することによりバーコードをスキャンしてイメージデータを取得するスキャナ部と、
    前記スキャナ部により取得されたイメージデータのうち、前記レーザ光の振れ幅の端部分をデータ不安定範囲として判定し、当該データ不安定範囲でない部分をデータ安定範囲として判定する判定部と、
    前記判定部により判定されたデータ不安定範囲について、前記バーコードの黒バー及び白スペースのデータ幅を判定するための閾値に対するイメージデータの誤差の許容度を低く設定し、当該閾値及び許容度を用いて当該データ不安定範囲をデコードし、前記判定部により判定されたデータ安定範囲について、前記閾値に対するイメージデータの誤差の許容度を高く設定し、当該閾値及び許容度を用いて当該データ安定範囲をデコードするデコード部と、を備えるスキャナ装置。
  2. 前記判定部は、前記スキャナ部により取得されたイメージデータのうち、左端から所定の第1の割合のデータ幅と、右端から所定の第2の割合のデータ幅と、を前記データ不安定範囲と判定する請求項1に記載のスキャナ装置。
  3. 前記デコード部は、前記スキャナ部により取得されたイメージデータについて、前記バーコードの1キャラクタ内の前記誤差の許容度を同じ値に設定し、前記データ不安定範囲及び前記データ安定範囲の境界上のキャラクタの前記誤差の許容度を低く設定する請求項1又は2に記載のスキャナ装置。
  4. コンピュータを、
    レーザ光を出射して反射光を受光することによりバーコードをスキャンしてイメージデータを取得するスキャナ部と、
    前記スキャナ部により取得されたイメージデータのうち、前記レーザ光の振れ幅の端部分をデータ不安定範囲として判定し、当該データ不安定範囲でない部分をデータ安定範囲として判定する判定部、
    前記判定部により判定されたデータ不安定範囲について、前記バーコードの黒バー及び白スペースのデータ幅を判定するための閾値に対するイメージデータの誤差の許容度を低く設定し、当該閾値及び許容度を用いて当該データ不安定範囲をデコードし、前記判定部により判定されたデータ安定範囲について、前記閾値に対するイメージデータの誤差の許容度を高く設定し、当該閾値及び許容度を用いて当該データ安定範囲をデコードするデコード部、
    として機能させるためのプログラム。
JP2011022690A 2011-02-04 2011-02-04 スキャナ装置及びプログラム Active JP5321610B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011022690A JP5321610B2 (ja) 2011-02-04 2011-02-04 スキャナ装置及びプログラム
US13/355,703 US8746567B2 (en) 2011-02-04 2012-01-23 Barcode reader and computer program product
CN201210024501.4A CN102682262B (zh) 2011-02-04 2012-02-03 条形码读取装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011022690A JP5321610B2 (ja) 2011-02-04 2011-02-04 スキャナ装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2012164058A true JP2012164058A (ja) 2012-08-30
JP5321610B2 JP5321610B2 (ja) 2013-10-23

Family

ID=46599990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011022690A Active JP5321610B2 (ja) 2011-02-04 2011-02-04 スキャナ装置及びプログラム

Country Status (3)

Country Link
US (1) US8746567B2 (ja)
JP (1) JP5321610B2 (ja)
CN (1) CN102682262B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324972A (zh) * 2013-06-06 2013-09-25 北京印刷学院 一种三维码的标识及其实现方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03296881A (ja) * 1990-04-17 1991-12-27 Alps Electric Co Ltd 光学読取装置
JPH1153459A (ja) * 1997-08-06 1999-02-26 Sumitomo Electric Ind Ltd 二値化処理装置
JP2003108915A (ja) * 2001-09-28 2003-04-11 Sharp Corp バーコード認識装置
JP2005250852A (ja) * 2004-03-04 2005-09-15 Matsushita Electric Ind Co Ltd バーコードリーダ
JP2008140255A (ja) * 2006-12-04 2008-06-19 Olympus Corp バーコード読取装置およびバーコード読取方法
JP2009151656A (ja) * 2007-12-21 2009-07-09 Casio Comput Co Ltd バーコード読取装置及びプログラム
JP2010086324A (ja) * 2008-09-30 2010-04-15 Fujitsu Ltd 二値化処理装置、情報処理装置、二値化処理方法および二値化処理プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4782220A (en) * 1986-09-29 1988-11-01 Mars, Incorporated Method and apparatus for bar code data autodiscrimination
US5589679A (en) * 1989-10-30 1996-12-31 Symbol Technologies, Inc. Parallelepiped-shaped optical scanning module
US5412198A (en) * 1989-10-30 1995-05-02 Symbol Technologies, Inc. High-speed scanning arrangement with high-frequency, low-stress scan element
US5479000A (en) * 1989-10-30 1995-12-26 Symbol Technologies, Inc. Compact scanning module for reading bar codes
US5115121A (en) * 1990-01-05 1992-05-19 Control Module Inc. Variable-sweep bar code reader
JP2781120B2 (ja) 1993-04-06 1998-07-30 沖電気工業株式会社 バーコード読取回路
JP3265804B2 (ja) * 1994-03-18 2002-03-18 富士通株式会社 バーコード読取り装置
JP3814008B2 (ja) * 1996-02-20 2006-08-23 株式会社オプトエレクトロニクス 光学的パターン読取装置
US6419155B1 (en) * 1998-10-29 2002-07-16 Casio Computer Co., Ltd. Laser beam scan type barcode reader and program recording mediums
JP4364482B2 (ja) * 2002-04-23 2009-11-18 株式会社キーエンス 光学シンボル読取装置用光学ユニット
JPWO2004055713A1 (ja) * 2002-12-17 2006-04-20 シャープ株式会社 バーコード認識装置
US7212682B2 (en) * 2003-03-06 2007-05-01 Sick Auto Ident, Inc. Method and system for enhancing measurement
US6796503B1 (en) * 2003-12-04 2004-09-28 Ncr Corporation Methods and apparatus for dynamic adjustment of bar code reader parameters
JP4725148B2 (ja) * 2005-03-18 2011-07-13 カシオ計算機株式会社 印字装置及びプログラム
US7628331B2 (en) * 2005-09-29 2009-12-08 Symbol Technologies, Inc. Method and system for optimizing scanner performance
JP5140820B2 (ja) * 2008-03-31 2013-02-13 日本電産サンキョー株式会社 シンボル情報読取装置及びシンボル情報読取方法
CN102034074B (zh) * 2009-09-25 2014-05-14 神基科技股份有限公司 在图像中定位并撷取条形码区域的图像处理方法及装置
TWI369637B (en) * 2010-06-17 2012-08-01 Mstar Semiconductor Inc Barcode image recognition system and associated method for hand-held device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03296881A (ja) * 1990-04-17 1991-12-27 Alps Electric Co Ltd 光学読取装置
JPH1153459A (ja) * 1997-08-06 1999-02-26 Sumitomo Electric Ind Ltd 二値化処理装置
JP2003108915A (ja) * 2001-09-28 2003-04-11 Sharp Corp バーコード認識装置
JP2005250852A (ja) * 2004-03-04 2005-09-15 Matsushita Electric Ind Co Ltd バーコードリーダ
JP2008140255A (ja) * 2006-12-04 2008-06-19 Olympus Corp バーコード読取装置およびバーコード読取方法
JP2009151656A (ja) * 2007-12-21 2009-07-09 Casio Comput Co Ltd バーコード読取装置及びプログラム
JP2010086324A (ja) * 2008-09-30 2010-04-15 Fujitsu Ltd 二値化処理装置、情報処理装置、二値化処理方法および二値化処理プログラム

Also Published As

Publication number Publication date
JP5321610B2 (ja) 2013-10-23
US20120199656A1 (en) 2012-08-09
CN102682262B (zh) 2015-04-22
US8746567B2 (en) 2014-06-10
CN102682262A (zh) 2012-09-19

Similar Documents

Publication Publication Date Title
US9626544B2 (en) Removable module for mobile communication terminal
CN204374974U (zh) 高动态范围的标记读取系统
US5241164A (en) Method of decoding bar code symbols from partial scans
US5278398A (en) Decoding bar code symbols by determining the best alignment of partial scans
US5489158A (en) Printer system for removable machine readable code
US9842232B2 (en) Wireless tag communication device and wireless tag communication program
EP3040904A1 (en) Portable rfid reading terminal with visual indication of scan trace
JP5223940B2 (ja) スキャナ装置及びプログラム
JP2002324222A (ja) 情報コードラベル、情報コードの解読方法および解読システム
CA2419294A1 (en) Compact matrix code and one-touch device and method for code reading
CA2285626A1 (en) Distortion resistant double-data correcting color transition barcode and method of generating and using same
JPH0612514A (ja) バーコードの解読方法及び装置
US8567680B2 (en) Method, device and system for a laser bar code scanner with imaging assist
US5710419A (en) Record with removable two-dimensional code
CN1079833A (zh) 自适应条码扫描器
JP5321610B2 (ja) スキャナ装置及びプログラム
US20110068177A1 (en) Composite Label with History Feature
JP2010258726A (ja) 端末ip設定システム
EP0575989A2 (en) Record with removable two-dimensional code
US11967145B2 (en) Apparatuses, methods, and computer program products for automatic proof of delivery using visual indicia
JP5768260B2 (ja) イメージ処理装置及びシンボル読取方法
JP5532163B2 (ja) イメージ処理装置及びプログラム
KR20120082334A (ko) 이력 데이터 분석을 통한 모바일 코드 복호화 오류 복구 장치 및 방법
JP5673208B2 (ja) 携帯端末及びプログラム
US20080000975A1 (en) Audible pattern switching indicator

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130603

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: 20130618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130701

R150 Certificate of patent or registration of utility model

Ref document number: 5321610

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150