(58)【調査した分野】(Int.Cl.,DB名)
前記判別手段は、前記画像に含まれる前記文字列に対する前記書き込みオブジェクトの位置に基づいて、当該書き込みオブジェクトが前記文字列に対して付加される所定のオブジェクトであるか否かを判別し、
前記補正手段は、前記判別手段により前記書き込みオブジェクトが前記所定のオブジェクトであると判別された場合に、前記文字列に対して予め設定される位置に当該書き込みオブジェクトを配置することを特徴とする請求項3に記載の情報処理装置。
前記補正手段は、前記書き込みオブジェクトが前記2つの端点を結ぶ線分を含む所定範囲内にあることを条件として、当該書き込みオブジェクトを前記線分に補正することを特徴とする請求項7に記載の情報処理装置。
前記基準検出手段は、複数のページからなるドキュメント内に画像が含まれる場合に、各ページに含まれる画像に基づいて、ページ毎に前記基準方向を検出することを特徴とする請求項1乃至9のいずれかに記載の情報処理装置。
前記判別手段は、前記画像に含まれる前記文字列に対する前記書き込みオブジェクトの位置に基づいて、当該書き込みオブジェクトが前記文字列に対して付加される所定のオブジェクトであるか否かを判別し、
前記補正手段は、前記判別手段により前記書き込みオブジェクトが前記所定のオブジェクトであると判別された場合に、前記文字列に対して予め設定される位置に当該書き込みオブジェクトを配置することを特徴とする請求項14に記載のプログラム。
前記補正手段は、前記書き込みオブジェクトが前記2つの端点を結ぶ線分を含む所定範囲内にあることを条件として、当該書き込みオブジェクトを前記線分に補正することを特徴とする請求項18に記載のプログラム。
前記基準検出手段は、複数のページからなるドキュメント内に画像が含まれる場合に、各ページに含まれる画像に基づいて、ページ毎に前記基準方向を検出することを特徴とする請求項12乃至20のいずれかに記載のプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に示す画像処理装置によっても、ユーザーにより書き込まれたオブジェクトが、表示手段に表示されている画像や文字列に対して的確な位置に表示されるよう補正することはできないという問題がある。なぜなら、上述したようにスキャン処理により生成された画像データの場合、画像や文字列が傾斜している場合があるため、このような場合にオブジェクトを走査線方向に補正しても、画像や文字列の配置とは無関係の位置にオブジェクトが表示されるだけであり、オブジェクトを的確な位置に表示させることができないからである。
【0007】
そこで本発明は、上記問題点を解決するためになされたものであり、ユーザーの操作に応じて、表示手段に表示されている画像や文字に対して書き込まれたオブジェクトを的確な位置に表示可能な情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、請求項1に係る発明は、所定の表示手段に画像を表示可能な情報処理装置であって、前記表示手段に画像が表示されている状態で、ユーザーによる操作に応じて当該画像に対する書き込み入力を受け付ける受付手段と、前記受付手段に受け付けられた書き込み入力に応じて、書き込みオブジェクトを生成
し、当該書き込みオブジェクトを前記画像に付加する生成手段と、
前記画像において前記書き込みオブジェクトの近傍に位置する文字列を検出し、当該文字列の配列方向に基づいて前記画像の基準方向を検出する基準検出手段と、
前記画像に付加された前記書き込みオブジェクトの傾斜方向を検出する傾斜検出手段と、前記傾斜検出手段により検出された前記傾斜方向と前記基準方向との角度の差分がユーザーによって予め設定された範囲内である場合に、前記傾斜方向が前記基準方向と平行な状態となるように前記書き込みオブジェクトを補正する補正手段と、
前記画像に付加されている前記書き込みオブジェクトを、前記
補正手段によ
って補正された書き込みオブジェクト
で更新する表示制御手段とを備えることを特徴とする構成である。
【0009】
請求項2に係る発明は、
所定の表示手段に画像を表示可能な情報処理装置
であって、前記表示手段に画像が表示されている状態で、ユーザーによる操作に応じて当該画像に対する書き込み入力を受け付ける受付手段と、前記受付手段に受け付けられた書き込み入力に応じて、書き込みオブジェクトを生成し、当該書き込みオブジェクトを前記画像に付加する生成手段と、前記画像に
おいて前記書き込みオブジェクトの近傍に位置する文字列を検出
し、当該文字列の配列方向に基づいて
前記画像の基準方向を検出する
基準検出手段と、前記画像に付加された前記書き込みオブジェクトの傾斜方向を検出する傾斜検出手段と、前記傾斜検出手段により検出された前記傾斜方向が前記基準方向と平行な状態となるように前記書き込みオブジェクトを補正する補正手段と、前記画像に付加されている前記書き込みオブジェクトを、前記補正手段によって補正された書き込みオブジェクトで更新する表示制御手段と、を備え、前記書き込みオブジェクトは、ユーザーによる操作に応じて書き込み入力された線により構成される線状オブジェクトを含んでおり、前記補正手段は、前記書き込みオブジェクトが前記線状オブジェクトである場合に、前記線状オブジェクトの前記基準方向における長さが所定値以上であるとき、前記傾斜方向と前記基準方向との差分が第1範囲内にあることを条件として、前記傾斜方向が前記基準方向と平行な状態となるように前記書き込みオブジェクトの補正を行うと共に、前記線状オブジェクトの前記基準方向における長さが所定値未満であるとき、前記傾斜方向と前記基準方向との差分が前記第1範囲を含む第2範囲内にある場合に、前記傾斜方向が前記基準方向と平行な状態となるように前記書き込みオブジェクトの補正を行うことを特徴とする構成である。
【0015】
請求項
3に係る発明は、請求項
1又は2に記載の情報処理装置において、前記書き込みオブジェクトの種類を判別する判別手段をさらに備え、前記補正手段は、前記判別手段により判別された前記書き込みオブジェクトの種類に応じて、当該書き込みオブジェクトの補正を行うことを特徴とする構成である。
【0016】
請求項
4に係る発明は、請求項
3に記載の情報処理装置において、前記判別手段は、前記画像に含まれる前記文字列に対する前記書き込みオブジェクトの位置に基づいて、当該書き込みオブジェクトが前記文字列に対して付加される所定のオブジェクトであるか否かを判別し、前記補正手段は、前記判別手段により前記書き込みオブジェクトが前記所定のオブジェクトであると判別された場合に、前記文字列に対して予め設定される位置に当該書き込みオブジェクトを配置することを特徴とする構成である。
【0017】
請求項
5に係る発明は、請求項
1乃至
4のいずれかに記載の情報処理装置において、前
記文字列を解析して前記文字列における所定の区切り位置を検出する区切り検出手段をさらに備え、前記補正手段は、前記書き込みオブジェクトの端点が前記区切り位置を含む所定範囲内にある場合に、当該端点を前記区切り位置に一致させることを特徴とする構成である。
【0018】
請求項
6に係る発明は、請求項
5に記載の情報処理装置において、前記区切り検出手段は、前記文字列における単語の区切り位置を検出し、前記補正手段は、前記区切り検出手段により検出された単語の区切り位置を含む所定範囲内に前記書き込みオブジェクトの端点がある場合に、当該端点を前記単語の区切り位置に一致させることを特徴とする構成である。
【0019】
請求項
7に係る発明は、請求項
1乃至
6のいずれかに記載の情報処理装置において、前記補正手段は、前記書き込みオブジェクトが2つの端点を有する場合に、当該書き込みオブジェクトを前記2つの端点を結ぶ線分に補正することを特徴とする構成である。
【0020】
請求項
8に係る発明は、請求項
7に記載の情報処理装置において、前記補正手段は、前記書き込みオブジェクトが前記2つの端点を結ぶ線分を含む所定範囲内にあることを条件として、当該書き込みオブジェクトを前記線分に補正することを特徴とする構成である。
【0021】
請求項
9に係る発明は、請求項
1乃至
8のいずれかに記載の情報処理装置において、前記画像は、ドキュメントを構成するページ内に配置され、前
記文字列を含む前記画像を、前記ページの一の端辺と平行になるように補正する画像補正手段をさらに備えることを特徴とする構成である。
【0022】
請求項
10に係る発明は、請求項1乃至
9のいずれかに記載の情報処理装置において、前記基準検出手段は、複数のページからなるドキュメント内に画像が含まれる場合に、各ページに含まれる画像に基づいて、ページ毎に前記基準方向を検出することを特徴とする構成である。
【0023】
請求項
11に係る発明は、請求項1乃至
10のいずれかに記載の情報処理装置において、前記画像は、スキャン機能により生成された
画像であることを特徴とする構成である。
【0024】
請求項
12に係る発明は、所定の表示手段に画像を表示可能な情報処理装置において実行されるプログラムであって、前記情報処理装置を、前記表示手段に画像が表示されている状態で、ユーザーによる操作に応じて当該画像に対する書き込み入力を受け付ける受付手
段、前記受付手段に受け付けられた書き込み入力に応じて、書き込みオブジェクトを生成
し、当該書き込みオブジェクトを前記画像に付加する生成手
段、前記画像において前記書き込みオブジェクトの近傍に位置する文字列を検出し、当該文字列の配列方向に基づいて前記画像の基準方向を検出する基準検出手段、前記画像に付加された前記書き込みオブジェクトの傾斜方向を検出する傾斜検出手段、前記傾斜検出手段により検出された前記傾斜方向と前記基準方向との角度の差分がユーザーによって予め設定された範囲内である場合に、前記傾斜方向が前記基準方向と平行な状態となるように前記書き込みオブジェクトを補正する補正手段、および、前記画像に付加されている前記書き込みオブジェクトを、前記補正手段によって補正された書き込みオブジェクトで更新する表示制御手段、として機能させることを特徴とする構成である。
【0025】
請求項
13に係る発明は、
所定の表示手段に画像を表示可能な情報処理装置において実行されるプログラムであって、前記情報処理装置を、
前記表示手段に画像が表示されている状態で、ユーザーによる操作に応じて当該画像に対する書き込み入力を受け付ける受付手段、前記受付手段に受け付けられた書き込み入力に応じて、書き込みオブジェクトを生成し、当該書き込みオブジェクトを前記画像に付加する生成手段、前記画像に
おいて前記書き込みオブジェクトの近傍に位置する文字列を検出
し、当該文字列の配列方向に基づいて
前記画像の基準方向を検出する
基準検出手段、前記画像に付加された前記書き込みオブジェクトの傾斜方向を検出する傾斜検出手段、前記傾斜検出手段により検出された前記傾斜方向が前記基準方向と平行な状態となるように前記書き込みオブジェクトを補正する補正手段、および、前記画像に付加されている前記書き込みオブジェクトを、前記補正手段によって補正された書き込みオブジェクトで更新する表示制御手段、として機能させ、前記書き込みオブジェクトは、ユーザーによる操作に応じて書き込み入力された線により構成される線状オブジェクトを含んでおり、前記補正手段は、前記書き込みオブジェクトが前記線状オブジェクトである場合に、前記線状オブジェクトの前記基準方向における長さが所定値以上であるとき、前記傾斜方向と前記基準方向との差分が第1範囲内にあることを条件として、前記傾斜方向が前記基準方向と平行な状態となるように前記書き込みオブジェクトの補正を行うと共に、前記線状オブジェクトの前記基準方向における長さが所定値未満であるとき、前記傾斜方向と前記基準方向との差分が前記第1範囲を含む第2範囲内にある場合に、前記傾斜方向が前記基準方向と平行な状態となるように前記書き込みオブジェクトの補正を行うことを特徴とする構成である。
【0031】
請求項
14に係る発明は、請求項
12又は13に記載のプログラムにおいて、前記情報処理装置を、前記書き込みオブジェクトの種類を判別する判別手段としてさらに機能させ、前記補正手段は、前記判別手段により判別された前記書き込みオブジェクトの種類に応じて、当該書き込みオブジェクトの補正を行うことを特徴とする構成である。
【0032】
請求項
15に係る発明は、請求項
14に記載のプログラムにおいて、前記判別手段は、前記画像に含まれる前記文字列に対する前記書き込みオブジェクトの位置に基づいて、当該書き込みオブジェクトが前記文字列に対して付加される所定のオブジェクトであるか否かを判別し、前記補正手段は、前記判別手段により前記書き込みオブジェクトが前記所定のオブジェクトであると判別された場合に、前記文字列に対して予め設定される位置に当該書き込みオブジェクトを配置することを特徴とする構成である。
【0033】
請求項
16に係る発明は、請求項
12乃至
15のいずれかに記載のプログラムにおいて、前記情報処理装置を、前
記文字列を解析して、前記文字列における所定の区切り位置を検出する区切り検出手段としてさらに機能させ、前記補正手段は、前記書き込みオブジェクトの端点が前記区切り位置を含む所定範囲内にある場合に、当該端点を前記区切り位置に一致させることを特徴とする構成である。
【0034】
請求項
17に係る発明は、請求項
16に記載のプログラムにおいて、前記区切
り検出手段は、前記文字列における単語の区切り位置を検出し、前記補正手段は、前記区切り検出手段により検出された単語の区切り位置を含む所定範囲内に前記書き込みオブジェクトの端点がある場合に、当該端点を前記単語の区切り位置に一致させることを特徴とする構成である。
【0035】
請求項
18に係る発明は、請求項
12乃至
17のいずれかに記載のプログラムにおいて、前記補正手段は、前記書き込みオブジェクトが2つの端点を有する場合に、当該書き込みオブジェクトを前記2つの端点を結ぶ線分に補正することを特徴とする構成である。
【0036】
請求項
19に係る発明は、請求項
18に記載のプログラムにおいて、前記補正手段は、前記書き込みオブジェクトが前記2つの端点を結ぶ線分を含む所定範囲内にあることを条件として、当該書き込みオブジェクトを前記線分に補正することを特徴とする構成である。
【0037】
請求項
20に係る発明は、請求項
12乃至
19のいずれかに記載のプログラムにおいて、前記画像は、ドキュメントを構成するページ内に配置され、前記情報処理装置を
、前
記文字列を含む前記画像を、前記ページの一の端辺と平行になるように補正する画像補正手段としてさらに機能させることを特徴とする構成である。
【0038】
請求項
21に係る発明は、請求項
12乃至
20のいずれかに記載のプログラムにおいて、前記基準検出手段は、複数のページからなるドキュメント内に画像が含まれる場合に、各ページに含まれる画像に基づいて、ページ毎に前記基準方向を検出することを特徴とする構成である。
【0039】
請求項
22に係る発明は、請求項
12乃至
21のいずれかに記載のプログラムにおいて、前記画像は、スキャン機能により生成された
画像であることを特徴とする構成である。
【発明の効果】
【0040】
本発明によれば、表示手段に表示されている画像や文字に対してユーザーの操作に応じて書き込まれたオブジェクトを、画像や文字に対する適切な位置に表示させることが可能であり、資料作成の効率性が向上するのである。
【発明を実施するための形態】
【0042】
以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する部材には同一符号を付しており、それらについての重複する説明は省略する。
【0043】
図1は、本発明の一実施形態である情報処理システム1の構成例を示す図である。この情報処理システム1は、スマートフォンやタブレット端末、或いはパーソナルコンピュータ(PC)などで構成される情報処理装置2と、情報処理装置2と通信可能な画像処理装置4を備える。画像処理装置4は、MFP(Multifunction Peripheral)などで構成され、ユーザーによる指示操作によって投入されるスキャンジョブを実行することができる装置である。これとは異なり、画像処理装置4は、スキャン機能のみを備える装置であってもよい。情報処理装置2は、bluetooth(登録商標)やWiFiなどの電波を利用した無線通信機能を備え、画像処理装置4との間で無線通信を行うことが可能である。また、情報処理装置2と画像処理装置4は、図示しないLAN(Local Area Network)やインターネットなどのネットワークを経由して互いに通信可能である。
【0044】
画像処理装置4は、原稿5に対しスキャン処理を行うことにより、ドキュメントデータD1を生成する。ドキュメントデータD1は、例えばビットマップやJPEGなどの画像データである。また、これとは異なり、ドキュメントデータD1はスキャン処理により生成されたものではなく、例えば文書編集アプリケーションなどにより生成されたデータであり、テキストデータを含むものであってもよい。情報処理装置2は、無線通信やネットワークを経由して、画像処理装置4からドキュメントデータD1を取得可能である。情報処理装置2は、表示部10を備え、ドキュメントデータD1に基づいて表示部10に画像を表示可能である。
図2は、ドキュメントデータD1に基づいて画像を表示する場合における画面構成の一例を示した図である。
図2(a)に示すように、表示部10内に、ドキュメントデータD1を構成するページP1が表示され、ページP1内に画像A1が表示される。ドキュメントデータD1は、複数のページP1により構成される場合があり、この場合、情報処理装置2は、表示部10内に1つのページP1を表示させることができ、また、複数のページP1を並べて表示させることも可能である。
【0045】
画像A1は、
図2(a)に示すようにページP1の上辺及び下辺に対して平行に表示される場合もあり、これとは異なり、ページP1の上辺及び下辺に対して傾斜して表示される場合もある。また、ドキュメントデータD1が複数のページP1により構成される場合、ページP1毎に画像A1の傾斜の有無、又は傾斜の程度が異なることがある。
【0046】
図2(b)は、表示部10に画像A1が表示されている場合に、オブジェクトが画像A1に付加される場合の一例を示す図である。表示部10に画像A1が表示されている場合に、ユーザーは、操作部11を操作することにより書込オブジェクトB1を付加することが可能である。操作部11は、例えばマウスなどにより構成され、或いは、表示部10の画面に配置されるタッチセンサなどにより構成される。書込オブジェクトB1は、ユーザーによる操作内容に応じた形状にて表示部10に表示される。
図2(b)の例では、画像A1の文字列に下線が付され、ユーザーが強調したい語を見つけやすくすることができる。
【0047】
上述したように、ユーザーの操作内容に応じた形状の書込オブジェクトB1が付加される場合、付加された書込オブジェクトB1は直線として表示されなかったり、文字列の配列方向に対して傾斜していたり、或いは、ユーザーが書込オブジェクトB1を付加したい文字列に対して的確な位置に表示されなかったりすることがある。そこで、本実施形態における情報処理装置2は、書込オブジェクトB1を、画像A1における文字列の配列方向に基づいて付加されるよう補正することが可能な装置である。以下、情報処理装置2の具体的な構成について説明する。
【0048】
図3は、情報処理装置2の機能構成及びハードウェア構成の一例を示すブロック図である。情報処理装置2は、画像処理装置4との通信におけるインタフェースとなる通信インタフェース14と、CPU12と、記憶部16とを備える。
【0049】
記憶部16は不揮発性の記憶手段である。この記憶部16には、情報処理装置2において実行され、CPU12を以下に説明する各処理部として機能させるプログラム60が格納される。また、記憶部16には、画像処理装置4から取得したドキュメントデータD1が格納される。
【0050】
CPU12は、プログラム60を読み出して実行することにより、ドキュメントデータ取得部20、文字列検出部22、基準検出部24、表示制御部26、操作検知部28、オブジェクト生成部30、オブジェクト判別部32、傾斜検出部34、補正部36、区切検出部38として機能する。表示制御部26は、さらにオブジェクト表示部49として機能する。補正部36は、さらに差分検出部50、オブジェクト補正部52、ドキュメント補正部54としてさらに機能する。
【0051】
ドキュメントデータ取得部20は、情報処理装置2が通信インタフェース14を経由して画像処理装置4からドキュメントデータD1を受信すると、受信されたドキュメントデータD1を取得する処理部である。ドキュメントデータ取得部20によりドキュメントデータD1が取得されると、文字列検出部22が機能する。文字列検出部22は、ドキュメントデータD1に含まれる画像から文字列を検出する処理部である。
図4は、ドキュメントデータD1が取得された場合の表示部10に表示される画像A1の表示態様の一例を示す図である。ドキュメントデータ取得部20によりドキュメントデータD1が取得されると、
図4(a)に示すようにドキュメントデータD1のページP1が表示部10に表示される。そして、文字列検出部22によりページP1に含まれる文字列が検出される。文字列検出部22により文字列が検出されると、基準検出部24(
図3参照)が機能し、文字列検出部22により検出された文字列の配列方向を検出する。
【0052】
図4(b)は、基準検出部24により検出された文字列の配列方向の一例を示す図である。文字列検出部22によりページP1に含まれる文字列が検出されると、基準検出部24は、文字列を構成する各文字の配列に基づいて、文字列の配列方向を検出する。
図4(a)および(b)に示す例では、各文字はページP1の上辺及び下辺に対して略平行に配列されており、文字列の配列方向は、
図4(b)に示すように基準方向F1である。
【0053】
基準検出部24は、画像A1の基準方向F1を検出する処理部である。本実施形態において基準方向F1は、画像A1に対して付加された書込オブジェクトB1を補正する際の基準となる方向であり、書込オブジェクトB1が基準方向F1に対して傾斜する場合に、後述する補正部36は、基準方向F1に一致するように例えば書込オブジェクトB1を回転させる。本実施形態において基準検出部24は、文字列の配列方向を検出すると、検出された配列方向を画像A1の基準方向F1に決定する。これにより、後述する補正部36により、書込オブジェクトB1が画像A1に含まれる文字列の配列方向に一致するよう補正されるため、書込オブジェクトB1が文字列に対して的確に付加されるのである。
【0054】
操作検知部28は、表示部10に画像A1が表示されている状態で、ユーザーにより操作部11に対する操作が行われると、ユーザーによる操作に応じて画像A1に対する書き込み入力を受け付ける処理部である。本実施形態において、書き込み入力の受付を開始する旨の指示が検知されると、操作検知部28は、書き込み入力を受け付ける。そして、書き込み入力の受付を終了する旨の指示が検知されると、操作検知部28は、書き込み入力の受付を終了する。
【0055】
操作検知部28により書き込み入力が受け付けられると、オブジェクト生成部30が機能する。オブジェクト生成部30は、操作検知部28により受け付けられた書き込み入力に応じて書込オブジェクトB1を生成する処理部である。オブジェクト生成部30は、操作検知部28により受け付けられた書き込み入力に基づいて、書込オブジェクトB1を生成し、画像A1に対して生成された書込オブジェクトB1を付加する。そして、本実施形態においては、オブジェクト生成部30により書込オブジェクトB1が生成されると、表示制御部26により表示部10に書込オブジェクトB1が表示される。
【0056】
図5は、画像A1に書込オブジェクトB1が付加された場合の一例を示す図である。操作検知部28により書き込み入力が受け付けられている間に、ユーザーが操作部11を操作すると、操作検知部28は、例えばページP1内においてユーザーによる操作が開始された位置と、操作の軌跡に沿った位置を取得する。そして、オブジェクト生成部30は、例えば操作検知部28により取得された操作開始位置と操作の軌跡に沿った位置に基づいて、書込オブジェクトB1をページP1内に生成する。図例では、文字列に対し直線により構成される直線オブジェクトB2(B1)と、二重線により構成される二重線オブジェクトB6(B1)と、方形により構成される囲み枠オブジェクトB8(B1)と、文字により構成される文字オブジェクトB10(B1)が画像A1に付加される。これらのオブジェクトは、ユーザーによる操作の軌跡に基づく描画により生成されるオブジェクトである。そのため、文字列に対して付加された下線(二重下線)や囲み枠が基準方向F1に対して傾いていたり、或いは文字列における適切な位置に付加されていないということが生じる。上述した直線オブジェクトB2、二重線オブジェクトB6及び囲み枠オブジェクトB8は、ユーザーの操作に応じて書き込み入力された線により構成される線状オブジェクトに含まれる。また、波線や二重波線を含む曲線により構成される書込オブジェクトB1も、線状オブジェクトに含まれる。これに対し、文字や記号などは線状オブジェクトに含まれない。
【0057】
オブジェクト生成部30により画像A1に書込オブジェクトB1が付加されてから、書き込み入力の受け付けを終了する旨の指示が操作検知部28に検知されると、これ以降に操作部11に対する操作が操作検知部28により検知されても、操作検知部28は、書き込み入力として当該操作を受け付けない。書き込み入力の受付を終了する旨の指示が操作検知部28により検知されると、オブジェクト判別部32が機能する。
【0058】
オブジェクト判別部32は、書込オブジェクトB1の種類を判別する処理部である。書き込み入力が受け付けられている間にオブジェクト生成部30によって画像A1に付加された書込オブジェクトB1は、各々いずれの種類に属するオブジェクトであるのか未だ判別されていない。操作検知部28による書き込み入力の受け付けが終了すると、オブジェクト判別部32は、ページP1内の書込オブジェクトB1の種類の判別を行う。まず、オブジェクト判別部32は、互いに所定距離以上離れているオブジェクトを異なる書込オブジェクトB1であると判別する。
図5(a)の例において、オブジェクト判別部32は、画像A1に含まれる文字「資料1」を囲むように付加されたオブジェクトと、算用数字「130」上に付加されたオブジェクトとの距離を検出し、所定値以上である場合に、これら2つのオブジェクトを異なる書込オブジェクトB1であると判別する。同様に、その他のオブジェクト同士の距離を検出し、オブジェクト同士の距離が所定値以上である場合、各オブジェクトはそれぞれ別の書込オブジェクトB1であると判別する。
【0059】
画像A1に付加された各書込オブジェクトB1が判別されると、次に、オブジェクト判別部32は、補正処理の対象となり得る書込オブジェクトB1であるか、補正処理の対象とならない書込オブジェクトB1であるかを判別する。オブジェクト判別部32は、画像A1に含まれる文字列に対する書込オブジェクトB1の位置に基づいて、当該書込オブジェクトB1が文字列に対して付加され、補正処理の対象となり得る書込オブジェクトB1であるか否かを判別する。本実施形態において、オブジェクト判別部32は、画像A1の文字列から所定範囲外に付加されている書込オブジェクトB1を補正処理の対象とならない書込オブジェクトB1であると判別する。文字列から所定範囲外に付加された書込オブジェクトB1は、文字列に対して書き込まれたものではないと判断されるからである。また、オブジェクト判別部32は、文字により構成される書込オブジェクトB1を補正対象とならない書込オブジェクトB1であると判別する。文字により構成される書込オブジェクトB1は、補正を行わなくとも書き込み入力に応じて付加された状態で解読可能だからである。これとは異なり、全ての書込オブジェクトB1を補正対象となり得るとしてもよい。
【0060】
オブジェクト判別部32は、補正対象となり得ると判別された書込オブジェクトB1が、画像A1に含まれる文字列のうち、いずれの文字列に付加されているのかをさらに判別する。一例として、画像A1に含まれる各文字列から所定距離内に書込オブジェクトB1があるか否かを判定し、ある文字列から所定距離内にある書込オブジェクトB1を、当該文字列に対して付加された書込オブジェクトB1であると判別する。文字列から所定距離内に書込オブジェクトB1があるか否かの一判定基準として、例えば、書込オブジェクトB1を構成する線のうち所定割合(例えば60%)以上の線が文字列から所定距離内にある場合に、当該文字列に付加された書込オブジェクトB1であると判別してもよい。
【0061】
次にオブジェクト判別部32は、補正対象となり得ると判別された書込オブジェクトB1の種類を判別する。オブジェクト判別部32は、書込オブジェクトB1の端点を検出する。そして、2つの端点が検出される場合、オブジェクト判別部32は、当該書込オブジェクトB1がこれら2つの端点を結ぶ直線から所定範囲内にあるときに、当該書込オブジェクトB1を直線オブジェクトB2であると判別する。
図5(b)の例では、2つの端点が検出されることから、これら2つの端点を結ぶ直線m1から所定範囲内に書込オブジェクトB1がある。そこで、オブジェクト判別部32は、当該書込オブジェクトB1を直線オブジェクトB2であると判別する。
【0062】
さらにオブジェクト判別部32は、文字列に付加された直線オブジェクトB2の位置に基づいて、当該直線オブジェクトB2が当該文字列に対して下線として書き込まれたものであるのか、或いは取消線として書き込まれたものであるのかを判別する。例えば
図5(c)に示すように、直線オブジェクトB2が文字列a1に対して付加されたものであると判別された場合に、オブジェクト判別部32は、文字列a1の中心線CLよりも直線オブジェクトB2がページP1において上方に付加されていれば、当該直線オブジェクトB2を、文字列a1に対して付加された取消線と判別する。他方、文字列a1の中心線CLよりも直線オブジェクトB2がページP1において下方に付加されている場合、当該直線オブジェクトB2を下線と判別する。
【0063】
書込オブジェクトB1から2つの端点が検出され、書込オブジェクトB1がこれら2つの端点を結ぶ直線m1から所定範囲内にない場合、当該書込オブジェクトB1は直線オブジェクトB2ではないと判定される。次にオブジェクト判別部32は、所定範囲内において各端点を通る略平行な2つの線が当該書込オブジェクトB1から検出される場合に、当該書込オブジェクトB1を二重線と判別する。
図6(d)に示すように、書込オブジェクトB1は端点T1と端点T3を有し、これら2つの端点を結ぶ直線から距離n1以上離れた領域にあるため、直線オブジェクトB2であると判別されない。そして、書込オブジェクトB1は、端点T1と端点T3のそれぞれを通る2つの線が略平行であり、且つこれら2つの線の距離がn3以下であることから、オブジェクト判別部32は、当該書込オブジェクトB1を二重線オブジェクトB6と判別する。
【0064】
さらにオブジェクト判別部32は、書込オブジェクトB1から端点が検出されない場合に、当該書込オブジェクトB1の形状を解析する。そして、当該書込オブジェクトB1が略四角形である場合、オブジェクト判別部32は当該書込オブジェクトB1を囲み枠オブジェクトB8であると判別する。
図6(e)に示すように、文字列上に付加された書込オブジェクトB1は、端点が検出されず、また、4辺に相当する線がそれぞれ検出されると略四角形であると判定され、当該書込オブジェクトB1は囲み枠オブジェクトB8であると判別される。
【0065】
図3に戻り、オブジェクト判別部32により書込オブジェクトB1に対する判別が行われ、書込オブジェクトB1が直線オブジェクトB2、二重線オブジェクトB6又は囲み枠オブジェクトB8のいずれかである場合、傾斜検出部34が機能する。傾斜検出部34は、画像A1に付加された書込オブジェクトB1の傾斜方向F3を検出する処理部である。本実施形態において、傾斜検出部34は、書込オブジェクトB1が直線オブジェクトB2、二重線オブジェクトB6及び囲み枠オブジェクトB8のいずれかである場合に、当該オブジェクトの配置に基づいて傾斜方向F3を検出する。本実施形態において傾斜方向F3は、オブジェクトが配置されている方向である。傾斜方向F3が検出され、画像A1の基準方向F1に基づいて傾斜方向F3が補正されることにより、オブジェクトが基準方向F1に適合した方向に配置され、的確な位置にオブジェクトが付加されるのである。
【0066】
傾斜検出部34は、直線オブジェクトB2、二重線オブジェクトB6及び囲み枠オブジェクトB8の各々に応じて、傾斜方向F3を検出する。例えば、直線オブジェクトB2の場合、傾斜検出部34は、
図5(b)に示すように直線オブジェクトB2の2つの端点を結ぶ直線m1を、直線オブジェクトB2の傾斜方向F3に決定する。
【0067】
二重線オブジェクトB6の場合、傾斜検出部34は、例えば直線近似によって二重線オブジェクトB6の傾斜方向F3を検出する。
図6(d)は、二重線オブジェクトB6の傾斜方向F3の検出の一例を示す図である。近似直線m3は、例えば最小2乗法を用いて求め、得られた近似直線m3を二重線オブジェクトB6の傾斜方向F3に決定する。或いはこれとは異なり、傾斜検出部34は、二重線オブジェクトB6を構成する線の所定割合以上と接する直線m4を検出する。そして、検出された直線m4のうち、基準方向F1に対して最も平行に近い直線m4を傾斜方向F3に決定してもよい。
【0068】
囲み枠オブジェクトB8の場合、傾斜検出部34は、二重線オブジェクトB6と同様に直線近似により囲み枠オブジェクトB8の傾斜方向F3を検出する。
図6(e)は、囲み枠オブジェクトB8の傾斜方向F3を検出する場合の一例を示す図であり、傾斜検出部34は、例えば最小2乗法により得られた近似直線m5を囲み枠オブジェクトB8の傾斜方向F3に決定する。或いは、これとは異なり、傾斜検出部34は、囲み枠オブジェクトB8の各辺の所定割合以上と接する直線m6を検出する。そして、検出された直線m6のうち、基準方向F1に対して最も平行に近い直線m6を傾斜方向F3に決定してもよい。
【0069】
図3に戻り、補正部36は、差分検出部50と、オブジェクト補正部52と、ドキュメント補正部54としてさらに機能する。差分検出部50は、画像A1の基準方向F1と書込オブジェクトB1の傾斜方向F3との角度の差分を検出する処理部である。オブジェクト補正部52は、基準方向F1に基づいて書込オブジェクトB1を補正する処理部である。ドキュメント補正部54は、文字列を含む画像A1をページP1の一の端辺と平行になるように補正する処理部である。
【0070】
差分検出部50は、画像A1の基準方向F1と書込オブジェクトB1の傾斜方向F3との角度を検出する。
図7は、補正部36により書込オブジェクトB1が補正される場合の一例を示す図である。
図7(a)に示すように、差分検出部50は、画像A1の基準方向F1と直線オブジェクトB2(B1)の傾斜方向F3との角度θを検出する。差分検出部50により基準方向F1と傾斜方向F3との角度θが検出されると、オブジェクト補正部52は、
図7(b)に示すように、例えば直線オブジェクトB2の端点T5を軸にして直線オブジェクトB2が基準方向F1と平行になるまで直線オブジェクトB2を回転させる。これにより、直線オブジェクトB2は画像A1に含まれる文字列の配列方向に対して平行に表示されるため、いずれの文字列に対して付加された直線オブジェクトB2であるのかが明らかになる。
【0071】
図8は、
図7に示した補正とは異なる態様の補正が行われる場合の一例を示す図である。
図7に示した補正例の場合、直線オブジェクトB2を回転させる際に軸となる端点T5の位置によって補正後の直線オブジェクトB2の位置が決定される。例えば、端点T5が文字列に重なる位置にある場合、補正後の直線オブジェクトB2は、文字列と重なる位置に配置されることになる。
図7に示すように、ユーザーが文字列に対して下線として直線オブジェクトB2を付加する意図であることが推認できる場合であっても、仮に端点T5が文字列に重なる位置にあれば、補正後の直線オブジェクトB2が文字列上に配置されることになり、ユーザーの意図に反する結果になる。
【0072】
そこで、
図8に示す例では、オブジェクト判別部32は、直線オブジェクトB2の文字列a2に対する位置に基づいて、補正前の直線オブジェクトB2を文字列a2に対する下線であると判別する。オブジェクト判別部32による判別結果に応じて、オブジェクト補正部52は、例えば文字列a2下端の近傍の所定位置を通る基準方向F1に平行な直線を検出し、検出された直線に対して直角方向を投影方向として直線オブジェクトB2を投影させる。そして、オブジェクト補正部52は、直線オブジェクトB2を当該直線に対して投影することにより生成される直線オブジェクトB2'に補正する。これにより、オブジェクト補正部52は、直線オブジェクトB2を、基準方向F1に平行に補正すると共に、文字列a2に対する下線であることを明示することができる。すなわち、
図8の例では、オブジェクト補正部52は、文字列a2に対する直線オブジェクトB2の位置に応じて、文字列中又は文字列の近傍において基準方向F1に平行な直線を検出する。そして、検出された直線に対して直線オブジェクトB2を投影させ、直線オブジェクトB2を投影により生成される線分に変換することにより補正を行うのである。
【0073】
オブジェクト補正部52は、オブジェクト判別部32によって補正対象となる書込オブジェクトB1であると判別された場合に、文字列に対して予め設定される位置に当該書込オブジェクトB1を配置する。
図5(c)の例示において、オブジェクト判別部32は、画像A1に含まれる文字列に対する書込オブジェクトB1の位置に基づいて、画像A1に含まれる文字列のうち、いずれの文字列に対して付加された書込オブジェクトB1であるかを判別する。そして、
図5(c)に示すように、直線オブジェクトB2が文字列a1に対して付加されたと判別されると、オブジェクト判別部32はさらに、文字列a1に対する直線オブジェクトB2の位置に基づいて、直線オブジェクトB2が文字列a1に付加された取消線であるのか、又は文字列a1に付加された下線であるのかを判別する。
【0074】
例えば文字列a1の中心線CLよりも直線オブジェクトB2が上方に付加されている場合、当該直線オブジェクトB2を取消線と判別する。オブジェクト判別部32により取消線であると判別されると、オブジェクト補正部52は、例えば少なくとも直線オブジェクトB2の一の端点が文字列a1の中心線CL上に位置するように直線オブジェクトB2を移動させる。或いは、上述したように、基準方向F1に対して平行になるように補正された直線オブジェクトB2を、文字列a1の中心線CL上に移動させてもよい。
【0075】
また、
図5(c)の例示において、オブジェクト判別部32は、文字列a1の中心線CLよりも直線オブジェクトB2が下方に付加されている場合、当該直線オブジェクトB2を文字列に付加された下線であると判別する。オブジェクト判別部32により下線であると判別されると、オブジェクト補正部52は、例えば少なくとも直線オブジェクトB2の一の端点が文字列下端に位置するように直線オブジェクトB2を移動させる。或いは、基準方向F1に対して平行になるように補正された直線オブジェクトB2を、文字列下端に移動させてもよい。これにより、文字列に付加された直線オブジェクトB2が、取消線又は下線のいずれであるのかが明らかにされ、美観が向上する。なお、オブジェクト判別部32によって二重線オブジェクトB6であると判定された場合も同様に、オブジェクト補正部52は、文字列における二重線オブジェクトB6が付加されている位置に基づいて、二重線オブジェクトB6を移動させる。
【0076】
オブジェクト補正部52は、傾斜検出部34により検出された書込オブジェクトB1の傾斜方向F3と基準方向F1との角度が所定値以内である場合に、傾斜方向F3を基準方向F1と一致するように補正すると共に、傾斜方向F3と基準方向F1との角度が所定値より大きい場合に、傾斜方向F3を補正しないとしてもよい。この所定値は、ユーザーにより予め設定可能である。傾斜方向F3と基準方向F1との角度が比較的大きい場合には、ユーザーは意図的に基準方向F1との角度が大きくなる当該書込オブジェクトB1を付加させた可能性が高いため、当該書込オブジェクトB1を基準方向F1に基づいて補正すると、ユーザーの意図に反した書込オブジェクトB1になってしまう可能性がある。そこで、基準方向F1と傾斜方向F3との角度がユーザーにより設定された所定値以上となる場合、補正を行わないとすることにより、ユーザーの意図に反した補正が行われることを防止できる。
【0077】
図9(a)は、基準方向F1と傾斜方向F3との角度が比較的大きい場合の直線オブジェクトB2の一例を示す図である。傾斜検出部34により直線オブジェクトB2の傾斜方向F3が検出されると、差分検出部50は、画像A1の基準方向F1と傾斜方向F3との角度θ2を検出する。差分検出部50により角度θ2が検出されると、オブジェクト補正部52が機能する。そして、オブジェクト補正部52は、角度θ2が予め設定される所定値α1より大きい場合、直線オブジェクトB2の補正を行わない。図例の直線オブジェクトB2が付加されている態様からすると、当該直線オブジェクトB2は、ユーザーにより文字列a2に取消線として付加されたのか、下線として付加されたのか、或いは、文字列a2を削除するための斜線として付加されたのか区別できない。そこでこのような場合、オブジェクト補正部52は、直線オブジェクトB2に対して基準方向F1に基づく補正を行わない。これにより、ユーザーの意図に反する態様に書込オブジェクトB1が補正されることを防止する。
【0078】
これとは異なり、オブジェクト補正部52は、以下の処理を行ってもよい。書込オブジェクトB1が直線オブジェクトB2又は二重線オブジェクトB6である場合に、オブジェクト補正部52は、直線オブジェクトB2又は二重線オブジェクトB6の基準方向F1における長さを検出する。そして、基準方向F1における長さが、所定値(例えば10ミリメートル)以上であるとき、基準方向F1と傾斜方向F3との角度θが上記所定値α1より小さいことを条件として、直線オブジェクトB2又は二重線オブジェクトB6の補正を行う。他方、直線オブジェクトB2又は二重線オブジェクトB6の基準方向F1における長さが所定値(例えば10ミリメートル)未満であるとき、基準方向F1と傾斜方向F3との角度θが、所定値α1より大きい値α2より小さいことを条件として、直線オブジェクトB2又は二重線オブジェクトB6の補正を行う。
【0079】
図9(b)に示すように、基準方向F1に対して共にθ10傾斜している直線オブジェクトB2aと、直線オブジェクトB2aより長い直線オブジェクトB2bとが付加されている。直線オブジェクトB2aは、文字列に含まれる1文字に対して付加された下線であるのに対し、直線オブジェクトB2bは、文字列に対して付加された下線であるのか、取消線であるのか、或いは文字列を削除する意図で付加された斜線であるのか区別できない。直線オブジェクトB2bを基準方向F1に基づいて補正してしまうと、ユーザーが直線オブジェクトB2bを付加させた意図に反する補正となる場合が生じる。そこで、直線オブジェクトB2の長さに応じて補正を行うか否かの判断基準をそれぞれ設定し、直線オブジェクトB2aに対する補正を行うか否かの判断基準となる角度(α2)を、直線オブジェクトB2aより長い直線オブジェクトB2bに対する補正を行うか否かの判断基準となる角度(α1)に比べて大きい値に設定することにより、補正を行うか否かを適切に判定できるのである。なお、図例では直線オブジェクトB2による場合を示したが、オブジェクト補正部52は、線状オブジェクトに含まれる二重線オブジェクトB6や、波線など曲線により構成される書込オブジェクトB1による場合も、直線オブジェクトB2を用いて説明したのと同様の処理を行う。
【0080】
上述したように、書込オブジェクトB1が2つの端点を結ぶ線分に対して直角方向に距離n1の範囲内にある場合、オブジェクト判別部32により、当該書込オブジェクトB1は直線オブジェクトB2であると判別される。そして、オブジェクト補正部52は、直線オブジェクトB2を、2つの端点を結ぶ線分に補正してもよい。
図10は、直線オブジェクトB2が2つの端点を結ぶ線分に補正される場合の一例を示す図である。
図10(a)に示すように、ユーザーによる操作に応じて入力された直線オブジェクトB2は、2端点間を最短で結ぶ線分ではないことが多い。そこで、オブジェクト補正部52は、
図10(b)に示すように、直線オブジェクトB2を、端点T7と端点T9とを結ぶ線分に補正することにより、直線オブジェクトB2の美観を向上させることが可能となる。
【0081】
図11は、囲み枠オブジェクトB8に対する補正が行われる場合の一例を示す図である。オブジェクト判別部32により書込オブジェクトB1が囲み枠オブジェクトB8であると判別された場合に、オブジェクト補正部52は、傾斜検出部34により検出された傾斜方向F3方向における囲み枠オブジェクトB8の長さL3を検出する。なお、図例では傾斜方向F3と基準方向F1とが略平行である場合を示すが、これに限られず、基準方向F1と傾斜方向F3とが平行ではない場合であってもよい。次に、オブジェクト補正部52は、傾斜方向F3に対して直角方向における囲み枠オブジェクトB8の長さL4を検出する。そして、オブジェクト補正部52は、例えば
図11(b)に示すように、囲み枠オブジェクトB8を、当該囲み枠オブジェクトB8の各辺と接し、辺の長さがL3とL4とからなる矩形に補正する。これにより、囲み枠オブジェクトB8の美観を向上させることが可能となる。
【0082】
図3に戻り、ドキュメント補正部54は、文字列を含む画像A1を、ページP1の一の端辺と平行になるように補正する処理部である。画像A1がページP1の端辺に対して斜交する場合に、ドキュメント補正部54は基準方向F1がページP1の一の端辺と一致するように画像A1を補正する。例えば、ドキュメント補正部54は、基準方向F1との角度が比較的小さいページP1の端辺を検出し、検出された端辺に基づいて画像A1を回転させる。そして、ドキュメント補正部54により補正されると、オブジェクト補正部52が機能し、書込オブジェクトB1の傾斜方向F3が、画像A1に対する補正の際にドキュメント補正部54により検出されたページP1の端辺と一致するように、書込オブジェクトB1を補正する。これにより、画像A1と書込オブジェクトB1は共に、ページP1に対して傾斜することなく表示される。
【0083】
さらに、CPU12は、区切検出部38を有する。区切検出部38は、文字列検出部22により検出された文字列を解析して、文字列における区切り位置を検出する処理部である。文字列検出部22により画像A1内に含まれる文字列が検出されると、区切検出部38は機能する。区切検出部38は、検出された文字列における区切り位置を検出する。一例として、区切検出部38は、文字列に含まれる文字同士の間隔が所定値以上である場合に、当該間隔を文字列における区切り位置として検出する。また、区切検出部38は、文字列に含まれる句読点を文字列における区切り位置として検出してもよい。
【0084】
区切検出部38はさらに、文字列における単語の区切り位置を検出する。記憶部16には、例えば名詞、形容詞、動詞、副詞、接続詞、助詞、助動詞などの文法に基づく品詞情報を含む辞書情報62が予め格納される。区切検出部38は、記憶部16から辞書情報62を読み出し、文字列検出部22により検出された文字列を解析し、単語ごとの区切り位置を検出する。
図12は、文字列における区切り位置が検出される場合の一例を示す図である。
図12(a)に示すように、区切検出部38によって文字列における区切り位置が検出される。図例では、単語ごとの区切り位置が検出された場合を示すが、これに限られず、例えば、句読点が検出された場合や文字同士の間隔が所定値以上である場合に区切り位置を検出してもよい。
【0085】
区切検出部38により区切り位置が検出されると、オブジェクト補正部52は、検出された区切り位置を含む所定範囲内に書込オブジェクトB1の端点がある場合、当該端点を区切り位置に一致させる。
図12(b)及び(c)は、区切り位置に基づいて書込オブジェクトB1が補正される場合の一例を示す図である。図例では、文字列下方に直線オブジェクトB2が付加されている。この場合、オブジェクト補正部52は、文字列の区切り位置における文字列下端近傍に区切点h1とh2とを抽出し、区切点h1を含む領域R1と区切点h2を含む領域R3の各々に直線オブジェクトB2の端点が存在するか否かを判定する。
【0086】
領域R1内又は領域R3内に直線オブジェクトB2の端点が存在する場合、オブジェクト補正部52は、端点が存在する領域における区切点に端点を一致させる。
図12(b)の例では、区切点h1を含む領域R1内と、区切点h2を含む領域R3内のそれぞれに、直線オブジェクトB2の端点が存在する。そこで、オブジェクト補正部52は、
図12(c)に示すように、各端点をそれぞれ区切点h1と区切点h2に一致させることにより直線オブジェクトB2を補正する。これにより、直線オブジェクトB2は文字列における区切りと区切りの間に表示されることになり、よりユーザーの意図に即して補正されるのである。
【0087】
次に、本実施形態における情報処理装置2にて行われる処理の手順の一例を説明する。
図13は、情報処理装置2において行われる主たる処理手順の一例を示すフローチャートである。記憶部16に記憶されているプログラム60がCPU12で実行されることによりアプリケーションが起動すると、情報処理装置2は、ドキュメントデータD1を取得する(ステップS1)。ドキュメントデータD1は、画像処理装置4など外部装置から取得してもよいし、記憶部16に記憶されているドキュメントデータD1を読み出してもよい。そして、情報処理装置2はドキュメントデータD1を読み出して画像A1を含むページP1を表示させる(ステップS3)。ページP1を表示させると、ページP1内の画像A1から基準方向F1を検出する基準検出処理(ステップS5)を実行する。基準検出処理(ステップS5)の具体的な処理手順については後述する。
【0088】
次に、画像A1が表示されている状態で、ユーザーによる書き込み入力の受付を開始する指示を検知したか否かを判定する(ステップS7)。書き込み入力の受付を開始する指示を検知した場合(ステップS7でYES)、情報処理装置2は、さらにユーザーによる書き込み入力を検知したか否かを判定する(ステップS9)。書き込み入力を検知した場合(ステップS9でYES)、情報処理装置2は書込オブジェクトB1を生成する(ステップS11)。また、情報処理装置2は、生成された書込オブジェクトB1を表示部10に表示させてもよい。他方、書き込み入力を検知しない場合(ステップS9でNO)、ステップS11をスキップする。そして、書き込み入力の受付を終了させる指示を検知したか否かを判定し(ステップS13)、かかる指示を検知しない場合(ステップS13でNO)、指示を検知するまでステップS9からS13を繰り返し実行する。他方、書き込み入力の受付を終了させる指示を検知した場合(ステップS13でYES)、情報処理装置2は、ステップS11で生成された書込オブジェクトB1の判別や傾斜方向の検出を行う書込オブジェクト検出処理(ステップS15)を実行する。書込オブジェクト検出処理(ステップS15)の具体的な処理手順については後述する。
【0089】
書込オブジェクト検出処理(ステップS15)を行うと、情報処理装置2は書込オブジェクトB1又は画像A1の補正を行う画像補正処理(ステップS17)を実行する。画像補正処理の具体的な処理手順については後述する。最後に、情報処理装置2は、ユーザーによるアプリケーションを終了させる指示を検知したか否かを判定し(ステップS19)、アプリケーションを終了させる指示を検知した場合(ステップS19でYES)、アプリケーションを終了させる処理を行って(ステップS21)処理を終了する。他方、アプリケーションを終了させる指示を検知しない場合(ステップS19でNO)、ステップS7に戻り、アプリケーションを終了させる指示が検知されるまで、ステップS7乃至S17の処理を繰り返し行う。なお、ステップS7で書き込み入力の受付を開始する指示を検知しなかった場合(ステップS7でNO)、ステップS9乃至S17の処理をスキップする。
【0090】
図14は、基準検出処理(
図13のステップS5)の具体的な処理手順の一例を示すフローチャートである。まず、情報処理装置2は、ドキュメントデータD1を構成するページP1から1つのページを抽出して(ステップS31)文字列を検出したか否かを判定する(ステップS33)。文字列を検出した場合(ステップS33でYES)、文字列の配列方向を検出する(ステップS35)。そして、検出した配列方向を基準方向に決定する(ステップS37)。
【0091】
次に、情報処理装置2は、記憶部16に格納されている辞書情報62を読み出す(ステップS39)。そして、読み出した辞書情報62を用いて文字列における単語の区切り位置を検出する(ステップS41)。なお、これとは異なり、情報処理装置2は、句読点の位置や文字同士の間隔が所定値以上である位置を文字列における区切り位置として検出してもよい。最後に、ドキュメントデータD1に含まれるすべてのページP1に対して処理済みであるか否かを判定し(ステップS43)、すべてのページP1に対して処理済みである場合(ステップS43でYES)、基準検出処理を終了する。他方、すべてのページP1に対して処理済みでない場合(ステップS43でNO)、ステップS31に戻り、すべてのページP1に対して処理が終了するまで、ステップS31乃至S41の処理を繰り返し実行する。なお、ステップS33でページP1内に文字列が検出されなかった場合(ステップS33でNO)、ステップS35乃至S41の処理をスキップする。
【0092】
図15は、書込オブジェクト検出処理(
図13のステップS15)の具体的な処理手順の一例を示すフローチャートである。書き込み入力の受付を終了する指示を検知すると(
図13のステップS13)、情報処理装置2は、補正対象となり得る書込オブジェクトB1を抽出する(ステップS51)。補正対象となり得る書込オブジェクトB1には、例えば直線オブジェクトB2、二重線オブジェクトB6及び囲み枠オブジェクトB8が含まれる。補正対象とならない書込オブジェクトB1には、例えば文字列との距離が所定値以上である書込オブジェクトB1や、文字により構成される書込オブジェクトB1が含まれる。補正対象となり得る書込オブジェクトB1を抽出すると、情報処理装置2は抽出された書込オブジェクトB1から端点が検出されるか否かを判定する(ステップS53)。端点が検出される場合(ステップS53でYES)、さらに検出された端点を結ぶ直線から所定範囲内に書込オブジェクトB1があるか否かを判定する(ステップS55)。
【0093】
書込オブジェクトB1が検出された端点間を結ぶ直線から所定範囲内である場合(ステップS55でYES)、情報処理装置2は当該書込オブジェクトB1を直線オブジェクトB2と判別する(ステップS57)。他方、書込オブジェクトB1が、検出された端点間を結ぶ直線から所定範囲内でない場合(ステップS55でNO)、情報処理装置2は当該書込オブジェクトB1を二重線オブジェクトB6であると判別する(ステップS59)。また、ステップS53において、当該書込オブジェクトB1から端点が検出されなかった場合(ステップS53でNO)、情報処理装置2は、当該書込オブジェクトB1を囲み枠オブジェクトB8であると判別する(ステップS54)。最後に、判別された各書込オブジェクトB1毎に、傾斜方向を検出して(ステップS61)、書込オブジェクト検出処理を終了する。
【0094】
図16は、画像補正処理(
図13のステップS17)の具体的な処理手順の一例を示すフローチャートである。情報処理装置2は、画像補正処理において、まず基準方向F1を決定済みであるか否かを判定し(ステップS71)、基準方向F1を決定済みである場合(ステップS71でYES)に傾斜方向F3を検出済みであるか否かを判定する(ステップS73)。そして、傾斜方向F3を検出済みである場合(ステップS73でYES)、情報処理装置2は、基準方向F1と傾斜方向F3との角度を検出する(ステップS75)。他方、基準方向F1及び傾斜方向F3のいずれかが検出されていない場合には(ステップS71又はS73でNO)、情報処理装置2は、書込オブジェクトB1を表示部10に表示させた態様で表示部10の表示を更新させて(ステップS92)画像補正処理を終了する。
【0095】
基準方向F1と傾斜方向F3との角度(θ)を検出すると(ステップS75)、当該書込オブジェクトB1が直線オブジェクトB2であると判別されたか否かを判定し(ステップS77)、直線オブジェクトB2であると判定した場合(ステップS77でYES)、情報処理装置2は、直線オブジェクトB2の長さ(L)を検出する(ステップS79)。そして、直線オブジェクトB2の長さ(L)が予め設定される所定値(L1)以上であるか否かを判定し(ステップS81)、直線オブジェクトB2の長さ(L)が所定値(L1)以上である場合(ステップS81でYES)、情報処理装置2は、基準方向F1と傾斜方向F3との角度(θ)が所定値α1以下であるか否かを判定する(ステップS83)。他方、直線オブジェクトB2の長さ(L)が所定値(L1)より小さい値である場合(ステップS81でNO)、情報処理装置2は、基準方向F1と傾斜方向F3との角度(θ)が、α1より大きいα2以下であるか否かを判定する(ステップS85)。これは、短い直線オブジェクトB2の方が、基準方向F1に対して大きな角度で傾斜することがあるので、所定値(L1)未満の直線オブジェクトB2については、所定値(L1)以上である場合に比べ、基準方向F1と傾斜方向F3との角度(θ)がより大きいα2以下であることを条件として画像の補正を行うとしたものである。
【0096】
ステップS83で角度(θ)がα1未満である場合(ステップS83でYES)、或いは、ステップS85で角度(θ)がα1より大きいα2より小さい場合、画像の補正を行う。他方、ステップS83で角度(θ)がα1以上である場合(ステップS83でNO)、或いは、ステップS85で角度(θ)がα2以上である場合(ステップS85でNO)、補正を行わない。ステップS83で角度(θ)がα1以下である場合(ステップS83でYES)、又はステップS85で角度(θ)がα2以下である場合(ステップS85でYES)には、情報処理装置2は次に、画像A1の補正を行うか否かを判定する(ステップS87)。画像A1の補正を行う場合には(ステップS87でYES)画像A1の補正を行い(ステップS89)、画像A1の補正を行わない場合には(ステップS87でNO)ステップS89をスキップする。
【0097】
次に、書込オブジェクトB1の補正を行う書込オブジェクト補正処理(ステップS90)を実行する。書込オブジェクト補正処理(ステップS90)の具体的な処理手順については後述する。最後に、表示部10に表示されている画像A1及び書込オブジェクトB1の表示を更新させて(ステップS92)画像補正処理を終了する。
【0098】
図17は、書込オブジェクト補正処理(
図16のステップS90)の具体的な処理手順の一例を示すフローチャートである。まず、情報処理装置2は、オブジェクト検出処理(
図15)における判別内容に基づき、書込オブジェクトB1が直線オブジェクトB2であるか否かを判定する(ステップS101)。直線オブジェクトB2である場合(ステップS101でYES)、直線オブジェクト補正処理(ステップS103)を実行する。直線オブジェクト補正処理(ステップS103)の具体的な処理手順については後述する。
【0099】
直線オブジェクトB2でないと判定した場合(ステップS101でNO)、情報処理装置2はさらに、書込オブジェクトB1が二重線オブジェクトB6と判別されたか否かを判定する(ステップS105)。二重線オブジェクトB6であると判定した場合(ステップS105でYES)、二重線オブジェクト補正処理(ステップS107)を実行する。他方、二重線オブジェクトB6でないと判定した場合(ステップS105でNO)、囲み枠オブジェクト補正処理(ステップS109)を実行する。二重線オブジェクト補正処理(ステップS107)及び囲み枠オブジェクト補正処理(ステップS109)の具体的な処理手順については、それぞれ後述する。そして、直線オブジェクト補正処理(ステップS103)、二重線オブジェクト補正処理(ステップS107)又は囲み枠オブジェクト補正処理(ステップS109)を実行すると、書込オブジェクト補正処理を終了する。
【0100】
図18は、直線オブジェクト補正処理(
図17のステップS103)の具体的な処理手順の一例を示すフローチャートである。まず、情報処理装置2は、直線オブジェクトB2の端点間を結ぶ線分に補正する(ステップS121)。次に、端点間を結ぶ線分に補正された直線オブジェクトB2を、基準方向F1と平行になるように回転させる(ステップS123)。
【0101】
情報処理装置2は、補正前の直線オブジェクトB2の文字列に対する位置を検出し(ステップS125)、文字列中心線より補正前の直線オブジェクトB2が上方にあったか否かを判定する(ステップS127)。文字列中心線より補正前の直線オブジェクトB2が上方にあったと判定した場合(ステップS127でYES)、直線オブジェクトB2を文字列中心線上に重なるよう平行移動させる(ステップS129)。他方、文字列中心線より補正前の直線オブジェクトB2が下方にあったと判定した場合(ステップS127でNO)、文字列下端近傍の所定位置に直線オブジェクトB2を平行させる(ステップS130)。
【0102】
さらに、情報処理装置2は、基準検出処理(
図14)において文字列に区切り位置が検出されたか否かを判定し(ステップS131)、文字列に区切り位置がある場合(ステップS131でYES)、補正前の直線オブジェクトB2の位置に応じた区切点を抽出する(ステップS133)。そして、抽出された区切点から直線オブジェクトB2の端点が所定範囲内にあるか否かを判定し(ステップS135)、所定範囲内にあると判定した場合(ステップS135でYES)、端点を区切点に一致させて(ステップS137)直線オブジェクト補正処理を終了する。なお、ステップS131において文字列に区切り位置がない場合(ステップS131でNO)、ステップS133乃至S137の処理をスキップして直線オブジェクト補正処理を終了する。
【0103】
図19は、直線オブジェクト補正処理(
図18)が実行される場合における直線オブジェクトB2の補正の態様の一例を示す図である。
図19(a)に示すように直線オブジェクトB2が端点間を最短で結ぶ線分でない場合に、
図19(b)のように2つの端点を最短で結ぶ線分に補正する。次に、線分に補正された状態の直線オブジェクトB2を、例えば
図19(c)に示すように、一の端点を軸に基準方向F1に対し平行になるように回転させる。
【0104】
基準方向F1に対し平行になるよう回転させると、図例のように直線オブジェクトB2が文字列に対して重なって表示されることがある。
図19(a)に示すように当該直線オブジェクトB2は文字列中心線より下方に付加されていることから、文字列に対する下線である。そこで、
図19(d)に示すように直線オブジェクトB2が文字列下端近傍の所定位置に表示されるように、基準方向F1に対する垂直方向に直線オブジェクトB2を移動させる。これにより、文字列に対する下線であることが明らかになる。
【0105】
そして、
図19(d)では文字列における区切り位置が検出されている。そこで、文字列下端における区切点が抽出され、図例では、抽出された区切点のうち、区切点h1を含む領域R1と区切点h2を含む領域R3のそれぞれに、直線オブジェクトB2の端点がある。そこで、
図19(e)に示すように、情報処理装置2は、これらの端点を各々区切点h1とh2に一致させる。これにより、下線が付加された語を的確に示すことが可能となる。
【0106】
図20は、二重線オブジェクト補正処理(
図17のステップS107)の具体的な処理手順の一例を示すフローチャートである。まず、情報処理装置2は、二重線オブジェクトB6の傾斜方向F3における長さL2を検出する(ステップS141)。傾斜方向F3における長さL2を検出すると、二重線オブジェクトB6を、一の端点を始点とする傾斜方向F3に長さL2の二重線に補正する(ステップS143)。二重線を構成する2つの線分は、予め設定されている所定の幅を有する。
【0107】
次に、補正された二重線オブジェクトB6を、基準方向F1と平行になるように回転させる(ステップS145)。そして、補正前の二重線オブジェクトB6の文字列に対する一を検出し(ステップS147)、補正前の二重線オブジェクトB6の少なくとも一の線が文字列中心線より上方の位置にあったか否かを判定する(ステップS149)。少なくとも一の線が文字列中心線より上方にあった場合(ステップS149でYES)、情報処理装置2は、二重線オブジェクトB6の2つの線分が文字列中心線を挟む位置に、二重線オブジェクトB6を平行移動させて(ステップS151)二重線オブジェクト補正処理を終了する。少なくとも一の線が文字列中心線より上方にあった場合、当該二重線オブジェクトB6は文字列に含まれる語に対する二重取消線としてユーザーにより付加されたと考えられるため、ステップS151の処理を行うのである。他方、二重線オブジェクトB6のいずれの線も文字列中心線より下方にあった場合(ステップS149でNO)、当該二重線オブジェクトB6は、ユーザーにより二重下線として文字列に付加されたと考えられることから、情報処理装置2は、二重線オブジェクトB6を文字列下端近傍の所定位置に移動させて(ステップS153)二重線オブジェクト補正処理を終了する。
【0108】
図21は、二重線オブジェクト補正処理(
図20)が行われる場合における二重線オブジェクトB6の補正態様の一例を示す図である。
図21(a)に示すように、補正前の二重線オブジェクトB6は、いずれの線も文字列中心線より下方に表示されている。情報処理装置2は、まず二重線オブジェクトB6の傾斜方向F3における長さL2を検出する。長さL2を検出すると、次に
図21(b)に示すように、補正前の二重線オブジェクトB6を、端点T1を始点として傾斜方向F3に長さL2の二重線に補正する。二重線を構成する線分間は予め設定される距離を有する。
【0109】
次に、
図21(c)のように、二重線オブジェクトB6を、例えば端点T1を軸に基準方向F1に平行になるように回転させる。これにより、二重線オブジェクトB6が文字列に対して平行に表示される。最後に、
図21(d)に示すように、二重線オブジェクトB6を基準方向F1に対して直角方向に移動させて、文字列下端近傍の所定位置に配置する。これにより、文字列に含まれる語に対する二重下線であることが明らかになる。
【0110】
図22は、囲み枠オブジェクト補正処理(
図19のステップS109)の具体的な処理手順の一例を示すフローチャートである。情報処理装置2は、囲み枠オブジェクトB8の傾斜方向F3における長さL3を検出し(ステップS161)、次に、傾斜方向F3に対する直角方向における長さL4を検出する(ステップS163)。傾斜方向F3における長さL3と傾斜方向F3に対する直角方向における長さL4が検出されると、情報処理装置2は、囲み枠オブジェクトB8を、4辺の長さがL3とL4とからなる矩形に補正する(ステップS165)。
【0111】
情報処理装置2は、補正された囲み枠オブジェクトB8の4辺のうち、傾斜方向F3の辺が基準方向F1に対して平行になるように、囲み枠オブジェクトB8を回転させる(ステップS167)。最後に、囲み枠オブジェクトB8を基準方向F1に対して垂直方向に移動させ、基準方向F1と平行な辺のうち下方の辺が文字列下端近傍の所定位置に配置されるようにして(ステップS169)囲み枠オブジェクト補正処理を終了する。
【0112】
図23は、囲み枠オブジェクト補正処理(
図22)が実行される場合における囲み枠オブジェクトB8の補正態様の一例を示す図である。まず、情報処理装置2は
図23(a)に示すように、囲み枠オブジェクトB8の傾斜方向F3における長さL3と、傾斜方向F3に対する直角方向における長さL4を検出する。長さL3は、例えば囲み枠オブジェクトB8の傾斜方向F3における最大幅であり、長さL4は、例えば傾斜方向F3に対する直角方向における最大高さである。長さL3とL4が検出されると、
図23(b)に示すように補正前の囲み枠オブジェクトB8を4辺がL3とL4からなる矩形に補正する。また、
図23(b)のように長さL3の辺が傾斜方向F3に対して平行である。
【0113】
次に、
図23(c)に示すように、情報処理装置2は、補正後の囲み枠オブジェクトB8の一の頂点を軸に、囲み枠オブジェクトB8の長さL3の辺が基準方向F1に対して平行になるように回転させる。最後に、長さL3の辺のうち、基準方向F1に対して下方の辺が文字列下端辺近傍の所定位置に表示されるように囲み枠オブジェクトB8を基準方向F1に対し垂直方向に移動させる。これにより、囲み枠オブジェクトB8が文字列に含まれる語を囲む書込オブジェクトB1であることが明らかになる。
【0114】
(変形例)
以上、本発明に関する実施形態について説明したが、本発明は、上記実施形態において説明した内容のものに限られるものではなく、種々の変形例が適用可能である。
【0115】
例えば上記実施形態では、画像A1内に文字列が検出された場合に基準方向F1を検出する処理を行う場合を示した。しかし、これに限られず、情報処理装置2は画像A1内に例えば罫線が検出された場合に基準方向F1を検出する処理を行ってもよい。この場合、情報処理装置2は、予め定められた設定に基づいて基準方向F1を検知する。例えば、当該画像A1が表示されるページP1の一端辺に対する傾斜が比較的小さい罫線に基づいて基準方向F1を検出してもよい。