(57)【特許請求の範囲】
【請求項１】
名刺の画像情報を読み取る画像読み取りステップと、
前記画像読み取りステップにて得られた画像情報に基づいて、文字の行または列の画像範囲を特定する画像範囲特定ステップと、
前記画像範囲特定ステップにて特定された行または列の前記画像範囲の中から最も大きな幅を備える画像範囲を選択する画像選択ステップと、
前記画像選択ステップにて選択された前記画像範囲の各端部の両側に存在する各空間の大きさをそれぞれ測定する空間測定ステップと、
前記空間測定ステップにて測定された前記各空間の大きさを比較することにより文字方向を判定する文字方向判定ステップと、
前記文字方向判定ステップの判定に基づいて、前記読み取りステップにて読み取った画像情報に対する文字認識を行う文字認識ステップと
を含むことを特徴とする名刺認識方法。
【請求項２】
前記文字方向判定ステップにおいて、前記各空間の大きさの比較の結果、大きい空間が存在する側の端部を先頭として前記文字方向を判定する、請求項１記載の名刺認識方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、名刺等に書かれた文字情報を読み取って保存する情報管理装置に用いられる名刺認識装置および名刺認識方法に関し、特に、読み取る名刺の記載方向を検出することができる名刺認識装置および名刺認識方法に関する。
【０００２】
【従来の技術】
従来から、印刷方向の判定に用いられる文字認識を的確に行う技術としては以下のようなものがあった。
【０００３】
例えば、特開平７−２１３１８号公報には、文字情報から読み取られたイメージデータより文字単位データを切り出し、これらの文字単位データの中から縦横比が１に近いものを複数選択し、これらの選択された文字単位データについて、例えば縦方向と、これを９０度回転させた横方向などの異なる方向に対してそれぞれ文字認識処理を実行して、この認識結果として得られる相違度（類似度）から、上記文字情報列が縦書きであるか、横書きであるかを判定することができるという技術が開示されている。
【０００４】
また、特開平５−８１４６４号公報には、名刺に印刷された文字を光学的に読み取る光学文字読取装置に、通常の名刺に必ず印刷されている郵便および電話番号に関する記号もしくは文字を含む、限定した数の印刷された文字の上下左右４方向を判定する認識辞書を備え、文字単位に切り出した文字と上記認識辞書との照合によって名刺の印刷方向を判定して印刷文字を読み取る技術が開示されている。
【０００５】
さらに、特開昭６２−１６６４７９号公報には、名刺の入力イメージについて、その水平、垂直方向に全体の射影を取って長手方向を検知し、検知した長手方向の射影中、最も幅の細い射影に注目してその各文字パターンを切り出して、切り出した各文字パターンと予め用意した回転文字に対応するパターンとを比較して名刺の縦書きおよび横書きの区別と回転方向を判定することにより入力イメージ全体の認識処理を行う技術が開示されている。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来技術では、いずれも、上下左右４方向分を用意したパターン文字とのパターンマッチングにより文字の方向を検出を行っており、方向を検出するためには４回分の処理を行わなければならず、処理時間が長くかかるという問題点があった。
【０００７】
さらに、上記従来技術では、方向判定のために予め用意されたパターン文字が、読み取られた名刺画像中に必ず存在するとは限らず、パターン文字が名刺画像中に存在していなければ方向の検出ができないという問題点があった。
【０００８】
本発明は、このような従来技術の課題を解決するためになされたものであり、処理時間を短縮することができ、予め用意したパターン文字が名刺読み取り画像に存在していなくても名刺画像の方向を検出することができる名刺認識装置および名刺認識方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明の名刺認識装置は、名刺を画像として読み取る名刺読み取り手段と、該名刺読み取り手段にて読み取った名刺画像に含まれる行または列からなる画像を抽出する抽出手段と、抽出された行または列からなる画像の配置を予め設定された条件を用いて判断する判断手段と、該判断手段の判断結果に基づいて名刺画像の方向を判定する方向判定手段と、該方向判定手段にて判定された方向を先頭として文字認識を行う文字認識手段とを備えたことを特徴とする。
【００１０】
上記構成によれば、予め設定された条件を用いて画像の配置を判断し、その結果に基づいて名刺画像の方向（文字の方向）を判定することが可能である。よって、従来技術のように上下左右の４方向に対するパターンマッチング処理を行って方向の検出を行う必要がなく、また、読み取った名刺画像中に予め用意しておいたパターン文字が存在しなくても、名刺画像の方向を判定することが可能である。
【００１１】
本発明の名刺認識装置は、前記画像の配置を判断する条件が、行または列の幅方向の大きさであることを特徴とする。
【００１２】
上記構成によれば、画素数を演算して画像において上下に存在する行（または左右に存在する列）を検出し、この行（または列）の幅によって名刺に記載された文字の上下（または左右）を判定することが可能となる。
【００１３】
本発明の名刺認識装置は、名刺を画像として読み取る名刺読み取り手段と、該名刺読み取り手段にて読み取った名刺画像に含まれる行または列からなる画像を抽出する抽出手段と、名前に該当する行または列を特定する名前特定手段と、該名前特定手段にて特定した名前に該当する行または列の画像の名刺画像における両端の空間を抽出する空間抽出手段と、該空間抽出手段にて抽出した両端の空間の大きさを比較する比較手段と、該比較手段にて大きいと判断した空間の方向を先頭として文字認識を行う文字認識手段とを備えたことを特徴とする。
【００１４】
上記構成によれば、名前行（または名前列）における両端部から文字の存在する部分までの空間を検出し、この空間の大小によって名刺に記載された文字の上下（または左右）を判定することが可能となる。
【００１５】
本発明の名刺認識装置は、名刺を画像として読み取る名刺読み取り手段と、該名刺読み取り手段にて読み取った名刺画像に含まれる行または列からなる画像を抽出する抽出手段と、名前に該当する行または列を特定する名前特定手段と、該抽出手段にて抽出された行または列の両端を検出する端部検出手段と、該名前特定手段にて特定した名前に該当する行または列と、他の行または列の端部を比較する端部比較手段と、該端部比較手段の比較結果に基づいて文字方向を特定し、文字認識を行う文字認識手段とを備えたことを特徴とする。
【００１６】
上記構成によれば、名前行（または名前列）の端部と名前の近接行（または近接列）の端部とを比較して、端部の位置の差が少ない方向が名刺に記載された文字の上方向（または左方向）であると判定することが可能である。
【００１７】
本発明の名刺認識方法は、名刺を画像として読み取る名刺読み取りステップと、該名刺読み取りステップにて読み取った名刺画像に含まれる行または列からなる画像を抽出する抽出ステップと、抽出された行または列からなる画像の配置を予め設定された条件を用いて判断する判断ステップと、該判断ステップの判断結果に基づいて名刺画像の方向を判定する方向判定ステップと、該方向判定ステップにて判定された方向を先頭として文字認識を行う文字認識ステップとを含むことを特徴とする。
【００１８】
上記方法によれば、予め設定された条件を用いて画像の配置を判断し、その結果に基づいて画像の方向（文字の方向）を判定することが可能である。よって、従来技術のように上下左右方向に対するパターンマッチング処理を４回も行う必要がなく、読み取った名刺画像中にパターン文字が存在しなくても画像の方向を判定することが可能である。
【００１９】
本発明の名刺認識方法は、前記画像の配置を判断する条件が、行または列の幅方向の大きさであることを特徴とする。
【００２０】
上記方法によれば、画素数を演算して画像において上下に存在する行（または左右に存在する列）を検出し、この行（または列）の幅によって名刺に記載された文字の上下（または左右）を判定することが可能となる。
【００２１】
本発明の名刺認識方法は、名刺を画像として読み取る名刺読み取りステップと、該名刺読み取りステップにて読み取った名刺画像に含まれる行または列からなる画像を抽出する抽出ステップと、名前に該当する行または列を特定する名前特定ステップと、該名前特定ステップにて特定した名前に該当する行または列の画像の名刺画像における両端の空間を抽出する空間抽出ステップと、該空間抽出ステップにて抽出した両端の空間の大きさを比較する比較ステップと、該比較ステップにて大きいと判断した空間の方向を先頭として文字認識を行う文字認識ステップとを含むことを特徴とする。
【００２２】
上記方法によれば、名前行（または名前列）における両端部から文字の存在する部分までの空間を検出し、この空間の大小によって名刺に記載された文字の上下（または左右）を判定することが可能となる。
【００２３】
本発明の名刺認識方法は、名刺を画像として読み取る名刺読み取りステップと、該名刺読み取りステップにて読み取った名刺画像に含まれる行または列からなる画像を抽出する抽出ステップと、名前に該当する行または列を特定する名前特定ステップと、該抽出ステップにて抽出された行または列の両端を検出する端部検出ステップと、該名前特定ステップにて特定した名前に該当する行または列と、他の行または列の端部を比較する端部比較ステップと、該端部比較ステップの比較結果に基づいて文字方向を特定し、文字認識を行う文字認識ステップとを含むことを特徴とする。
【００２４】
上記方法によれば、名前行（または名前列）の端部と名前の近接行（または近接列）の端部とを比較して、位置の差が少ないと判断された端部の方向が名刺に記載された文字の上方向（または左方向）であると判定することが可能である。
【００２５】
【発明の実施の形態】
以下に、本発明の実施の形態について、図面を参照しながら説明する。尚、本発明はこれによって限定されるものではない。
【００２６】
図１は本発明に係る名刺認識装置における撮影状態を示す図である。
【００２７】
この図において、１は本体キャビネット部であり、表示部２と図示していない赤外線通信部等を有している。この本体キャビネット部１の内部には、表示部２や赤外線通信部、インターフェース等を制御する制御回路等の必要箇所に電源を供給するための電源部等を内蔵している。
【００２８】
３はカメラ部であり、カメラキャビネットに収納したＣＣＤカメラレンズ３ａを備えている。このＣＣＤカメラレンズ３ａは、回動可能に構成されている。図に示す状態では手前側を撮影することができ、回動した場合には、対面側や上方など、約１８０度の角度内で撮影可能となっている。カメラ部３は本体キャビネット部１に着脱自在となっており、本体キャビネット部１の図示していないコネクタに装着することにより、本体キャビネット部１との間で撮影画像データの送受信を行うことができる。
【００２９】
４はスクロールボタンであり、このスクロールボタン４を指で操作することにより、表示部２に表示した情報を上下左右、または斜め方向に移動することができる。５は決定ボタンであり、撮影中の画像を表示中にこの決定ボタン５を押すことにより、読み取りたい所望の画像を本体キャビネット部１の記憶領域に記憶させることができる。６は戻りボタンであり、使用者による諸々の操作をキャンセルしたり、表示部２に表示された情報を前の情報に切り換えることができる。７は電源スイッチであり、本体キャビネット部１の電源をＯＮ、ＯＦＦすることができる。尚、カメラ部３を駆動するための電力は、本体キャビネット部１から供給されており、電源ＯＦＦ時には、本体キャビネット部１の電源スイッチ７を押すことにより、本体キャビネット部１と共にカメラ部３にも電力が供給される。なお、スクロールボタン４と戻りボタン６に関しては、本発明に直接関係しないため、詳細な説明を省略する。
【００３０】
本実施の形態の名刺認識装置においては、カメラ部３のＣＣＤカメラレンズ３ａにより撮影した画像を読み取って記憶し、読み取った画像を認識して認識結果を記憶することができる。
【００３１】
図１のように表示部２が横長形状であり、カメラ部３が装置の上部に装着されている場合に、カメラ部３のＣＣＤカメラレンズ３ａを撮影したい画像の方向に回動し、撮影画像の読み取り指示を行うと、図に示すような状態で撮影した方向にて画像が記憶される。
【００３２】
例えば名刺８のように、横向き、かつ、横書きの名刺を撮影して読み取る場合には、図１（ｃ）に示すように装置の向きをそのまま（横向き）にして名刺の方向にＣＣＤカメラレンズ３ａを向けて撮影すると、名刺８は図に示すものと同方向の向きで読み取られて記憶されるため、記憶された画像の方向を変えることなく文字認識を行うことができる。
【００３３】
しかしながら、名刺９０のように、縦向き、かつ、縦書きの名刺を撮影する場合は、名刺８の場合のように装置を横向きのままで撮影するのではなく、本体キャビネット部１やカメラ部３を縦向きにして撮影を行う。本体キャビネット部１やカメラ部３を縦向きにして撮影する場合には、図示しないモード設定手段により、縦モードに設定する。
【００３４】
ところで、使用者によっては、装置を図１（ａ）に示すように右側に回転して縦向きにする場合と、図１（ｂ）に示すように左側に回転して縦向きにする場合とが発生する。図１（ａ）のように装置を回転して縦向きにした場合に読み取り指示した画像は、名刺９１の状態で記憶される。また、図１（ｂ）のように装置を回転して縦向きにした場合に読み取り指示した画像は、名刺９２の状態で記憶される。
【００３５】
そこで、文字認識を行うためには、まず、読み取った画像における文字の方向を知る必要がある。このため、本発明では、記憶された画像を基にして文字の方向を検出し、文字認識を行う。尚、画像の取り込みについては、スキャナーなど、他の読み取り手段を用いて行なってもよい。また、以下の実施形態では、横型（横長）の撮影装置を用いて、縦向き、かつ、縦書きの名刺を読み取って文字認識を行う場合について説明を行っているが、縦型（縦長）の撮影装置を用いて、横向き、かつ、横書きの名刺を読み取る場合についても、本発明は適用可能である。なお、名刺が縦書き、縦向きであるか、または横書き、横向きであるかについては、手動により設定することができる。
【００３６】
以下に、記憶された画像の方向を判定する手段および方法について、実施形態にて説明を行う。なお、以下の実施形態では行からなる画像に対して方向判断を行っているが、列からなる画像についても同様の処理により行うことが可能である。
【００３７】
（比較形態１）
まず、本発明の比較形態１について、図１から図５を用いて説明を行う。
【００３８】
図２（ａ）および図２（ｂ）は、本比較形態１による名刺画像の方向判定について説明するための図である。
【００３９】
本比較形態１では、読み取った画像の画素数を演算して、画像における上下に存在する行（先頭と末尾）を検出し、この行の幅によって名刺に記載された文字の上下を判定する。
【００４０】
通常、名刺には、始めの部分に会社名、中央部分に名前、後ろの部分に住所や電話番号が記載されている。各行を見てみると、会社名と電話番号では文字の大きさが違い、行の幅も会社名の方が大きくなっている。このことから、縦書き、かつ、縦向きの名刺の場合には、行の幅が大きい方が名刺記載文字の先頭方向であることが分かる。
【００４１】
図１（ａ）に示したように、本体キャビネット部１とカメラ部３を右方向に９０度回転して撮影し、読み取った画像は図２（ａ）に示す状態で記憶される。ここで、画像における先頭と末尾の行幅を調べると、末尾の行幅９１ｂに比べて先頭の行幅９１ａが大きいことから、画像情報における上部分が名刺の始めであるとして、画像情報を右方向に９０度回転させて再記憶し、この記憶した画像情報を基にして文字認識を行う。
【００４２】
これに対して、図１（ｂ）に示したように、本体キャビネット部１とカメラ部３を左方向に９０度回転して撮影し、読み取った画像は図２（ｂ）に示す状態で記憶される。ここで、画像における先頭と末尾の行幅を調べ、先頭の行幅９２ａに比べて末尾の行幅９２ｂが大きいことから、画像情報における下部分が名刺の始めであるとして、画像情報を左方向に９０度回転させて再記憶し、この記憶した画像情報を基にして文字認識を行う。
【００４３】
図３は、本比較形態１による詳細動作を示すブロック図である。
【００４４】
この図において、１６は液晶表示回路部であり、液晶を点灯させるドット位置をビットマップとして記憶しており、必要に応じてコモン回路１４、セグメント回路１５に信号を送る。
【００４５】
１７は中央制御部であり、各種命令により入力情報或いは出力情報を制御するものである。中央制御部１７の入力制御部１７ｂでは、スクロールボタン４、決定ボタン５、戻りボタン６の押圧を検出することにより、各ボタンに対応した動作を行う。また、入力制御部１７ｂでは、電源スイッチ７の押圧を検出することにより、電源部２０に信号を送出し、電源をＯＮ、ＯＦＦする。
【００４６】
１８はＲＯＭであり、表示部２に表示する文字のフォントを記憶したフォント情報エリア１８ａ、および上記中央制御部１７の動作を示したプログラムを記憶したプログラムエリア１８ｂを有している。
【００４７】
１９はＲＡＭであり、使用者が図示しない入力手段より入力した文章や図形、またはカメラ部３で撮影した画像などの各種データを記憶するデータ記憶部１９ａ、記憶した画像の画素をカウントした値をそのライン数（行方向および列方向）と共に記憶する画素数テーブル１９ｂ、カウントした画素数から画像情報の先頭行の幅を記憶する先頭幅メモリ１９ｃ、カウントした画素数から画像情報の末尾行の幅を記憶する末尾幅メモリ１９ｄを有している。
【００４８】
２１は図示していない発振子からのクロック信号により時間を計時するＲＴＣであり、現在の年月日および時間を出力している。
【００４９】
カメラ部３では、ＣＣＤカメラレンズ３ａから投影された光をＣＣＤ素子１１で受光し、受光した光情報を増幅器１２により増幅して光電変換する。光電変換されたアナログ信号はＡ／Ｄ変換器１３に出力され、アナログ／デジタル変換される。
【００５０】
Ａ／Ｄ変換器１３により電気信号としてのデジタル信号に変換された画像信号は、中央制御部１７の撮影画像バッファ１７ａに保持され、液晶表示回路部１６に出力されて表示部２に表示される。
【００５１】
また、撮影画像バッファ１７ａからの画像信号はゲート１７ｃにも出力されており、決定ボタン５が押されると入力制御部１７ｂよりゲート１７ｃに信号を送出し、ゲート１７ｃを開放して撮影画像バッファ１７ａに保持された画像情報が読取画像バッファ１７ｄに出力される。読取画像バッファ１７ｄに画像情報が出力されると、画素カウント部１７ｅにより読取画像バッファ１７ｄに保持された画像情報の画素をカウントする。これは、画像情報に含まれる各行幅を検出するための準備動作であり、１ライン毎の黒ドットの数をカウントして合計を求め、ライン数と対応する合計ドット数をＲＡＭ１９の画素数テーブル１９ｂに記憶する。
【００５２】
読取画像バッファ１７ｄに保持された画像情報に対して、全てのラインに関して画素のカウントを終了すると、画素カウント部１７ｅから幅検出部１７ｆに信号が送出される。幅検出部１７ｆでは、変数Ａと変数Ｂを用いて隣合わせのライン同士の画素数（黒ドットの数）を比べ、一定以上の画素数を有し、かつ、双方の画素数の比率が一定の割合であれば、１つの行として幅カウンタにより行幅のカウントを行う。そして、読取画像バッファ１７ｄの先頭部分から１行分の行幅を求め、ＲＡＭ１９の先頭幅メモリ１９ｃに記憶する。次に、読取画像バッファ１７ｄの末尾部分から１行分の行幅を求め、ＲＡＭ１９の末尾幅メモリ１９ｄに記憶する。
【００５３】
幅検出部１７ｆの動作が終わると、幅検出部１７ｆから方向判定部１７ｇに信号が送出される。方向判定部１７ｇでは、ＲＡＭ１９の先頭幅メモリ１９ｃと末尾幅メモリ１９ｄを比較し、先頭幅メモリ１９ｃの値の方が末尾幅メモリ１９ｄの値よりも大きい場合には、読取画像バッファ１７ｄに記憶された画像情報を右方向に９０度回転して読取画像バッファ１７ｄに再記憶させる。なお、本比較形態では画像を回転させることにより方向付けを行うが、文字認識部の情報を各方向毎に準備し、文字検出方向に合わせて選択する方法も可能である。
【００５４】
一方、末尾幅メモリ１９ｄの値の方が先頭幅メモリ１９ｃの値よりも大きい場合には、読取画像バッファ１７ｄに記憶された画像情報を左方向に９０度回転して読取画像バッファ１７ｄに再記憶させる。
【００５５】
方向判定部１７ｇの動作が終わると、方向判定部１７ｇから文字認識部１７ｈに信号が送出される。文字認識部１７ｈでは、読取画像バッファ１７ｄの画像情報に基づいて文字認識動作を行い、認識結果をＲＡＭ１９のデータ記憶部１９ａに記憶する。文字認識部では、予め用意した文字パターンと読取画像バッファ１７ｄの画像情報とを比較する。
【００５６】
図４は、本比較形態１による画像読み取り処理を示すフローチャートである。
【００５７】
まず、ＳＴＥＰ１において、カメラ部３を駆動して画像撮影モードを開始する。ＳＴＥＰ２では画像の撮影を行い、ＳＴＥＰ３において撮影画像を中央制御部１７の撮影画像バッファ１７ａに保持する。ＳＴＥＰ４では撮影画像バッファ１７ａに保持された画像情報を表示部２に表示する。
【００５８】
ＳＴＥＰ５では図示しない終了手段により、画像撮影モードの終了指示がなされたか否かを判断する。画像撮影モードの終了指示がなされた場合には、ＳＴＥＰ１３に進み、画像撮影モードを終了して、処理を終了する。
【００５９】
画像撮影モードの終了指示がなされていない場合には、ＳＴＥＰ６において決定ボタン５が押されたか否かを判断する。決定ボタン５が押されていない場合には、ＳＴＥＰ２に戻り、決定ボタン５が押された場合には、ＳＴＥＰ７において画像撮影モードを終了し、ＳＴＥＰ８において撮影画像バッファ１７ａの内容を読取画像バッファ１７ｄに記憶する。
【００６０】
次のＳＴＥＰ９では、読取画像バッファ１７ｄに記憶された画像情報を基に行方向の画素に存在する黒ドット数をカウントし、ＲＡＭ１９の画素数テーブル１９ｂに行方向のライン数と共にカウントした値を記憶する。
【００６１】
ＳＴＥＰ１０ではＲＡＭ１９の画素数テーブル１９ｂの内容と、読取画像バッファ１７ｄの内容を基に画像情報の方向判定処理を行い、判定した方向に基づいて画像を文字認識可能な正位置に回転させ、読取画像バッファ１７ｄに再記憶する。尚、ＳＴＥＰ１０の方向判定処理に関しては、以下に図５を用いて詳細な説明を行う。
【００６２】
ＳＴＥＰ１１では読取画像バッファ１７ｄの内容を基に文字認識を行い、ＳＴＥＰ１２では認識した結果である文字情報をＲＡＭ１９のデータ記憶部１９ａに記憶して、処理を終了する。
【００６３】
次に、図５を用いて本比較形態１の方向判定処理について説明を行う。図５は、本比較形態１による方向判定処理を示すフローチャートである。
【００６４】
まず、ＳＴＥＰ１０１−１においてＲＡＭ１９の画素数テーブル１９ｂを呼び出す。次に、ＳＴＥＰ１０１−２では、変数Ａに画素数テーブル１９ｂの先頭１ラインのカウント画素数を保持し、ＳＴＥＰ１０１−３において次の１ラインのカウント画素数を変数Ｂに保持する。
【００６５】
ＳＴＥＰ１０１−４では、変数Ａと変数Ｂの値を比較し、変数Ａの値が変数Ｂの１０％未満であるか否かを判断する。そして、変数Ａの値が変数Ｂの１０％以上であれば、ＳＴＥＰ１０１−５において変数Ｂの値を変数Ａに保持し、ＳＴＥＰ１０１−３に戻る。ここでは、文字の存在する行が始まるラインを検出するまで、ＳＴＥＰ１０１−３からＳＴＥＰ１０１−５までの処理を繰り返す。
【００６６】
一方、変数Ａの値が変数Ｂの１０％未満であれば、文字の存在する行が始まるラインを検出したものとして、ＳＴＥＰ１０１−６において幅検出部１７ｆの幅カウンタに”１”をセットする。そして、ＳＴＥＰ１０１−７では、変数Ｂの値を変数Ａに保持し、ＳＴＥＰ１０１−８において次の１ラインのカウント画素数を変数Ｂに保持する。
【００６７】
次のＳＴＥＰ１０１−９では、変数Ａと変数Ｂの値を比較し、変数Ｂの値が変数Ａの１０％未満であるか否かを判断する。そして、変数Ｂの値が変数Ａの１０％以上であれば、ＳＴＥＰ１０１−１０において幅カウンタに”１”を加算し、ＳＴＥＰ１０１−１１において変数Ｂの値を変数Ａに保持してＳＴＥＰ１０１−８に戻る。ここでは、文字の存在する１行分の検出が終わるまで、ＳＴＥＰ１０１−８からＳＴＥＰ１０１−１１までの処理を繰り返す。
【００６８】
一方、変数Ｂの値が変数Ａの１０％未満であれば、文字の存在する１行分の検出が終わったものとして、ＳＴＥＰ１０１−１２においてＲＡＭ１９の先頭幅メモリ１９ｃに幅カウンタの値を記憶する。
【００６９】
次のＳＴＥＰ１０１−１３では、変数Ａに画素数テーブル１９ｂの末尾１ラインのカウント画素数を保持し、ＳＴＥＰ１０１−１４において前の１ラインのカウント画素数を変数Ｂに保持する。
【００７０】
ＳＴＥＰ１０１−１５では、変数Ａと変数Ｂの値を比較し、変数Ａの値が変数Ｂの１０％未満であるか否かを判断する。そして、変数Ａの値が変数Ｂの１０％以上であれば、ＳＴＥＰ１０１−１６において変数Ｂの値を変数Ａに保持し、ＳＴＥＰ１０１−１４に戻る。ここでは、文字の存在する行が始まるラインを検出するまで、ＳＴＥＰ１０１−１４からＳＴＥＰ１０１−１６までの処理を繰り返す。
【００７１】
一方、変数Ａの値が変数Ｂの１０％未満であれば、文字の存在する行が始まるラインを検出したとして、ＳＴＥＰ１０１−１７において幅検出部１７ｆの幅カウンタに”１”をセットする。
【００７２】
次のＳＴＥＰ１０１−１８では、変数Ｂの値を変数Ａに保持し、ＳＴＥＰ１０１−１９において前の１ラインのカウント画素数を変数Ｂに保持する。
【００７３】
ＳＴＥＰ１０１−２０では、変数Ａと変数Ｂの値を比較し、変数Ｂの値が変数Ａの１０％未満であるか否かを判断する。そして、変数Ｂの値が変数Ａの１０％以上であれば、ＳＴＥＰ１０１−２１において幅カウンタに”１”を加算し、ＳＴＥＰ１０１−２２において変数Ｂの値を変数Ａに保持してＳＴＥＰ１０１−１９に戻る。ここでは、文字の存在する１行分の検出が終わるまで、ＳＴＥＰ１０１−１９からＳＴＥＰ１０１−２２までの処理を繰り返す。
【００７４】
一方、変数Ｂの値が変数Ａの１０％未満であれば、文字の存在する１行分の検出が終わったものとして、ＳＴＥＰ１０１−２３においてＲＡＭ１９の末尾幅メモリ１９ｄに幅カウンタの値を記憶する。
【００７５】
ＳＴＥＰ１０１−２４ではＲＡＭ１９の先頭幅メモリ１９ｃの値と末尾幅メモリ１９ｄの値とを比較し、末尾幅メモリ１９ｄの値の方が先頭幅メモリ１９ｃの値よりも大きいか否かを判断する。そして、頭幅メモリ１９ｃの値の方が末尾幅メモリ１９ｄの値よりも大きい場合には、ＳＴＥＰ１０１−２５において読取画像バッファ１７Ｄに記憶された画像情報を右方向に９０度回転して再記憶させ、処理を終了する。
【００７６】
一方、末尾幅メモリ１９ｄの値の方が先頭幅メモリ１９ｃの値よりも大きい場合には、ＳＴＥＰ１０１−２６において読取画像バッファ１７ｄに記憶された画像情報を左方向に９０度回転して再記憶させ、処理を終了する。
【００７７】
（実施形態）
次に、本発明の実施形態について図１と、図６から図９を用いて説明を行う。
【００７８】
図６（ａ）および図６（ｂ）は、本実施形態による名刺画像の方向判定について説明するための図である。
【００７９】
本実施形態では、読み取った画像の画素数を演算し、まず、一番幅の大きい行を検出することにより名前に該当する行を特定し、次に、名前行における両端部と文字の存在する部分までの空間を検出し、この両端空間の大小によって名刺に記載された文字の上下方向を判定する。
【００８０】
通常、名刺では、名前部分の文字が一番大きく記載されており、また、名前の下部よりも上部において端部との空間を大きく取っている。このことから、縦書き、かつ、縦向きの名刺の場合には、名前行の文字存在部分から端部までの空間のうち、大きい方が名刺記載文字の上方向であることが分かる。
【００８１】
図１（ａ）に示したように、本体キャビネット部１とカメラ部３を右方向に９０度回転して撮影し、読み取った画像は図６（ａ）に示す状態で記憶される。ここで、画像における一番幅の大きい行を求めることにより名前行を検出し、この名前行において名前行の右部と端部との空間９１ｃよりも名前行の左部と端部との空間９１ｄの方が大きいことから、画像における左部分が名刺の上方向であるとして、画像情報を右方向に９０度回転させて再記憶し、この記憶した画像情報を基にして文字認識を行う。
【００８２】
これに対して、図１（ｂ）に示したように、本体キャビネット部１とカメラ部３を左方向に９０度回転して撮影し、読み取った画像は図６（ｂ）に示す状態で記憶される。ここで、画像における一番幅の大きい行を求めることにより名前行を検出し、この名前行において名前行の左部と端部との空間９２ｄよりも名前行の右部と端部との空間９２ｃの方が大きいことから、画像における右部分が名刺の上方向であるとして、画像情報を左方向に９０度回転させて再記憶し、この記憶した画像情報を基にして文字認識を行う。
【００８３】
図７は、本実施形態による詳細動作を示すブロック図である。この図において、先に説明を行った図３と同じ動作を行う部分に関しては、同じ符号を付して説明を省略する。
【００８４】
比較形態１と同様に、撮影画像バッファ１７ａからの画像信号はゲート１７ｃに出力されており、画像撮影中に決定ボタン５が押されると、入力制御部１７ｂよりゲート１７ｃに信号を送出し、ゲート１７ｃを開放して撮影画像バッファ１７ａに保持された画像情報が読取画像バッファ１７ｄに出力される。読取画像バッファ１７ｄに画像情報が出力されると、画素カウント部１７ｅにより読取画像バッファ１７ｄに保持された画像情報の画素をカウントする。これは、画像情報に含まれる各行幅を検出するための準備動作であり、１ライン毎の黒ドットの数をカウントして合計を求め、ライン数と対応する合計ドット数をＲＡＭ１９の画素数テーブル１９ｂに記憶する。
【００８５】
読取画像バッファ１７ｄに保持された画像情報において、全てのラインに関して画素のカウントを終了すると、画素カウント部１７ｅから行抽出部１７ｉに信号が送出される。
【００８６】
行抽出部１７ｉでは、変数ＡとＢを用いて隣合わせのライン同士の画素数を比べ、一定以上の画素数を有し、かつ、双方の画素数の比率が一定の割合であれば、１つの行として幅カウンタにより行幅のカウントを行う。そして、読取画像バッファ１７ｄの先頭部分から１行ずつの行幅を求め、対応するライン数と共にＲＡＭ１９の行テーブル１９ｅに記憶する。同様に、読取画像バッファ１７ｄに記憶されている全てのラインに関して行抽出動作を行い、ＲＡＭ１９の行テーブル１９ｅを完成させる。
【００８７】
行抽出部１７ｉの動作が終わると、行抽出部１７ｉから名前領域抽出部１７ｊに信号が送出される。名前領域抽出部１７ｊでは、ＲＡＭ１９の行テーブル１９ｅの値から一番幅の大きい行を検出し、一番幅の大きい行のライン数を読み出す。次に、読み出したライン数に対応するライン情報を読取画像バッファ１７ｄから読み出し、名前両端空間抽出部１７ｋに読み出したライン情報を送出する。
【００８８】
名前両端空間抽出部１７ｋは、図示しない空間カウンタをクリアして、読み出したライン情報の先頭ドットを読み出し、読み出したドットが黒ドットになるまでカウントした空間カウンタの値をＲＡＭ１９の先頭空間メモリ１９ｆに記憶する。また、名前両端空間抽出部１７ｋは、図示しない空間カウンタをクリアして、読み出したライン情報の末尾ドットを読み出し、読み出したドットが黒ドットになるまでカウントした空間カウンタの値をＲＡＭ１９の末尾空間メモリ１９ｇに記憶する。
【００８９】
両端空間比較部１７ｍでは、ＲＡＭ１９の先頭空間メモリ１９ｆの値と末尾空間メモリ１９ｇの値とを比較し、比較結果を方向判定部１７ｇに送出する。
【００９０】
方向判定部１７ｇでは、上記比較結果に基いて画像情報を正しい位置に再記憶させる。末尾空間メモリ１９ｇの値の方が先頭空間メモリ１９ｆの値よりも大きい場合には、方向判定部１７ｇにより、読取画像バッファ１７ｄに記憶された画像情報を左方向に９０度回転して再記憶し、方向判定部１７ｇから文字認識部１７ｈに信号を送出する。
【００９１】
一方、先頭空間メモリ１９ｆの値の方が末尾空間メモリ１９ｇの値よりも大きい場合には、方向判定部１７ｇにより、読取画像バッファ１７ｄに記憶された画像情報を右方向に９０度回転して再記憶し、方向判定部１７ｇから文字認識部１７ｈに信号を送出する。
【００９２】
文字認識部１７ｈでは、読取画像バッファ１７ｄの画像情報に基づいて文字認識動作を行い、認識結果をＲＡＭ１９のデータ記憶部１９ａに記憶する。
【００９３】
次に、図８を用いて図４に示した画像読み取り処理における本実施形態の方向判定処理について説明を行う。図８は、本実施形態による方向判定処理を示すフローチャートである。
【００９４】
まず、ＳＴＥＰ１０２−１においては、読取画像バッファ１７ｄから何ライン目に行（画像）が存在するかを求め、ＲＡＭ１９の行テーブル１９ｅに記憶する行抽出処理を行う。この行抽出処理に関しては、以下に図９を用いて詳細に説明する。
【００９５】
次に、ＳＴＥＰ１０２−２では、ＲＡＭ１９の行テーブル１９ｅを呼び出す。ＳＴＥＰ１０２−３では行テーブル１９ｅの値から一番幅の大きい行を検出し、ＳＴＥＰ１０２−４において一番幅の大きい行のライン数を読み出す。ＳＴＥＰ１０２−５では、ＳＴＥＰ１０２−４において読み出したライン数に対応するライン情報を読取画像バッファ１７ｄから読み出す。そして、ＳＴＥＰ１０２−６において名前両端空間抽出部１７ｋに存在する図示しない空間カウンタをクリアする。
【００９６】
次に、ＳＴＥＰ１０２−７では、ＳＴＥＰ１０２−５において読み出したライン情報の先頭ドットを読み出し、ＳＴＥＰ１０２−８において読み出したドットが黒ドットであるか否かを判断する。読み出したドットが黒ドットでなければ、ＳＴＥＰ１０２−９において空間カウンタに”１”を加算し、ＳＴＥＰ１０２−１０において次のドットを読み出してＳＴＥＰ１０２−８に戻る。ここでは、黒ドットが検出されるまでＳＴＥＰ１０２−８からＳＴＥＰ１０２−１０までの処理を繰り返す。
【００９７】
一方、読み出したドットが黒ドットであれば、ＳＴＥＰ１０２−１１においてＲＡＭ１９の先頭空間メモリ１９ｆに空間カウンタの値を記憶し、ＳＴＥＰ１０２−１２において空間カウンタの値をクリアする。
【００９８】
次に、ＳＴＥＰ１０２−１３では、ＳＴＥＰ１０２−５において読み出したライン情報の末尾ドットを読み出し、ＳＴＥＰ１０２−１４において読み出したドットが黒ドットであるか否かを判断する。読み出したドットが黒ドットでなければ、ＳＴＥＰ１０２−１５において空間カウンタに”１”を加算し、ＳＴＥＰ１０２−１６において次のドットを読み出してＳＴＥＰ１０２−１４に戻る。ここでは、黒ドットが検出されるまでＳＴＥＰ１０２−１４からＳＴＥＰ１０２−１６までの処理を繰り返す。
【００９９】
一方、読み出したドットが黒ドットであれば、ＳＴＥＰ１０２−１７のいてＲＡＭ１９の末尾空間メモリ１９ｇに空間カウンタの値を記憶する。
【０１００】
次に、ＳＴＥＰ１０２−１８においてＲＡＭ１９の先頭空間メモリ１９ｆの値と末尾空間メモリ１９ｇの値とを比較し、先頭空間メモリ１９ｆの値の方が末尾空間メモリ１９ｇの値よりも大きいか否かを判断する。そして、末尾空間メモリ１９ｇの値の方が先頭空間メモリ１９ｆの値よりも大きい場合には、ＳＴＥＰ１０２−１９において読取画像バッファ１７ｄに記憶された画像情報を左方向に９０度回転して再記憶し、処理を終了する。
【０１０１】
一方、先頭空間メモリ１９ｆの値の方が末尾空間メモリ１９ｇの値よりも大きい場合には、ＳＴＥＰ１０２−２０において読取画像バッファ１７ｄに記憶された画像情報を右方向に９０度回転して再記憶し、処理を終了する。
【０１０２】
次に、図９を用いて本実施形態の行抽出処理について説明を行う。図９は、実施形態による行抽出処理を示すフローチャートである。
【０１０３】
まず、ＳＴＥＰ１０２−２１において、ＲＡＭ１９の画素数テーブル１９ｂを呼び出す。次に、ＳＴＥＰ１０２−２２では、変数Ａに画素数テーブル１９ｂの先頭１ラインのカウント画素数を保持し、ＳＴＥＰ１０２−２３において次の１ラインのカウント画素数を変数Ｂに保持する。
【０１０４】
ＳＴＥＰ１０２−２４では、変数Ａと変数Ｂの値を比較し、変数Ａの値が変数Ｂの１０％未満であるか否かを判断する。そして、変数Ａの値が変数Ｂの１０％以上であれば、ＳＴＥＰ１０２−２５において変数Ｂの値を変数Ａに保持し、ＳＴＥＰ１０２−２３に戻る。ここでは、文字の存在する行が始まるラインを検出するまで、ＳＴＥＰ１０２−２３からＳＴＥＰ１０２−２５までの処理を繰り返す。
【０１０５】
一方、変数Ａの値が変数Ｂの１０％未満であれば、文字の存在する行が始まるラインを検出したものとして、ＳＴＥＰ１０２−２６において行抽出部１７ｉの幅カウンタ）に”１”をセットする。そして、ＳＴＥＰ１０２−２７では、変数Ｂの値を変数Ａに保持し、ＳＴＥＰ１０２−２８において次の１ラインのカウント画素数を変数Ｂに保持する。
【０１０６】
次のＳＴＥＰ１０２−２９では、変数Ａと変数Ｂの値を比較し、変数Ｂの値が変数Ａの１０％未満であるか否かを判断する。そして、変数Ｂの値が変数Ａの１０％以上であれば、ＳＴＥＰ１０２−３０において幅カウンタに”１”を加算し、ＳＴＥＰ１０２−３１において変数Ｂの値を変数Ａに保持してＳＴＥＰ１０２−２８に戻る。ここでは、文字の存在する１行分の検出が終わるまで、ＳＴＥＰ１０２−２８からＳＴＥＰ１０２−３１までの処理を繰り返す。
【０１０７】
一方、変数Ｂの値が変数Ａの１０％未満であれば、文字の存在する１行分の検出が終わったものとして、ＳＴＥＰ１０２−３２においてＲＡＭ１９の行テーブル１９ｅに幅カウンタの値を記憶し、ＳＴＥＰ１０２−３３において行テーブル１９ｅに現在カウント中のライン数を記憶する。そして、ＳＴＥＰ１０２−３４において幅カウンタをクリアする。
【０１０８】
ＳＴＥＰ１０２−３５では変数Ｂの値を変数Ａに保持し、ＳＴＥＰ１０２−３６において次の１ラインのカウント画素数を変数Ｂに保持する。
【０１０９】
次に、ＳＴＥＰ１０２−３７では読取画像バッファ１７ｄの全ラインに対して処理を行ったか否かを判断する。そして、全ラインに対して処理を行っていない場合には、ＳＴＥＰ１０２−２３に戻り、読取画像バッファ１７ｄの全ラインに対して処理をし終えるまでＳＴＥＰ１０２−２３からＳＴＥＰ１０２−３７までの処理を繰り返す。
【０１１０】
（比較形態２）
次に、本発明の比較形態２について図１と、図１０から図１２を用いて説明を行う。
【０１１１】
図１０（ａ）および図１０（ｂ）は、本比較形態２による名刺画像の方向判定について説明するための図である。
【０１１２】
本比較形態２では、読み取った画像の画素数を演算し、まず、一番幅の大きい行を検出することにより名前に該当する行を特定し、次に、名前行の端部とその近接行の端部を比較し、揃っている方を名刺に記載された文字の上方向であると判定する。
【０１１３】
通常、名刺では、名前部分の文字が一番大きく記載されており、また、名前の近接部分に名前と先頭文字を揃えて役職名が記載されている場合がある。このことから、縦書き、かつ、縦向きの名刺の場合には、名前行の端部と名前の近接行の端部とを比較し、端部が一致した方向（または位置の差が少ない方向）が名刺記載文字の上方向であることが分かる。
【０１１４】
図１（ａ）に示したように、本体キャビネット部１とカメラ部３を右方向に９０度回転して撮影し、読み取った画像は図１０（ａ）に示す状態で記憶される。ここで、画像における一番幅の大きい行を求めることにより名前行を検出し、この名前行の近接行を検出する。次に、名前行の端部と近接行の端部との位置の差を調べ、画像における左部分で端部が一致していることから、この左部分が名刺の上方向であるとして、画像情報を右方向に９０度回転させて再記憶し、この記憶した画像情報を基にして文字認識を行う。
【０１１５】
これに対して、図１（ｂ）に示したように、本体キャビネット部１とカメラ部３を左方向に９０度回転して撮影し、読み取った画像は図１０（ｂ）に示す状態で記憶される。ここで、画像における一番幅の大きい行を求めることにより名前行を検出し、この名前行の近接行を検出する。次に、名前行の端部と近接行の端部との位置の差を調べ、画像における右部分で端部が一致していることから、この右部分が名刺の上方向であるとして、画像情報を左方向に９０度回転させて再記憶し、この記憶した画像情報を基にして文字認識を行う。
【０１１６】
図１１は、本比較形態２による詳細動作を示すブロック図である。この図において、先に説明を行った図３と同じ動作を行う部分に関しては、同じ符号を付して説明を省略する。
【０１１７】
比較形態１および実施形態と同様に、撮影画像バッファ１７ａからの画像信号はゲート１７ｃに出力されており、画像撮影中に決定ボタン５が押されると、入力制御部１７ｂよりゲート１７ｃに信号を送出し、ゲート１７ｃを開放して撮影画像バッファ１７ａに保持された画像情報が読取画像バッファ１７ｄに出力される。読取画像バッファ１７ｄに画像情報が出力されると、画素カウント部１７ｅにより読取画像バッファ１７ｄに保持された画像情報の画素をカウントする。これは、画像情報に含まれる各行幅を検出するための準備動作であり、１ライン毎の黒ドットの数をカウントして合計を求め、ライン数と対応する合計ドット数をＲＡＭ１９の画素数テーブル１９ｂに記憶する。
【０１１８】
読取画像バッファ１７ｄに保持された画像情報において、全てのラインに関して画素のカウントを終了すると、画素カウント部１７ｅから行抽出部１７ｉに信号が送出される。
【０１１９】
行抽出部１７ｉの動作は、上記実施形態において説明を行った図７の行抽出部１７ｉの動作と同様であるため、ここでは詳細な説明を省略する。
【０１２０】
行抽出部１７ｉの動作が終わると、行抽出部１７ｉから名前領域抽出部１７ｊに信号が送出される。名前領域抽出部１７ｊでは、ＲＡＭ１９の行テーブル１９ｅの値から一番幅の大きい行を検出し、一番幅の大きい行のライン数を読み出す。次に、読み出したライン数に対応するライン情報を読取画像バッファ１７ｄから読み出し、名前領域端部検出部１７ｎに読み出したライン情報を送出する。
【０１２１】
名前領域端部検出部１７ｎでは、図示しない空間カウンタをクリアして、読み出したライン情報の先頭ドットを読み出し、読み出したドットが黒ドットになるまでカウントした空間カウンタの値をＲＡＭ１９の名前端部空間メモリ１９ｈに記憶する。
【０１２２】
名前領域端部検出部１７ｎの動作が終わると、近接領域端部検出部１７ｐに信号が送出される。近接領域端部検出部１７ｐでは、名前領域の近接ラインのライン情報を読取画像バッファ１７ｄから読み出し、図示しない空間カウンタをクリアして、読み出したライン情報の先頭ドットを読み出す。そして、読み出したドットが黒ドットになるまでカウントした空間カウンタの値をＲＡＭ１９の近接端部空間メモリ１９ｉに記憶する。
【０１２３】
近接領域端部検出部１７ｐの動作が終わると、端部比較部１７ｑに信号が送出される。端部比較部１７ｑでは、ＲＡＭ１９の名前端部空間メモリ１９ｈの値と近接端部空聞メモリ１９ｉの値とを比較し、比較結果を方向判定部１７ｇに送出する。
【０１２４】
方向判定部１７ｇでは、上記比較結果に基いて画像情報を正しい位置に再記憶させる。近接端部空間メモリ１９ｉの値と名前端部空間メモリ１９ｈの値が同じでない場合には、方向判定部１７ｇにより、読取画像バッファ１７ｄに記憶された画像情報を左方向に９０度回転して再記憶し、方向判定部１７ｇから文字認識部１７ｈに信号を送出する。
【０１２５】
一方、名前端部空間メモリ１９ｈの値と近接端部空間メモリ１９ｉの値が同じであれば、方向判定部１７ｇにより、読取画像バッファ１７ｄに記憶された画像情報を右方向に９０度回転して再記憶し、方向判定部１７ｇから文字認識部１７ｈに信号を送出する。
【０１２６】
文字認識部１７ｈでは、読取画像バッファ１７ｄの画像情報に基づいて文字認識動作を行い、認識結果をＲＡＭ１９のデータ記憶部１９ａに記憶する。
【０１２７】
次に、図１２を用いて図４に示した画像読み取り処理における本比較形態２の方向判定処理について説明を行う。図１２は、本比較形態２による方向判定処理を示すフローチャートである。
【０１２８】
まず、ＳＴＥＰ１０３−１において、読取画像バッファ１７ｄから何ライン目に行が存在するかを求め、ＲＡＭ１９の行テーブル１９ｅに記憶する行抽出処理を行う。この行抽出処理に関しては、実施形態において図９を用いて既に説明を行っているので、ここでは説明を省略する。
【０１２９】
次に、ＳＴＥＰ１０３−２では、ＲＡＭ１９の行テーブル１９ｅを呼び出す。そして、ＳＴＥＰ１０３−３において行テーブル１９ｅの値から一番幅の大きい行を検出し、ＳＴＥＰ１０３−４において一番幅の大きい行のライン数を読み出す。ＳＴＥＰ１０３−５では、ＳＴＥＰ１０３−４において読み出したライン数に対応するライン情報を読取画像バッファ１７ｄから読み出す。そして、ＳＴＥＰ１０３−６において名前領域端部検出部１７ｎに存在する図示しない空間カウンタをクリアする。
【０１３０】
次に、ＳＴＥＰ１０３−７では、ＳＴＥＰ１０３−５において読み出したライン情報の先頭ドットを読み出し、ＳＴＥＰ１０３−８において読み出したドットが黒ドットであるか否かを判断する。読み出したドットが黒ドットでなければ、ＳＴＥＰ１０３−９において空間カウンタに”１”を加算し、ＳＴＥＰ１０３−１０において次のドットを読み出してＳＴＥＰ１０３−８に戻る。ここでは、黒ドットが検出されるまでＳＴＥＰ１０３−８からＳＴＥＰ１０３−１０までの処理を繰り返す。
【０１３１】
一方、読み出したドットが黒ドットであれば、ＳＴＥＰ１０３−１１においてＲＡＭ１９の名前端部空間メモリ１９ｈに空間カウンタの値を記憶し、ＳＴＥＰ１０３−１２において近接行とそのライン数を行テーブル１９ｅから読み出す。
【０１３２】
次に、ＳＴＥＰ１０３−１３では、ＳＴＥＰ１０３−１３において読み出したライン数に対応するライン情報を読取画像バッファ１７ｄから読み出す。そして、ＳＴＥＰ１０３−１４において、近接領域端部検出部１７ｐに存在する図示しない空間カウンタをクリアする。
【０１３３】
次に、ＳＴＥＰ１０３−１５では、ＳＴＥＰ１０３−１３において読み出したライン情報の先頭ドットを読み出し、ＳＴＥＰ１０３−１６において読み出したドットが黒ドットであるか否かを判断する。読み出したドットが黒ドットでなければ、ＳＴＥＰ１０３−１７において空間カウンタに”１”を加算し、ＳＴＥＰ１０３−１８において次のドットを読み出してＳＴＥＰ１０３−１６に戻る。ここでは、黒ドットが検出されるまでＳＴＥＰ１０３−１６からＳＴＥＰ１０３−１８までの処理を繰り返す。
【０１３４】
一方、読み出したドットが黒ドットであれば、ＳＴＥＰ１０３−１９においてＲＡＭ１９の近接端部空間メモリ１９ｉに空間カウンタの値を記憶する。
【０１３５】
次に、ＳＴＥＰ１０３−２０においては、ＲＡＭ１９の名前端部空間メモリ１９ｈの値と近接端部空間メモリ１９ｉの値とを比較し、名前端部空間メモリ１９ｈの値と近接端部空間メモリ１９ｉの値とが一致するか否かを判断する。そして、名前端部空間メモリ１９ｈの値と近接端部空間メモリ１９ｉの値とが一致しない場合には、ＳＴＥＰ１０３−２１において読取画像バッファ１７ｄに記憶された画像情報を左方向に９０度回転して再記憶し、処理を終了する。
【０１３６】
一方、名前端部空間メモリ１９ｈの値と近接端部空間メモリ１９ｉの値とが一致する場合には、ＳＴＥＰ１０３−２２において読取画像バッファ１７ｄに記憶された画像情報を右方向に９０度回転して再記憶し、処理を終了する。
【０１３７】
【発明の効果】
以上詳述したように、本発明によれば、読み取った画像の画素数を演算して画像における上下に存在する行（または左右に存在する列）を検出し、この行（または列）の幅によって名刺に記載された文字の上下（または左右）を判定することができる。
【０１３８】
或いは、名前行（または名前列）における両端部から文字の存在する部分までの空間を検出し、この空間の大小によって名刺に記載された文字の上下（または左右）を判定することができる。
【０１３９】
或いは、名前行（または名前列）の端部と名前の近接行（または近接列）の端部とを比較して、比較結果に基づいて位置の差が少ない方向を名刺に記載された文字の上方向（または左方向）であると判定することができる。
【０１４０】
従来は上下左右４方向を検出する必要があったのに対して、本発明によれば名刺の文字の進行方向が判明するため、２回の方向判定（文字認識）だけで済み、処理時間を短縮することができる。例えば、横長の名刺において、氏名の記載部分の右端に大きな空間を検出したり、または並んだ列の未次と開始位置が近接している場合には、この名刺の情報は右から左に文字が印刷されていることが分かる。このとき、縦型の名刺であるか、または横型の名刺であるかまでは検出できないが、少なくとも縦型の名刺の場合には右側が上、横型の名刺の場合には下側が上であることが想定できるため、これらの方向に対して文字認識を行って認識の一致度が高い方（位置の差が少ない方）の方向を採用することにより、最終的な方向を検出することができる。従って、２回の文字認識により文字の方向を検出することができる。さらに、縦型または横型を使用者が選択することにより、名刺の上方向を特定するだけで文字の方向を自動的に特定することができる。
【０１４１】
さらに、従来は方向判定のために予め用意するパターン文字が必ず名刺読取り画像に存在しているとは限らず、方向判定を行えないおそれがあったのに対して、本発明によればより多くの名刺読み取り画像に対応することができる。
【図面の簡単な説明】
【図１】  （ａ）〜（ｃ）は本発明に係る名刺認識装置の撮影状態を示す図である。
【図２】  （ａ）および（ｂ）は比較形態１による名刺画像の方向判定を説明するための図である。
【図３】  比較形態１の名刺認識装置による詳細動作を説明するためのブロック図である。
【図４】  比較形態１に係る名刺認識処理を説明するためのフローチャートである。
【図５】  比較形態１による方向判定処理を説明するためのフローチャートである。
【図６】  （ａ）および（ｂ）は実施形態による名刺画像の方向判定を説明するための図である。
【図７】  実施形態の名刺認識装置による詳細動作を説明するためのブロック図である。
【図８】  実施形態による方向判定処理を説明するためのフローチャートである。
【図９】  実施形態および比較形態２による行抽出処理を説明するためのフローチャートである。
【図１０】  （ａ）および（ｂ）は比較形態２による名刺画像の方向判定を説明するための図である。
【図１１】  比較形態２の名刺認識装置による詳細動作を説明するためのブロック図である。
【図１２】  比較形態２による方向判定処理を説明するためのフローチャートである。
【図１】
0003815961.tif 000002
【図２】
0003815961.tif 000003
【図３】
0003815961.tif 000004
【図４】
0003815961.tif 000005
【図５】
0003815961.tif 000006
【図６】
0003815961.tif 000007
【図７】
0003815961.tif 000008
【図８】
0003815961.tif 000009
【図９】
0003815961.tif 000010
【図１０】
0003815961.tif 000011
【図１１】
0003815961.tif 000012
【図１２】
0003815961.tif 000013