Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6463066B2 - 情報処理装置、情報処理方法、プログラム - Google Patents
[go: Go Back, main page]

JP6463066B2 - 情報処理装置、情報処理方法、プログラム - Google Patents

情報処理装置、情報処理方法、プログラム Download PDF

Info

Publication number
JP6463066B2
JP6463066B2 JP2014209332A JP2014209332A JP6463066B2 JP 6463066 B2 JP6463066 B2 JP 6463066B2 JP 2014209332 A JP2014209332 A JP 2014209332A JP 2014209332 A JP2014209332 A JP 2014209332A JP 6463066 B2 JP6463066 B2 JP 6463066B2
Authority
JP
Japan
Prior art keywords
recognition
cell
character
recognition cell
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014209332A
Other languages
English (en)
Other versions
JP2016027444A5 (ja
JP2016027444A (ja
Inventor
洋正 川▲崎▼
洋正 川▲崎▼
欽也 本田
欽也 本田
妙子 山▲崎▼
妙子 山▲崎▼
忠則 中塚
忠則 中塚
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2014209332A priority Critical patent/JP6463066B2/ja
Priority to US14/791,070 priority patent/US9898845B2/en
Publication of JP2016027444A publication Critical patent/JP2016027444A/ja
Publication of JP2016027444A5 publication Critical patent/JP2016027444A5/ja
Application granted granted Critical
Publication of JP6463066B2 publication Critical patent/JP6463066B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/60Creating or editing images; Combining images with text
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/20Drawing from basic elements
    • G06T11/23Drawing from basic elements using straight lines or curves
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/20Drawing from basic elements
    • G06T11/26Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/22Cropping
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/146Aligning or centring of the image pick-up or image-field
    • G06V30/1475Inclination or skew detection or correction of characters or of image to be recognised
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/43Editing text-bitmaps, e.g. alignment, spacing; Semantic analysis of bitmaps of text without OCR

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Character Input (AREA)
  • Image Analysis (AREA)

Description

本発明は、情報処理装置、情報処理方法、プログラムに関する。
図3は、スキャン画像の一例である。このスキャン画像を編集したい場合がある。特許文献1は、スキャン画像の編集機能を開示している。
具体的には、特許文献1は、スキャン画像から、複数の罫線により構成される表領域を特定し、さらに、その表領域の内部の文字を文字認識する。また、表領域を構成する各罫線をベクトル化する。
そして、スキャン画像を左のウィンドウに表示しつつ、ベクトル化結果と認識文字とを右のウィンドウに表示する(特許文献1の図5)。
ユーザがこの右のウィンドウにて文字の編集を行うと、左のウィンドウから、上記特定された表領域が削除される。そして、編集後の文字が追加された表を生成し、当該生成された表を左のウィンドウに表示する。
特開2001−094760
特許文献1の技術による特定された表領域がセルの罫線を含んでいた場合、スキャン画像の罫線も削除されることになる。
上記課題を解決するために、本発明の情報処理装置は、文書の画像を取得する取得手段と、前記画像に含まれる表領域から検出した白画素塊の外接矩形に基づいて、矩形の認識セルを特定する特定手段と、前記認識セルを構成する四辺の周囲の領域それぞれから直線を検出する検出手段と、前記画像において、前記検出手段で検出された四本の直線に囲まれた領域の内部の色情報を削除する削除手段とを有することを特徴とする。
罫線の削除が抑制される。
複写機100の構成を示すブロック図 情報処理装置200の構成を示すブロック図 スキャン画像の例 スキャン画像の領域分割結果 認識セルの枠を表示する表示画面 認識セルが選択された際に表示される表示画面 編集後の文字を表示した画面 メインフローチャート 編集のフローチャート 認識セルの位置を変更するフローチャート 編集後の文字の表示フロー 認識セル406が選択された際に表示される表示画面 認識セルを拡大する際に表示される表示画面 認識セルを結合後に表示される表示画面 認識セルを結合・分割するフローチャート 認識セル407が選択された際に表示される表示画面 認識セルを縮小する際に表示される表示画面 認識セルを分割後に表示される表示画面 式1の意味を説明する図 セル内接直線検出領域を示す図 セル内接直線の検出を示す図 認識セル内部の削除のフローチャート 認識セルの検出を示す図 編集ウィンドウに表示する認識文字を選択するフローチャート 認識文字の選択の処理後に表示される表示画面 編集後の文字を配置するフローチャート 編集後の文字の配置を説明する図
まず、言葉の定義を行う。
オリジナル文字とは、スキャン画像中の文字のことである。
認識文字とは、オリジナル文字を文字認識することで得られた文字コード、又は、編集ウィンドウに表示される、その文字コードに対応する文字のことである。この認識文字は、編集ウィンドウ用文字サイズ(編集ウィンドウ用文字サイズとは、編集ウィンドウ用に設定された文字サイズという意味である)で編集ウィンドウ上に表示される。
文字の編集は、ユーザが、編集ウィンドウから認識文字を削除して、代わりの文字を編集ウィンドウに入力する行為を示す。編集後の文字とは、入力された代わりの文字、又は、その文字に対応する文字コードのことである。この編集後の文字は、編集ウィンドウ上に表示される場合には、編集ウィンドウ用文字サイズで表示されるが、スキャン画像上に表示される場合には、スキャン画像用文字サイズで表示される。
なお、スキャン画像用文字サイズも編集ウィンドウ用文字サイズも共にそのデフォルト値は、予め保存部202に保存されているものとする。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
<第1の実施形態>
<複写機の構成と情報処理装置の構成>
図1に本実施形態における複写機100の構成を示す。複写機100は、スキャナ101、送受信部102、プリンタ103より構成される。
図2に本実施形態における情報処理装置200の構成を示す。情報処理装置200は、CPUとROM及びRAMを内部に有する。CPUはROMから情報処理装置200のプログラムをロードし、一次保存領域としてRAMを利用して情報処理装置200のプログラムを実行する。以上の動作により、各部(201−205)の処理が実行される。なお、受付部205は、キーボードとマウスを含む形態が一般的であるが、この形態に限られない。また、受付部205と表示部204は一体であっても良い。その場合、受付部205と表示部204をまとめてタッチパネルと呼ぶことになり、実施例中のクリックなる記載は、タッチと読み替えて頂くことになる。
<スキャンから領域分割、文字認識まで>
複写機100のスキャナが文書をスキャンすると、スキャン画像(スキャン画像データとも言う)が生成される。生成されたスキャン画像を送受信部102が情報処理装置200に送信する。すると、情報処理装置200の送受信部201がこれを受信し、保存部202にそのスキャン画像を保存する。
ユーザが受付部205を介して、保存部202に保存されている複数のスキャン画像の中から、一つのスキャン画像を選択する。すると、制御部203は、そのスキャン画像を表示部204に表示する。
ユーザが受付部205を介して、表示部204に表示されたスキャン画像の解析を指示する。すると、制御部203は、領域分割と、文字認識と、認識セル枠表示の三つの処理を実行し、実行結果を表示部204に表示する。図3は、スキャン画像の例であり、図4は、制御部203による三つの処理の実行後の表示部204の表示結果である。
<領域分割(1)−(5)、文字認識(6)、認識セル枠表示(7)の説明>
(1)二値化
制御部203は、スキャン画像に対して2値化を行うことにより、2値画像を得る。この2値化により、スキャン画像における閾値より濃い色の画素は黒画素、その閾値より薄い色の画素は白画素となる。なお、以下では、スキャン画像が100DPIであるものとして説明を行うが、スキャン画像がこの解像度に限られないのは言うまでもない。
(2)黒画素塊検出
制御部203は、2値画像に対して8連結で繋がる黒画素の輪郭を追跡することにより、8方向の何れかの方向で連続して存在する黒画素の塊(黒画素塊)を検出する。8連結とは、左上、左、左下、下、右下、右、右上、上の8つの方向の何れかで、同じ色(今回のケースでは黒)の画素が連続しているという意味である。一方、4連結とは、左、下、右、上の4つの方向の何れかで同じ色の画素が連続しているという意味である。この(2)では、8方向に存在する8つの隣接画素の何れもが黒画素ではない単独の黒画素は検出されない。一方、8方向に存在する8つの隣接画素の何れか1つにでも黒画素が存在する黒画素は、その隣接する黒画素と共に、黒画素塊として検出されることになる。図23の2301は制御部203が検出した黒画素塊の一例である。また制御部203は、検出した黒画素塊の外接矩形の位置情報(四頂点のX、Y座標情報のこと)を算出する。なお、X軸は右方向に伸び、Y軸は下方向に伸びているものとする。幅は、X軸方向の長さ、高さは、Y軸方向の長さを指す。図23の2302は黒画素塊2301の外接矩形である。なお、本明細書で矩形と表現した時には、斜め向きの矩形は含まれず、四辺の全てがX座標軸、Y座標軸の何れかと平行な矩形を表す。
(3)表領域検出
制御部203は検出した黒画素塊が以下の全ての条件に該当するか判定し、全てに該当する黒画素塊を表の枠線を構成する黒画素塊であると判定する。
黒画素塊の外接矩形の幅、高さが閾値以上(たとえば、100画素・・・0.25cm以上)である。
外接矩形の内部における黒画素塊の充填率が閾値以下である(たとえば、黒画素塊が外接矩形に占める割合が20%以下)。
黒画素塊の最大幅及び高さと、外接矩形の幅及び高さの差が何れも小さい(たとえば、黒画素塊の最大幅及び高さと、外接矩形の幅及び高さの画素の差がともに10画素以下)。
制御部203は、表の枠線を構成すると判定した黒画素塊の外接矩形の位置情報を保存部202に保存する。以下では、そのように保存された位置情報を持つ外接矩形を表領域と呼ぶ。なお、以上の判定の結果、図23の黒画素塊2301は表の枠線を構成すると判定されたものとする。それに伴い、外接矩形2302は、表領域と呼ばれることになる。
(4)認識セルの特定
制御部203は、表領域内部の認識セルを特定する。認識セルを特定するためには、表領域内部の白画素の輪郭を追跡することにより、白画素塊を検出する必要がある。その上で、その白画素塊が所定の条件に合致する場合に、その白画素塊の外接矩形は、認識セルとして特定される。図23の2303、2304は、制御部203が特定した認識セルである。制御部203は、特定された認識セルの位置情報を保存部202に保存する。
なお、例えば、所定の条件に合致するとは、以下の三つの条件の全てに合致することを指す。
白画素塊の外接矩形の幅、高さが閾値以上(たとえば、20画素)である。
外接矩形の内部における黒画素塊の充填率が閾値以下である(たとえば、黒画素塊が外接矩形に占める割合が20%以下)。
白画素塊の最大幅及び高さと、外接矩形の幅及び高さの差が何れも小さい(たとえば、白画素塊の最大幅及び高さと、外接矩形の幅及び高さの画素の差がともに5画素以下)。
(5)認識セル内の文字領域の特定
制御部203は、各認識セルの内部に、その各認識セルに内接する白画素塊によって囲まれた黒画素塊があるか判定する。そして、黒画素塊があると判定した場合全ての黒画素塊に外接矩形を設定する。
さらに、制御部203は一つの認識セルの中に複数の外接矩形を設定した場合当該設定した外接矩形同士の距離が閾値3(例えば20画素・・・0.5cm)以内であるか判定する。具体的には、制御部203は、外接矩形を一つ一つ選択し、選択された外接矩形からの距離が閾値3以内である外接矩形を検出する。
さらに、制御部203は、距離が閾値3以内である外接矩形を検出した場合、当該検出した外接矩形と、当該選択された外接矩形とを統合する。即ち、制御部203は、両方の外接矩形に外接する新たな外接矩形を設定し、その代わり、当該選択された外接矩形と、当該検出された外接矩形を削除する。
新たな外接矩形の設定、二つの外接矩形の削除が完了した後、制御部203は、その認識セル内の外接矩形をまた初めから一つ一つ選択し、互いの間の距離が閾値3以内である外接矩形同士を統合していく。以上の処理を繰り返す。即ち、互いの間の距離が閾値3以内である外接矩形が無くなるまで、外接矩形同士の統合が繰り返される。
以上の通り、本実施例では、一つの認識セルの内部に存在する外接矩形同士の統合を行うが、認識セルをまたぐ外接矩形同士の統合を行わない。
以上の処理が終わって依然として設定されている外接矩形は、文字領域と呼ばれる。以上の処理を認識セル内の文字領域の特定と呼ぶ。制御部203は、認識セルの内部に存在する文字領域の位置情報を、当該認識セルに関連付けて保存部202に保存する。
図23の2305、2306は文字領域であって、認識セル2303には、文字領域2305が、認識セル2304には文字領域2306が関連付けられ、保存部202に保存される。
図3のスキャン画像に対して行われた領域分割の結果を図4に示す。図4では、特定された認識セルを示す外接矩形に太線枠を付け、文字領域を示す外接矩形に点線枠を付けている。図4の例では、402、403、404、406、407が認識セルである。401、405が文字領域である。
この図4では、403内部の罫線が掠れてしまっているため、本来は、複数のセルからなる403が1つの認識セルとして特定されている。また、406、407は、本来は、単一のセルであるにも関わらず、ノイズの関係で、別々の認識セルとして特定されている。
(6)文字認識
制御部203は、各文字領域に対して文字認識を行うことによって、各文字領域に対応する認識文字を得る。認識文字は、対応する文字領域に関連付けて保存部202に保存する。そうすることによって、認識文字は、文字領域と予め関連付けられている認識セルとも関連付けられることになる。文字認識を行わない場合、もしくは文字認識に失敗した場合は、文字領域に関連付けられる認識文字はない。
(1)から(6)までの処理で保存部202に保存される情報は図23では以下のとおりになる。認識セル2303には、文字領域2305と、認識文字“123”が、認識セル2304には文字領域2306と、認識文字“57”が関連付けられ、保存部202に保存される。
(7)認識セル枠表示
制御部203は、各認識セルの四辺(即ち、白画素塊の外接矩形の四辺)に太線枠を付けてスキャン画像を表示部204に表示する。表示された画面は図5となっている。なお、枠の形態は、太線でなくても実線でなくても良く、黒でなくても良いのは言うまでも無いが、これ以降は、太線であるものとして説明を続ける。また、この(7)で太線枠と共に表示されるスキャン画像は、(1)−(6)の処理が行われる前のスキャン画像であり、即ち、2値化前のスキャン画像である。
<図8の説明>
ユーザが受付部205を介して、表示部204に表示されている図5における任意の箇所をクリックする。なお、本明細書においてクリックとは、マウスの左ボタンを押して、すぐに(押してから一定時間内に)離す行為のことである。クリックされた箇所が認識セルの外接矩形の内側の場合に、制御部203は、その認識セルが選択されたと判定する(S801)。図6に、認識セル602が選択された際に表示される表示画面を示す。ここでは、認識セル602が選択されたものとして以下説明を続ける。なお、601は、受付部205を介してユーザが指し示している場所を示すマウスポインタである。
上記判定がなされると、制御部203は、選択された認識セルの内部のオリジナル文字を編集するための編集ウィンドウ604と、選択された認識セル602の位置や大きさを変更するためのハンドル603とを表示部204に追加表示する(S802)。このハンドル603(認識セル位置変更ハンドルと呼ばれる)は、選択された認識セル602の太線枠の四頂点に追加表示される。図6に、認識セル位置変更ハンドル603と編集ウィンドウ604が追加表示された結果を示す。
またS802では図6のように、選択された認識セル(選択状態の認識セル)が他の認識セルと区別つくようにするのも好ましい。例えば、選択状態の認識セルの枠をより太くするのも好ましい(極太線枠とするのも好ましい)。もちろん他の認識セルと区別つくのであれば他の方法を取っても良い。例えば、選択状態の認識セルの枠を他の色にしたり、点線とするような方法も考えられる。ただし、本明細書では、選択された認識セルを他の認識セルと区別つけるための方法として極太線枠を用いる方法を採用した場合を例に以下説明を続ける。
なお、認識セルに対する選択状態が解除された場合には、そうした極太線枠状態から元の状態に戻ることになる(即ち、他の認識セルと同じ太線枠状態に戻ることになる)。
編集ウィンドウ604における文字入力欄605には、選択された認識セルに関連付けられている認識文字が編集ウィンドウ用文字サイズで表示される(表示の詳細処理は図24で説明する)。ユーザはこの文字入力欄605から認識文字を削除し、代わりに、他の文字を入力することができる。そうすることにより、認識文字の編集ができる(編集の詳細処理は図9で説明する)。なお、選択された認識セルと関連付けられている認識文字が無い(例えば、選択された認識セル内部から文字領域が検出されなかった、もしくは文字領域は検出されたが文字認識が失敗して認識文字が存在しない。)場合には、文字入力欄605は空欄となる。
OKボタン606は、文字の編集を確定する場合にクリックされるボタンである。Applyボタン607は、編集後の文字をスキャン画像上に表示したい場合にクリックされるボタンである。Cancelボタン608は、文字の編集をキャンセルしたい場合にクリックされるボタンである。
図6が表示された後、ユーザは受付部205に対して新たな操作を行う。もしその操作が編集ウィンドウ604上での文字編集であれば、制御部203は、S803(図9のS901)に処理を進める。ユーザが受付部205に対して行った操作が認識セル位置変更ハンドルに対する操作であれば、制御部203は、S804(図10のS1001)に処理を進める。
<図9の説明>
S901では、制御部203は、認識セル位置変更ハンドル603を非表示にする。
S902では、制御部203は、編集ウィンドウ604上で編集された後の文字を、編集ウィンドウ用文字サイズで編集ウィンドウ604に表示する。
S903では、制御部203は、文字編集後にユーザが受付部205に対して行った操作が、別の認識セルの選択か、Applyボタンのクリックか、OKボタンのクリックか、Cancelボタンのクリックか判定する。Cancelボタンのクリックであると判定した場合には、制御部203は、選択されている認識セルの選択状態を解除して図9の処理を終了する。なお、これ以降では説明を省略するが、選択状態が解除された認識セルは、上述の通り、極太線枠状態から、他の認識セルと同じ太線枠状態に戻ることになる。
それ以外であると判定した場合には、制御部203は、選択されている認識セル内部(即ち、スキャン画像における認識セルの内部)の色を全て削除する(S904)。ここで、色を削除するとは、認識セル内の画素の色情報を既定の色情報に置換するという意味である。本実施例では、規定の色情報が白であるものして説明を続けるが、白に限るものではない。このS904における具体的な処理は、図20−図22を用いて後述する。
その上で制御部203は、編集後の文字をその認識セル内部にスキャン画像用文字サイズで配置する(S905.1。図11で詳細に説明する)。そして、制御部203は、編集後のスキャン画像(即ち、認識セル内部の削除、及び、編集後の文字の配置が完了した画像)を保存部202に保存すると共に、表示部204で表示されているスキャン画像にこの編集後のスキャン画像を置き換える(S905.2)。そうすることにより、この編集後のスキャン画像は、各認識セルの外接矩形に太線枠が付けられた状態で表示されることになる。また、現在選択されている認識セルの外接矩形については極太線枠状態で表示されたままとなる。
さらに、上記操作がOKボタンのクリックであれば(S906)、制御部203は、選択されている認識セルの選択状態を解除した上で図9の処理を終了する。また、上記操作が別の認識セルの選択であれば(S906)、制御部203は、選択されている認識セルの選択状態を解除した上でS802に処理を進める。また、上記操作がApplyボタン607のクリックであれば(S906)、制御部203は、S905.1で配置された編集後の文字の外接矩形の四頂点に文字位置変更ハンドルを表示する(S907)。
ユーザがもし編集後の文字の位置を変更したい場合には、この文字位置変更ハンドルの位置を動かす操作を受付部205に対して行うことになる。すると、その操作に応じた文字位置変更を制御部203は行い、さらに、その文字位置変更後の画像を、保存部202で保存されている編集後のスキャン画像と置き換える。さらに、表示中の編集後のスキャン画像とも置き換える。そうすることにより、文字位置変更後の画像が、編集後のスキャン画像として保存、表示されることになる(S908)。一方、文字位置を変更する必要が無い場合には、文字位置変更ハンドルに対する操作は行われない。その場合、S908では何も行われず、スキップされることになる。
その後、ユーザは、別の認識セルを選択するか、OKボタンをクリックするか、Cancelボタンをクリックすることになる。もし別の認識セルの選択がされたことを受付部205が受付けると(S909)、制御部203は、選択されている認識セルの選択状態を解除してS802に処理を進める。OKボタンがクリックされたことを受付部205が受付けると(S909)、制御部203は、選択されている認識セルの選択状態を解除して図9の処理を終了する。また、もしCancelボタンがクリックされたことを受付部205が受付けると(S909)、制御部203は、選択されている認識セルの内部を元の状態に戻す(即ち、黒画素塊の削除前の状態に戻す)。その上で制御部203は、選択されている認識セルの選択状態を解除して図9の処理を終了する(S910)。
図9の処理が終了した後は、ユーザからの他の認識セルの選択を待つ状態となる。また、ユーザから受付部205に対して別の装置への編集後のスキャン画像の送信が指示された場合には、制御部203は、その選択待ち状態を解除する。その上で、制御部203は、保存部202に保存されている編集後のスキャン画像を送受信部201に別の装置へ送信させる。その別の装置が仮に複写機100だったとすると、複写機100は、編集後のスキャン画像を送受信部102により受信し、ユーザからの指示によっては編集後のスキャン画像をプリンタ103により印刷することになる。
以上の処理を行った場合、別の装置に送信される編集後のスキャン画像は、(選択されていた)認識セル内部の削除、及び、編集後の文字の配置が完了した画像となる。しかし、送信される画像は、必ずしもこれに限られるものではない。例えば、元のスキャン画像(2値化前のスキャン画像)と、認識セル内部の削除命令と、編集後の文字の配置命令とを含むファイルであっても良い。そのようなファイルを別の装置が受信した場合には、その別の装置の側で元のスキャン画像から認識セル内部の削除、及び、編集後の文字の配置が行われることになる。
<図10の説明>
上述の通り、ユーザが受付部205に対して行った操作が認識セル位置変更ハンドル603に対する操作であれば、制御部203は、S804(図10のS1001)に処理を進める。
S1001では、制御部203は、その操作に合わせて、認識セルの位置を変更し、変更後の位置の認識セルの四辺を極太線枠状態にして表示部204に表示する。この際、変更前の位置の認識セルの四辺の極太線枠状態は解除され、通常の状態(太線枠も極太線枠も付いていない状態)に戻ることになる。また、認識セル位置変更ハンドル603も同様に、変更前の位置の認識セルの四頂点からは解除され、変更後の位置の認識セルの四頂点に表示されることになる。なお、認識セルの位置を変更するとは、保存部202に保存されている認識セルの位置情報を変更することを意味する。
その後、制御部203は、編集ウィンドウ604を介した文字編集が行われるまで待機し、文字編集が行われると制御部203は、S901に処理を進める。
このように、文字編集が行われる前に認識セルの位置を変更可能とすることによって、S904で内部が削除される対象となる認識セルの位置を変更することができる。これにより、削除されるべき部位が削除され、かつ、削除されるべきでない部位が削除されずにすむこととなる。
<図11の説明>
図11を用いて、S905.1の処理の詳細を説明する。
S1101で、制御部203は、選択されている認識セルの位置情報、および当該認識セルに関連付けられた文字領域の位置情報を保存部202から取得する。
次にS1102で、制御部203は基準線の設定を行う。
認識セルの左上座標を(X1,Y1)、右下座標を(X2,Y2)、文字領域の左上座標を(x1,y1)、右下座標を(x2,y2)とする。
制御部203は、基準線の設定を行うために、まず、選択されている認識セルにおける文字領域の左右の余白を計算する。
左側の余白 x1−X1
右側の余白 X2−x2
(左側の余白)≧(右側の余白)ならば、基準線は文字領域の右辺、すなわち、(x2,y2),(x2,y2)を結ぶ直線に設定される。
(左側の余白)<(右側の余白)ならば、基準線は文字領域の左辺、すなわち、(x1,y1)、(x1,y2)を結ぶ直線に設定される。
S1103で、制御部203は、選択されている認識セル内部の設定されている基準線に合わせて、編集後の文字を配置する。
この時、配置される文字のサイズとして、スキャン画像用文字サイズのデフォルト値が用いられるものとするが、下記のようにして決定されたサイズを用いても良い。たとえば、選択されている認識セル内部に存在していたオリジナル文字の幅が4文字で100ドットだった場合に、1文字あたりのサイズは、25ドットと推定される。この認識セル内部に編集後の文字を違和感なく配置するためには、編集後の文字も1文字あたり25ドット程度であるのが好ましい。このことから、標準的な文字のサイズが25ドットとなるようなポイント数を計算し、そのポイント数を、配置される文字のサイズとして用いることも可能である。また、そのように決定された文字サイズをユーザが手動で変更できるような構成としても良い。さらには、配置される文字の色やフォント、スタイル(標準、斜体、太字)をユーザが手動で変更できるような構成としても良い。
ここで、編集後の文字の外接矩形の高さがH、幅がWだったとする。また、文字領域の左上座標が(x1,y1)、右下座標が(x2,y2)であり、S1102で求めた基準線が文字領域の右辺だったとする。
この場合、編集後の文字の外接矩形を配置する座標は、Windows(登録商標)の場合(x座標は右に行くほど大きくなり、y座標は下に行くほど大きくなる)、
左上座標(x2−W,y2−H)
右下座標(x2,y2)
となる。
もし、基準線が左辺の場合には、編集後の文字の外接矩形の左辺を基準線(文字領域の左辺)に合わせるため、編集後の文字を配置する座標は、
左上座標(x1,y2−H)
右下座標(x1+W,y2)
となる。
なお、これらの例では、編集後の文字の高さ方向(Y方向)の位置は、オリジナル文字の配置されていた文字領域の下辺の位置を基準とした。しかしながら、この位置ではなく、編集後の文字の高さ方向の中心と、オリジナル文字の配置されていた文字領域の高さ方向の中心が揃うように編集後の文字の位置を決めても構わない。
<S1001の詳細(認識セルの結合と分割)>
図4において、認識セル406と認識セル407は、本来は単一のセルであるにも関わらず、ノイズの関係で別々の認識セルとして特定されている。認識セル406と認識セル407を結合して、単一の認識セルとする手段について、図15を用いて説明する。なお図15は、図10のS1001の認識セル位置変更の処理の詳細を示す。
まず、ユーザが受付部205を介して、認識セル位置変更ハンドルをドラッグして、選択中の認識セルの位置を変更する(S1501)。
S1502では、制御部203が、変更した位置が、選択中の認識セルの縮小にあたるか、拡大にあたるか、どちらにもあたらないかを判定する。具体的な判定方法を以下に述べる。位置を変更する前の認識セルの幅をW1、高さをH1とし、位置を変更した後の認識セルの幅をW2、高さをH2とする。W1<W2かつH1<H2の場合は、制御部203が認識セルの拡大と判定する。W1>W2かつH1>H2の場合は、制御部203が認識セルの拡大と判定する。それ以外の場合は、制御部203が、どちらにもあたらないと判定する。
どちらにもあたらないと判定された場合は、制御部203は処理を終了する。
認識セルの拡大と判定した場合、制御部203は、拡大後の認識セルが、別の認識セルを包含するかどうかを判定する(S1503)。別の認識セルを包含しないと判定した場合は、制御部203は認識セルの結合は行わず、処理を終了する。
一方、S1503で別の認識セルを包含すると判定した場合は、制御部203は、拡大後の認識セルと、包含した当該別の認識セルを結合する(S1505)。
認識セルの結合ステップ(S1505)では、制御部203は、結合する前の各々の認識セルの座標を元に、両方の認識セルを含む最小の矩形を結合後の認識セルと設定する。そして、その設定した結合後の認識セルの位置情報を保存部202に保存する。例えば、結合する2つの認識セルの左上座標をそれぞれ(Xa,Ya)、(Xb,Yb)とし、仮にXa>Xb、Ya<Ybとすると、結合後の認識セルの左上座標は(Xb,Ya)になる。左下、右上、右下座標についても同様の考え方で決定する。また、結合する認識セルが3個以上の場合でも同様である。なお、結合後の認識セルの位置情報は、複数存在する結合前の認識セルの位置情報(位置変更ハンドルを操作する前の位置変更ハンドルを操作した認識セルの位置情報と上記別の認識セルの位置情報)と関連付けて保存される。結合後の認識セルは、認識セルの結合処理後、結合していない通常の認識セルと同様に操作される。結合前の認識セルの位置情報はS904の認識セルの内部の削除の際に使用される。
次に、制御部203は、各々の認識セルに含まれる文字領域を結合する(S1506)。
具体的には、制御部203が、結合後の認識セルに含まれている文字領域を検出する。検出される文字領域は、拡大前の認識セルに含まれている文字領域と、上記別の認識セルに含まれている文字領域となる。その上で、検出した文字領域同士を結合する。結合後の文字領域は、結合前の全ての文字領域を包含する最小の矩形となる。この最小の矩形の位置情報を結合後の文字領域の位置情報として、結合後の認識セルと関連付けて保存部202に保存する。そしてその代わりに、拡大前の認識セルに含まれていた文字領域の位置情報と、上記別の認識セルに含まれていた文字領域の位置情報を保存部202から削除する。
次に制御部203は、認識文字を結合する(S1507)。具体的には、制御部203は結合後の文字領域に含まれる複数の認識文字を結合することにより、1つの認識文字を新規に作成する。代わりに、元の複数の認識文字は削除する。新規に作成した認識文字は、制御部203が結合後の文字領域に関連付ける。なお、認識文字の結合では、単純に複数の認識文字を繋げるだけでもよいし、認識文字の間にスペースを挿入してもよい。
次に制御部203は、結合前の認識セルの四頂点から認識セル位置変更ハンドルを消して、結合後の認識セルの四頂点に認識セル位置変更ハンドルを表示部204に表示する(S1508)。つまり、結合後の認識セルが選択された状態にする。
また、制御部203は、結合後の認識文字を、編集ウィンドウ604における文字入力欄605に表示する(S1509)。
以上の認識セルの結合手段について、図12、図13、図14を用いて、具体例を示す。
図12はノイズにより別々の認識セルとして特定された認識セル406と認識セル407のうち、認識セル406がユーザにより選択された際の表示画面である。認識セル406と認識セル407は別々の認識セルとして特定されているため、文字入力欄1201には認識文字として「Gym Bag」ではなく「Gym」が表示されている。
認識セル406と認識セル407を結合したい場合、まずユーザは認識セル406の認識セル位置変更ハンドル603をドラッグして、認識セル407を全て含むまで拡大する(図13)。なお、認識セルをドラッグして拡大する際には、認識セルを拡大している最中であることが分かるよう、認識セルの枠の表示を変更するのが好ましい。例えば1301のように、認識セルを拡大している間は、認識セルの枠を点線で表示する。
ユーザが認識セル位置変更ハンドル603のドラッグを完了すると、制御部203は認識セル406と認識セル407を結合して、結合後の認識セル1401を表示部204に表示する(図14)。また、文字領域の結合も行う。そして、S1507で認識文字の結合を行い、結合後の認識文字「Gym Bag」を認識文字として文字入力欄1402に表示する。
1401のように、ノイズにより別々の認識セルとして特定された認識セルを結合した場合は、S904の認識セルの内部の削除において、結合後の認識セル内部を削除するのが望ましい。
1404は6つの別々の認識セルとして特定された認識セル(認識文字が「¥」「8」「1」「5」「0」「0」である6つのセル)を1つの認識セルに結合した後の認識セルを示している。
6つの認識セルは、数字の桁を区切るための罫線により、別々の認識セルとして特定される。この場合、認識セルの結合は認識文字の編集を容易にするために行ったものである。罫線は「数字の桁を区切る」という意味があるものなので、S904の認識セルの内部の削除を行った際も、桁を区切る罫線を維持するのが望ましい。S904の認識セルの内部の削除において、結合後の認識セル内部を削除すると、桁を区切る罫線も消去される。この場合、桁を区切る罫線を維持するために、結合前の認識セル内部を削除するのが望ましい。
このように、結合後の認識セル内部を削除するのが望ましい場合と、結合前の認識セルの内部を削除するのが望ましい場合がある。この2つの場合に対応するため、認識セルの結合を行った場合、編集ウィンドウに「結合後の認識セル内部を削除する」「結合前の認識セル内部を削除する」のどちらかをユーザが選択できるUIを表示する。1403はどちらか一方が選択状態の場合に、もう一方が非選択状態になるラジオボタンである。初期状態は、「結合後の認識セル内部を削除する」を選択状態とする。「結合後の認識セル内部を削除する」「結合前の認識セル内部を削除する」のどちらが選択されているかの情報は、S904の認識セルの内部の削除の際に取得される。
次に、認識セルの分割について説明する。
図16において、認識セル403は、本来は「Description」、「Quantity」、「Unit Price」、「Amount」の認識文字を含む4つの認識セルとなるべきである。しかし、スキャン画像の罫線が掠れているため、1つの認識セルとして特定されている。認識セル403を分割して、複数の認識セルとする手段について、S1511−S1516を用いて説明する。
S1502で、制御部203が認識セルの縮小と判断した場合、次に制御部203は、選択中の認識セルに含まれていた文字領域の全てが、縮小後の認識セル内でも含まれているかどうかを判定する(S1511)。全て含まれていると判定した場合は、制御部203は選択中の認識セルの分割は行わず、処理を終了する。
一方、S1511で縮小後の認識セルに含まれない文字領域があると判定した場合は、制御部203は、縮小前の認識セルを分割する(S1512)。即ち、縮小前の認識セルに含まれていた文字領域の一部又は全てが、縮小後の認識セル内に含まれていない場合には、縮小前の認識セルを分割する。縮小前の認識セルの分割とは、具体的には、制御部203は、縮小後の認識セルとは別に、新規に認識セルを作成することを意味する。
縮小後の認識セルと、上記新規に作成する認識セルの位置情報は、縮小後の認識セルの位置情報と縮小前の認識セルの位置情報とを元に制御部203が決定する。例えば、縮小前の認識セルが、左上座標(Xa1,Ya1)、右下座標(Xa2,Ya2)とする。ユーザが右下の認識セル位置変更ハンドルをドラッグして認識セルを左方向に縮小して、その結果右下座標が(Xa2−W,Ya2)になったとする(Wは縮小幅)。この場合、制御部203は「X座標=Xa2−W」の位置で縮小前の認識セルを分割すると判断する。分割した結果、縮小後の認識セルの座標は、左上座標(Xa1,Ya1)右下座標(Xa2−W,Ya2)となり、新規に作成した認識セルの座標は、左上座標(Xa2−W,Ya1)右下座標(Xa2,Ya2)となる。
次に制御部203は、文字領域の分割を行う(S1513)。具体的には、まず縮小後の認識セル内に包含されていない文字領域と、縮小後の認識セルとの関連付けを解除し、代わりに、その文字領域を、新規に作成した認識セルに新たに関連付ける。また、認識セルを分割した位置の上に文字領域が重なっている場合は、その分割した位置で文字領域も分割する。例えば、左上座標(Xa3,Ya3)、右下座標(Xa4,Ya4)の文字領域を、X座標がXa5の位置で分割するとする。この場合は、左上座標(Xa3,Ya3)、右下座標(Xa5,Ya4)の文字領域と、左上座標(Xa5,Ya4)、右下座標(Xa4,Ya4)の文字領域の、2つの文字領域を作成する。そして、元の文字領域は制御部203が削除する。その後、制御部203は、新規に作成した2つの文字領域を、文字領域を包含している認識セルにそれぞれ関連付ける。
次に制御部203は、認識文字の分割を行う(S1513)。上記分割された文字領域に含まれるように認識文字を分割して、各文字領域に関連付ける。
次に制御部203は、分割後の認識セルのうち、もっとも左上側にある認識セルの四頂点に対して認識セル位置変更ハンドルを表示部204に表示する(S1515)。つまり、分割後に生成された複数の認識セルのうち、最も左上側に位置する認識セルを選択状態にする。また、制御部203は、分割後の認識文字を、編集ウィンドウ604における文字入力欄605に表示する(S1516)。
以上の認識セルの分割手段について、図16、図17、図18を用いて、具体例を示す。図16では認識セル403が選択されている状態の表示画面である。認識セル403は本来は複数の認識セルとなるべきだが、スキャン画像の罫線が掠れているため、単一の認識セルとして特定されている。単一の認識セルとして特定されているため、文字入力欄1601には、認識セル403内の認識文字が全て結合されて表示されている。
認識セル403を分割したい場合、まずユーザは認識セル403の認識セル位置変更ハンドル603をドラッグして、認識セルを分割したい位置まで認識セルを縮小する(図15)。
図17では、縮小後の認識セルの中には、認識文字「Description」の文字領域のみが含まれていて、「Quantity」、「Unit Price」、「Amount」は含まれていない。そのためS1903で、制御部203は、縮小後の認識セルに包含していない文字領域があると判定し、認識セルの分割をおこなう。
認識セルを分割したあと、制御部203は、分割された各々の認識セルのうち、もっとも左上に位置する認識セルを選択状態にする(図18)。また、制御部203は、分割後の認識セルに含まれる認識文字「Description」を文字入力欄1802に表示する。
<図24 S802 編集ウィンドウに表示する認識文字の選択>
制御部203が行うS802における編集ウィンドウに表示する認識文字の選択手段について図24のフローをもちいて詳細を説明する。
領域解析の文字領域検出の結果、1つの認識セル内に複数の文字領域が存在する場合がある。図4の401、402のようなケースを編集ウィンドウに認識セルに関連付けられたすべての認識文字を表示するとユーザの利便性を損なうことがある。
したがって、認識セル内の文字領域の位置関係により、編集ウィンドウ表示する認識文字を選択する必要がある。
図25(A)は認識セルの枠を表示する表示画面である図5の一部である。マウスポインタ601が図25の(A)の位置にあった時、ユーザがクリックすると制御部203が実行する処理、すなわちS802の詳細を図25、S802の実行後の表示部204の状態を図25(B)に示す。
制御部203は認識セル位置変更ハンドルを表示する(S2401)。図25(B)では認識セル位置変更ハンドル603に相当する。
次に制御部203は認識セルに関連付けられた文字領域の位置情報を保存部202から取得する。(S2402)このとき、取得した文字領域が1つであれば、(S2403でNOであれば)その文字領域の認識文字をそのまま編集ウィンドウに表示する(S2409)。取得した文字領域が2つ以上あれば(S2403でYESであれば)、どの文字領域とその認識文字を表示するかを判定する(S2404〜S2407)。
まず、制御部203は文字領域の外接矩形の位置情報により、文字領域の外接矩形を統合するか否かを判定する(S2404)。
比較対象の文字領域の外接矩形Aの右上座標を(L_a,T_a)、左下座標を(R_a,B_a)、外接矩形Bの右上座標を(L_b,T_b)、左下座標を(R_b,B_b)とし、統合判定条件は以下のとおりである。
2つの外接矩形A、Bが行方向となる横方向で重ならない場合、すなわち、B_a<T_bの場合は結合しない。
そうでなければ(B_a>T_b)、2つの外接矩形が十分離れている場合、すなわち、L_b−R_aが閾値以上の場合、(例えば20画素・・・1cm)は結合しない。
次に、制御部203は統合すると判定した文字領域の外接矩形を結合し(S2405)、さらに認識文字も統合する(S2406)。
S2404〜S2406の処理の具体例を示す。
認識セル409内の文字領域は、
SOLD TO −−(1)
Kawasaki BlackBlue −−(2)
Co.,Ltd.−−(3)
53, Imai Kamicho,−−(4)
Nakahara−ku Kawasaki−shi,−−(5)
Kanagawa, 〒211−8511−−(6)
Tel−−(7)
044−987−6543−−(8)
Fax−−(9)
044−98706544−−(10)
の10個存在する。
これらの文字領域の位置情報を入力された制御部203は“Kawasaki BlackBlue”と“Co.,Ltd.”の2つの文字領域は統合すると判定し文字領域の外接矩形および認識文字を統合する。
次に、制御部203は編集ウィンドウ604に表示する文字領域を選択する(S2407)。
選択条件は以下のとおりである。マウスポインタ601の位置が、ある文字領域の内側であれば、その文字領域とする。さらに、マウスポインタ601の位置が、どの文字領域の内側でもなければ、最も距離が近い文字領域を選択する。制御部203は表示部204に統合した文字領域の外接矩形の枠を表示する(S2408)。これは、認識セル内の複数の文字領域のうち、どの文字領域が選択可能かをユーザへ明確に提示するために実施する。
もし、統合処理後の文字領域の数が1であれば、文字領域は1つに確定するため、枠表示処理はスキップしてもよい。また、S2407にて制御部203が選択した文字領域とそれ以外の文字領域を区別するために枠の表示方法を変える。
本明細書では、図25(B)のように選択された文字領域(たとえば2502)を太線、他の文字領域(たとえば2503)と細線枠を用いたが、両者を区別できる表示であれば方法は問わない。制御部203は選択した文字領域に関連付けられた認識文字を編集ウィンドウに表示する(S2409)。
図25(B)では、文字領域2502が選択された文字領域、2502に関連付けられた認識文字“Kawasaki BlackBlue Co.,Ltd.”を編集ウィンドウに表示している。
<S904の詳細(図20−図23)>
図20−23を用いて、S904の詳細を説明する。
スキャン画像には、認識セルに対して、対応する実際のセルが1つ存在する。以降、スキャン画像の実際のセルをセルと呼ぶ。
保存部202で保存されている認識セルの位置情報は、外接矩形の座標情報である。スキャン画像の傾きや歪みにより、認識セルの外接矩形の座標情報(2303、2304)とセルの罫線(2301)の位置は完全には一致しない。認識セルの外接矩形の内側にセルの罫線の一部が含まれていた場合、認識セル内部をすべて削除すると、セルの罫線の一部を削除してしまう場合がある。セルの罫線を削除することなく、認識セル内部のセルの罫線以外を削除するステップを以下に説明する。
図20で2014はセルである。セル2014は、四点(2010−2013)を繋ぐ四本の罫線からなる領域である。2001は、セル2014に対応する認識セルである。セル2014に内接する直線をセル内接直線と呼ぶ。セル内接直線は1つのセルに対して、上下左右の四本存在する(2002−2005)。
認識セル2001に対応するセルのセル内接直線を検出するための領域を、セル内接直線検出領域と呼ぶ。1つの認識セルに対して4つのセル内接直線検出領域がある(2006−2009)。
S2200で、制御部203は、削除範囲の特定を行う。削除範囲は、文字領域、結合前の認識セル、認識セルのいずれかであり、制御部203はどの範囲を削除するか特定の特定を行う。
選択された認識セルに、関連付けられた文字領域が複数ある場合、制御部203は、削除範囲は文字領域と判断し、S2007の処理を行う。認識セルに関連付けられた文字領域が複数ある場合は、認識セル内部をすべて削除してしまうと、編集処理をしていない文字領域も合わせて削除してしまう可能性がある。この削除範囲の特定処理により、編集対象の文字領域のみ削除することが可能となる。
選択された認識セルが結合後の認識セルであり、1403のラジオボタンにおいて、「結合前の認識セル内部を削除する」が選択されている場合、制御部203は、削除範囲は結合前の認識セルと判断し、S2006の処理を行う。
上記以外の場合は、制御部203は、削除範囲は認識セルと判断し、S2201の処理を行う。これには、認識セルが結合後の認識セルであり、1403のラジオボタンにおいて、「結合後の認識セル内部を削除する」が選択されている場合も含まれている。この場合、S2201からS2205の処理における認識セルは結合後の認識セルのこととする。S2201で、制御部203は、選択されている認識セル2001の位置情報を保存部202から取得する。
S2206で、制御部203は、選択されている結合後の認識セルと関連付けて保存されている複数の結合前の認識セルの位置情報を保存部202から取得する。この場合、S2202からS2206における認識セルは、結合前の認識セルのこととする。制御部203は、複数の結合前の認識セルに対して、それぞれS2202からS2205の処理を行い、それぞれの結合前の認識セル内部を削除する。
S2202で、制御部203は、認識セル2001の上下左右計4つのセル内接直線検出領域(2006−2009)を設定する。
上部のセル内接直線検出領域2006は、認識セル2001の上部の辺の周囲の領域である。具体的には例えば、認識セル2001の上部の辺を基準として、上下(即ち、基準となる辺の直行方向)にあらかじめ決められた値分(例えば20画素・・・0.50cm)広げた領域である。下部のセル内接直線検出領域2007上部と同様の方法で設定される。左部のセル内接直線検出領域2008は、同様に辺の周囲の領域である。具体的には例えば、認識セルの左部の辺を基準として、左右にあらかじめ決められた値分広げた領域である。右部のセル内接直線検出領域2009は左部と同様の方法で設定される。
S2203で、制御部203は、上下左右のセル内接直線検出領域(2006−2009)に対して、直線検出を行う。直線検出はハフ変換を用いる。
上部のセル内接直線検出領域2006に対するハフ変換による直線検出の方法を具体的に説明する。
まず、制御部203は、上部のセル内接直線検出領域2006に対して、エッジ検出を行う。エッジ検出により、上下左右の画素との濃度の差が閾値以上のエッジ画素と、それ以外の非エッジ画素に分類される。図21の2101は上部のセル内接直線検出領域2006に対してエッジ検出を行い、エッジ画素を黒画素として表示した図である。
2102は上部のセル内接直線検出領域2006内のエッジ画素の1つであり、エッジ画素の座標を(Xb1,Yb1)と表す。(Xb1,Yb1)を通る直線は式1で表現される。ρは原点から直線に垂線を引いた時の長さであり、θはx軸とのなす角度である。また、ρの小数点第一位を四捨五入し、整数化したものをρiとする。
ρ=Xb1cosθ+Yb1sinθ・・・式1
この式1が表す直線を図19に図示する。
制御部203は、θを一定の変化量(たとえば、1度ごと)で0度から360度まで変化させ、それぞれのθに対するρの値を計算することで、(Xb1,Yb1)を通る直線の(ρ,θ)の組み合わせを360個求める。制御部203は、上部のセル内接直線検出領域内2006で、この処理をエッジ画素の全てに対して行うことにより、エッジ画素数×360個の(ρ,θ)の組み合わせを求める。仮にエッジ画素数が100個あるとすると、3万6000個の(ρ,θ)の組み合わせが求まるわけである。その中には、もちろん重複があり、(ρ1,θ1)の組み合わせは20回あった、(ρ2,θ2)の組み合わせは30回あったというふうに重複回数が求まる。つまり、(ρi,θi)の組み合わせの出現頻度が求まることになる。
この出現頻度を閾値と比較し、その閾値を超えた(ρi,θi)の組み合わせを直線を表す数式とみなす。
この閾値は、上部もしくは下部のセル内接直線検出領域の場合、セル内接直線検出領域の幅にあらかじめ定められた定数(例えば、0.7)を掛けた値とする。左部もしくは右部のセル内接直線検出領域の場合、セル内接直線検出領域の高さにあらかじめ定められた定数を掛けた値とする。その結果、図21の例では、2101に対して直線検出を行った結果、2103と2104の二本の直線が検出される。2103と2104は検出された直線を黒画素で示した線である。制御部203は、下部、左部、右部に関しても同様の方法でそれぞれ直線検出を行う。
S2204で、制御部203は、S2203における直線検出結果を基にセル内接直線(実際のセルの罫線)を特定する。即ち、セルの罫線検出を行う。
例えば、上部のセル内接直線検出領域の場合、上部のセル内接直線検出領域2006から複数本(2本)の直線が検出されている。この2本の直線の中から、認識セルの中心位置を基準として最も内側、すなわち最下部の直線を上部のセル内接直線として検出する。
数学的には、上部のセル内接直線検出領域2006の中央のx座標2105における、検出された各直線(2103、2014)のy座標の値を算出し、y座標の値が最も大きい直線をセル内接直線として特定することになる。図21の例では、y座標の値が最も大きい2014がセル内接直線として特定される。
また、制御部203は上部のセル内接直線検出領域に1つも直線が検出されなかった場合、認識セルの上部の辺をセル内接直線として特定する。もちろん、1本のみ直線が検出された場合、その直線をセル内接直線として特定する。
制御部203は、下部、左部、右部に関しても同様にそれぞれ最も内側の直線をセル内接直線として検出する。
S2205で、制御部203は、スキャン画像に対して上下左右の四本のセル内接直線に囲まれた領域内部の色情報を削除する。具体的には、領域内部の画素の色情報を白に置換する。
また、上下左右の四本のセル内接直線に囲まれた領域内部の色情報を削除する際、処理の簡易化のために、四本のセル内接直線に囲まれた領域内部の矩形2021の色情報を削除してもよい。矩形2021を特定する具体的な方法を以下に説明する。セル内接直線の左上の交点2015を(Xc1,Yc1)、左下の交点2016を(Xc2,Yc2)、右下の交点2017を(Xc3,Yc3)、右上の交点を(Xc4,Yc4)とする。また、AとBの小さいほうの値をmin(A,B)と表現し、AとBの大きいほうの値をmax(A,B)と表現する。矩形2021は、左上座標2019が(max(Xc1,Xc2)、max(Yc1,Yc4))で、右下座標2020が(min(Xc3,Xc4)、min(Yc2,Yc3))の矩形として表現される。この矩形内部の色情報を削除することで、四本のセル内接直線に囲まれた領域内部の矩形2021の色情報を削除することができる。
S2207で、制御部203は、編集対象の文字領域の位置情報を保存部202から取得し、文字領域内部の色情報を削除する。具体的には、領域内部の画素の色情報を白に置換する。
S2200からS2207の処理により、スキャン画像のセルの罫線を削除することなく、認識セル内部の罫線以外の色を削除することができる。
<第2の実施形態>
図22において、結合前の認識セルの内部の色の削除をした後、図11の処理で結合後の認識セルに編集後の文字を配置すると、削除されなかったスキャン画像のセルの罫線と配置した編集後の文字が重なってしまう場合がある。このような場合、結合前の認識セルに、編集後の文字列を分割して配置することで、スキャン画像のセルの罫線と編集後の文字が重ならずに文字を配置することができる。具体的な方法を以下に説明する。
本実施例では、結合前の認識セルに編集後の文字を分割して配置するために、結合後の認識セルに、結合前の認識セルの位置情報、結合後の文字領域の位置情報、結合前の文字領域の位置情報、編集後に配置できる文字数を関連付けて保存する。具体的な方法を以下に説明する。
第1の実施形態では、制御部203はS1506で認識セルに含まれている文字領域を結合する際、結合前の認識セルに含まれていた複数の文字領域の位置情報を削除していた。本実施形態では、制御部203は結合前の認識セルに含まれていた複数の文字領域の位置情報をS1505で保存された結合前の認識セルの位置情報と関連付けて保存部202に保持する。図27の例を用いて説明する。
2700はスキャン画像の一部である。2701、2702、2703は2700を認識した結果の認識セルであり、2704、2705、2706は認識セルに関連付けられた文字領域である。ユーザの操作により、2701、2702、2703の認識セルを結合したものが2707であり、2704、2705、2706の文字領域を結合したものが2708である。S1505で結合後のセルである2707の位置情報が保存され、それと関連付けて結合前のセルである2701、2702、2703の位置情報が保存される。S1506で、2701、2702、2703それぞれの位置情報に関連付けて2704、2705、2706の位置情報が保存される。
第1の実施形態ではS1507において、認識文字を結合する際、結合前の複数の認識文字を削除した。これに対して、本実施形態では、制御部203は結合前の各認識文字の文字数を、編集後に配置できる文字数として、S1505で保存された結合前の複数の認識セルの位置情報と関連付けて保存部202に保持する。編集後に配置できる文字数は、実際に編集後の文字を配置する際に使用される。結合前の認識セルの内部の色の削除する場合は、スキャン画像のセルの罫線が、1404のように桁を区切るための罫線であることが多く、桁を区切る罫線は、上下のセルと共通であることが多い。上下のセルと桁を合わせ、編集後の文字を配置した際の違和感をなくすため、編集後に配置できる文字数は編集前に配置されていた文字数と同一にすることが望ましい。このために、制御部203は編集後に配置できる文字数として結合前の各認識文字の文字数を保存する。また、各結合前の認識セルの編集後に配置できる文字数は、編集後の文字の文字数と、結合後の認識セル内の結合後の文字領域が右寄せか、左寄せかの条件により、再設定される。詳細は、S2605の説明において、説明する。
図27を用いてS1507で保存される情報について具体的に説明する。この例では、結合前の認識セルである2701の位置情報と関連付けて、「1」という認識文字の文字数である1文字という情報が編集後に配置できる文字数として保存される。同様に2702の位置情報と関連付けて「234」という認識文字の文字数である3文字という情報が編集後に配置できる文字数として保存部202に保存される。また、2703の位置情報と関連付けて「567」という認識文字の文字数である3文字という情報が編集後に配置できる文字数として保存される。
図26は第1の実施形態において図11で説明したS905.1の処理を、スキャン画像のセルの罫線と編集後の文字が重ならないよう考慮した場合のフローチャートである。S2601で制御部203は選択された認識セルが結合後の認識セルかの判断を行う。結合後の認識セルでないと判断した場合、制御部203は図11の処理と同様の処理であるS1101からS1103の処理を行う。
結合後の認識セルと判断した場合、S2602で制御部203は結合前の認識セル内部を削除したかの判断を行う。これはS2200において、削除範囲を結合前の認識セルと判断した場合、すなわち、1403のラジオボタンにおいて、「結合前の認識セル内部を削除する」が選択されている場合、認識セル内部を削除したと判断する。
結合前の認識セル内部を削除していないと判断した場合、結合後の認識セルを認識セルとして扱い、S1101からS1103の処理を行う。結合前の認識セル内部を削除したと判断した場合、制御部203はS2603の結合後の認識セルに関連付けられた情報を保存部202から取得する。結合後の認識セルに関連付けられた情報とは、結合前の認識セルの位置情報、結合後の文字領域の位置情報、結合前の文字領域の位置情報、編集後に配置できる文字数である。S2604で制御部203は結合後の認識セルと結合後の文字領域の位置情報を用いて、結合後の認識セル内の文字領域が右寄せか、左寄せかの判断を行う。右寄せか、左寄せかの判断方法は、S1102と同様の方法で、結合後の認識セルと結合後の文字領域を用いて基準線の特定を行い、基準線が右辺の場合は右寄せ、基準線が左辺の場合は左寄せと判断する。
S2604で右寄せと判断された場合は、S2605からS2607において、結合前の認識セルの右側から順に編集後の文字を配置する。また、左寄せと判断された場合は、結合前の認識セルの左側から順に編集後の文字を配置する。以下、S2605からS2607の説明では、右寄せと判断された場合について説明するが、左寄せと判断された場合でも同様の処理を行う。
S2605で制御部203はS2704で右寄せと判断された場合、右側の結合前の認識セルから順に、すなわち、結合前の認識セルの右辺のx座標の値が大きい順に結合前の認識セルを選択する。制御部203は選択された順に、結合前の認識セルと関連付けられた配置できる文字数分、配置するよう編集後の文字の右側から選択し、各結合前の認識セルに配置する文字列を決定する。
図27を用いて具体的に説明する。2709は、2700のように「1234567」と記載された領域に、編集後の文字列として「1234」を配置した場合の図である。この場合、結合前の認識セルの右辺のx座標の値は、2703、2702、2701の順に大きい。よって、制御部203はY座標の値が一番大きい2703に、2703に関連付けられた3文字配置できるという情報から、「1234」のうちの文字の右側から3文字である、「234」を配置すると決定する。制御部203は次に右辺のx座標の値が大きい2702に関連付けられた3文字配置できるという情報から、残りの1文字は2702に配置すると決定する。
また、結合前の認識セルと関連付けられた配置できる文字数をすべて足しても、編集後の文字列の文字数のほうが大きい場合は、制御部203は残りの文字を結合前の認識セルのうち、最も左側(左寄せの場合は最も右側)の認識セルに配置すると決定する。具体的には、制御部203は結合前の文字領域の右辺のx座標の値が最も小さい認識セル配置するよう分割する。
図27を用いて具体的に説明する。2710は、2700のように「1234567」と記載された領域に編集後の文字列として「123456789」を配置した場合の図である。この場合、制御部203はx座標の値が一番大きい2703に、編集後の文字の右から3文字である「789」を配置すると決定する。同様に、制御部203は、2702に残りの文字列の右から3文字である「456」を配置するよう分割する。次に、2701に関連付けられているのは1文字という情報だが、2704はx座標の値が最も小さい認識セルなので、制御部203は残りの文字列である「123」の3文字をすべて配置すると決定する。この処理により、編集後の文字列が分割され、どの認識セルにどの文字列を配置するかが決定される。
S2606で制御部203は、各結合前の認識セルの位置情報と結合前の文字領域の位置情報を用いて、基準線を設定する。基準線の設定は、S1102の基準線の特定と同様の方法で行う。S2607で制御部203は。結合前の各認識セルにS2605で配置すると決定された分割後の文字列を配置する。文字列を配置する方法はS1103と同様の方法で配置する。
本実施形態のように、結合前の認識セルに、編集後の文字列を分割して配置することで、結合前の認識セルの内部の色を削除した場合でも、スキャン画像のセルの罫線と編集後の文字が重ならずに文字を配置することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (11)

  1. 文書の画像を取得する取得手段と、
    前記画像に含まれる表領域から検出した白画素塊の外接矩形に基づいて、矩形の認識セルを特定する特定手段と、
    前記認識セルを構成する四辺の周囲の領域それぞれから直線を検出する検出手段と、
    前記画像において、前記検出手段で検出された四本の直線に囲まれた領域の内部の色情報を削除する削除手段と
    を有することを特徴とする情報処理装置。
  2. 前記認識セルを構成する四辺の周囲の領域とは、各辺を基準として各辺の直行方向に広がった領域であることを特徴とする請求項1に記載の情報処理装置。
  3. 前記検出手段は、前記認識セルに対応するセルの罫線のエッジに基づいて前記直線を検出することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記検出手段は、
    前記四辺の周囲の領域からエッジ画素の検出を行うエッジ検出手段と、
    前記エッジ検出手段で検出された各エッジ画素を通る線の重複回数に基づいて、前記直線を検出する罫線検出手段とを有する
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記罫線検出手段は、
    一つの辺の周囲の領域から複数本の線が検出された場合に、前記認識セルの中心位置を基準として当該複数本の線のうちの最も内側の線を、前記直線として検出することを特徴とする請求項4に記載の情報処理装置。
  6. 前記特定手段で前記表領域から複数の認識セルが特定され、当該特定された複数の認識セルからユーザの操作に基づいて1つの認識セルが選択されて編集の指示が為された場合、前記削除手段は、前記画像において、当該選択された1つの認識セルを構成する四辺の周囲の領域それぞれから前記検出手段で検出された四本の直線に囲まれた領域の内部の色情報を削除することを特徴とする請求項に記載の情報処理装置。
  7. 前記編集の指示は前記選択された1つの認識セルに配置される文字の編集の指示であって、当該文字の編集の指示が為された場合、前記画像において、前記選択された1つの認識セルを構成する四辺の周囲の領域それぞれから前記検出手段で検出された四本の直線に囲まれた領域の内部の色情報を前記削除手段で削除した後に、編集後の文字を前記選択された1つの認識セル内に配置する配置手段を更に有することを特徴とする請求項6に記載の情報処理装置。
  8. 前記削除手段は、前記検出手段で検出された四本の直線に囲まれた領域の内部の画素の色情報を、規定の色情報に置換することにより、前記検出手段で検出された四本の直線に囲まれた領域の内部の色情報を削除する、ことを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
  9. 前記取得手段で取得される画像は、スキャナで前記文書をスキャンすることにより生成されるスキャン画像である、ことを特徴とする請求項1乃至8の何れか1項に記載の情報処理装置。
  10. 画像を取得する取得工程と、
    前記画像に含まれる表領域から検出した白画素塊の外接矩形に基づいて、矩形の認識セルを特定する特定工程と、
    前記認識セルを構成する四辺の周囲の領域それぞれから直線を検出する検出工程と、
    前記画像において、前記検出工程で検出された四本の直線に囲まれた領域の内部の色情報を削除する削除工程と
    を有することを特徴とする情報処理方法。
  11. 請求項1乃至9の何れか1項に記載の情報処理装置の各手段として、コンピュータを機能させるためのコンピュータで読み取り可能なプログラム。
JP2014209332A 2014-07-07 2014-10-10 情報処理装置、情報処理方法、プログラム Active JP6463066B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014209332A JP6463066B2 (ja) 2014-07-07 2014-10-10 情報処理装置、情報処理方法、プログラム
US14/791,070 US9898845B2 (en) 2014-07-07 2015-07-02 Information processing apparatus, information processing method, and storage medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014139868 2014-07-07
JP2014139868 2014-07-07
JP2014209332A JP6463066B2 (ja) 2014-07-07 2014-10-10 情報処理装置、情報処理方法、プログラム

Publications (3)

Publication Number Publication Date
JP2016027444A JP2016027444A (ja) 2016-02-18
JP2016027444A5 JP2016027444A5 (ja) 2017-11-09
JP6463066B2 true JP6463066B2 (ja) 2019-01-30

Family

ID=55017338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014209332A Active JP6463066B2 (ja) 2014-07-07 2014-10-10 情報処理装置、情報処理方法、プログラム

Country Status (2)

Country Link
US (1) US9898845B2 (ja)
JP (1) JP6463066B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6808330B2 (ja) * 2016-02-26 2021-01-06 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP6531738B2 (ja) * 2016-08-08 2019-06-19 京セラドキュメントソリューションズ株式会社 画像処理装置
JP6900164B2 (ja) * 2016-09-27 2021-07-07 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP6696445B2 (ja) * 2017-01-18 2020-05-20 京セラドキュメントソリューションズ株式会社 画像処理装置
KR102655430B1 (ko) * 2021-02-22 2024-04-08 네이버 주식회사 테이블 생성 방법 및 시스템
JP2022174656A (ja) * 2021-05-11 2022-11-24 広島県公立大学法人 コンクリート構造物検査システム、コンクリート構造物検査用ドローンおよびコンクリート構造物検査方法
JP2022178570A (ja) * 2021-05-20 2022-12-02 シャープ株式会社 画像処理装置、制御方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07107694B2 (ja) * 1984-08-31 1995-11-15 株式会社日立製作所 文書処理装置
JPS61193281A (ja) * 1985-02-22 1986-08-27 Hitachi Ltd 文書入力方式
JP2001094760A (ja) * 1999-09-22 2001-04-06 Canon Inc 情報処理装置
JP5374220B2 (ja) * 2009-04-23 2013-12-25 キヤノン株式会社 動きベクトル検出装置およびその制御方法、ならびに撮像装置
JP5867045B2 (ja) * 2011-12-12 2016-02-24 富士ゼロックス株式会社 画像処理装置及びプログラム
US9165187B2 (en) * 2012-01-12 2015-10-20 Kofax, Inc. Systems and methods for mobile image capture and processing

Also Published As

Publication number Publication date
US9898845B2 (en) 2018-02-20
US20160005203A1 (en) 2016-01-07
JP2016027444A (ja) 2016-02-18

Similar Documents

Publication Publication Date Title
JP6463066B2 (ja) 情報処理装置、情報処理方法、プログラム
EP2966578B1 (en) Information processing apparatus, information processing method, program, and storage medium
US6587587B2 (en) System and methods for spacing, storing and recognizing electronic representations of handwriting, printing and drawings
US10222971B2 (en) Display apparatus, method, and storage medium
JP6797636B2 (ja) サーバ装置、情報処理方法、及びプログラム
US10607381B2 (en) Information processing apparatus
CN107133615B (zh) 信息处理设备和信息处理方法
JP6150766B2 (ja) 情報処理装置、プログラム、及び自動ページ差し替え方法
JP2013168018A (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
US20160349968A1 (en) Methods of Content-Based Image Area Selection
JP5981175B2 (ja) 図面表示装置、及び図面表示プログラム
US11588945B2 (en) Data input support apparatus that displays a window with an item value display area, an overview image display area, and an enlarged image display area
US8355577B2 (en) Image processing apparatus and method
JP5921156B2 (ja) 印刷装置、レイアウト変更方法、及びプログラム
JP5917016B2 (ja) 情報処理装置、その制御方法、および制御プログラム
CN113506354A (zh) 一种文字渲染方法、装置及电子设备
CN105302431A (zh) 图像处理设备、图像处理方法和图像处理系统
JP6452329B2 (ja) 情報処理装置、情報処理方法、プログラム
JP7324305B2 (ja) 電子帳票作成装置、電子帳票作成方法、及びプログラム
US10146763B2 (en) Renderable text extraction tool
JP6489768B2 (ja) 情報処理装置、情報処理方法、プログラム
JP6370162B2 (ja) 情報処理装置、情報処理方法、プログラム
JP2013164659A (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
US10404872B2 (en) Multi-function device with selective redaction
JP2014211747A (ja) 画像処理装置、端末装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170926

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181228

R151 Written notification of patent or utility model registration

Ref document number: 6463066

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151