(57)【要約】【課題】主走査方向の１ラインに始端と終端とが存在しない場合でも、バーコードを読み取ることができるバーコード読み取り装置及びバーコード読み取り方法を提供する。【解決手段】ラインデータからスタートキャラクターのみが検出された場合には、始端ポイントから読み取り終了ポイントまでのエレメントパターンを抽出し、ラインデータからストップキャラクターのみが検出された場合には、読み取り開始ポイントから終端ポイントまでのエレメントパターンを抽出するキャラクター照合部７３と、バーコードの傾き角度を算出する傾き角度算出部７４と、マッチングパターンと傾き角度とに基づいて、他のラインデータからキャラクター照合部７３によって抽出されたエレメントパターンと連結されるエレメントパターンを抽出するパターン照合部７５と、エレメントパターンが連結されて記憶されるエレメントメモリー７２とを備えている。【選択図】図２
2017107417.tif 000002
【特許請求の範囲】
【請求項１】
原稿に表記されたコード１２８のバーコードを読み取るバーコード読み取り装置であって、
主走査方向に配置されたラインセンサーによって原稿を副走査方向に走査して読み取る原稿読み取り部と、
前記ラインセンサーによって読み取られたラインデータとスタートキャラクター及びストップキャラクターとを照合し、前記スタートキャラクターのみが検出された場合には、前記スタートキャラクターの始端ポイントと、読み取り終了ポイントとを特定して、前記始端ポイントから前記読み取り終了ポイントまでのエレメントパターンを抽出し、前記ストップキャラクターのみが検出された場合には、読み取り開始ポイントと、前記ストップキャラクターの終端ポイントとを特定して、前記読み取り開始ポイントから前記終端ポイントまでのエレメントパターンを抽出するキャラクター照合部と、
前記キャラクター照合部によって特定された前記始端ポイントもしくは前記後端ポイントに基づいて前記バーコードの傾き角度を算出する傾き角度算出部と、
前記キャラクター照合部がエレメントパターンを抽出したラインデータからマッチングパターンを特定し、他のラインデータと特定したマッチングパターンとを前記傾き角度に基づいて照合し、他のラインデータから前記キャラクター照合部によって抽出されたエレメントパターンと連結されるエレメントパターンを抽出するパターン照合部と、
前記キャラクター照合部によって抽出されたエレメントパターンと前記パターン照合部によって抽出されたエレメントパターンとが連結されて記憶されるエレメントメモリーと、
該エレメントメモリーに記憶されたエレメントパターンのデコード処理を実行するデコード処理部とを具備することを特微とするバーコード読み取り装置。
【請求項２】
前記キャラクター照合部によって前記スタートキャラクターのみが検出された場合、前記パターン照合部は、後続する他のラインデータにおいて、前記キャラクター照合部によって抽出されたエレメントパターンの前記読み取り終了ポイントに連結されるエレメントパターンを抽出すると共に、前記キャラクター照合部は、さらに後続する他のラインデータにおいて、前記パターン照合部によって抽出されたエレメントパターンに連結される前記読み取り開始ポイントを特定して、前記読み取り開始ポイントから前記終端ポイントまでのエレメントパターンを抽出し、
前記キャラクター照合部によって前記ストップキャラクターのみが検出された場合、前記パターン照合部は、後続する他のラインデータにおいて、前記キャラクター照合部によって抽出されたエレメントパターンの前記読み取り開始ポイントに連結されるエレメントパターンを抽出すると共に、前記キャラクター照合部は、さらに後続する他のラインデータにおいて、前記パターン照合部によって抽出されたエレメントパターンに連結される前記読み取り終了ポイントを特定して、前記始端ポイントから前記読み取り終了ポイントまでのエレメントパターンを抽出することを特徴とする請求項１記載のバーコード読み取り装置。
【請求項３】
前記傾き角度算出部は、副走査方向の異なる２つのラインでそれぞれ特定された前記始端ポイントもしくは前記後端ポイントに基づいて前記バーコードの傾き角度を算出することを特徴とする請求項１又は２記載のバーコード読み取り装置。
【請求項４】
コード１２８のバーコードが表記された原稿を、主走査方向に配置されたラインセンサーを有する原稿読み取り部によって副走査方向に走査して読み取り、前記ラインセンサーによって読み取ったラインデータに基づいて前記バーコートを読み取るバーコード読み取り方法であって、
キャラクター照合部によって、前記ラインセンサーによって読み取ったラインデータとスタートキャラクター及びストップキャラクターとを照合し、前記スタートキャラクターのみが検出された場合、前記スタートキャラクターの始端ポイントと、読み取り終了ポイントとを特定して、前記始端ポイントから前記読み取り終了ポイントまでのエレメントパターンを抽出し、前記ストップキャラクターのみが検出された場合、読み取り開始ポイントと、前記ストップキャラクターの終端ポイントとを特定して、前記読み取り開始ポイントから前記終端ポイントまでのエレメントパターンを抽出し、
傾き角度算出部によって、前記キャラクター照合部によって特定された前記始端ポイントもしくは前記後端ポイントに基づいて前記バーコードの傾き角度を算出し、
パターン照合部によって、前記キャラクター照合部がエレメントパターンを抽出したラインデータからマッチングパターンを特定し、他のラインデータと特定したマッチングパターンとを前記傾き角度に基づいて照合し、他のラインデータから前記キャラクター照合部によって抽出されたエレメントパターンと連結されるエレメントパターンを抽出し、
エレメントメモリーに、前記キャラクター照合部によって抽出されたエレメントパターンと前記パターン照合部によって抽出されたエレメントパターンとが連結させて記憶し、
デコード処理部によって、前記エレメントメモリーに記憶させたエレメントパターンのデコード処理を実行することを特微とするバーコード読み取り方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コード１２８（ＪＩＳＸ０５０４：２００３）のバーコードを読み取るバーコード読み取り装置及びバーコード読み取り方法に関する。
【背景技術】
【０００２】
複写機や複合機のスキャナーなどで原稿等に記載されたコード１２８のバーコードを読み込む場合、原稿の置き方によっては、主走査方向に対して斜めに傾いてしまい、読み取れない場合があった。そこで、傾いたバーコードに対し、開始パターン、終了パターンがそろう矩形領域を入力画像から切り出すことによってノイズに強いバーコードの認識処理が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−３０９４８１公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、バーコードの傾きが大きく、主走査方向の１ラインに始端と終端とが存在しない場合に、バーコードを読み込むことができないといった問題点があった。すなわち、図９（ａ）に示すように、傾きが小さく、上部から１ラインずつ主走査方向へスキャンすることで、始端と終端とが読み込める主走査方向の１ラインがある場合には、開始パターン及び終了パターンがそろう矩形領域を切り出すことができ、バーコードの読み取りが可能である。これに対し、図９（ｂ）に示すように、バーコードの傾きが大きく、上部から１ラインずつ主走査方向へスキャンしても、始端と終端とが存在する主走査方向の１ラインがない場合には、始端であるスタートコード（又は、ストップコードの逆順）は読めるが、終端の読み込みができないため、矩形領域を切り出すことができず、バーコードを読み込むことができない。
【０００５】
なお、バーコードの傾きが大きい場合は、入力画像を回転させることによりバーコードの読み取りは可能になるが、回転用のメモリーが必要になるとともに、回転処理を行う際の処理コストがかかってしまう。
【０００６】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、バーコードの傾きが大きく、主走査方向の１ラインに始端と終端とが存在しない場合でも、メモリー使用量が多く且つ処理コストが高い回転等の処理を必要とすることなく、バーコードを読み取ることができるバーコード読み取り装置及びバーコード読み取り方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のバーコード読み取り装置は、原稿に表記されたコード１２８のバーコードを読み取るバーコード読み取り装置であって、主走査方向に配置されたラインセンサーによって原稿を副走査方向に走査して読み取る原稿読み取り部と、前記ラインセンサーによって読み取られたラインデータとスタートキャラクター及びストップキャラクターとを照合し、前記スタートキャラクターのみが検出された場合には、前記スタートキャラクターの始端ポイントと、読み取り終了ポイントとを特定して、前記始端ポイントから前記読み取り終了ポイントまでのエレメントパターンを抽出し、前記ストップキャラクターのみが検出された場合には、読み取り開始ポイントと、前記ストップキャラクターの終端ポイントとを特定して、前記読み取り開始ポイントから前記終端ポイントまでのエレメントパターンを抽出するキャラクター照合部と、前記キャラクター照合部によって特定された前記始端ポイントもしくは前記後端ポイントに基づいて前記バーコードの傾き角度を算出する傾き角度算出部と、前記キャラクター照合部がエレメントパターンを抽出したラインデータからマッチングパターンを特定し、他のラインデータと特定したマッチングパターンとを前記傾き角度に基づいて照合し、他のラインデータから前記キャラクター照合部によって抽出されたエレメントパターンと連結されるエレメントパターンを抽出するパターン照合部と、前記キャラクター照合部によって抽出されたエレメントパターンと前記パターン照合部によって抽出されたエレメントパターンとが連結されて記憶されるエレメントメモリーと、該エレメントメモリーに記憶されたエレメントパターンのデコード処理を実行するデコード処理部とを具備することを特微とする。
さらに、本発明のバーコード読み取り装置において、前記キャラクター照合部によって前記スタートキャラクターのみが検出された場合、前記パターン照合部は、後続する他のラインデータにおいて、前記キャラクター照合部によって抽出されたエレメントパターンの前記読み取り終了ポイントに連結されるエレメントパターンを抽出すると共に、前記キャラクター照合部は、さらに後続する他のラインデータにおいて、前記パターン照合部によって抽出されたエレメントパターンに連結される前記読み取り開始ポイントを特定して、前記読み取り開始ポイントから前記終端ポイントまでのエレメントパターンを抽出し、前記キャラクター照合部によって前記ストップキャラクターのみが検出された場合、前記パターン照合部は、後続する他のラインデータにおいて、前記キャラクター照合部によって抽出されたエレメントパターンの前記読み取り開始ポイントに連結されるエレメントパターンを抽出すると共に、前記キャラクター照合部は、さらに後続する他のラインデータにおいて、前記パターン照合部によって抽出されたエレメントパターンに連結される前記読み取り終了ポイントを特定して、前記始端ポイントから前記読み取り終了ポイントまでのエレメントパターンを抽出するようにしても良い。
さらに、本発明のバーコード読み取り装置において、前記傾き角度算出部は、副走査方向の異なる２つのラインでそれぞれ特定された前記始端ポイントもしくは前記後端ポイントに基づいて前記バーコードの傾き角度を算出するようにしても良い。
また、本発明のバーコード読み取り方法は、コード１２８のバーコードが表記された原稿を、主走査方向に配置されたラインセンサーを有する原稿読み取り部によって副走査方向に走査して読み取り、前記ラインセンサーによって読み取ったラインデータに基づいて前記バーコートを読み取るバーコード読み取り方法であって、キャラクター照合部によって、前記ラインセンサーによって読み取ったラインデータとスタートキャラクター及びストップキャラクターとを照合し、前記スタートキャラクターのみが検出された場合、前記スタートキャラクターの始端ポイントと、読み取り終了ポイントとを特定して、前記始端ポイントから前記読み取り終了ポイントまでのエレメントパターンを抽出し、前記ストップキャラクターのみが検出された場合、読み取り開始ポイントと、前記ストップキャラクターの終端ポイントとを特定して、前記読み取り開始ポイントから前記終端ポイントまでのエレメントパターンを抽出し、傾き角度算出部によって、前記キャラクター照合部によって特定された前記始端ポイントもしくは前記後端ポイントに基づいて前記バーコードの傾き角度を算出し、パターン照合部によって、前記キャラクター照合部がエレメントパターンを抽出したラインデータからマッチングパターンを特定し、他のラインデータと特定したマッチングパターンとを前記傾き角度に基づいて照合し、他のラインデータから前記キャラクター照合部によって抽出されたエレメントパターンと連結されるエレメントパターンを抽出し、エレメントメモリーに、前記キャラクター照合部によって抽出されたエレメントパターンと前記パターン照合部によって抽出されたエレメントパターンとが連結させて記憶し、デコード処理部によって、前記エレメントメモリーに記憶させたエレメントパターンのデコード処理を実行することを特微とする。
【０００８】
本発明によれば、バーコードの傾きが大きく、主走査方向の１ラインに始端と終端とが存在しない場合でも、副走査方向の異なるラインでスタートキャラクターとストップキャラクターとをそれぞれ検出することができれば、メモリー使用量が多く且つ処理コストが高い回転等の処理を必要とすることなく、バーコードを読み取ることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】本発明に係るバーコード読み取り装置の実施の形態の内部構成を示す概略模式断面図である。
【図２】図１に示すバーコード読み取り装置の概略構成を示すブロック図である。
【図３】本発明に係るバーコード読み取り装置の実施の形態によるバーコード読み取り動作を説明するフローチャートである。
【図４】本発明に係るバーコード読み取り装置の実施の形態によるバーコード読み取り動作を説明するフローチャートである。
【図５】本発明に係るバーコード読み取り装置の実施の形態によるバーコード読み取り動作を説明する説明図である。
【図６】本発明に係るバーコード読み取り装置の実施の形態によるバーコード読み取り動作を説明する説明図である。
【図７】本発明に係るバーコード読み取り装置の実施の形態によるバーコード読み取り動作を説明する説明図である。
【図８】本発明に係るバーコード読み取り装置の実施の形態によるバーコード読み取り動作を説明する説明図である。
【図９】バーコードの読み取り例を示す図である。
【発明を実施するための形態】
【００１０】
次に、本発明の実施の形態を、図面を参照して具体的に説明する。
本実施の形態のバーコード読み取り装置は、電子写真方式を利用した複写機や複合機等の画像形成装置１であり、図１を参照すると、原稿読み取り部２と、原稿給送部３と、本体部４と、操作部６とを備えている。原稿給送部３は、原稿読み取り部２の上部に配設されていると共に、原稿読み取り部２は、本体部４の上部に配設され、原稿読み取り部２と本体部４との間には、排紙空間４０が形成されている。
【００１１】
操作部６には、タッチパネル６１、操作ボタン６２が設けられている。ユーザーは操作部６を操作して指示を入力することで、画像形成装置１の各種の設定を行い、スキャン動作や画像形成等の各種機能を実行させる。タッチパネル６１は、画像形成装置１の状態を示したり、画像形成状況や印刷部数を表示したり、両面印刷や白黒反転等の機能や倍率設定、濃度設定など各種設定を行えるようになっている。操作ボタン６２としては、スキャン動作や画像形成の開始を指示するスタートボタン、スキャン動作や画像形成の中止を指示するストップボタン、画像形成装置１の各種設定をデフォルト状態にする際に使用するリセットボタン等が設けられている。
【００１２】
原稿読み取り部２は、光源と、主走査方向に配置されたラインセンサーとを備え、ＬＥＤや冷陰極管ランプ等の光源の光を記録媒体である原稿ＭＳの画像面に導くと共に、画像面からの反射光をＣＣＤセンサー等のラインセンサーに導くスキャナー２１と、プラテンガラス２２と、原稿読み取りスリット２３とを備える。スキャナー２１は、モーター２４とプーリー２５との間に架け渡された歯付きベルト２６に固定されており、モーター２４を駆動することで、スキャナー２１がプラテンガラス２２に載置された原稿ＭＳの画像面に沿って移動され、原稿ＭＳの画像面を副走査方向に走査（スキャン）するように構成されている。プラテンガラス２２は、ガラス等の透明部材により構成された原稿台である。原稿読み取りスリット２３は、原稿給送部３による原稿の搬送方向と直交方向に形成されたスリットである。
【００１３】
プラテンガラス２２に載置された原稿ＭＳを読み取る場合には、スキャナー２１をプラテンガラス２２に沿って副走査方向に移動させながら、プラテンガラス２２に載置された原稿ＭＳを主走査方向の１ライン毎に走査することで画像データを取得し、取得した画像データを本体部４に出力する。また、原稿給送部３により搬送された原稿ＭＳを読み取る場合には、スキャナー２１を原稿読み取りスリット２３と対向する位置に移動させ、原稿読み取りスリット２３を介し、原稿給送部３による原稿の搬送動作と同期して原稿ＭＳを読み取って画像データを取得し、取得した画像データを本体部４に出力する。
【００１４】
原稿給送部３は、原稿載置部３１と、原稿排出部３２と、原稿搬送機構３３とを備えている。原稿載置部３１に載置された原稿ＭＳは、原稿搬送機構３３によって、１枚ずつ順に繰り出されて原稿読み取りスリット２３に対向する位置へ搬送され、その後、原稿排出部３２に排出される。なお、原稿給送部３は、可倒式に構成され、プラテンガラス２２上を開閉するプラテンカバーとして機能し、原稿給送部３を上方に持ち上げて開成すると、プラテンガラス２２の上面を開放させることができる。
【００１５】
本体部４は、電子写真プロセスによって記録紙Ｐに記録を施す記録部５を備えると共に、給紙カセット４１と、給紙ローラー４２と、用紙搬送路４３と、搬送ローラー４４、４５と、排出ローラー４６とを備えている。搬送ローラー４４、４５及び排出ローラー４６は、記録紙Ｐを搬送する搬送部４７として機能する。給紙カセット４１に収納された記録紙Ｐは、給紙ローラー４２によって用紙搬送路４３に１枚ずつ繰り出され、搬送ローラー４４によって記録部５に搬送される。そして、記録部５によって記録が施された記録紙Ｐは、搬送ローラー４５及び排出ローラー４６によって排紙空間４０に排出される。
【００１６】
記録部５は、感光体ドラム５１と、帯電器５２と、光走査部５３と、現像部５４と、転写ローラー５５と、定着部５６と、クリーニング部５７とを備えている。記録部５による画像形成は、まず、帯電器５２により感光体ドラム５１の表面を一様に帯電させ、原稿読み取り部２で読み取られた画像データに基づいて、光走査部５３によって感光体ドラム５１の表面を走査することで静電潜像を形成させる。次に、感光体ドラム５１の表面に形成された静電潜像を現像部５４によって現像することでトナー像を形成させる。感光体ドラム５１の表面に形成されたトナー像は、給紙カセット４１から繰り出された記録紙Ｐが、感光体ドラム５１と転写ローラー５５とのニップ部を通過する間に記録紙Ｐに転写される。記録紙Ｐに転写されたトナー像は、定着部５６を通過する間に記録紙Ｐに熱定着される。
【００１７】
図２には、画像形成装置１の概略構成を示すブロック図が示されている。上述の原稿読み取り部２、原稿給送部３、搬送部４７（搬送ローラー４４、４５、排出ローラー４６）、記録部５及び操作部６は、制御部７に接続され、制御部７によって動作制御される。また、制御部７には、画像処理部８及び記憶部９が接続されている。
【００１８】
画像処理部８は、画像データに対して所定の画像処理を行う手段であり、例えば、拡大縮小処理や、階調調整、濃度調整等の画像改善処理が行われる。
【００１９】
記憶部９は、半導体メモリーやＨＤＤ（Hard Disk Drive）等の記憶手段であり、原稿読み取り部２によって原稿を読み取ることで取得された画像データが記憶される。
【００２０】
制御部７は、ＲＯＭ（Read Only Memory）７ａ、ＲＡＭ（Random Access Memory）７ｂ等を備えたマイクロコンピューター等の情報処理部である。ＲＯＭ７ａには画像形成装置１の動作制御を行うための制御プログラムが記憶されている。制御部７は、ＲＯＭ７ａに記憶されている制御プログラムを読み出し、制御プログラムをＲＡＭ７ｂに展開させることで、操作部６から入力された所定の指示情報に応じて装置全体の制御を行う。
【００２１】
また、制御部７のＲＡＭ７ｂは、入力ラインメモリー７１、エレメントメモリー７２として機能する。入力ラインメモリー７１は、スキャナー２のラインセンサーによって読み取られた少なくとも主走査方向１ライン分の画像データ（以下、ラインデータと称す）を記憶する記憶手段であり、副走査方向に走査（スキャン）によって順次更新される。エレメントメモリー７２は、コード１２８（ＪＩＳＸ０５０４：２００３）のバーコード（以下、バーコード１２８と称す）のエレメントパターンを記憶する記憶手段である。なお、エレメントメモリー７２には、エレメントパターンをスキャナー２のラインセンサーによって読み取った画像データとして記憶しても良く、２値化した後に記憶するようにしても良い。
【００２２】
制御部７は、原稿読み取り部２によって取得された画像データに含まれるバーコード１２８を読み取る機能を有しており、キャラクター照合部７３、傾き角度算出部７４、パターン照合部７５、デコード処理部７６として機能する。
【００２３】
バーコード１２８は、クワイエットゾーン（先頭）、スタートキャラクター、データキャラクター、シンボルチェックキャラクター、ストップキャラクター、クワイエットゾーン（末尾）からなる。バーコード１２８を構成するバーとスペースとは、エレメントと呼称され、スタートキャラクター、データキャラクター及びシンボルチェックキャラクターは、６エレメントで、ストップキャラクターは、７エレメントで１つのキャラクターを表現している。ストップキャラクターのエレメントパターンは、予め設定されている。また、スタートキャラクターは、予め設定された設定された３つのエレメントパターンの中から選択される。
【００２４】
キャラクター照合部７３は、ラインデータと、バーコード１２８のスタートキャラクター及びストップキャラクターのエレメントパターンとを照合し、入力ラインメモリー７１に取り込んだラインデータから、スタートキャラクター及びストップキャラクターのエレメントパターンを検出する。また、キャラクター照合部７３は、クワイエットゾーン（先頭）とスタートキャラクターとの境界をスタートキャラクターの始端ポイントＰ１として特定すると共に、ストップキャラクターとクワイエットゾーン（末尾）との境界をストップキャラクターの終端ポイントＰ４として特定する。
【００２５】
傾き角度算出部７４は、キャラクター照合部７３によって副走査方向の異なるラインでそれぞれ特定された始端ポイントＰ１もしくは終端ポイントＰ４に基づいて、バーコード１２８の傾き角度θを算出する。
【００２６】
パターン照合部７５は、ラインデータにおける読み取り終了（開始）ポイントと、読み取り終了（開始）ポイントを含むマッチングパターンを特定する。また、パターン照合部７５は、傾き角度θに基づいて、特定したマッチングパターンを後続するラインデータから検出するマッチング処理を実行する。
【００２７】
デコード処理部７６は、エレメントメモリー７２に記憶されたエレメントパターンのデコード処理を実行する。
【００２８】
次に、画像形成装置１におけるバーコード読み取り動作について図３乃至図８を参照して詳細に説明する。
図３を参照すると、原稿読み取り部２による原稿の読み取りが開始されると、制御部７はキャラクター照合部７３として機能し、ラインデータを入力ラインメモリー７１に取り込む（ステップＡ１）。
【００２９】
キャラクター照合部７３は、入力ラインメモリー７１に取り込んだラインデータと、スタートキャラクター及びストップキャラクターのエレメントパターンとを照合し、入力ラインメモリー７１に取り込んだラインデータから、スタートキャラクターのエレメントパターンが検出されるか否か（ステップＡ２）、ストップキャラクターのエレメントパターンが検出されるか否か判断する（ステップＡ３、Ａ４）。
【００３０】
ラインデータにバーコード１２８が存在せず、ラインデータからスタートキャラクター及びストップキャラクターのいずれのエレメントパターンも検出されない場合（ステップＡ２及びＡ４で共にＮｏの場合）、キャラクター照合部７３は、ステップＡ１に戻り、次のラインデータを入力ラインメモリー７１に取り込む。
【００３１】
主走査方向に対してバーコード１２８に傾きがなく、ラインデータからスタートキャラクター及びストップキャラクターのいずれのエレメントパターンも検出された場合（ステップＡ２及びＡ３で共にＹｅｓの場合）、キャラクター照合部７３は、クワイエットゾーン（先頭）とスタートキャラクターとの境界をスタートキャラクターの始端ポイントＰ１として特定すると共に（ステップＡ５）、ストップキャラクターとクワイエットゾーン（末尾）との境界をストップキャラクターの終端ポイントＰ４として特定し（ステップＡ６）、始端ポイントＰ１から終端ポイントＰ４の間の全エレメントパターンをエレメントメモリー７２に記憶させる（ステップＡ７）。次に、制御部７はデコード処理部７６として機能し、エレメントメモリー７２に記憶されたエレメントパターンのデコード処理を実行し（ステップＡ８）、バーコード読み取り動作を終了する。
【００３２】
主走査方向に対してはバーコード１２８が傾いている場合、ラインデータを副走査方向に順次取り込んで、ステップＡ２〜Ａ４でスタートキャラクター及びストップキャラクターの照合を行うと、まず、スタートキャラクターもしくはストップキャラクターのいずれかが検出されることになる。
【００３３】
まず、図５に示すように、Ｘライン目でラインデータからスタートキャラクターのエレメントパターンのみが検出された場合について説明する。
Ｘライン目のラインデータからスタートキャラクターのエレメントパターンのみが検出された場合（ステップＡ２がＹｅｓでステップＡ３がＮｏの場合）、キャラクター照合部７３は、Ｘライン目のラインデータにおけるスタートキャラクターの始端ポイントＰ１を特定する（ステップＡ９）。
【００３４】
次に、キャラクター照合部７３は、変数ｎに１をセットして（ステップＡ１０）、次のラインデータ、すなわちＸ＋ｎライン目のラインデータを入力ラインメモリー７１に取り込む（ステップＡ１１）。そして、キャラクター照合部７３は、入力ラインメモリー７１に取り込んだラインデータと、ストップキャラクターのエレメントパターンとを照合し、入力ラインメモリー７１に取り込んだラインデータから、ストップキャラクターのエレメントパターンが検出されるか否か判断する（ステップＡ１２）。
【００３５】
ステップＡ１２でストップキャラクターが検出された場合、キャラクター照合部７３は、ストップキャラクターの終端ポイントＰ４を特定し（ステップＡ１３）、ステップＡ７で、始端ポイントから終端ポイントＰ４の間の全エレメントパターンをエレメントメモリー７２に記憶させる。
【００３６】
ステップＡ１２でストップキャラクターが検出されない場合、キャラクター照合部７３は、変数ｎをインクリメントして（ステップＡ１４）、変数ｎが予め設定された閾ライン数Ｎに到達したか否かを判断する（ステップＡ１５）。ステップＡ１５で変数ｎが閾ライン数Ｎに到達していない場合、キャラクター照合部７３は、ステップＡ１１に戻って次のラインデータ、すなわちＸ＋ｎライン目のラインデータを入力ラインメモリー７１に取り込み、変数ｎが閾ライン数Ｎに到達するまで、ステップＡ１１〜Ａ１５の処理を繰り返す。これにより、主走査方向に対するバーコード１２８の傾きが大きくない場合、Ｘ＋１ライン目からＸ＋Ｎライン目の間のラインデータからスタートキャラクター及びストップキャラクターが検出され、バーコード１２８の読み取りが行われる。なお、ステップＡ１１〜Ａ１５の処理は、スタートキャラクターが継続して検出されていることが前提であり、スタートキャラクターが検出されなくなった場合、ステップＡ１に戻る。
【００３７】
図４を参照すると、ステップＡ１５で変数ｎが閾ライン数Ｎに到達した場合、キャラクター照合部７３は、Ｘ＋Ｎライン目のラインデータにおけるスタートキャラクターの始端ポイントＰ１を特定する（ステップＡ１６）。
【００３８】
次に、制御部７は傾き角度算出部７４として機能し、ステップＡ９で特定したＸライン目のラインデータにおける始端ポイントＰ１と、ステップＡ１６で特定したＸ＋Ｎライン目のラインデータにおける始端ポイントＰ１とに基づいて、バーコード１２８の傾き角度θを算出する（ステップＡ１７）。
【００３９】
次に、制御部７はパターン照合部７５として機能し、Ｘ＋Ｎライン目のラインデータにおける読み取り終了ポイントＰ２を特定すると共に、読み取り終了ポイントＰ２を含むマッチングパターンを特定する（ステップＡ１８）。Ｘ＋Ｎライン目のラインデータにおいて、検出されたエレメントの内のいずれかの後端が読み取り終了ポイントＰ２として特定される。マッチングパターンは、読み取り終了ポイントＰ２を含む複数のエレメントが特定される。
【００４０】
次に、パターン照合部７５は、ステップＡ１６で特定した始端ポイントＰ１からステップＡ１８で特定した読み取り終了ポイントＰ２までのエレメントパターンを部分エレメントパターンとして抽出し、抽出した部分エレメントパターンをエレメントメモリー７２に記憶させる（ステップＡ１９）。
【００４１】
次に、パターン照合部７５は、次のラインデータを入力ラインメモリー７１に取り込み（ステップＡ２０）、入力ラインメモリー７１に取り込んだラインデータと、ステップＡ１８で特定したマッチングパターンとを照合し、マッチングパターン（読み取り終了ポイントＰ２）を検出するマッチング処理を実行し（ステップＡ２１）、ラインデータからマッチングパターンが検出されたか否かを判断する（ステップＡ２２）。マッチング処理では、ステップＡ１７で算出された傾き角度θに基づいて、該当箇所に存在するマッチングパターンを検出する。従って、入力ラインメモリー７１に取り込まれたラインデータにマッチングパターンと同様のエレメントパターンが内在していても、マッチングパターンと誤認されることがない。
【００４２】
ステップＡ２２でマッチングパターンが検出されない場合、パターン照合部７５は、予め設定されたＭライン後のラインデータ、すなわちマッチングパターンが検出された１つ前のラインデータをＹライン目とすると、Ｙ＋Ｍライン目のラインデータを入力ラインメモリー７１に取り込む（ステップＡ２３）。なお、Ｍは、０以上閾ライン数Ｎ以下の整数である。
【００４３】
次に、パターン照合部７５は、ステップＡ１７で算出された傾き角度θに基づいて、Ｙ＋Ｍライン目のラインデータにおいて、Ｙライン目の読み取り終了ポイントＰ２に対応するポイントを読み取り開始ポイントＰ３として特定する（ステップＡ２４）。また、パターン照合部７５は、図６に示すように、Ｙ＋Ｍライン目のラインデータにおける読み取り終了ポイントＰ２を特定すると共に、読み取り終了ポイントＰ２を含むマッチングパターンを特定する（ステップＡ２５）。
【００４４】
次に、パターン照合部７５は、ステップＡ２４で特定した読み取り開始ポイントＰ３からステップＡ２４で特定した読み取り終了ポイントＰ２までのエレメントパターンを部分エレメントパターンとして抽出し、抽出した部分エレメントパターンを、すでにエレメントメモリー７２に記憶されている部分エレメントパターンに連結させて記憶させ（ステップＡ２６）、ステップＡ２０に戻り、次のラインデータを入力ラインメモリー７１に取り込む。ステップＡ２６では、先に記憶されている部分エレメントパターンの読み取り終了ポイントＰ２と、後から記憶する部分エレメントパターンの読み取り開始ポイントＰ３とが連結される。
【００４５】
ステップＡ２２でマッチングパターンが検出されない場合、制御部７はキャラクター照合部７３として機能し、入力ラインメモリー７１に取り込んだラインデータと、ストップキャラクターのエレメントパターンとを照合し、入力ラインメモリー７１に取り込んだラインデータから、ストップキャラクターのエレメントパターンが検出されるか否か判断する（ステップＡ２７）。ステップＡ２７でストップキャラクターが検出されない場合には、制御部７はパターン照合部７５として機能し、ステップＡ２０に戻り、次のラインデータを入力ラインメモリー７１に取り込む。
【００４６】
ステップＡ２７でストップキャラクターが検出された場合、キャラクター照合部７３は、図６に示すように、ストップキャラクターが検出されたＺライン目のラインデータにおいて、ステップＡ２１で特定した読み取り終了ポイントＰ２からに対応する読み取り開始ポイントＰ３を特定すると共に（ステップＡ２８）、ストップキャラクターの終端ポイントＰ４を特定し（ステップＡ２９）、ステップＡ２８で特定した読み取り開始ポイントＰ３からステップＡ２９で特定した終端ポイントＰ４までのエレメントパターンを部分エレメントパターンとして抽出し、抽出した部分エレメントパターンを、すでにエレメントメモリー７２に記憶されている部分エレメントパターンに連結させて記憶させる（ステップＡ３０）。ステップＡ３０では、先に記憶されている部分エレメントパターンの読み取り終了ポイントＰ２と、後から記憶する部分エレメントパターンの読み取り開始ポイントＰ３とが連結される。これにより、エレメントメモリー７２のバーコード１２８の始端ポイントＰ１と終端ポイントＰ４との間の全てのエレメントパターンが記憶されたことになり、制御部７はデコード処理部７６として機能し、ステップＡ８に至って、エレメントメモリー７２に記憶されたエレメントパターンのデコード処理を実行する。
【００４７】
以上、図５に示すように、Ｘライン目でラインデータからスタートキャラクターのエレメントパターンのみが検出された場合について、ステップＡ１１〜Ａ３０を説明したが、図７に示すように、Ｘライン目でラインデータからストップキャラクターのエレメントパターンのみが検出された場合についても、以下に説明するように基本的には同様である。
【００４８】
図３を参照すると、Ｘライン目のラインデータからストップキャラクターのエレメントパターンのみが検出された場合（ステップＡ２がＹｅｓでステップＡ３がＮｏの場合）、キャラクター照合部７３は、Ｘライン目のラインデータにおけるストップキャラクターの終端ポイントＰ４を特定する（ステップＡ９）。
【００４９】
次に、キャラクター照合部７３は、変数ｎに１をセットして（ステップＡ１０）、次のラインデータ、すなわちＸ＋ｎライン目のラインデータを入力ラインメモリー７１に取り込む（ステップＡ１１）。そして、キャラクター照合部７３は、入力ラインメモリー７１に取り込んだラインデータと、スタートキャラクターのエレメントパターンとを照合し、入力ラインメモリー７１に取り込んだラインデータから、スタートキャラクターのエレメントパターンが検出されるか否か判断する（ステップＡ１２）。
【００５０】
ステップＡ１２でスタートキャラクターが検出された場合、キャラクター照合部７３は、スタートキャラクターの始端ポイントＰ１を特定し（ステップＡ１３）、ステップＡ７で、始端ポイントＰ１から終端ポイントＰ４の間の全エレメントパターンをエレメントメモリー７２に記憶させる。
【００５１】
ステップＡ１２でスタートキャラクターが検出されない場合、キャラクター照合部７３は、変数ｎをインクリメントして（ステップＡ１４）、変数ｎが予め設定された閾ライン数Ｎに到達したか否かを判断する（ステップＡ１５）。ステップＡ１５で変数ｎが閾ライン数Ｎに到達していない場合、キャラクター照合部７３は、ステップＡ１１に戻って次のラインデータ、すなわちＸ＋ｎライン目のラインデータを入力ラインメモリー７１に取り込み、変数ｎが閾ライン数Ｎに到達するまで、ステップＡ１１〜Ａ１５の処理を繰り返す。これにより、主走査方向に対するバーコード１２８の傾きが大きくない場合、Ｘ＋１ライン目からＸ＋Ｎライン目の間のラインデータからスタートキャラクター及びストップキャラクターが検出され、バーコード１２８の読み取りが行われる。なお、ステップＡ１１〜Ａ１５の処理は、ストップキャラクターが継続して検出されていることが前提であり、ストップキャラクターが検出されなくなった場合、ステップＡ１に戻る。
【００５２】
図４を参照すると、ステップＡ１５で変数ｎが閾ライン数Ｎに到達した場合、キャラクター照合部７３は、Ｘ＋Ｎライン目のラインデータにおけるストップキャラクターの終端ポイントＰ４を特定する（ステップＡ１６）。
【００５３】
次に、制御部７は傾き角度算出部７４として機能し、ステップＡ９で特定したＸライン目のラインデータにおける終端ポイントＰ４と、ステップＡ１６で特定したＸ＋Ｎライン目のラインデータにおける終端ポイントＰ４とに基づいて、バーコード１２８の傾き角度θを算出する（ステップＡ１７）。
【００５４】
次に、制御部７はパターン照合部７５として機能し、Ｘ＋Ｎライン目のラインデータにおける読み取り開始ポイントＰ３を特定すると共に、読み取り開始ポイントＰ３を含むマッチングパターンを特定する（ステップＡ１８）。Ｘ＋Ｎライン目のラインデータにおいて、検出されたエレメントの内のいずれかの始端が読み取り開始ポイントＰ３として特定される。マッチングパターンは、読み取り開始ポイントＰ３を含む複数のエレメントが特定される。
【００５５】
次に、パターン照合部７５は、ステップＡ１８で特定した読み取り開始ポイントＰ３と、ステップＡ１６で特定した終端ポイントＰ４との間のエレメントパターンを部分エレメントパターンとして抽出し、抽出した部分エレメントパターンをエレメントメモリー７２に記憶させる（ステップＡ１９）。
【００５６】
次に、パターン照合部７５は、次のラインデータを入力ラインメモリー７１に取り込み（ステップＡ２０）、入力ラインメモリー７１に取り込んだラインデータと、ステップＡ１８で特定したマッチングパターンとを照合し、マッチングパターン（読み取り開始ポイントＰ３）を検出するマッチング処理を実行し（ステップＡ２１）、ラインデータからマッチングパターンが検出されたか否かを判断する（ステップＡ２２）。マッチング処理では、ステップＡ１７で算出された傾き角度θに基づいて、該当箇所に存在するマッチングパターンを検出する。従って、入力ラインメモリー７１に取り込まれたラインデータにマッチングパターンと同様のエレメントパターンが内在していても、マッチングパターンと誤認されることがない。
【００５７】
ステップＡ２２でマッチングパターンが検出されない場合、パターン照合部７５は、予め設定されたＭライン後のラインデータ、すなわちマッチングパターンが検出された１つ前のラインデータをＹライン目とすると、Ｙ＋Ｍライン目のラインデータを入力ラインメモリー７１に取り込む（ステップＡ２３）。なお、Ｍは、０以上閾ライン数Ｎ以下の整数である。
【００５８】
次に、パターン照合部７５は、ステップＡ１７で算出された傾き角度θに基づいて、Ｙ＋Ｍライン目のラインデータにおいて、Ｙライン目の読み取り開始ポイントＰ３に対応するポイントを読み取り終了ポイントＰ２として特定する（ステップＡ２４）。また、パターン照合部７５は、図８に示すように、Ｙ＋Ｍライン目のラインデータにおける読み取り開始ポイントＰ３を特定すると共に、読み取り開始ポイントＰ３を含むマッチングパターンを特定する（ステップＡ２５）。
【００５９】
次に、パターン照合部７５は、ステップＡ２４で特定した読み取り開始ポイントＰ３からステップＡ２４で特定した読み取り終了ポイントＰ３までエレメントパターンを部分エレメントパターンとして抽出し、抽出した部分エレメントパターンを、すでにエレメントメモリー７２に記憶されている部分エレメントパターンに連結させて記憶させ（ステップＡ２６）、ステップＡ２０に戻り、次のラインデータを入力ラインメモリー７１に取り込む。ステップＡ２６では、先に記憶されている部分エレメントパターンの読み取り開始ポイントＰ３と、後から記憶する部分エレメントパターンの読み取り終了ポイントＰ２とが連結される。
【００６０】
ステップＡ２２でマッチングパターンが検出されない場合、制御部７はキャラクター照合部７３として機能し、入力ラインメモリー７１に取り込んだラインデータと、スタートキャラクターのエレメントパターンとを照合し、入力ラインメモリー７１に取り込んだラインデータから、スタートキャラクターのエレメントパターンが検出されるか否か判断する（ステップＡ２７）。ステップＡ２７でスタートキャラクターが検出されない場合には、制御部７はパターン照合部７５として機能し、ステップＡ２０に戻り、次のラインデータを入力ラインメモリー７１に取り込む。
【００６１】
ステップＡ２７でスタートキャラクターが検出された場合、キャラクター照合部７３は、図８に示すように、スタートキャラクターが検出されたＺライン目のラインデータにおいて、ステップＡ２１で特定した読み取り開始ポイントＰ３に対応する読み取り終了ポイントＰ２を特定すると共に（ステップＡ２８）、スタートキャラクターの始端ポイントＰ１を特定し（ステップＡ２９）、ステップＡ２９で特定した始端ポイントＰ１からステップＡ２８で特定した読み取り終了ポイントＰ２までのエレメントパターンを部分エレメントパターンとして抽出し、抽出した部分エレメントパターンを、すでにエレメントメモリー７２に記憶されている部分エレメントパターンに連結させて記憶させる（ステップＡ３０）。ステップＡ３０では、先に記憶されている部分エレメントパターンの読み取り開始ポイントＰ３と、後から記憶する部分エレメントパターンの読み取り終了ポイントＰ２とが連結される。これにより、エレメントメモリー７２のバーコード１２８の始端ポイントＰ１と終端ポイントＰ４との間の全てのエレメントパターンが記憶されたことになり、制御部７はデコード処理部７６として機能し、ステップＡ８に至って、エレメントメモリー７２に記憶されたエレメントパターンのデコード処理を実行する。
【００６２】
以上説明したように、本実施の形態によれば、原稿に表記されたバーコード１２８を読み取るバーコード読み取り装置として機能する画像形成装置１であって、主走査方向に配置されたラインセンサーによって原稿ＭＳを副走査方向に走査して読み取る原稿読み取り部２と、ラインセンサーによって読み取られたラインデータとスタートキャラクター及びストップキャラクターとを照合し、スタートキャラクターのみが検出された場合には、スタートキャラクターの始端ポイントＰ１と、読み取り終了ポイントＰ２とを特定して、始端ポイントＰ１から読み取り終了ポイントＰ２までのエレメントパターンを抽出し、ストップキャラクターのみが検出された場合には、読み取り開始ポイントＰ３と、ストップキャラクターの終端ポイントＰ４とを特定して、読み取り開始ポイントＰ３から終端ポイントＰ４までのエレメントパターンを抽出するキャラクター照合部７３と、キャラクター照合部７３によって特定された始端ポイントＰ１もしくは後端ポイントＰ４に基づいてバーコード１２８の傾き角度θを算出する傾き角度算出部７４と、キャラクター照合部７３がエレメントパターンを抽出したラインデータからマッチングパターンを特定し、他のラインデータと特定したマッチングパターンとを傾き角度θに基づいて照合し、他のラインデータからキャラクター照合部７３によって抽出されたエレメントパターンと連結されるエレメントパターンを抽出するパターン照合部７５と、キャラクター照合部７３によって抽出されたエレメントパターンとパターン照合部７５によって抽出されたエレメントパターンとが連結されて記憶されるエレメントメモリー７２と、エレメントメモリー７２に記憶されたエレメントパターンのデコード処理を実行するデコード処理部７６とを備えている。
この構成により、バーコード１２８の傾きが大きく、主走査方向の１ラインに始端と終端とが存在しない場合でも、副走査方向の異なるラインでスタートキャラクターとストップキャラクターとをそれぞれ検出することができれば、メモリー使用量が多く且つ処理コストが高い回転等の処理を必要とすることなく、バーコード１２８を読み取ることができる。マッチングパターンと傾き角度θとに基づいて、連結するエレメントパターンを抽出するため、ラインデータにマッチングパターンと同様のエレメントパターンが内在していても、マッチングパターンと誤認されることがなく、連結するエレメントパターンを正確に抽出することができる。
【００６３】
さらに、本実施の形態によれば、キャラクター照合部７３によってスタートキャラクターのみが検出された場合、パターン照合部７５は、後続する他のラインデータにおいて、キャラクター照合部７３によって抽出されたエレメントパターンの読み取り終了ポイントＰ２に連結されるエレメントパターンを抽出すると共に、キャラクター照合部７３は、さらに後続する他のラインデータにおいて、パターン照合部７５によって抽出されたエレメントパターンに連結される読み取り開始ポイントＰ３を特定して、読み取り開始ポイントＰ３から終端ポイントＰ４までのエレメントパターンを抽出し、キャラクター照合部７３によってストップキャラクターのみが検出された場合、パターン照合部７５は、後続する他のラインデータにおいて、キャラクター照合部７３によって抽出されたエレメントパターンの読み取り開始ポイントＰ３に連結されるエレメントパターンを抽出すると共に、キャラクター照合部７３は、さらに後続する他のラインデータにおいて、パターン照合部７５によって抽出されたエレメントパターンに連結される読み取り終了ポイントＰ２を特定して、始端ポイントＰ１から読み取り終了ポイントＰ２までのエレメントパターンを抽出する。
この構成により、エレメントパターンを抽出するエレメントパターン抽出処理をラインデータ毎に行うことができるため、ラインデータを記憶するラインメモリーの容量を抑えることができる。
【００６４】
さらに、本実施の形態によれば、傾き角度算出部７２は、副走査方向の異なる２つのラインでそれぞれ特定された始端ポイントＰ１もしくは後端ポイントＰ４に基づいてバーコード１２８の傾き角度θを算出する。
この構成により、バーコード１２８の傾き角度θを正確に算出することができる。
【００６５】
なお、本発明が上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変更され得ることは明らかである。
【符号の説明】
【００６６】
１  画像形成装置
２  原稿読み取り部
３  原稿給送部
４  本体部
５  記録部
６  操作部
７  制御部
８  画像処理部
９  記憶部
２１  スキャナー
２２  プラテンガラス
２３  原稿読み取りスリット
２４  モーター
２５  プーリー
２６  歯付きベルト
３１  原稿載置部
３２  原稿排出部
３３  原稿搬送機構
４０  排紙空間
４１  給紙カセット
４２  給紙ローラー
４３  用紙搬送路
４４、４５  搬送ローラー
４６  排出ローラー
４７  搬送部
５１  感光体ドラム
５２  帯電器
５３  光走査部
５４  現像部
５５  転写ローラー
５６  定着部
５７  クリーニング部
６１  タッチパネル
６２  操作ボタン
７１  入力ラインメモリー
７２  エレメントメモリー
７３  キャラクター照合部
７４  傾き角度算出部
７５  パターン照合部
７６  デコード処理部
【図１】
2017107417.tif 000003
【図２】
2017107417.tif 000004
【図３】
2017107417.tif 000005
【図４】
2017107417.tif 000006
【図５】
2017107417.tif 000007
【図６】
2017107417.tif 000008
【図７】
2017107417.tif 000009
【図８】
2017107417.tif 000010
【図９】
2017107417.tif 000011