説明

ビットマップ画像からのオブジェクト表現の生成

【課題】単一の画像から透明な重なりグラフィックオブジェクトを部分的に検出しかつ構成する。
【解決手段】オブジェクト表現をビットマップ画像から生成する方法(500)、装置及びコンピュータ読み取り可能な記憶媒体が開示される。背景領域を含む一組の領域がビットマップ画像から選択される(510)。第2のグラフィックオブジェクトに重なる部分的な透明性を有する第1のグラフィックオブジェクトの色及び部分的な透明性パラメータが、一組の領域の色に応じて推定される(520)。推定された色及び部分的な透明性は、透明性合成モデルと一致する。第1及び第2のグラフィックオブジェクトの幾何形状モデルは、一組の領域と第1のグラフィックオブジェクトの推定された色及び透明性パラメータとから構成される(530)。オブジェクト表現は幾何形状モデルに応じて生成される(540)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にビットマップ画像の処理に関し、特に1つ以上の部分的に透明な重なりグラフィックオブジェクトを有するビットマップ画像のオブジェクト表現に関する。
【背景技術】
【0002】
増加し続ける計算処理能力と組み合わされた画像技術の普及に伴い、文書解析システムの分野では数多くの進展が見られる。大部分の社内文書は、Microsoft(登録商標)Word(登録商標)やMicrosoft(登録商標)Powerpoint(登録商標)などの構造化テキスト/グラフィック編集アプリケーションを使用して生成される。これらのテキスト/グラフィック編集アプリケーションは、フォーマット済みテキストの編集に加えて、基本的な図形描画ツールやオプションを含んでいる。「スキャントゥエディタブル」アプリケーションと呼ばれる重要な種類の文書解析アプリケーションは、文書のビットマップ表現を処理し、編集アプリケーションを使用して閲覧及び編集可能な文書の電子版を生成する。
【0003】
一般的な構造化テキスト/グラフィック編集アプリケーションの図形描画オプションには、自由線描画、テンプレート形状及びコネクタ(すなわち、文書内のテンプレート形状間及び/又はテンプレート形状に連結する動的な線オブジェクト)が含まれる。テキスト/グラフィック編集アプリケーションには、複数組のグラフィックオブジェクトに対する着色、塗りつぶし、階層化及びグループ化オプションも含まれている。共通に使用される多くの幾何形状は、テンプレート形状を使用して作成できる。このオプションは望ましい形状の表現に関してより速く且つより正確であり、その後の編集がより容易になるため、ユーザは自由線を使用して形状を描画するよりもテンプレート形状を使用することを好む。Microsoft(登録商標)AutoShapeセットは、Microsoft(登録商標)Word(登録商標)やPowerPoint(登録商標)などの編集環境で操作可能なテンプレート形状の多くの例を含む。他のテンプレート形状は、Writer(登録商標)やImpress(登録商標)アプリケーションなど、OpenOffice.org(登録商標)編集アプリケーションに見つけられる。
【0004】
重なり形状の何れかがベタ塗り又は塗りつぶしのない線形状である場合に、重なり形状を検出する技術がある。しかし、これらの技術は下位層形状が下から部分的に見えるように、上位層形状が部分的な透明性を有する場合には対処していない。
【0005】
写真合成を目的として単一のオブジェクトを透明グラフィックオブジェクトとして表現する別の技術がある。しかし、これらの技術は透明オブジェクトが第2のオブジェクトと交差する場合には対処せず、色空間表現の外側境界上で限定された一組の色を有するオブジェクトを検出できるだけである。
【0006】
多重ビデオフレームの処理に基づき透明領域を映像から検出する技術もある。しかし、これらの技術は複数の透明領域が交差する場合には対処せず、2つの画像間の相違が一方の画像中の透明オブジェクトの存在に起因するような少なくとも2つの画像を必要とする。
【発明の概要】
【発明が解決しようとする課題】
【0007】
単一の画像から透明な重なりグラフィックオブジェクトを部分的に検出し且つ再構成する技術が求められている。
【課題を解決するための手段】
【0008】
本発明の一態様よると、オブジェクト表現をビットマップ画像から生成するコンピュータにより実現される方法が提供される。前記方法は、ビットマップ画像の背景領域を含む一組の領域をビットマップ画像から選択するステップと、一組の領域の色に応じて第2のグラフィックオブジェクトに重なる部分的な透明性を有する第1のグラフィックオブジェクトの色及び部分的な透明性パラメータを推定するステップであって、推定される色及び部分的な透明性パラメータは透明性合成モデルと一致し、透明性合成モデルは色及び部分的な透明性パラメータによって2つのグラフィックオブジェクトの重複部の領域の色を定義するステップと、一組の領域と第1のグラフィックオブジェクトの推定された色及び透明性パラメータとから第1及び第2のグラフィックオブジェクトの幾何形状モデルを構成するステップと、幾何形状モデルに応じてオブジェクト表現を生成するステップとを有する。
【0009】
オブジェクト表現は電子文書でもよく、ビットマップ画像は文書の走査版でもよい。
【0010】
第1のグラフィックオブジェクトの部分的な透明性パラメータは、第1及び第2のグラフィックオブジェクトの重複部の領域として考えられる一組の領域である第1の領域と、第1のグラフィックオブジェクトの一部として考えられる第1の領域に隣接する一組の領域である第2の領域と、第2のグラフィックオブジェクトの一部として考えられる第1の領域に隣接する一組の領域である第3の領域と、に応じて推定される。
【0011】
第1のグラフィックオブジェクトの部分的な透明性パラメータは、色差がビットマップ画像の第1の領域の色と、第2及び第3の領域並びに背景領域の色を考慮して透明性合成モデルにより定義される色との間で最小になるように推定されてもよい。
【0012】
第2のグラフィック領域は部分的に透明でもよい。
【0013】
第1のグラフィックオブジェクトは第2のグラフィックオブジェクト及び第3のグラフィックオブジェクトに部分的な透明性をもって重なり、第2のオブジェクトは第3のオブジェクトに部分的な透明性をもって重なり、第1、第2及び第3のグラフィックオブジェクトは部分的な透明性をもって重なり、一組の領域は第1の領域と、第1の領域の外側境界に隣接する少なくとも3つの領域と、背景領域とを備え、3つの隣接領域の各々は、部分的な透明性を有するグラフィックオブジェクトの内の2つの重なりに対応する色及び透明性パラメータを含む関連透明性モデルを有し、3つの隣接領域の透明性モデルは、部分的な透明性を有する3つのグラフィックオブジェクトの重なりに対応する透明性モデルと一致する。
【0014】
3つのグラフィックオブジェクトは部分的な透明性をもって重なる円でもよい。
【0015】
グラフィックオブジェクトの幾何形状モデルは、辿った境界線に隣接する領域の透明性モデルを追跡しながら領域の境界線を辿ることにより構成されてもよい。グラフィックオブジェクトの色、透明性及び階層化パラメータは、グラフィックオブジェクトの幾何形状モデルを構成する際に横断された境界線に隣接する領域の透明性モデルに応じて設定されてもよい。
【0016】
本発明の別の態様よると、オブジェクト表現をビットマップ画像から生成する装置が提供される。前記装置は、データとコンピュータプログラムとを記憶するメモリと、コンピュータプログラムを実行するために、メモリに連結されたプロセッサ部とを有し、メモリ及びプロセッサは、オブジェクト表現をビットマップ画像から生成するように構成されている。コンピュータプログラムは、
ビットマップ画像の背景領域を含む一組の領域をビットマップ画像から選択するコンピュータプログラムコードモジュールと、
一組の領域の色に応じて第2のグラフィックオブジェクトに重なる部分的な透明性を有する第1のグラフィックオブジェクトの色及び部分的な透明性パラメータを推定するコンピュータプログラムコードモジュールであって、推定される色及び部分的な透明性パラメータは透明性合成モデルと一致し、透明性合成モデルは色及び部分的な透明性パラメータによって2つのグラフィックオブジェクトの重複部の領域の色を定義するコンピュータプログラムコードモジュールと、
一組の領域と第1のグラフィックオブジェクトの推定された色及び透明性パラメータとから第1及び第2のグラフィックオブジェクトの幾何形状モデルを構成するコンピュータプログラムコードモジュールと、
幾何形状モデルに応じてオブジェクト表現を生成するコンピュータプログラムコードモジュールとを備える。
【0017】
オブジェクト表現は電子文書でもよく、ビットマップ画像は文書の走査版でもよい。
【0018】
第1のグラフィックオブジェクトの部分的な透明性パラメータは、第1及び第2のグラフィックオブジェクトの重複部の領域として考えられる一組の領域である第1の領域と、第1のグラフィックオブジェクトの一部として考えられる第1の領域に隣接する一組の領域である第2の領域と、第2のグラフィックオブジェクトの一部として考えられる第1の領域に隣接する一組の領域である第3の領域と、に応じて推定されてもよい。
【0019】
第1のグラフィックオブジェクトの部分的な透明性パラメータは、色差がビットマップ画像の第1の領域の色と、第2及び第3の領域並びに背景領域の色を考慮して透明性合成モデルにより定義される色との間で最小になるように推定されてもよい。
【0020】
第2のグラフィック領域は部分的に透明でもよい。
【0021】
グラフィックオブジェクトの幾何形状モデルは、辿った境界線に隣接する領域の透明性モデルを追跡しながら領域の境界線を辿ることにより構成されてもよい。
【0022】
本発明の更なる態様よれば、プロセッサ部による実行のためにオブジェクト表現をビットマップ画像から生成するコンピュータプログラムが記録されたコンピュータ読み取り可能な記憶媒体が提供される。前記コンピュータプログラムは、ビットマップ画像の背景領域を含む一組の領域をビットマップ画像から選択するコンピュータプログラムコードモジュールと、一組の領域の色に応じて第2のグラフィックオブジェクトに重なる部分的な透明性を有する第1のグラフィックオブジェクトの色及び部分的な透明性パラメータを推定するコンピュータプログラムモジュールであって、推定される色及び部分的な透明性パラメータは透明性合成モデルと一致し、透明性合成モデルは色及び部分的な透明性パラメータによって2つのグラフィックオブジェクトの重複部の領域の色を定義するコンピュータプログラムコードモジュールと、一組の領域と第1のグラフィックオブジェクトの推定された色及び透明性パラメータとから第1及び第2のグラフィックオブジェクトの幾何形状モデルを構成するコンピュータプログラムコードモジュールと、幾何形状モデルに応じてオブジェクト表現を生成するコンピュータプログラムコードモジュールとを備える。
【0023】
オブジェクト表現は電子文書でもよく、ビットマップ画像は文書の走査版でもよい。
【0024】
第1のグラフィックオブジェクトの部分的な透明性パラメータは、第1及び第2のグラフィックオブジェクトの重複部の領域であると考えられる一組の領域の第1の領域と、第1のグラフィックオブジェクトの一部であると考えられる第1の領域に隣接する一組の領域の第2の領域と、第2のグラフィックオブジェクトの一部であると考えられる第1の領域に隣接する一組の領域の第3の領域とに応じて推定されてもよい。
【0025】
第1のグラフィックオブジェクトの部分的な透明性パラメータは、色差がビットマップ画像の第1の領域の色と、第2及び第3の領域並びに背景領域の色を考慮して透明性合成モデルにより定義される色との間で最小になるように推定されてもよい。
【0026】
第2のグラフィック領域は部分的に透明でもよい。
【0027】
本発明の更に別の態様よると、オブジェクト表現をビットマップ画像から生成するコンピュータにより実現される方法が提供される。前記方法は、部分的な透明性を持つ独立した第1のグラフィックオブジェクトと共に独立した第2のグラフィックオブジェクトを含む前記ビットマップ画像から、各々が塗りつぶし色を持つ塗りつぶし領域と各々が線色を持つ線領域との一組を判定するステップと、線領域の少なくとも1つにより分離された2つ以上の塗りつぶし領域を位置決めし、位置決めされた領域を隣接させることにより塗りつぶし領域の隣接性データを生成するステップと、塗りつぶし色と塗りつぶし領域の隣接性データとに応じて第2のグラフィックオブジェクトに重なる第1のグラフィックオブジェクトの色及び部分的な透明性パラメータを推定するステップと、線領域のうちの少なくとも1つの領域の線色に基づいて第2のグラフィックオブジェクトの輪郭線の単一の線色を決定するステップと、オブジェクト表現を生成するために、推定された色及び部分的な透明性パラメータを有する第1の独立したグラフィックオブジェクトと、決定された単一の線色を有する第2の独立したグラフィックオブジェクトとを記憶するステップとを有する。
【0028】
単一の線色は、第1のオブジェクトの推定された色及び部分的な透明性パラメータに基づいて決定され、第1のオブジェクトにより重ねられる線領域の線色は第1のオブジェクトの推定された色及び部分的な透明性パラメータにより修正された場合に単一の線色と一致する。
【0029】
第1及び第2のグラフィックオブジェクトを記憶するステップは、線色が第1のオブジェクトの推定された色及び部分的な透明性パラメータにより修正された場合、単一の線色と第1のグラフィックオブジェクトにより重ねられる線領域の内の1つの領域の線色との間の比較に依存してもよい。
【図面の簡単な説明】
【0030】
【図1】本発明の1つ以上の実施形態が使用可能なシステムを例示する概略ブロック図である。
【図2a】、
【図2b】、
【図2c】部分的な透明性で重なる一組のグラフィックオブジェクトを例示する図である。
【図3a】、
【図3b】部分的な透明性で重なる一組の3つのグラフィックオブジェクトを例示する図である。
【図4】部分的な透明性で重なる階層化グラフィックオブジェクトの種々の配置を例示するブロック図である。
【図5a】オブジェクト表現をビットマップ画像から生成する方法を例示する概略フローチャートである。
【図5b】ビットマップ画像を処理する実施形態を例示する概略フローチャートである。
【図6】部分的な透明性で重なるグラフィックオブジェクトを検出及び構成する方法を例示する概略フローチャートである。
【図7】複数対のグラフィックオブジェクトの重なり領域に対応する一組の透明性モデルを検出する方法を例示する概略フローチャートである。
【図8】処理ステップ630での3つの重なりグラフィックオブジェクトの重なり領域に対応する一組の透明性モデルを検出する処理方法800を例示する概略フローチャートである。
【図9】一組の領域及び透明性モデルに応じてグラフィックオブジェクトを構成する方法を例示する概略フローチャートである。
【図10】ある境界線から開始する一組の透明性モデルに応じてグラフィックオブジェクトを生成する方法を例示する概略フローチャートである。
【図11a】、
【図11b】記載の構成が実施可能な汎用コンピュータシステムを示す概略ブロック図である。
【図12】重なりグラフィックオブジェクトの線スタイルを検出する方法を例示する概略フローチャートである。
【図13a】、
【図13b】、
【図13c】部分的な透明性で重なる線を有する同一組のグラフィックオブジェクトを例示する図である。
【図14】部分的な透明性で重なる階層化グラフィックオブジェクトの種々の配置を例示する図である。
【図15a】オブジェクト表現をビットマップ画像から生成する方法を例示する概略フローチャートである。
【図15b】ビットマップ画像を処理する実施形態を例示する概略フローチャートである。
【図16】オブジェクトの周囲に一致した線スタイルが存在するかを判定し、もしあれば線スタイルを算出する方法を例示する概略フローチャートである。
【図17】線を除去し、塗りつぶし領域間の隣接性を回復するためにオブジェクト表現を修正する方法を例示する概略フローチャートである。
【図18】線領域を除去する場合に使用する始点及び終点の選択を例示する概略フローチャートである。
【図19】線領域の外側の周囲の入力境界線を検出する方法を例示する概略フローチャートである。
【図20】入力境界線を分解する方法を例示する概略フローチャートである。
【図21】線領域及びその周囲の領域を線領域の境界に隣接する境界線と共に示す図である。
【図22】線領域を除去し、周囲の領域を再連結する中間段階における図21の同一線領域を示す図である。
【図23】線領域を図21から除去した最終結果とその結果生じる境界線とを示す図である。
【図24】線領域の多数の異なる幾何形状を示す図である。
【図25】線の骨格に沿って領域を連結する方法を示す概略フローチャートである。
【図26】複数の領域を線領域上で再連結した後にこれらの領域の新しいトポロジを分解する方法を示す概略フローチャートである。
【図27】部分的な透明性と線スタイルで重なるグラフィックオブジェクトを検出及び構成する方法を示す概略フローチャートである。
【発明を実施するための形態】
【0031】
オブジェクト表現をビットマップ画像から生成する方法、装置、及びコンピュータ読み取り可能な媒体が開示される。以下の説明では、特定のグラフィックオブジェクト形状、色空間、及び図形コンテンツ等を含む多数の具体的な詳細を説明する。しかし、本発明の範囲から逸脱することなく変形及び/又は代替が可能であることは本開示より当業者には明らかであろう。状況によっては、本発明を不明確にしないよう具体的な詳細を省略してもよい。
【0032】
1つ以上の添付の図面において同一の図中符号を有するステップ及び/又は特徴を参照する際に、これらのステップ及び/又は特徴は反対の意図がない限り、説明を目的として同一の機能や動作を有する。
【0033】
[システムの概要]
図1に、本発明の1つ以上の実施形態が使用可能なシステムを例示する。文書110はスキャナ120により走査され、入力走査済文書画像130が形成されてビットマップ画像としてメモリに記憶される。入力走査済文書画像130は、本発明の1つ以上の実施形態に応じて処理モジュール140において処理される。処理モジュール140は、本発明の実施形態に応じて部分的に透明なオブジェクトの検出及び再構成を含む多数のビットマップ画像解析処理段階を行ってもよい。線スタイル、塗りつぶしスタイル(部分的に透明な塗りつぶし部を含む)及び矢印など種々のスタイルを持つテンプレート形状、コネクタ及び自由形式要素の形式の図形コンテンツを含むビットマップ画像130(すなわち、走査済文書)のファイル記述又はオブジェクト表現150を生成してもよい。ファイル150は、ファイル150が提供されるコンピュータ160など、好適なデバイス上の構造化テキスト/グラフィック編集アプリケーションを用いた編集に好適な図形要素161及び162(グラフィックオブジェクト)を含んでもよい。
【0034】
文書110は種々のコンテンツの種類を有する複合文書でもよい。コンテンツは、テキスト111及び表112など非図形要素に加え、透明なグラフィックオブジェクト114を部分的に重ねるフローチャート113、及び他のチャート115など図形要素を含んでもよいが、これらに限定されない。文書110はプリンタ、FAX装置、プロジェクタ、又はペンと紙、ホワイトボードなど他の従来の媒体を含む種々の装置を使用して生成でき、元電子文書の不完全な表現でもよい。スキャナ120は、独立型スキャナ、ハンドヘルド型スキャナ又は多機能プリンタなど、より大型のシステムに組み込まれたスキャナでもよい。スキャナ120は、カメラ、携帯電話又は電子手帳など、他の撮像装置でもよい。スキャナ120により入力走査済文書画像130に雑音が入ることもある。処理モジュール140の例としては、コンピュータ、多機能プリンタ、携帯電話又は電子手帳がある。
【0035】
透明性は、自由形式やテンプレート形状など、グラフィックオブジェクトの塗りつぶしスタイルに対して定義できる。部分的に透明な塗りつぶしグラフィックオブジェクトは、その部分的に透明な塗りつぶしグラフィックオブジェクトの下にあるオブジェクトや背景領域を完全に覆い隠せない。透明性モデルは、グラフィックオブジェクトの塗りつぶし部と部分的に透明な塗りつぶしグラフィックオブジェクトの真下の色とをある点で合成する方法を定義するのに使用される。グラフィックオブジェクトの透明性は、グラフィックオブジェクトの内部で変化したり又は一定であるようなモデルのパラメータである。ここで、完全な透明性は値「1」の透明性パラメータであり、透明性「0」は値「0」のパラメータであるが、システムの中には百分率(「0」を示す0%や完全な透明性を示す100%)等の他の定義で動作するものもある。
【0036】
一般に、透明性合成モデルは、各色チャンネルに対してある点において別々に重なる複数のグラフィックオブジェクトの色の凸結合として合成色を定義する。上位層のオブジェクトが色チャンネル値C(i)upperと透明性パラメータαupperとを有し、下位層のオブジェクトが色チャンネル値C(i)lowerを有する場合、合成色チャンネル値C(i)は以下のようになる。
【0037】

【0038】
3つ以上のオブジェクトが重ね合わされた場合、式(1)は複数回使用される。すなわち、複数層の合成結果である色を有する単一の層になるまで、後側の対の層が式(1)により決定された色を有する単一の層に繰り返し変換される。
【0039】
処理された色チャンネルは、通常赤−緑−青(RGB)色空間から得られる。この場合、上述の線形モデルを用いて透明性で合成することで得られた色が適切な範囲に存在することが保証される。しかし、処理された色チャンネルが他の色空間に定義される場合は、範囲外の色が得られ、処理によってはこれを取り扱う必要がある。別の透明性合成モデルも存在するが、この線形モデルはコンピュータグラフィックスで最も一般的に使用されている。
【0040】
透明性は、いくつかの参考文献や製品では不透明性、透光性又はアルファチャンネルに関して検討されている。透光性及びアルファチャンネルが透明性と同一のものを意味する一方、不透明性は逆のパラメータである(一般に、不透明性=1−透明性)。コンピュータグラフィックスのアプリケーションの中には、一般に効率化のために事前に乗算された色(透明性を事前に乗算された色)に関して計算を行うものがある。
【0041】
本発明の実施形態は、上側グラフィックオブジェクト又は複数のグラフィックオブジェクトが固定の部分的な透明性(すなわち、オブジェクト上で変化しない0よりも大きく1より小さい透明性パラメータ)を有する場合、重なるグラフィックオブジェクトの幾何形状モデルを検出し且つ構成するように設計されている。簡潔にするため、他のオブジェクトと重ならないと分かったオブジェクトは透明性「0」を有すると仮定する。2つ以上の解釈が処理中のオブジェクトを正確にモデル化できる場合は、単一の単純な解釈が選択される。
【0042】
[コンピュータシステムの実現形態]
図11a及び図11bは、上述の種々の構成が実施可能な汎用コンピュータシステム1100の概略ブロック図を一括して形成する。
【0043】
図11aに示すように、コンピュータシステム1100は、コンピュータモジュール1101と、キーボード1102、マウスポインタデバイス1103、スキャナ1126、カメラ1127、マイク1180等の入力装置と、プリンタ1115、表示装置1114及びスピーカー1117を含む出力装置とからなる。外部変調復調(モデム)送受信装置1116は、接続1121を介して通信ネットワーク1120と通信するためにコンピュータモジュール1101により使用されてもよい。ネットワーク1120は、インターネットや専用WAN等の広域通信網(WAN)でもよい。接続1121が電話線の場合、モデム1116は従来の「ダイアルアップ」モデムでもよい。あるいは、接続1121が大容量(例えば、ケーブル)接続の場合、モデム1116はブロードバンドモデムでもよい。無線モデムはネットワーク1120に無線接続するために使用されてもよい。
【0044】
コンピュータモジュール1101は、少なくとも1つのプロセッサ部1105と、例えば半導体ランダムアクセスメモリ(RAM)や半導体読出し専用メモリ(ROM)からなるメモリ部1106とを一般に含む。モジュール1101は、表示端末1114、スピーカー1117及びマイク1180に結合するオーディオビデオインタフェース1107と、キーボード1102、マウス1103、スキャナ1126、カメラ1127及びオプションであるジョイスティック(不図示)の入出力(I/O)インタフェース1113と、外部モデム1116及びプリンタ1115のインタフェース1108とを含む多数のI/Oインタフェースも含む。いくつかの実現形態では、モデム1116は例えばインタフェース1108内のコンピュータモジュール1101に内蔵されてもよい。コンピュータモジュール1101は、コンピュータシステム1100のローカルエリアネットワーク(LAN)として知られるローカルコンピュータネットワーク1122への結合を、接続1123を介して許可するローカルネットワークインタフェース1111も有している。例示するように、ローカルネットワーク1122は、所謂「ファイアウォール」装置又は同様の機能の装置を一般に含む接続1124を介して広域ネットワーク1120に結合してもよい。インタフェース1111は、Ethernet(登録商標)回路カード、Bluetooth(登録商標)無線装置又はIEEE802.11無線装置から形成されてもよい。
【0045】
インタフェース1108及び1113はシリアル接続性及びパラレル接続性の一方又は両方を提供してもよく、前者は一般にユニバーサルシリアルバス(USB)規格により実現されて対応するUSBコネクタ(不図示)を有する。記憶装置1109が提供され、ハードディスクドライブ(HDD)1110を一般に含む。フロッピー(登録商標)ディスクドライブや磁気テープドライブ(不図示)等の他の記憶装置が使用されてもよい。光ディスクドライブ1112は、不揮発性のデータ源として動作するように一般に提供される。光ディスク(例えば、CD−ROMやDVD)、USB−RAM及びフロッピー(登録商標)ディスク等の携帯型メモリ装置は、システム1100の適切なデータ源として使用されてもよい。
【0046】
一般にコンピュータモジュール1101の構成要素1105〜1113は、当業者には既知のコンピュータシステム1100の従来の動作モードとなるように相互接続されたバス1104を介して通信する。上述の構成が実施可能なコンピュータの例には、IBM-PCや互換機、Sun SparcstationsやApple Mac(登録商標)、あるいはそれから進化した同様のコンピュータシステムが含まれる。
【0047】
オブジェクト表現をビットマップ画像から生成する方法は、図5乃至図10の処理がコンピュータシステム1100で実行可能な1つ以上のソフトウェアアプリケーションプログラム1133として実現されるコンピュータシステム1100を使用して実現されてもよい。特に、オブジェクト表現をビットマップ画像から生成する方法のステップは、コンピュータシステム1100内で実行されるソフトウェア1133の命令1131によって達成される。ソフトウェア命令1131は、各々が1つ以上の特定のタスクを行う1つ以上のコードモジュールとして形成されてもよい。ソフトウェアは2つの別個な部分に分割されてもよく、第1の部分とそれに対応するコードモジュールがオブジェクト表現をビットマップ画像から生成する方法を行い、第2の部分とそれに対応するコードモジュールが第1の部分とユーザとの間のユーザインタフェースを管理する。
【0048】
ソフトウェア1133は、コンピュータ読み取り可能な媒体からコンピュータシステム1100に一般に読み込まれ、図11aに例示するようにHDD1110又はメモリ1106に一般に記憶され、その後ソフトウェア1133はコンピュータシステム1100により実行できる。場合によっては、アプリケーションプログラム1133はユーザに供給され、1つ以上のCD−ROM1125上で符号化され、メモリ1110又は1106への記憶の前に対応するドライブ1112を介して読み出されてもよい。あるいは、ソフトウェア1133はコンピュータシステム1100によりネットワーク1120又は1122から読み出されるか、あるいは他のコンピュータ読み取り可能な媒体からコンピュータシステム1100に読み込まれてもよい。コンピュータ読み取り可能な記憶媒体とは、実行及び/又は処理のために命令及び/又はデータをコンピュータシステム1100に提供する際に関与するあらゆる記憶媒体のことを言う。そのような記憶媒体の例としては、デバイスがコンピュータモジュール1101の内部にあるか外部にあるかに関わらず、フロッピー(登録商標)ディスク、磁気テープ、CD−ROM、ハードディスクドライブ、ROM又は集積回路、USBメモリ、光磁気ディスク、又はPCMCIAカード等のコンピュータ読み取り可能なカードがある。ソフトウェア、アプリケーションプログラム、命令及び/又はデータをコンピュータモジュール1101に提供する際に関与するコンピュータ読み取り可能な伝送媒体の例としては、他のコンピュータやネットワークデバイスへのネットワーク接続と、eメール送信やウェブサイト等に記録された情報を含むインターネット又はイントラネットとに加え、無線又は赤外線伝送チャネルがある。
【0049】
表示装置1114上に描画又は表現する1つ以上のグラフィカルユーザインタフェース(GUI)を実現するために、上述のアプリケーションプログラム1133の第2の部分とそれに対応するコードモジュールとを実行してもよい。一般にキーボード1102とマウス1103の操作を通じて、コンピュータシステム1100及びアプリケーションのユーザは機能的に適応可能にインタフェースを操作し、制御コマンド及び/又は入力をGUIに関連したアプリケーションに提供してもよい。機能的に適応可能なユーザインタフェースの別の形態は、スピーカー1117を介して出力された音声プロンプトやマイク1180を介して入力されたユーザ音声コマンドを利用した音声インタフェース等として実現されてもよい。
【0050】
図11bは、プロセッサ1105及び「メモリ」1134の詳細な概略ブロック図である。メモリ1134は、図11aのコンピュータモジュール1101がアクセス可能な全てのメモリ装置(HDD1110と半導体メモリ1106とを含む)の論理的な集合を示す。
【0051】
最初にコンピュータモジュール1101の電源を入れると、電源投入自己診断(POST)プログラム1150を実行する。POSTプログラム1150は半導体メモリ1106のROM1149に一般に記憶される。ROM1149等のハードウェア装置に固定的に記憶されたプログラムはファームウェアと呼ばれることがある。POSTプログラム1150は、適切に機能しているかを保証するためにコンピュータモジュール1101内のハードウェアを検査し、正しく動作するためにプロセッサ1105、メモリ(1109、1106)及びROM1149に一般に記憶される基本入出力システムソフトウェア(BIOS)モジュール1151を一般にチェックする。POSTプログラム1150の動作が成功すると、BIOS1151はハードディスクドライブ1110を起動する。ハードディスクドライブ1110の起動により、ハードディスクドライブ1110に常駐するブートストラップローダプログラム1152をプロセッサ1105を介して実行する。これによりオペレーティングシステム1153がRAMメモリ1106に読み込まれ、オペレーティングシステム1153が動作を開始する。オペレーティングシステム1153は、プロセッサ管理、メモリ管理、デバイス管理、記憶管理、ソフトウェアアプリケーションインタフェース及び一般のユーザインタフェースを含む種々の高レベルの機能を実現するためにプロセッサ1105が実行可能なシステムレベルのアプリケーションである。
【0052】
オペレーティングシステム1153は、コンピュータモジュール1101で動作している各処理又はアプリケーションが他の処理に割り当てられたメモリと衝突することなく実行するのに十分なメモリを有することを保証するために、メモリ(1109、1106)を管理する。更に、システム1100で利用可能な異なる種類のメモリは、各処理が効率的に動作できるように適切に使用されなければならない。したがって、集合メモリ1134は、特定のメモリセグメントがどのように割り当てられるのかを例示するためのものではなく(特に指定がない限り)、コンピュータシステム1100がアクセス可能なメモリの全体図とその使用方法とを提供するものである。
【0053】
プロセッサ1105は、制御部1139と、演算論理部(ALU)1140と、キャッシュメモリとも呼ばれるローカル又は内部メモリ1148とを含む多数の機能モジュールを含んでいる。キャッシュメモリ1148は、レジスタ部に多数の記憶レジスタ1144〜1146を一般に含む。1つ以上の内部バス1141はこれらの機能モジュールを機能的に相互接続する。プロセッサ1105は、接続1118を使用してシステムバス1104を介して外部装置と通信するために1つ以上のインタフェース1142も一般に有している。
【0054】
アプリケーションプログラム1133は、条件付き分岐及びループ命令を含む一連の命令1131を含んでいる。プログラム1133は、プログラム1133の実行の際に使用されるデータ1132を含んでもよい。命令1131及びデータ1132は、それぞれ記憶場所1128〜1130及び1135〜1137に記憶される。命令1131の相対的な大きさと記憶場所1128〜1130とによっては、記憶場所1130に示される命令に表されるように特定の命令が単一の記憶場所に記憶されてもよい。あるいは、命令は多数の部分にセグメント化され、各々が記憶場所1128〜1129に示す命令セグメントに表されるように別個の記憶場所に記憶されてもよい。
【0055】
一般に、一連の命令がプロセッサ1105に与えられ、その内部で実行される。プロセッサ1105は以降の入力を待機し、他の一連の命令を実行することによりその入力に対して反応する。各入力は、1つ以上の入力装置1102や1103により生成されたデータ、ネットワーク1120や1122の1つを介して外部ソースから受信されたデータ、記憶装置1106や1109の1つから検索されたデータ、又は対応するリーダ1112に挿入された記憶媒体1125から検索されたデータを含む多数のソースの内の1つ以上から提供されてもよい。一連の命令を実行することによりデータを出力する場合もある。実行には、データや変数をメモリ1134に記憶することが含まれてもよい。
【0056】
開示された構成では入力変数1154を使用し、これらはメモリ1134中の対応する記憶場所1155〜1158に記憶される。これらの構成では出力変数1161を生成し、メモリ1134中の対応する記憶場所1162〜1165に記憶される。中間変数は記憶場所1159、1160、1166及び1167に記憶されてもよい。
【0057】
プロセッサ1105のレジスタ部1144〜1146、演算論理部(ALU)1140及び制御部1139は共に動作し、プログラム1133を構成する命令群における各命令に対して「取出し−復号−実行」サイクルを行うのに必要な一連のマイクロ動作を行う。各取出し−復号−実行サイクルは下記を含む。
(a)命令1131を記憶場所1128から取出すか又は読出す取出し動作
(b)命令が取り出されたかを制御部1139が判定する復号化動作
(c)制御部1139及び/又はALU1140が命令を実行する実行動作
その後、次の命令のための更なる取出し−復号−実行サイクルが実行されてもよい。同様に、記憶サイクルを行ってもよく、これにより制御部1139は値を記憶場所1132に記憶又は書き込む。
【0058】
図5〜10の処理における各ステップ又はサブプロセスは、プログラム1133の1つ以上のセグメントに関連付けられ、プログラム1133の上述のセグメントの命令群の各命令に対して取出し−復号−実行サイクルを行うために共に動作しているプロセッサ1105中のレジスタ部1144〜1147とALU1140と制御部1139とにより行われる。
【0059】
あるいは、オブジェクト表現をビットマップ画像から生成する方法は、オブジェクト表現をビットマップ画像から生成する機能やサブ機能を行う1つ以上の集積回路等の専用ハードウェア内で実現されてもよい。そのような専用ハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ、又は1つ以上のマイクロプロセッサ及び関連メモリを含んでもよい。
【0060】
[重なるグラフィックオブジェクトの例]
図2に、透明性で重なる一組のグラフィックオブジェクトを例示する。図2aでは、グラフィックオブジェクト201は、部分的な透明性で縦向きの細長い矩形である一方、グラフィックオブジェクト202及び203は透明性「0」の横向きの細長い矩形(長さ方向が矩形201と直交する)及び正方形である。図2bに、垂直矩形201が水平矩形202に重なり、これらが正方形203に重なるように、図2aのオブジェクト201、202及び203を階層化した結果を例示する。正方形203は2つの矩形201及び202の重なり部の背景を効果的に形成する。
【0061】
図2bでは、6つの領域210、211、212、213、214、及び215が合成オブジェクトから形成される。領域210は、正方形203のみに被覆された領域である。領域211及び214は、水平矩形202と正方形203の双方に被覆された領域を示す。水平矩形202は透明性「0」であるため、正方形203は完全に隠蔽され、領域211及び214の色は矩形202と同一である。領域212及び215は、垂直矩形201と正方形203の双方に被覆された領域を示す。垂直矩形201は部分的な透明性を有するので、領域212及び215の色は、正方形203及び矩形201の色による透明性モデルに応じて決定できる。最後に、領域213は全3つのオブジェクト201、202及び203に被覆された領域を示す。この領域において水平矩形202は正方形203を完全に隠蔽するため、領域213の色は、矩形201及び202の色による透明性モデルに応じて決定できる。図2cは後述する。
【0062】
図3aは、透明性を有する一組の3つのグラフィックオブジェクト301、302及び303の第2の例示である。本例では、これらのグラフィックオブジェクトはベン図を形成するように部分的な透明性で重なる円である。合成後、低濃度の円301は中間濃度の円302に重なり、これらはより高濃度の円303に重なる。図3bは、円形オブジェクト301、302及び302を背景領域317に合成して7つの領域を形成した結果を例示する。3つの領域310、311及び312は、単一の円301、302、303が背景317上に存在する場所にある。領域310、311及び312の各々の色は、重なりオブジェクト透明性パラメータに応じて、円301、302、303の色を背景317と合成することにより得られる。更に3つの領域313、314及び315は、円301、302及び303の内2つが背景317上で重なる場所にある。また、領域313、314及び315の色は、領域313、314及び315におけるオブジェクト301、302、303の色を背景色317と共に合成することにより得られる。例えば、中間濃度の302は、領域313において背景317上で高濃度の円303に重なる。式(1)の透明性モデルによると、後側の対の層を合成することにより右側の大領域312の色チャンネル値C(i)1(高濃度の円303及び背景317)が与えられる。
【0063】

【0064】
式中、C(i)dark及びC(i)backは高濃度の円303及び背景317の色チャンネル値、αdarkは高濃度の円の透明性パラメータである。本解釈では高濃度の円303の透明性は0であり、この場合C(i)1=C(i)backである。右側の大領域の色は、色チャンネルC(i)modと透明性(アルファ)パラメータαmodとを有する中間濃度の円と合成され、領域313の色C(i)2が与えられる。
【0065】

【0066】
全3つの円301、302及び303は領域316で重ね合わされ、領域316の色は上述のパラメータと淡色の円301の色C(i)light及び透明性αlightとを使用して決定できる。
【0067】

【0068】
部分的な透明性を有して重なり合う複数のオブジェクトには多数の幾何形状が存在し、これらのいくつかを図4に例示する。図4は、オブジェクトの5つのクラスタを例示し、これらの多くは重なっている。単一のグラフィックオブジェクトに対応する領域401〜415は、水平又は垂直斜線で示され、上側グラフィックオブジェクトが部分的に透明である2つのグラフィックオブジェクトの重なり領域に対応する領域420〜431は交差斜線で示される。同一の番号が付された領域は、同一のオブジェクト又は同一組のオブジェクト(例えば、401、402、407、420)で被覆された領域に対応する。このように重なる例は本発明の実施例を使用して処理可能であるが、多くの構造化テキスト/グラフィック編集アプリケーションは領域408及び425に示される自己交差オブジェクトなど、単一の層によって定義されていないオブジェクトを出力できない。
【0069】
[ビットマップ画像からのオブジェクト表現の生成]
図5aは、オブジェクト表現をビットマップ画像から生成する方法500を例示する高レベルのフローチャートである。ビットマップ画像は文書の走査版でもよく、オブジェクト表現は電子文書(例えば、編集可能な)でもよい。方法500は図1の処理モジュール140において実現されてもよく、コンピュータによって実現することもできる。処理はステップ510で開始する。ステップ510において、一組の領域がプロセッサ1105を使用してビットマップ画像から選択され、この一組の領域はビットマップ画像の背景領域を含む。選択ステップ510の詳細については、図5bを参照してより詳細に後述する。ステップ520において、第2のグラフィックオブジェクトに重なる部分的な透明性を有する第1のグラフィックオブジェクトの色及び部分的な透明性パラメータは、一組の領域の色に応じてプロセッサ1105を使用して推定される。推定された色及び部分的な透明性は、2つのグラフィックオブジェクトの重複部の領域の色を色及び部分的な透明性パラメータで定義する透明性合成モデルと一致する。第1及び第2のグラフィックオブジェクトの幾何形状モデルは、一組の領域と第1のグラフィックオブジェクトの推定された色及び透明性パラメータとからプロセッサ1105を使用して構成される。ステップ530において、第1及び第2のグラフィックオブジェクトの幾何形状モデルは一組の領域から構成され、これらのオブジェクトの推定された色及び透明性パラメータが設定される。ステップ540において、オブジェクト表現は幾何形状モデルに応じて生成される。その後、処理は終了する。
【0070】
図5bは、オブジェクト表現(例えば、図1のファイル150)を生成するためにビットマップ画像(例えば、図1の走査済文書130)を処理する方法550をより詳細に例示する。方法550は図5aのステップ510をより詳細に示す。ステップ555と、560と、565と、ステップ570の610〜630とがステップ510を実現する。方法550はステップ555で開始する。ステップ555において、ビットマップ画像は1つ以上の連結成分に区分される。メモリ1106に記憶されたビットマップ画像に対してプロセッサ1105により低レベルの画像分割が行われ、画像は色に応じて連結成分(CC)に分割される。ビットマップ画像の連結成分の各々はメモリ1106に記憶される。ステップ560において、プロセッサ1105は連結成分を分類し、種々の文書コンテンツの種類を識別する。これは、ビットマップ画像の連結成分に対して高レベルの文書レイアウト解析を実行することによって行われる。連結成分は、それらの矩形バウンディングボックスに関して処理されてもよく、処理中にマージ又はグループ化された連結成分でもよい。コンテンツの種類には、テキスト、写真、表、線画及びグラフィックという分類がある。これらのコンテンツの種類の各々は画素データ(すなわち、連結成分)に対応する。
【0071】
高レベルの文書解析の後、ステップ565において、プロセッサ1105は定義済み幾何形状を有する領域を生成する。これは連結成分を解析することによって行われる。他の連結成分は図形コンテンツを含む確率が低いと見なされるため、線画及び/又はグラフィック領域として分類された連結成分のみがステップ565で処理されるのが好ましい。各領域は、単一の外側境界と、この単一の外側輪郭及び連結成分の一組の0以上の内側輪郭に対応する0以上の内側境界とによって定義できる。図2cは、矩形201及び202のいずれも正方形オブジェクト203に重ならない図2bの領域210に対応する連結成分240を例示する。オブジェクト240は、単一の外側境界230と単一の内側境界231とを有する。
【0072】
境界は境界線区間に関して表現されてもよい。ここでは、用語「境界線」は各辺の長さ方向に隣接する独自の領域を有する境界の区間を記述するために使用される。各境界線は2つの境界に含まれる。2色のみの単純な領域構成は、図2cの連結成分240の境界230を定義する図2bの外側境界線220のような閉境界線を有する。一方、3色以上のより複雑な領域構成において、複数の境界線は、一緒にリンクされて複数の境界を構成する開区間でもよい。例えば、図2bに示す重ね合わされたのオブジェクトの組により、線221〜228で表現される8本の境界線が存在する5つの小正方形領域211〜215が形成される。閉境界は各領域の外側の周囲に構成される。例えば、上側小矩形215の外側境界は境界線228及び221を使用して構成できる一方、中央の小矩形213の外側境界は境界線221、227、225及び223から構成できる。図2cの大領域240の内側境界231も境界線228、222、224及び226を使用して構成できる。
【0073】
多角形表現が自己又は相互交差のない効率的な表現となるように、一組の領域を表す境界線に対して多角形表現を生成する技術がある。境界線に沿った点は好適なデータ構造でメモリ1106に記憶され、境界はこれらのデータ構造によって定義される。境界上の連続する点に対して一貫性のある順序付け方式を使用するのは有用である。上述の実施形態において、順方向に横断した場合、外側境界は時計回りのループを形成し、内側境界は反時計回りのループを形成する。この方式では、いずれの境界の周囲であっても順方向に前進すると、領域はその境界の右側に位置する。
【0074】
図5のステップ570において、ステップ565で生成された領域に基づいて、部分的な透明性で重なるグラフィックオブジェクトの幾何形状モデルは、図6を参照してより詳細に後述する方法600に応じて検出され且つ構成される。構成された幾何形状モデルは関連色及び透明性を有する。これには、図5aのステップ510において、領域を選択する最終的なサブステップが含まれる。少なくとも1つのオブジェクトの幾何形状モデルはこの段階で出力されてもよく、例えばこの段階では、グラフィックオブジェクトが自由形状であり特定の図形コンテンツの種類として分類できない。したがって、以降のステップ575及び580はオプションのステップとして示される。
【0075】
方法550はオプションのステップ575(破線で示される)に進む。ステップ575では、現在の組の領域に基づいて図形コンテンツが決定される。図形コンテンツは、テンプレート形状、線オブジェクト、矢印、コネクタ及び他のオブジェクトを含んでもよい。本処理は、線及び形状検出、隠蔽形状検出、線リンク解析及びコネクタ解析のための既知の技術を採用してもよい。
【0076】
ステップ580において、プロセッサ1105は分類されたグラフィックオブジェクトをオブジェクト表現としてオプションで(再度、破線で示す)出力する。この出力は、構造化テキスト/グラフィック編集アプリケーションでの閲覧及び編集に好適な形式でもよい。その後、方法550の処理は終了する。
【0077】
[幾何形状モデルの検出及び構成]
図6に、図5aのステップ510、520及び530並びに図5bのステップ570で使用される部分的な透明性で重なるオブジェクトの幾何形状モデルを検出し且つ構成する方法600を例示する。処理はステップ610で開始する。ステップ610において、各々が一対のグラフィックオブジェクトの重なりの領域に対応する一組の透明性モデルが、図7を参照して後述する方法700に応じて検出され、メモリ1106に記憶される。本実施形態において、領域の透明性モデルは以下のパラメータを含むデータ構造で記憶される。
・(一対の重なりオブジェクトの)上側グラフィックオブジェクトに対応する上位層色チャンネル値(C(i)upper)及び透明性パラメータ(αupper)、
・下側グラフィックオブジェクトに対応する下位層色チャンネル値(C(i)lower)、
・背景色チャンネル値(C(i)back)、
・モデルの領域と上側グラフィックオブジェクトの一部を形成する可能性のある領域との間の境界線に対応する上側境界線、
・モデルの領域と下側グラフィックオブジェクトの一部を形成する可能性のある領域との間の境界線に対応する下側境界線、
・モデルの品質を定量化する誤差パラメータ。
【0078】
検出処理700では、隣接領域において検出されたモデルの整合性はチェックされないため、透明性モデルデータのフィルタリングはステップ620で行われる。透明性モデルが検出された各領域は順次チェックされる。透明性モデルの上側及び下側境界線において、この領域とは反対側にある領域がテストされ、これらの領域も透明性モデルを有するかが確認される。どちらも透明性モデルを有するならば、削除するために、透明性モデルに印を付け、全ての領域を処理した後に削除される。図4は、透明性モデルが検出されるいくつかの隣接領域を例示する。領域426及び427の双方のモデルは境界線を共有するが、この境界線は何れかの領域の透明性モデルの上側又は下側境界線ではなく、領域408と426との間、領域409と426との間、領域408と427と間及び領域410と427との間の境界線である。これは領域428及び429並びに領域430及び431についても同様である。
【0079】
透明性モデルのフィルタリングが完了すると、ステップ630において、部分的な透明性を有する3つのグラフィックオブジェクトの重なり領域に対応する一組の透明性モデルが、図8を参照して後述する方法800に応じて検出され、メモリ1106に記憶される。ステップ640において、透明性モデルに対応するグラフィックオブジェクトの一組の幾何形状モデルは、図9を参照して後述する方法900に応じて構成される。その後、方法600の処理は終了する。
【0080】
図7は、図6の処理ステップ610で使用される複数対のグラフィックオブジェクトの重なり領域に対応する一組の透明性モデルを検出する処理方法700を例示する。処理はステップ710で開始する。ステップ710において、次の領域が選択される。すなわち、透明オブジェクト処理のために図5bのステップ560による処理に対して選択された各領域はステップ710で選択される。ステップ720において、次の境界線が選択される。領域の外側境界の各境界線区間は順次選択される。上述のように、境界線は領域が右側に位置するように方向付けられるのが好ましい。別の実施形態では、内側境界上の境界線を処理してもよいが、これらが有用な透明性モデルとなる可能性は低い。好適な実施形態では、短い境界線区間(例えば、300dpiで2画素より短い長さの境界線区間)は本ステップでは処理も選択もされない。
【0081】
ステップ730において、境界線交差が検出される。ステップ730では、境界方向の境界線区間の終点における境界線交差を検出する。境界線交差は、透明性モデルが評価できる現在の領域の境界に沿った一対の連続する境界線である。例えば、現在の領域が図2bの中央の小正方形領域213に対応し、現在の境界線が左側223にある場合、境界線交差の第2の境界線はこの領域の上部221に沿っている。境界線交差を検出する単純な方法は、境界データ構造に応じて境界上の次の境界線を取得することである。しかし、雑音により又はオブジェクトを生成するための画像処理のアーティファクトとして短い境界線区間が存在する場合、本方法は失敗する可能性がある。この場合、別の方法として、閾値(例えば、300dpiで2画素)よりは長いが、境界に沿って過度に長くはない(例えば、300dpiで5画素の第2の閾値より短い)次の境界線を選択する。
【0082】
その後、ステップ740に進む。ステップ740において、第1の透明性モデル(次のモデル上の先行モデル)をテストする。ステップ740では、第1の境界線が上位層にある部分的に透明なオブジェクトの一部を形成する領域に隣接し、第2の境界線が下位層にあるグラフィックオブジェクトの一部を形成する領域に隣接し、これら2つのオブジェクトが現在の領域において重なり且つ共通の背景で囲まれていると仮定する透明性モデルをテストする。上述の図2bの例では、処理中の領域が中央の正方形213に対応し、2本の境界線223及び221がそれぞれ左側と上側にある場合、隣接領域は左側及び上側の小正方形領域211及び215に対応する。
【0083】
背景又は親領域は、各領域に対して選択される。背景領域を選択する種々の技術が当該分野では既知であり、好ましい一方法では異なる色とある領域を完全に取り囲む異なるバウンディングボックスとを有するページ上の最小領域を検出する。図2bに示す例では、全ての小さいオブジェクトは大正方形領域210である同一の親又は背景オブジェクトを共有する。
【0084】
多数のテストを行い、透明性モデルを棄却するかを判定してもよい。まず、隣接領域のいずれかが現在の領域の背景ならば、そのモデルは棄却される。次に、隣接領域のいずれかが以前の処理で例えばテキストとして既に分類されていたら、そのモデルは棄却される可能性がある。第三に、3つの領域の背景色が互いに整合性がないならば、そのモデルは棄却される可能性がある。一対の色の間の整合性をテストする好適な方法では、色チャンネルが0〜255の範囲の値を取るRGB空間の二乗差の合計を計算し、これを閾値と比較する(例えば、類似の色は1000より小さい二乗誤差の合計を有する可能性がある)。
【0085】
透明性モデルの一組の色は以下のように定義される。
・C(i)upperは、第2のグラフィックオブジェクトに重なる部分的な透明性を有するグラフィックオブジェクトの一部であると見なされる第1の隣接領域の色チャンネル値である。
・C(i)lowerは、第1のグラフィックオブジェクトに重なる第2のグラフィックオブジェクトの一部であると見なされる第2の隣接領域の色チャンネル値である。
・C(i)bothは、2つのグラフィックオブジェクトの重なり領域であると見なされる現在の領域の色チャンネル値である。
・C(i)backは、背景領域の色チャンネル値である。
ここで、パラメータ(i)は色チャンネル(好適な実施形態では、赤、緑及び青)に対応する。例えば、処理中の領域が図2bの中央の小領域213ならば、C(i)upperは左側小正方形211の色チャンネル値であり、C(i)lowerは上側小正方形215の色チャンネル値であり、C(i)bothは中央の小正方形213の色チャンネル値であり、C(i)backは大正方形210の色チャンネル値である。
【0086】
上側グラフィックオブジェクトの想定透明性αについては、上側、下側及び背景色に関して重なり領域における色の推定値は以下のようになる。
【0087】

【0088】
この式では基本的に、背景と透明性により基準化された下側オブジェクトとの色差に応じて透明オブジェクトが背景の上にある領域の色をシフトすることにより重なり領域の色チャンネル推定値を検出する。シフトの際、透明オブジェクトの下の色差を考慮する。式(5)は、透明性「0」C(i)zeroで上側グラフィックオブジェクトの色チャンネル値を想定し、透明性の合成式(1)により背景及び下側グラフィックオブジェクトに対する合成色チャンネル値を表現することにより以下のように導出できる。
【0089】

【0090】
これらの2つの合成色推定値を互いに減算し、透明性「0」で上側オブジェクトの色を推定することで式(5)が得られる。
【0091】
透明性モデルに対する誤差関数E(α)は、この推定値を0〜255の範囲に限定し、誤差の二乗和を取ることにより得られる。
【0092】

【0093】
透明性モデルに対する上側グラフィックオブジェクトの透明性αupperは、透明性の範囲(0≦α≦1)で誤差関数を最小化することにより得られる。誤差関数は一般に、誤差関数がせいぜい1つの極小を有するような間隔で十分に作用し、最小化はブレント法等の関数の括弧付き最小値を検出する既知の数値法を使用して行ってもよい。最小値における誤差関数が好適な閾値(例えば、本実施形態では500)よりも小さければ、透明性モデルを受入れて、メモリ1106に記憶してもよい。
【0094】
その後、ステップ750に進む。ステップ750において、第2の透明性モデル(先行モデル上の次のモデル)をテストする。ステップ750では、第2の境界線が部分的に透明な上側オブジェクトに隣接し且つ第1の境界線が共通の背景上の下側オブジェクトに隣接すると仮定する透明性モデルをテストする。本処理は、第1の境界線及び第1の隣接領域を第2の境界線及び隣接領域として使用し且つ第2の境界線及び第2の隣接領域を第1の境界線及び隣接領域として使用したステップ740に記載の処理と同一であり、C(i)upperが第2の隣接領域に対応し且つC(i)lowerが第1の隣接領域に対応する。ステップ760において、最良の受入れ可能モデル(すなわち、そのようなモデルがあるとすれば、受入れ閾値よりも低い最小の誤差関数得点を有するモデル)が、対応する誤差関数得点と共に好適なデータ構造を使用してメモリ1106に記憶される。好適な実施形態において、キーが領域を表す指標に対応し、対応する値が領域に対して検出された透明性モデルのリストであるマップ構造が使用される。ステップ740及び750からのモデルの内の最良の受入れ可能モデルは、現在の領域のリストに追加される。
【0095】
決定ステップ770において、現在の領域に更なる境界線が存在するかを判定するためのチェックが行われる。ステップ770が真(YES)を返すと、ステップ720に進む。ステップ770が偽(NO)を返すと、ステップ780に進む。
【0096】
ステップ780では、2つ以上の受入れ可能モデルが検出されると、ある領域に対する一組の透明性モデルがフィルタリングされる。その領域に対する最良のモデルは、誤差パラメータが最小のモデルとして選択される。他の各モデルは、整合性のある上側、下側及び背景色と整合性のある透明性パラメータとを有するモデルをチェックすることにより最良のモデルとの整合性をチェックする。同様の透明性パラメータに対する好適なテストではモデル間の相違が0.05(又は5%)より小さくなり、色を比較する好適な方法はステップ740で導入されている。ある領域に対する全ての透明性モデルが最良のモデルと整合性があると検出されると、その領域に対して最良のモデルが受入れられ、他のモデルはもはや必要ではなくなる。一方、1つ以上のモデルが最良のモデルと整合性がない場合、その領域に対する全てのモデルが棄却される。その後、決定ステップ790に進む。決定ステップ790において、処理すべき更なる領域が存在するかを判定するためのチェックが行われる。ステップ790が真(YES)を返すと、ステップ710に戻る。ステップ790が偽(NO)を返すと、方法700は終了する。
【0097】
図2bの例において、領域213を処理する際に4つの境界線交差が検出され、各対は223と221、221と227、227と225及び225と223である。各境界線交差は整合性のある受入れ可能透明性モデルを生成し、この内最良のものが受入れられ、他の3つはフィルタリングにより除去される。図3bの例では、3の境界線交差のみが受入れ可能透明性モデルを一般に生成し、これらは異なる領域に関連付けられている。これらは、上側小領域315(ここでは低濃度の領域310と高濃度の領域312とが隣接している)の境界線交差321と、左側小領域314(ここでは低濃度の領域310と中間濃度の領域311とが隣接している)の境界線交差322と、右側小領域313(ここでは高濃度の領域312と中間濃度の領域311とが隣接している)の境界線交差323である。
【0098】
図8は、上述の処理ステップ630で使用される複数組の3つの重なりグラフィックオブジェクトの重なり領域に対応する一組の透明性モデルを検出する処理方法800を例示する。ステップ810において、次の領域が選択される。記憶された透明性モデルを持たないステップ610で処理のために選択された各領域は、ステップ810で順次選択される。ステップ820において、隣接透明性モデルが収集される。現在の領域に隣接する各領域の透明性モデルが存在すれば、一組の隣接透明性モデルはその透明性モデルを含んで形成される。隣接領域は、現在の領域に対して境界線データを使用して効率的に検出してもよい。
【0099】
ステップ830において、この一組の隣接領域のモデルが、現在の領域における部分的な透明性を持つ3つのグラフィックオブジェクトの重なりとの整合性のためのチェックが行われる。整合性のためにこの一組をテストする一方法は以下の通りである。まず、一組のモデルが整合性のために一対ずつチェックされ、整合性のある任意のモデル対については、誤差関数値が最も高いモデルがこの組から除去される。整合性のあるモデルは類似の色と透明性パラメータとを有し、ステップ740及び780に上述した複数対の色及び透明性パラメータの整合性又は類似性をテストする方法を使用してもよい。次に、この組の透明性モデル数が3でなければ、これらのモデルは部分的な透明性を持つ3つの領域の重なりとは整合性がない。透明性モデル数が3ならば、これら3つの選択されたモデルの全ての取りうる順序が更にテストされる。以下の条件が全て満たされるようにモデルが指標1、2及び3を割り当てられた透明性モデルの順序が存在すれば、部分的な透明性を持つ3つの領域の重なりが検出される。
・モデル1及び2の上側色及び透明性パラメータが一致し、且つ
・モデル2及び3の下側色が一致し、且つ
・モデル3の上側色がモデル1の下側色と類似であり、且つ
・全3つのモデルの背景色が一致する。
【0100】
決定ステップ840において、これらのモデルが一致するか(すなわち、3つのモデルが上記条件を満たすか)を判定するためのチェックが行われる。ステップ840が真(YES)を返すと、ステップ850に進み、3要素重なりモデルを記憶する。これにより、現在の領域との3要素重なりを表すように選択された3つのモデルを関連付ける。この領域に関連付けられた一組の3つの透明性モデルは、3つのグラフィックオブジェクトの重なりに対する透明性モデルを構成する。その後、ステップ860に進む。ステップ840が偽(NO)を返すと、これはモデルが上記条件を満たさないことを意味し、直接、ステップ860に進む。決定ステップ860において、処理すべき更なる領域が存在するかを判定するためのチェックが行われる。ステップ860が真(YES)を返すと、ステップ810に進む。ステップ860が偽(NO)を返すと、処理は終了する。
【0101】
図3に例示した例では、中央の小領域316は3つの小領域313、314及び315に隣接し、各々は単一の透明性モデルを有する。これらの透明性モデルの各々は同一の背景領域317を有し、このため同一の背景色を有する。左側及び上側小領域314及び315は、左側大領域310に基づき同一の上側色と透明性パラメータとを共有するモデルを有する。上側及び右側小領域315及び313は、右側の大領域312に基づき同一の下側色を共有するモデルを有する。また、領域314及び313は共に下側大領域311に基づいているため、左側小領域314の下側色は右側小領域313の上側色と一致する。左側小領域314からのモデル1、上側小領域315からのモデル2及び右側小領域313からのモデル3としてのこれらモデルの順序は、中央の小領域316における3要素重なりと一致するため、全3つのモデル1、2及び3が領域316に関連付けられる。
【0102】
本発明の別の実施形態では、単一の領域における4つ以上のグラフィックオブジェクトの重なりを検出するために、上述の方法800と同様の処理方法が採用されてもよい。
【0103】
図9に、図6のステップ640で使用される一組の領域及び透明性モデルに応じてグラフィックオブジェクトの幾何形状モデル及び色モデルを構成する処理方法900を例示する。処理はステップ910で開始する。ステップ910において、透明性モデルを有する次の領域が選択される。単一の透明性モデルを有する各領域はステップ910で選択される。領域の透明性モデルは2本の境界線を含み、一方は上側グラフィックオブジェクトに対応し、他方は下側グラフィックオブジェクトに対応する。次の2つのステップ920及び930では、図10を参照して詳述する方法1000に応じて境界生成を行う。ステップ920において、重なっているオブジェクトの境界が生成される。すなわち、上側グラフィックオブジェクトに対応する境界線が境界生成方法でまだ使用されていなければ、ステップ920でこの境界線と透明性モデルとに基づき新しい境界を生成する。ステップ930において、重ねられたオブジェクトの境界が生成される。すなわち、下側グラフィックオブジェクトに対応する境界線が境界生成方法でまだ使用されていなければ、ステップ930でこの境界線と透明性モデルとに基づき新しい境界を生成する。これらの構成済み境界は、新しいグラフィックオブジェクトが右側で検出され且つ順序付けられた一組の境界線からなるように作成される。この場合、境界が時計回りならば、この境界は構成済みグラフィックオブジェクトの外側境界となり、境界が反時計回りならば、この境界は内側境界となる。
【0104】
決定ステップ940において、単一の透明性モデルを有する更なる領域が存在するかを判定するためのチェックが行われる。ステップ940が真(YES)を返すと、ステップ910に戻る。ステップ940が偽(NO)を返すと、ステップ950に進む。ステップ950において、構成済み境界からの新しいグラフィックオブジェクト及び対応する階層化(階層化情報、色及び透明性パラメータ)が生成される。可能であれば、いずれかの構成済み内側境界が外側境界に関連付けられる。内側及び外側境界がその右側で共有領域を有する場合、関連付けが行われる。例えば図4において、領域402に関連付けられた2つの境界が生成される。これらの境界は共に正方形であり、大きい方の正方形は時計回りであり、小さい方は反時計回りであり、これらは関連付けられている。内側境界が外側境界に関連付けできない場合、この内側境界は棄却される。
【0105】
新しいグラフィックオブジェクトは、外側境界といずれかの対応内側境界とで定義される各構成済み外側境界に対して作成される。グラフィックオブジェクトの相対的な層は、透明性モデルを有する領域において重なる各オブジェクト対について、上側境界線を含むオブジェクトが下側境界線を含むオブジェクトよりも高い層に存在するようにする。これを達成する一方法では、上側境界線を有するオブジェクトから下側境界線を有するオブジェクトへの有向エッジを有する有向グラフにおけるノードとして全オブジェクトを配置する。このグラフは階層化における不整合性に対応するので、サイクルを含むべきではない。何れかのサイクルが検出された場合、このサイクル中の全オブジェクトが棄却される。次に、グラフのエッジに続くパスに含まれる最大数ノードにより別個の層数が与えられ、グラフにおける一組の階層化必要条件が満たされるように(例えば、グラフを繰り返し増加/減少することにより)、これらの層をノードに割り当てることができる。グラフィックオブジェクトの色C及び透明性パラメータαは、ステップ920又は930のいずれかの生成済み外側境界に対して返された値に応じて設定される。
【0106】
ステップ960において、一組のグラフィックオブジェクトがフィルタリングされる。このフィルタリングは、透明性モデルを有する各領域を順次チェックすることによりグラフィックオブジェクトは整合性があるかを確認するために行われる。透明性モデルの下側境界線を有する境界を含むグラフィックオブジェクトが生成された場合、同一の透明性モデルの上側境界線を有する境界を含むグラフィックオブジェクトも存在しなければならない。そのようなグラフィックオブジェクトが一つしか生成されていなければ(すなわち、下側境界線はあるが上側境界線はない又はその逆)、このグラフィックオブジェクトは棄却されなければならない。棄却するグラフィックオブジェクトがなくなるまでフィルタリング処理は繰り返され、残り全てのグラフィックオブジェクトが受入れられる。次に、オプションのステップ970において、ページ及び境界線の領域表現を更新してもよい。受入れられた一組の新しいグラフィックオブジェクトの生成で使用される全ての境界線は、これらの境界線がグラフィックオブジェクトに隣接するように更新され、境界線に以前隣接していた領域は廃棄される。状況によっては、境界線の一方側がいずれかのオブジェクトに写像できるように、境界線区間は一組の受入れ済みグラフィックオブジェクトで2回以上使用できる。この場合、境界線区間は一般に短く、写像はいずれかのオブジェクトに対して行うことができる。その後、処理は終了する。
【0107】
図10は、図9のステップ920及び930で使用される新しいグラフィックオブジェクトの境界を生成する処理方法1000を例示する。方法1000には境界線と透明性モデルとが提供される。処理はステップ1010で開始する。ステップ1010では、メモリ1106に生成済み境界を記憶するデータ構造を初期化し、提供された境界線に対する現在の境界線と提供された透明性モデルで与えられた領域(すなわち、透明性モデルが生成された領域)に対する現在の領域とを設定する。現在の境界線は、現在の領域が境界線の右側に位置するように方向付けられる。すなわち現在の境界線は、現在の領域の境界に沿って方向付けられる。オブジェクトモデルも以下のデータを記憶する提供されたデータに応じて設定される。
・オブジェクト色チャンネル値C(i)obj
・オブジェクト透明性αobj
・グラフィックオブジェクトの背景色チャンネル値C(i)back
提供された境界線が下側境界線ならば、オブジェクトモデルは上側色に応じて設定されたオブジェクト色、背景色及びオブジェクト透明性と、背景色と、提供された透明性モデルの透明性とを有する。提供された境界線が上側境界線ならば、提供された境界線は提供された透明性モデルからの下側色及び背景色に対して設定されたオブジェクト色及び背景色と、オブジェクト透明性「0」とを有する。上側境界線がモデルの下側色に応じたモデル色を取る理由は、その境界線は現在の領域で上側境界線に隣接する上側オブジェクトを有するが、下側グラフィックオブジェクトの境界の一部を形成するからである。
【0108】
決定ステップ1020において、(生成された)境界が完成したかを判定するためのチェックが行われる。境界が閉じられる(その最初と最後の点が同一である)又は境界がいずれかの境界線を2回以上含むと、その境界は完成したと見なされる。生成された境界が完成すると(YES)、ステップ1080に進む。ステップ1080において、境界は受入れ可能であれば記憶される。ステップ1080については、より詳細に後述する。その後、処理は終了する。決定ステップが偽(NO)を返すと、ステップ1030に進む。決定ステップ1030において、現在の境界線が使用されたかを判定するためのチェックが行われる。このチェックにより、現在の境界線が境界生成で使用され、ステップ610で検出された透明性モデルで使用されたかを判定する。これらの条件の双方が満たされると(YES)、ステップ1090に進む。ステップ1090において、境界は棄却される。この後半の制御は、同一の境界の多重コピーが生成されるのを防止する。その後、処理は終了する。
【0109】
決定ステップ1030が偽(NO)を返すと、ステップ1040に進む。ステップ1040において、境界線は境界に追加される。ステップ1050において、現在の境界線が更新される。すなわち、現在の境界線は、現在の境界線の後の現在の領域の境界に沿って次の境界線に更新される。
【0110】
決定ステップ1060において、反対側の領域は整合性があるかを判定するためのチェックが行われる。すなわち、新しい現在の境界線の現在の領域とは反対側にある領域(反対側領域と呼ぶ)が検出され、オブジェクトモデルとの整合性がチェックされる(すなわち、反対側領域が現在のグラフィックオブジェクトの一部となるべきかをチェックする)。反対側領域が以前の処理で例えばテキストとして既に分類されていたならば、反対側領域を整合性がないと見なしてもよい。反対側領域が反対側領域に関連付けられた透明性モデルを持っていなければ、その色がオブジェクトモデルのオブジェクト色と同一であれば反対側領域は整合性があると見なされる。反対側領域が反対側領域に関連付けられた1つ以上の透明性モデルを持っていれば、反対側モデルと呼ばれる各モデルに対して順次整合性チェックが行われる。好適な整合性チェックの一つでは、以下の条件の何れかが満たされるかをテストする。
1.反対側モデルの下側色がオブジェクトモデルのオブジェクト色と一致する。
2.反対側モデルの上側色がオブジェクトモデルのオブジェクト色と一致し、オブジェクトモデルのオブジェクト透明性が0である。
3.反対側モデルの上側色及び透明性がオブジェクトモデルのオブジェクト色及びオブジェクト透明性と一致する。
【0111】
上記条件の何れかが満たされ、オブジェクトモデルの背景色がオブジェクトモデルの背景色と一致すれば、反対側領域はオブジェクトモデルと一致する。複数対の色及び透明性パラメータの整合性をテストする好適な方法はステップ740及び780で説明した。
【0112】
決定ステップ1060が反対側領域はオブジェクトモデルと一致することを示す真(YES)を返すと、ステップ1070に進む。ステップ1070において、現在の境界線と領域が更新される。すなわち、ステップ1070では現在の領域が反対側領域に更新され、反対側領域の境界上の現在の境界線が検出され、現在の境界線が境界に沿って次の境界線に更新される。その後、ステップ1020に戻る。決定ステップ1060が反対側領域はオブジェクトモデルと一致しないことを示す偽(NO)を返すと、直接、ステップ1020に進む。
【0113】
現在の境界が完成したとステップ1020で見なされると、ステップ1080に進む。ステップ1080では、境界が受入れ可能か(すなわち、閉じていて、自己交差がないか)をチェックし、もしそうであるなら色と透明性データと共に境界を記憶する。記憶された透明性データはオブジェクトモデルの透明性データである一方、記憶された色C(i)storeは、オブジェクトモデル透明性αobjを有するオブジェクトモデル背景色C(i)backの上に配置された時にオブジェクトモデルのオブジェクト色を生成する色である。透明性の式(1)によると、これは以下を意味する。
【0114】

【0115】
この式を書き換えることにより、記憶するための好適な色チャンネル推定値が得られる。
【0116】

【0117】
これは、記憶された色推定値がオブジェクト色と「1−オブジェクト透明性」で除算されたオブジェクト透明性により基準化された背景色との間の相違により与えられることを意味する。これにより、方法1000の処理が完了する。
【0118】
図2に例示した例では、中央の小正方形213という1つの領域のみが、その領域に関連付けられた透明性モデルを有する。透明性モデルは、左側及び上側境界線223及び221をそれぞれ下側及び上側境界線として作成されていてもよい。境界は、透明性モデルの上側境界線(上側境界線221)により与えられる現在の境界線と、透明性モデルの下側色(すなわち、左側正方形領域211の色)及び透明性「0」で与えられる色を有するオブジェクトモデルとから開始して生成できる。方法1000の処理によりこの境界線は境界に記憶され、中央正方形領域213の次の境界線、すなわち右側境界線227に繰り返し進む。その後、反対側領域は右側領域214になり、左側及び右側正方形は同一の色を有しているため、領域214はオブジェクトモデルと一致する色を持つ。その後、現在の領域は右側領域に更新され、現在の境界線はこの領域の次の境界線、すなわち右側正方形214の上/右/底側境界線226に更新される。この境界は閉じていないので、現在の境界線がその境界に追加され、現在の領域の次の境界線、すなわち右側正方形の左側境界線227に更新される。この時点で、反対側領域は領域213となり、再度オブジェクトモデルと一致するため、この領域は中央正方形に更新され、現在の境界線はこの領域の境界に沿って底側境界線225に繰り返し進む。この現在の境界線は境界に追加され、以降の処理により左側領域211の底/左/上側境界線222が追加され、境界が完成する。同様に、上側オブジェクトは、中央正方形213の左側境界線223であり上側正方形228の左/上/右側境界線を含む透明性モデルの下側境界線と、中央正方形213の右側境界線227と、底側正方形212の右/底/左側境界線224とから開始して生成できる。この境界生成のためのオブジェクトモデルは、中央正方形領域の透明性モデルからの上側色と背景色と透明性モデルとにより最初に与えられる。
【0119】
図3に例示する例では、1つの透明性モデルを有する3つの小領域313、314及び315と、3要素重なりであると検出され且つこれら3つの全モデルを有する1つの中央領域316とがある。3つの時計回りに構成された円形境界が形成され、各々は透明性モデルのない1つの大領域からの境界線と、単一の透明性モデルを有する2つの領域と、中央領域とを有する。例えば、中間濃度の302の幾何形状モデルは、左側小領域314の上側境界線と、中央の小領域316の上側境界線と、右側小領域313の上部境界線と、最後に底側大領域311の底側境界線とから構成される。このオブジェクトの色及び透明性は、右側小領域313の透明性モデルの上側色及び透明性に基づいている。幾何形状モデルは低濃度の円と高濃度の円とに対しても作成されるが、構成されたグラフィックオブジェクトは背景上に存在するが他のオブジェクトと部分的に重ならないので、高濃度の円303のオブジェクトモデルは透明性「0」を有する。
【0120】
[他の実施形態]
オブジェクトの透明性をビットマップ画像から判定することを含む他の実施形態を以下に説明するが、少なくとも1本の線がオブジェクトの周囲に存在するというように複雑になる。線を除去することにより、上述の実施形態の技術を使用してオブジェクトの色及び透明性を判定できる。本実施形態では、1つ以上のオブジェクトが線スタイルを有し、部分的に透明な塗りつぶし部と共にグラフィックオブジェクトが重なる場合に対処する。線スタイルに対応する領域は、グラフィックオブジェクトの塗りつぶし部に対応する領域の周囲で検出される。これらの線領域は、上述の方法ではグラフィックオブジェクトの重なりが検出できないように塗りつぶし領域の隣接性を変更できる。この他の実施形態では、塗りつぶし領域の隣接性を回復して重なりが検出できるように一組の領域を変更することにより線スタイルを処理する。
【0121】
図13は、1つのオブジェクトがベタ塗りの線スタイルを有する透明性を持って重なる一組のグラフィックオブジェクトを例示する。図13aのグラフィックオブジェクト1310は、部分的な透明性を有する縦長矩形である。グラフィックオブジェクト1311は、透明性「0」の横長矩形(長さ方向が矩形1310と直交する)である。グラフィックオブジェクト1312は、透明性「0」の大きい正方形である。横長矩形1311は、縦縞領域1313に示される塗りつぶし領域を囲む斜め縞領域1314が示すベタ塗りの線スタイルを有する。図13bは、垂直矩形1310が水平矩形1311に重なり、水平矩形1311が正方形1312に重なるようにオブジェクトを階層化した結果を例示する。この正方形は、2つの矩形の重なりに対する背景を効果的に形成する。10個の領域1320〜1329は、図13bに示されるような合成オブジェクトから形成される。図13cは、10個の領域1320〜1329を別々に例示する。
【0122】
領域1320は正方形1312のみに被覆された領域である。領域1325及び1329は、水平矩形塗りつぶし部1313と正方形1312とに被覆された領域を表す。水平矩形は透明性「0」なので、正方形1312は完全に隠蔽され、これらの領域の色は水平矩形1313の塗りつぶし部と同一である。同様に、領域1321及び1324は、水平領域の線1314と正方形1312の双方に被覆された領域を表す。水平矩形は透明性「0」なので、正方形1312は完全に隠蔽され、これらの領域の色は矩形線1314と同一である。
【0123】
領域1322及び1327は、垂直矩形1310と正方形1312の双方に被覆された領域を表す。垂直矩形1310は部分的な透明性を有するので、領域1322及び1327の色は、正方形1312及び矩形1310の色による透明性モデルに応じて決定できる。式(1)で定義されるモデルについては、垂直矩形の色チャンネルC(i)upperと、背景正方形の色チャンネルC(i)lowerと、垂直矩形の透明性パラメータαupperとを減算することにより算出される。最後に、領域1323、1326及び1328は、全3つのオブジェクトに被覆された領域を表す。水平矩形1311は不透明で、領域1323、1326及び1328で正方形1312を完全に隠蔽しているので、これらの領域の色は正方形の色には依存しない。領域1323、1326及び1328の色は、2つの細長い矩形1310及び1311の色による透明性モデルに応じて決定できる。領域1323及び1328は、水平矩形1314のベタ塗りの線を有する縦長矩形1310の重なりに対応する。領域1326は、水平矩形1313の塗りつぶし部を有する重なりに対応する。
【0124】
図14は、テンプレート形状(矩形、三角形、星、円、楕円、丸角の矩形)に定義される種々のオブジェクトと手書きで定義された他のオブジェクト(自由形式オブジェクトと呼ぶ)とを含む線や透明塗りつぶし部を有する重なりグラフィックオブジェクトの多数の異なる幾何形状を例示する。各オブジェクトは直線エッジと曲線エッジの混合から構成される。幾何形状のほとんどは2つの重なりオブジェクトを示すが、1つの幾何形状は3つの重なりオブジェクトを示す。全てのオブジェクトは部分的な透明性を有する塗りつぶし部を有し、線が部分的な透明性を有する横長矩形の場合(1440)を除き、いくつかのオブジェクトは、ほとんどの場合不透明(透明性「0」)である線を有する。背景領域は本図面では明示されない。
【0125】
重なりグラフィックオブジェクト1410は2つの重なり矩形を具備し、各矩形は不透明な線スタイルを有し、上側矩形(横長)は部分的に透明な塗りつぶし部を有する。重なりグラフィックオブジェクト1420は、線スタイルと塗りつぶし部とを有する三角形に重なっている部分的に透明な星を具備する。重なりグラフィックオブジェクト1430は3つの円を具備し、各円は不透明な線スタイルを有し、上側2つの円は部分的に透明な塗りつぶし部を有する。重なりグラフィックオブジェクト1440は2つの重なり矩形を具備し、各矩形は線を有し、上側矩形は部分的に透明な線スタイルと塗りつぶしスタイルとを有する。重なりグラフィックオブジェクト1450は、線と塗りつぶし部とを有する第2の自由形式オブジェクトに重なっている部分的に透明な塗りつぶし部を有する自由形式オブジェクトを具備する。重なりグラフィックオブジェクト1460は、楕円に重なっている線と部分的に透明な塗りつぶし部とを有する丸角の矩形を具備する。
【0126】
表1は、図14の下側のキーに示すように、図14の色領域の定義を含む。
【0127】

【0128】
図14のキーは、表1に応じて各領域色の構成を定義する陰影方式を解釈するために使用できる。オブジェクトを有する3つの層が存在すると仮定する。層1は最上位層であり、その下が層2、さらにその下が層3である。それにもかかわらず、異なる陰影スタイルを有する領域は同一の色を有してもよい。例えば、1410の2つの重なり矩形の線の線色は同色でもよい。この場合、広い斜め縞(1488及び1490)の領域を表す単一の連結成分が存在してもよい。
【0129】
部分的な透明性を持ったグラフィックオブジェクトの重なりに対して取り得る他の幾何形状は、グラフィックオブジェクトの図4に例示した。これらのオブジェクトは線スタイルを持っていなかった。一部又は全てのオブジェクトが線スタイルを有する類似の重なりオブジェクトの幾何形状は、本発明の実施形態を用いて処理できる。
【0130】
図15aは、オブジェクト表現をビットマップ画像から生成する方法1500を例示する高レベルのフローチャートである。ビットマップ画像は文書の走査版でもよく、オブジェクト表現は電子文書(例えば、編集可能な)でもよい。方法1500は図1の処理モジュール140において実現されてもよく、コンピュータにより実現することもできる。処理はステップ1510で開始する。ステップ1510において、一組の領域がプロセッサ1105を使用してビットマップ画像から決定(選択)され、この一組の領域はビットマップ画像の背景領域と塗りつぶし領域と線領域とを含む。決定ステップ1510の詳細については以下の図15bを参照してより詳細に説明する。ステップ1520において、塗りつぶし領域の隣接性データは、線領域で分割された塗りつぶし領域を配置し、配置された領域を隣接させることによりプロセッサ1105を使用して生成される。
【0131】
ステップ1530において、第2のグラフィックオブジェクトに重なる部分的な透明性を有する第1のグラフィックオブジェクトの色及び部分的な透明性パラメータが、一組の塗りつぶし領域の塗りつぶし色及び隣接性データに応じてプロセッサ1105を使用して推定される。推定された色及び部分的な透明性は、色及び部分的な透明性パラメータによって2つのグラフィックオブジェクトの重なりの領域の色を定義する透明性合成モデルと一致する。第1及び第2のグラフィックオブジェクトの幾何形状モデルは、一組の領域と第1のグラフィックオブジェクトの推定された色及び透明性パラメータとからプロセッサ1105を使用して構成される。ステップ1540において、単一の線色は第2のグラフィックオブジェクトの輪郭線に対してプロセッサ1105を使用して決定される。これは、1つの線領域の少なくとも線色に基づいて行われてもよい。ステップ1545において、電子文書を形成するために、推定された色及び部分的な透明性パラメータを有する第1の独立グラフィックオブジェクトと、決定された単一の線色を有する第2の独立グラフィックオブジェクトとが記憶される。その後、処理は終了する。
【0132】
図15bに、オブジェクト表現(例えば、図1のファイル150)を生成するためにビットマップ画像(例えば、図1の走査済文書130)を処理する方法1550をより詳細に例示する。方法1550は図15aのステップ1510をより詳細に示す。ステップ1555、1560及びス1565がステップ1510を実現する。方法1550はステップ1555で開始する。ステップ1555において、ビットマップ画像は1つ以上の連結成分に区分される。メモリ1106に記憶されたビットマップ画像に対してプロセッサ1105により低レベルの画像区分が行われ、画像は色に応じて連結成分(CC)に分割される。ビットマップ画像の連結成分の各々はメモリ1106に記憶される。ステップ1560において、プロセッサ1105は連結成分を分類し、種々の文書コンテンツの種類を識別する。これは、ビットマップ画像の連結成分に対して高レベルの文書レイアウト解析を実行することにより行われる。連結成分はそれらの矩形バウンディングボックスに関して処理されてもよく、処理中にマージ又はグループ化された連結成分でもよい。コンテンツの種類には、テキスト、写真、表、線画及びグラフィックという分類がある。これらのコンテンツの種類の各々は画素データ(すなわち、連結成分)に対応する。
【0133】
高レベルの文書解析の後、ステップ1565において、プロセッサ1105は定義済み幾何形状を有する領域を生成する。これは連結成分を解析することにより行われる。他の連結成分は図形コンテンツを含む確率が低いと見なされるため、線画及び/又はグラフィック領域として分類された連結成分のみがステップ1565で処理されるのが好ましい。各領域は、単一の外側境界と、この単一の外側輪郭及び連結成分の一組の0以上の内側輪郭に対応する0以上の内側境界とによって定義できる。
【0134】
上述のように、境界は境界線区間に関して表されてもよく、境界線は各辺の長さ方向に隣接する独自の領域を有する境界の区間を記述するために使用される。各境界線は2つの境界に含まれ、多角形表現により記述されてもよい。本実施形態において、境界を定義する複数の境界線は一緒にリンクされ、境界は境界線間のリンクを辿ることにより横断されてもよい。各境界線は、4つのリンクされた境界線を有し、いずれかの側の2つのオブジェクトに対する次の境界線及び先行境界線となる。リンクされた境界線のいくつかは同一でもよく、特に、背景のみに隣接するオブジェクトで生じるように全境界を表す単一の境界線はそれ自身に4回連結される。
【0135】
2色のみの単純な領域構成は、1つのオブジェクトの外側境界と第2のオブジェクトの内側境界とを定義する閉境界線を有する。一方、3色以上のより複雑な領域構成において、複数の境界線は、リンクされて境界を構成する開区間でもよい。多角形表現が自己又は相互交差のない効率的な表現となるように、一組の領域を表す境界線に対して多角形表現を生成する技術がある。境界線に沿った点は好適なデータ構造でメモリ1106に記憶され、境界はこれらのデータ構造によって定義される。境界上の連続する点に対して一貫性のある順序付け方式を使用するのは有用である。上述の実施形態において、順方向に横断した場合、外側境界は時計回りのループを形成し、内側境界は反時計回りのループを形成する。この方式では、いずれの境界の周囲であっても順方向に前進すると、領域はその境界の右側に位置する。
【0136】
図13b及び図13cは、正方形オブジェクト1312に2つの矩形オブジェクト1310及び1311が重ねられた場合に形成される10個の領域を例示する。重なり領域のビットマップ画像が処理されたならば、10個の連結成分が領域に対応して検出されるはずである。領域1320は、正方形オブジェクトにいずれの矩形も重ねられないと検出された連結成分に対応する。この連結成分の生成領域は、単一の境界線からなる外側境界と、4本の境界線からなる単一の内側境界線とを有し、これらの境界線は領域1320がそれぞれ領域1321、1322、1324及び1327に隣接する場所に形成される。領域1322は、正方形1312に垂直矩形1310のみが重ねられた場所に形成された連結成分に対応する。この連結成分の生成領域は2本の境界線からなる外側境界を有し、これらの境界線は領域1322が領域1320及び1323に隣接する場所に形成される。これらの内の第1の境界線が上述の領域1320の内側境界を定義するのにも使用される。領域1321及び1323〜1329に対応する連結成分の外側境界も同様に検出できる。これらはいずれも内側境界がない。
【0137】
図15のステップ1570において、線及び線領域が検出される。これは、線と関連領域とを検出するためにオブジェクトの境界の多角形表現を処理する既存の技術を使用して達成されてもよい。線は、骨格又は中心軸及びその辺の境界線表現によって定義される。その処理では、例えば接触線や重なり線を切断するか又は線オブジェクトを連結形状から分割することにより一組の領域を修正してもよい。一組の線領域が生成され、他の領域は塗りつぶし領域と呼ばれる。
【0138】
図24は、ステップ1570で検出される多数の取りうる線の幾何形状を例示する。7本の線があり、各々が太線で表される骨格又は中心軸を有する。骨格の内3つは閉じている。すなわち、骨格の2つの端部が連結されている(2405、2420及び2440)が、他の4つは開いていて(2450、2460、2470及び2480)、骨格の2つの端部が離れている。縞状領域は線領域を規定する。これらの線の内4本は単一の線領域(中心軸2405、2420、2450及び2460を有する線)からなるが、他の3本は2つの線領域(2440、2470及び2480)からなる。線は、画像の雑音、区分化アーティファクト又は他の幾何学的オブジェクトの重なりの結果として2つ以上の領域により表現されてもよい。領域は内側境界線を有していてもよく、例えば閉じた骨格2405に対応する領域2406は外側境界2410と内側境界2415とを有する。
【0139】
図15bのステップ1570は、別の実施形態ではステップ1565に先行してオプションで行われてもよい。例えば線検出は、直接、画素を処理する既存の技術を使用して(すなわち、細線化や疎画素ベクトル化等の形態素演算を使用して)行われてもよい。検出された線は破線でもよいが、この場合、線領域は長さ方向に延びる単一の骨格を有する個別のダッシュに対応する多数の閉境界に対応してもよい。線は画像内の線形状を認識することにより検出されてもよい。骨格は局所的に、線の中心軸の低品位の表現でもよい。
【0140】
ステップ1570では、現在の組の領域に基づき図形コンテンツをオプションで決定してもよい。図形コンテンツは、テンプレート形状、線オブジェクト、矢印、コネクタ及び他のオブジェクトを含んでもよい。本処理は、線及び形状検出、隠蔽形状検出、線リンク解析及びコネクタ解析のための既知の技術を採用してもよい。
【0141】
図15のステップ1575において、ステップ1570で生成された線骨格と線領域と塗りつぶし領域とに基づき、線領域のない塗りつぶし領域の幾何形状モデル及び隣接性情報を構成し、領域を表現する。この修正された一組の領域は、以前は線領域であった領域を被覆するように延伸した塗りつぶし領域のみからなる。本ステップでは、修正された塗りつぶし領域間の隣接性に関する情報も生成する。これは、境界線と境界によってモデルを定義することにより達成される。ステップ1575は図15aのサブステップ1520を含み、図17を参照してより詳細に後述する。
【0142】
次にステップ1580において、部分的な透明性を有する重なりグラフィックオブジェクトが検出され、これらの重なりグラフィックオブジェクトを記述する幾何形状モデルが図27を参照してより詳細に後述する方法2700に応じて構成される。構成された幾何形状モデルは、関連線スタイル(幅、色及びオプションとしてダッシュスタイル)と塗りつぶし色と部分的な透明性とを有する。これには、図15aの最終的なサブステップ1530、1540及び1545が含まれる。少なくとも1つのオブジェクトの幾何形状モデルはこの段階で出力されてもよく、例えばこの段階では、グラフィックオブジェクトは自由形状であり特定の図形コンテンツの種類として分類できない。したがって、以降のステップ1585及び1590はオプションのステップとして示される。
【0143】
方法1550はオプションのステップ1585(破線で示される)に進む。ステップ1585では、現在の組の領域に基づいて図形コンテンツが決定される。図形コンテンツは、テンプレート形状、線オブジェクト、矢印、コネクタ及び他のオブジェクトを含んでもよい。本処理は、線及び形状検出、隠蔽形状検出、線リンク解析及びコネクタ解析のための既知の技術を採用してもよい。
【0144】
ステップ1590において、プロセッサ1105は分類されたグラフィックオブジェクトをオブジェクト表現としてオプションで(再度、破線で示す)出力する。この出力は構造化テキスト/グラフィック編集アプリケーションでの閲覧及び編集に好適な形式でもよい。その後、方法1550の処理は終了する。
【0145】
図17は、一組の修正済み塗りつぶし領域とそれに対応する隣接性情報とを構成する図15bのステップ1575を行う方法1700を例示する。これは、線領域を表現から除去するためにそれらの線領域に隣接する領域の境界線を再連結することにより行われる。図17に示す処理では、単一の外側境界と多数(一般に0か1)の内側境界とにより定義される各検出線領域を解析する。単一の線領域に関連付けられた一組の線領域は連続して処理される。
【0146】
決定ステップ1705において、次の線領域を決定するためのチェックが行われる。すなわち、ステップ1705では次の線領域を選択する。そのような線領域があれば(Yes)、処理は1710に進み、そうでなければ(No)、ステップ1755に進む。ステップ1710において、選択された線領域の境界に対する左右の始点と終点が決定される。ステップ1710では、境界のどの区間が線のどちら側(左か右)を表すのかが検出される。線骨格に対する始点と終点も検出され、これにより線骨格のどの区間がこの境界に関連するかが決定される。ステップ1710については、図18を参照して更に詳細に後述する。決定ステップ1715では、始点と終点がステップ1715で検出されたかをチェックする。検出されたならば(Yes)、ステップ1720に進み、始点も終点も検出されなかったならば(No)、ステップ1705に戻る。
【0147】
ステップ1720において、入力境界線が検出(識別)される。これらはその後、線領域まで延長される境界線である。ステップ1720については、図19を参照して更に詳細に説明する。
【0148】
ステップ1730において、入力境界線は分解される。これにより、線の骨格上の投影位置が固定され、境界線が反対側で整列される。ステップ1730については、図20を参照して更に詳細に説明する。
【0149】
ステップ1740において、これらの境界線は線の骨格に沿って連結される。新しい一組の境界線が作成され、ステップ1710で識別された骨格の始点と終点との中間の骨格に続く。1720からの入力境界線は延長されて、これらの新しい境界線に接触する。ステップ1740の結果として、線領域の全領域は、境界線が線領域まで延長された修正済み隣接領域により被覆される。ステップ1740については、図25を参照して更に詳細に説明する。
【0150】
ステップ1750において、修正済み塗りつぶし領域の新しい幾何形状が決定される。境界線を再連結することにより、別個の境界線をマージすること又は新しい境界を作成することができる。この新しい一組の境界は、修正済み領域の幾何形状を定義するために判定する必要がある。ステップ1750については、図26を参照して更に詳細に説明する。
【0151】
ステップ1750の後、ステップ1705に戻る。全ての線領域が処理されると(ステップ1705でNoが返されると)、ステップ1755で修正済み領域を形成する。これは、ステップ1750で修正された境界の各々を順次チェックすることにより行うことができる。本実施形態では、外側境界が時計回りである一方、内側境界は反時計回りである。各外側境界は新しい領域の外側を定義し、各内側境界はその外側境界を含む(面積が)最小のものとして同一の領域に関連付けられる。各新しい境界はオリジナル表現の領域に関連付けられるが、その新しい境界は更新されて新しい修正済み領域に関連付けられ、その境界の全ての境界線も更新される。新しい領域の色及び他の特性は、外側境界が以前に関連付けられた領域に基づいて設定される。
【0152】
ステップ1755の後、ステップ1760に進み、類似の色領域をマージする。各領域の各境界上の境界線の各々が検討される。いずれかの境界線の隣接領域が同一又は実質的に類似の色ならば、2つの領域はマージされる。すると、一方の領域がマージされた領域とみなされ、他方の領域は除去される。これは、まず除去された領域の全ての境界を他方の領域に割り当てることにより行われる。それにより、縮退した多数の境界線が作成され、これらの境界線は両側に同一の領域を有するようになる。これらの境界線は、隣接境界線を再連結することにより除去され、これらの隣接境界線は新しい基本境界線のリストに追加される。マージにより領域の幾何形状が変化し、多数の新しい(内側)境界が作成されてもよい。新しい幾何形状は、図26を参照してより詳細に説明するステップ1750で用いられるのと同じ処理を使用して決定される。ステップ1760の後、処理は終了する。
【0153】
図18は、図17のステップ1710で行うことができる、現在の線領域に対する境界線の始点及び終点を決定(検出)する方法1800を例示する。5つの例があり、それぞれ別々に処理する。処理はステップ1810で開始する。決定ステップ1810において、例が選択される。すなわち、線領域の幾何形状が判定される。ステップ1810では、骨格が開いているか又は閉じているか、且つ境界は外側境界であるか又は内側境界であるかが、境界数に基づき以下の例の中から選択される。一実施形態において、境界の始点と終点に関する情報は、線検出処理中に生成されてもよく、この場合、ステップ1810はオプションであってもよい。ステップ1820、1830、1840、1850及び1860は並列に構成され、ステップ1810で選択され、ステップ1820、1830、1840、1850及び1860の1つが実行された後、処理は終了する。
【0154】
ステップ1820では、単一の内側境界と閉じた骨格とを有する線領域の例(「閉、単一の内側」)を処理する。そのような領域の例は、図24の2406である。この線領域は閉じた骨格2405を有し、単一の外側境界2410と単一の内側境界2415とを有する。線の骨格は時計回りであるという規定に沿って、その線の左側が全外側境界となり、その線の右側が全内側境界となる。この場合、その線骨格の始点は任意に選択してもよい。線骨格の始点に対して内側及び外側境界上の最も近い点は、それぞれ左側及び右側の境界の始点として使用される。骨格及び境界の終点は、骨格及び境界の始点と同一になるように設定され、これにより全骨格と双方の全境界が考慮されたことを保証される。
【0155】
ステップ1830では、開いていて且つ内側境界のない単一の外側境界を有する線に対する線領域の例(「開、内側無し」)を処理する。開いた線の例は2450及び2460に見られ、各々が別個の骨格の始点と終点を有する図24の骨格2470及び2480に関連付けられた複数対の線領域でも見られる。骨格2470及び2480に対応する線は、別々に処理される2つの線領域からなる。ステップ1830では、まず線骨格の最初の点が当該境界の上又は内側に存在するかを判定する。最初の点が境界の上又は内側に存在すれば、その骨格の始点は最初の点となり、左側境界の始点は境界上で骨格の最初の点に最も近い点となる。例えば、線骨格2450の始点2451は線領域の境界2453の上にある。点2451は骨格の始点且つ左側境界の始点である。線骨格2460の始点2461は線領域の境界2465の内側にある。この場合、点2461は骨格の始点となる一方、境界上の最も近い点2462は左側境界の始点となる。骨格の始点が境界の内側にない場合、境界と線骨格との間の全ての交点が識別される。交点がない場合、骨格はどの箇所でも線領域に接触又は重ならず、骨格又は境界の始点又は終点は検出されず、ステップ1830は完了する。交点が検出されると、線骨格に沿って距離によりソートされる。ソートされた交点の内の最初のものは、骨格の始点及び左側境界の始点として採用される。
【0156】
同様に、線骨格の最後の点が境界の上又は内側に存在するかを判定する。最後の点が境界の上又は内側に存在すれば、その骨格の終点は最後の点となり、右側境界の始点は境界上で骨格の最後の点に最も近い点となる。これは、例えば線2450上の点2452の場合である。さもなければ、上述のように、全ての交点が検出されて骨格位置によりソートされ、最後の交点が骨格の終点及び右側境界線の始点の双方になる。例えば線2460上で、点2464で骨格と境界との間に交点が1つある。この点は骨格の終点且つ右側境界の始点である。
【0157】
左側境界の終点は右側境界の始点と等しく、右側境界の終点は左側境界の始点と等しい。これにより全境界が考慮されたことを保証する。
【0158】
ステップ1840では、多数の線領域からなる閉じた検出済み線からの内側境界のない線領域の例(「閉、線内に多数の線領域」)を処理する。多数の線領域からなる閉じた線からの線領域の例は、図24の2440である。この場合、当該領域の外側境界と線骨格との間の全ての交点が検出される。それにより、当該領域の外側にある線骨格のいくつかの区間が識別される。そのような区間が検出されなければ、始点も終点も生成されない。さもなければ、そのような区間の内の最長のものが識別される。この区間の始まりは骨格の終点となり、この区間の終わりは骨格の始点となる。左側境界の始点及び右側境界の終点は共に骨格の始点と等しくなるように設定され、右側領域の始点及び左側境界の終点は共に骨格の終点と等しく設定される。例えば、図24の線2440については、上側境界2441を処理する場合、点2445で開始し、点2443で終了するこの境界の外側の線の一区間が識別される。点2443は骨格の始点、左側境界の始点及び右側境界の終点となる一方、点2445は骨格の終点、右側境界の始点及び左側境界の終点となる。下側境界2442を処理する場合、点2444で開始し、点2446で終了するこの境界の外側の線の一区間が識別される。点2446は骨格の始点、左側境界の始点及び右側境界の終点となる一方、点2444は骨格の終点、左側境界の終点及び右側境界の始点となる。
【0159】
ステップ1850では、単一の線領域が存在する閉じた検出済み線からの線領域の例を処理し、この線領域には内側境界がない(「閉、線内に単一の線領域、内側無し」)。単一の線領域を有する閉じた線の線領域の例は図24の2425である。例1840のように、骨格と境界との間の全ての交点が検出され、これにより、境界の外側にある骨格のいくつかの区間が識別される。これらの区間の各々について、境界上の点ともなる始点及び終点が検討される。両方向の境界に沿った距離が検出され、これらの2つの距離の内の最小のものが検討される。そのような最小の境界距離を有する区間が選択される。これにより、境界が他の方向に向きを変える線骨格の一部が識別され、骨格がオブジェクトの境界を少しだけ離れる場所は無視する。例1840のように、骨格の始点及び終点はそれぞれ境界の区間の終点及び始点となり、左側及び右側境界の始点及び終点も例1840のように設定される。線の例2420上では、点2430及び2435は骨格及び境界の始点及び終点として識別される。
【0160】
ステップ1860では、その他全ての例を処理する(「その他」)。これは、多数の内側境界を有する閉じた線でもよく、1つ以上の内側境界線を有する開いた線領域でもよい。そのような例は稀である。始点も終点も検出されず、線領域は以降の処理で処理されない。
【0161】
図21の線領域例L1は、以下の説明を支援する作業例として用いられる。図21において、線L1は境界線B1、B2、B3、B4及びB5からなる境界を有する中央の矩形線領域である。破線S1はL1の骨格を示し、骨格の始まりは底部にある。左側境界の始点及び右側境界の終点は境界線B1上の骨格の始まりにある一方、左側境界の終点及び右側境界の始点は境界線B4上の骨格の終わりにある。この線図は他の境界線B6、B7、B8、B9、B10、B11及びB12も示し、これら全ては線L1上の境界線に隣接する。領域R1、R2、R3、R4及びR5も示す。例えば、境界線B1は線領域L1を領域R1から分割すると見なすことができる一方、境界線B8は領域R3を領域R4から分割する。
【0162】
図19は、図17のステップ1720で実現可能な線領域に対する入力境界線を検出する方法1900を示す。ここで説明する処理は2回行われ、最初は選択された線領域の境界の左側区間に対して行われ、次に境界の右側区間に対して行われる。便宜上、左側境界に関して処理を以下に説明する。
【0163】
方法1900はステップ1910で開始する。ステップ1910において、次の境界線対が検出される(取得される)。この場合の一対は、線領域の境界を辿る際に連続する境界の2つの境界線である。最初の対は、左側境界の始点を含む境界線と時計回り方向の次の境界線とからなる。対を辿ることにより、各対が先行対と共通に1本の境界線を有するように1本の境界線を時計回りに移動する。図21の例では、第1の境界線対はB1とB2であり、その後B2とB3、更にB3とB4となる。
【0164】
決定ステップ1920において、境界線対をチェックし、境界線間に1本の境界線が存在するかを判定する。すなわち、現在の境界線対の中間の境界線が識別される。中間の境界線とは、現在の境界線対間の接続点と共通の終点を有する境界線である。そのような中間境界線が1本だけ存在すれば(Yes)、ステップ1940に進み、そうでなければ(No)、ステップ1930に進む。例えば図21において、境界線B1とB2との間には1本の境界線B6のみが存在する。2本以上の中間境界線が存在すれば(No)、ステップ1930に進む。例えば、境界線B3とB4との間には2本の境界線B8及びB9が存在する。また、境界線B5とB1との間には2本の境界線B11及びB12が存在する。
【0165】
決定ステップ1930において、同一の領域が現在の境界線対の双方からの線の反対側に存在するかを判定するためのチェックが行われる。例えば、境界線B3及びB4は共に領域R3に隣接する一方、境界線B5及びB1は2つの異なる領域R1及びR2に隣接する。領域が同一であれば(Yes)、ステップ1950に進み、そうでなければ(No)、ステップ1960に進む。
【0166】
ステップ1940において、識別された境界線は入力境界線として設定(リストアップ)される。この境界線はその後、線骨格と接触するように線領域の下で延長される。これは、入力境界線と線との間の接続点に最も近い骨格上の点を検出することにより行われてもよく、境界線が示している方向に沿って境界線が線と接触する場所に境界線を延長することにより行われてもよい。例えば図21の例におけるこの結果は図22に示される。ここでは、境界線B6、B7及びB10が線骨格と接触するように延長されている。境界線B6はこの境界線が示している方向に延長されていると見なすことができる一方、B7及びB10いずれかの方法を使用して延長されてもよい。処理はステップ1970に進む。
【0167】
ステップ1950において、いずれの線とも隣接しないように境界線は再リンクされ、同様に、線上の境界線は一緒にリンクされる。例えば、境界線B8とB9とは一緒にリンクされる。この時、領域R3は境界線B8から境界線B3ではなく境界線B9に継続する境界を有する。また、境界線B3とB4とはリンクされ、領域R3の境界は境界線B4から境界線B9ではなく境界線B3に継続する。この場合、入力境界線はリストに追加されない。
【0168】
このように境界線を再リンクする場合、領域のトポロジを修正してもよい。再リンクにより、領域の2つの境界がマージされてもよく、境界がそれ自身とマージされ、その結果、新しい境界が作成されてもよい。領域のトポロジに影響する更なる処理において他の多数の変更が行われてもよく、これはステップ1750で後から分解される。しかし、処理1750の処理を支援するために、新しい潜在的な境界の場所を追跡することは有用である。それにより、2本の境界線が記憶され、ステップ1750で後から使用される。第1の記憶済み境界線は、2本の以前に隣接していた境界線の一方であり、図21の例ではB8又はB9である。線の境界がステップ1750の前に廃棄されているため、第2の記憶済み境界線は、これらの境界線の一方として以前同一の境界上に存在したが線の現在処理済みの境界上には存在しない別の境界線である。本例において、R3の境界をB4から周回してB10まで辿り、境界線B10が記憶される。境界線を再リンクすることにより、線と他の領域(本例ではR3)との間にある境界がそのまま残される場合、そのような境界線は検出されないかもしれないが、この場合、そのような境界線を検出する必要がないので、この境界は廃棄される。処理はステップ1970に進む。
【0169】
ステップ1960において、新しい短い境界線が2つの異なる領域間に作成される。この境界線は入力境界線であり、線骨格上の最も近い点と接触するように接続点から延長される。この結果は、図21の例に続く図22の例に示される。ここで、新しい境界線B13が領域R2とR1との間に作成されている。境界線B13は、境界線B5とB1とB11とB12との間の接続点から始まり、延長されて線骨格と接触する。新しい境界線B13は領域R2に対しては境界線B11にリンクされ、領域R1に対しては境界線B12にリンクされる。処理はステップ1970に進む。
【0170】
決定ステップ1970において、この側の最終の境界線対に到達したか(「終わりに到達」)を判定するためのチェックが行われる。左側境界の終点が現在の境界線対の一方に含まれるならば(Yes)、処理は終了する。すなわち、ステップ1720の処理は終了している。そうでなければ(No)、ステップ1910に戻る。
【0171】
境界線を分解する図17のステップ1730について、図20に示す方法2000を参照してより詳細に説明する。各入力境界線は線骨格上の関連位置を有し、本ステップではこれらの骨格位置を処理する。処理はステップ2010で開始する。ステップ2010において、左側と右側の境界線の骨格位置間の類似の値は同一の値にマージされる。これは厳密には必要ないが、図17のステップ1740で不要な短い境界線を作成することが回避される。図22の例において、2つの骨格位置の平均を与えられて完全に同一の位置で骨格と接触するように境界線B10及びB7は隣接する。
【0172】
ステップ2020において、間違った順序の入力境界線が分解される。すなわち、骨格位置が線領域の境界の周囲の入力境界線の順序と異なる順序になっている同一側からの入力境界対が検出される。これは境界線が対向していた方向に境界線を延長した結果として生じ、これにより境界線が超えてしまう。これは、骨格が複雑な形状をしている場合に境界線を骨格上の最も近い点まで延長する場合に生じる可能性もある。この場合、境界線の骨格位置は入れ換えられる。
【0173】
ステップ2030において、同一の点が分解される。すなわち、同一の骨格位置を有する同一側からの複数対の連続入力境界線(ここで「連続」とは線の境界に辿る順序で)が識別される。これらはその後、上述の処理の例1950及び1960と同様な方法で処理される。連続入力境界線であるため、これらの境界線はそれらの中間で共通の領域を共有する必要があり、これら2本の境界線はその領域に対してリンクされる。他の2つの隣接領域が異なれば、新しい(長さ0)境界線がこれら他の2つの領域間に作成され、2本の連続入力境界線は入力境界線リストにおいてこの新しい1本の境界線により置換される。他の2つの隣接領域が同一ならば、これらの境界線はステップ1950と同様な方法で再リンクされ、2つの入力境界線は入力境界線リストから除去される。ステップ1950のように、2本の境界線は識別され、ステップ1750で後から使用するために記憶される。一方の境界線は2本の先行入力境界線の一方となり、他方は、現在の線領域には存在しない境界線に到達するまで領域を辿ることにより検出された2本の先行入力境界線の一方として同一の境界上に以前、存在した境界線となる。その後、処理は終了する。
【0174】
線骨格に沿って連結する図17のステップ1740について、図25の方法2500を参照してより詳細に説明する。方法2500はステップ2510で処理を開始する。ステップ2510において、次の骨格区間が選択される。この骨格線は、骨格線に接触するように入力境界線が延長された場所に応じて複数の区間に分割される。図22において、4つの骨格軸区間a1〜a4がある。処理は骨格の始点から開始し、各連続区間を介して骨格の終点まで継続するように記載されているが、区間を処理する順番は重要ではない。
【0175】
各骨格区間において、左側の先行入力境界線、左側の次入力境界線、右側の先行入力境界線及び右側の次入力境界線が一般に存在するが、これらの内のいくつかがいくつかの区間では失われている(例えば、第1の区間には先行入力境界線がない)。
【0176】
左側で先行境界線と次境界線とに共通し且つ左側から骨格線まで延長された領域が存在する。例えば、図22の区間a2では、領域R2が左側から延長され、境界線B6とB7とに共通している。同様に、右側で先行境界線と次境界線とに共通する右側からの領域が存在する。例えば再度、区間a2では、領域R1が延長されている。本例では、先行する右側境界線は存在せず、領域R1が依然として次の右側境界線B13の領域となっている。
【0177】
ステップ2520において、これら2つの左側領域及び右側領域が同一であるかを判定するためのチェックが行われる。これらの領域が同一ならば(Yes)、ステップ2540に進み、そうでなければ(No)、ステップ2530に進む。
【0178】
ステップ2530において、新しい境界線が骨格線の当該区間に続く点と共に、2つの領域間に作成される。この新しい境界線は、線オブジェクトから開始しているものとして印を付けられ、以降の処理で使用される情報となる。この新しい境界線はその後、必要に応じてリンクされる。例えば、図22を参照すると、骨格の第2の区間(a2、ここでは左側の先行境界線がB6であり、左側の次境界線がB7であり、右側の次境界線がB13であり、右側の先行境界線は存在しない)において、新しい境界線B14が作成される。この新しい境界線は図23に示される。その後、ステップ2550に進む。
【0179】
ステップ2540において、領域の左側部分と右側部分とが連結されるように必要に応じて境界線が再リンクされる。例えば、図22の線骨格の第3の区間(次の左側境界線がB7であり、先行する左側境界線がB6であり、次の右側境界線がB10であり、先行する右側境界線がB13である)において、左側と右側の2つの領域は共に領域R2である。この場合、B13は領域R2に対して新しい境界線B14にリンクされ、B7は領域R2に対してB10にリンクされる。次に、ステップ1750を支援するために2本の境界線を記憶する必要がある。特に、上側区間からの1本の境界線と底側区間からの1本の境界線とを記憶する必要がある。図22の例では、境界線B10及びB13を記憶すればよい。処理はステップ2550に進む。
【0180】
決定ステップ2550において、処理すべき骨格の更なる区間が存在するかを判定するためのチェックが行われる。そうであれば(Yes)、ステップ2510に戻り、そうでなければ(No)、方法2500の処理は終了する。すなわち、骨格に沿って連結するステップ1740は完了する。図23は、図21及び22の例における本処理の最終結果を示す。図23において、この時点で多数の境界線が一緒にマージされ、特にB8とB9、B7とB10、B6とB14とB13がマージされる。
【0181】
修正済み塗りつぶし領域の幾何形状を決定する図17のステップ1750について、図26の方法2600を参照してより詳細に説明する。修正済み塗りつぶし領域の幾何形状は、境界線と境界とにより定義される。領域の境界を一緒にマージすることにより境界が変化し、いくつかの新しい境界が作成され、他の境界が一緒にマージされる。本ステップ1750では、各領域に対して新しい組の境界が識別される。以前の処理の間、特にステップ1950、2030及び2540の間に境界線リストが記憶される。このリストは生成された新しい各境界からの少なくとも1本の境界線を含む。低効率だがより単純な別の例では、ステップ1900、2000及び1700の間に着目した全ての境界線をリストする。
【0182】
方法2600はステップ2610で処理を開始する。ステップ2610において、次の記憶済み境界線が選択される。決定ステップ2620において、当該境界線に関連付けられた境界を既に訪れたかを判定するためにこの境界が検討される。この境界がステップ1750の処理中に新たに作成された境界の1つであれば、この境界を既に訪れており(Yes)、ステップ2610に戻る。そうでなければ(No)、新しい境界が作成され、ステップ2630に進む。
【0183】
ステップ2630において、境界は再度ラベル付けされる。すなわち、境界は境界線間のリンクを辿ることにより横断され、訪れた各境界線は新しく作成された境界の一部としてラベル付けされる。訪れた各境界線の既存の境界は、削除されている境界のリストに入れられる。これらの境界はステップ1750の終了時に削除される。
【0184】
決定ステップ2640において、リスト中に更なる記憶済み境界線が存在するかを判定するためのチェックが行われる。そうであれば(Yes)、ステップ2610に進み、そうでなければ(No)、処理は終了する。すなわち、修正済み塗りつぶし領域の幾何形状を決定するステップ1750は完了する。
【0185】
図27は、部分的な透明性を有する重なりグラフィック線オブジェクトを検出し、図15に示す方法1550のステップ1580で使用されるオブジェクトを記述する幾何形状モデルを構成する方法2700を例示する。方法2700はステップ2710で処理を開始する。ステップ2710において、部分的な透明性を有するオブジェクトの重なりの領域が検出される。この検出は、図15のステップ1575で構成された修正済み塗りつぶし領域と関連隣接性情報とに基づいている。ステップ2720において、部分的な透明性を持って重なるグラフィックオブジェクトが構成される。グラフィックオブジェクトは領域を一緒に組み合わせることにより構成され、部分的な透明性を有するグラフィックオブジェクトの重なりに対応するいくつかの領域は2つ以上の構成済みグラフィックオブジェクトに含まれる。一実施形態において、重なり領域の妥当性の追加テストをこの段階で使用してもよい。重なりの領域と何れかの隣接領域との間の色差が小さすぎて偽陽性となる確率が高いならば、図7のステップ740又は750で検出された2つのオブジェクトの重なりの透明性モデルを棄却してもよい。塗りつぶし色、部分的な透明性及び階層化情報はグラフィックオブジェクトと共に提供される。
【0186】
図27のステップ2730において、部分的な透明性無しに重なるグラフィックオブジェクトを検出するために、ステップ1575の間に構成された領域及び関連隣接性情報をオプションで(破線で示す)処理してもよい。本処理を行う技術は既知である。
【0187】
ステップ2710、2720及び2730における重なりオブジェクトの検出及び構成の後、ステップ2740では、構成済み幾何形状とステップ1570で検出され、図15のステップ1575で処理された元線領域とを処理する(それらに基づいて)ことにより重なりグラフィックオブジェクトの線スタイルを検出する。ステップ2740については、図12を参照して更に詳細に後述する。ステップ2750において、最終出力が線を複製しないことを保証するために、線領域がグラフィックオブジェクトに割り当てられる。その後、処理は終了する。
【0188】
図12は、構成済みグラフィックオブジェクトとステップ1570で検出され元線領域とに基づいて重なりオブジェクトの線スタイルを検出する方法1200を例示する。方法1200は、ステップ2720又は2730で生成される各構成済みグラフィックオブジェクトを順次ループする。処理は、(未処理の)構成済みオブジェクトが存在するかをチェックする決定ステップ1210で開始する。存在すれば(Yes)、ステップ1220に進み、存在しなければ(No)、ステップ1260に進み、ループ(1210、1220、1230、1240及び/又は1250)を抜ける。ステップ1220では、未処理の次の構成済みグラフィックオブジェクトを選択する。ステップ1230でこのオブジェクトの次の隣接線が処理され、オブジェクトの周囲に一致した線スタイルがあるかを判定し、もしあれば線スタイルを算出する。ステップ1230については、図16を参照して更に詳細に後述する。決定ステップ1240において、受入れ可能な線スタイルがステップ1230で検出されたかを判定するためのチェックが行われる。受入れ可能な線スタイルがあれば(Yes)、ステップ1250に進む。ステップ1250において、線スタイルは記憶され、その後ステップ1210に戻る。1240が偽(No)を返すと、ステップ1210に戻る。
【0189】
全てのグラフィックオブジェクトが解析されると、ステップ1210は偽(No)を返し、ステップ1260に進み、線が出力において複製されないように線を特定のグラフィックオブジェクトに関連付けられたものとして印をつける。これは、線スタイルがステップ1230で順次検出されたグラフィックオブジェクトを処理することにより行うことができる。各グラフィックオブジェクトの構成済み幾何形状は、線が除去された領域からの一部を含むことができる。この情報は、ステップ1575で生成され且つ境界線がその下に延長された線領域に応じて印を付けられた境界線に基づいて判定できる。このように印を付けられた構成済みオブジェクトの各境界線は、対応する線に割り当てられる。全てのグラフィックオブジェクトが処理されると、線をグラフィックオブジェクトに関連付ける好適なテストとしては、オブジェクトからの線に割り当てられた境界線の全長が線の骨格の長さより0.8倍大きくなり、他のグラフィックオブジェクトに割り当てられた境界線の長さより大きくなる。この条件が満たされるならば、その線は別個のオブジェクトに対応する確率が低く、グラフィックオブジェクトの一部と見なすことができる。破線の場合、骨格の一部だけがダッシュスタイルに基づいて複数のダッシュの内側に存在する事を説明するために異なるテストを行ってもよい。例えば、オブジェクトからの線に割り当てられた境界線の全長がダッシュ内の骨格の長さより0.8倍大きければ、線をグラフィックオブジェクトに関連付けてもよい。ステップ1260の後、方法1200は終了する。
【0190】
図16は、オブジェクトが図12のステップ1230で用いられるような一貫性のある線スタイルを有するかを判定するために構成済みグラフィックオブジェクトに隣接する線を処理する方法1600を例示する。方法1600はステップ1605で処理を開始する。ステップ1605において、グラフィックオブジェクトの一組の線パラメータが初期化される。これらには以下が含まれる。
・オブジェクトの幾何形状の周囲の全長を累積した全長パラメータ(ltot)
・線に関連付けられたオブジェクトの幾何形状の周囲の全長を累積した線内長さパラメータ(lline)
・グラフィックオブジェクトの周囲の線の平均幅パラメータ(wline)
・何れの透明領域も重ならない複数の線の全長を累積した非重なり線内長さパラメータ(lover)
・非重なり線の平均色(色チャンネルiのCiover)
・透明領域の下にある複数の線の全長を累積した重なり線内長さパラメータ(lunder)
・透明領域の下にある複数の線の平均色(色チャンネルiのCiunder)
色及び幅パラメータを未設定として印を付ながら、全ての長さパラメータをゼロに初期化する。破線が処理中ならば、最初は未設定であるオブジェクトのダッシュスタイルをオプションで記憶してもよい。パラメータの初期化後、ステップ1610に進み、グラフィックオブジェクトの幾何形状を定義する全ての境界線を順次ループし、必要に応じて種々のパラメータを更新する。
【0191】
決定ステップ1610では、構成済みグラフィックオブジェクト上に更なる境界線が存在するかをチェックし、存在すれば(Yes)、ステップ1615へ進み、そうでなければ(No)、ステップ1650へ進む。ステップ1615では、次の境界線を選択し、その長さ(lbord)を決定し、それを全長パラメータ(ltot)に累積(加算)する。決定ステップ1620において、現在の境界線が線領域に構成されているかを判定するためのチェックが行われる。すなわち、現在の境界線がステップ1575で生成されて線領域の下に延伸していることを示すように現在の境界線に印が付いているかを判定するためのチェックが行われる。ステップ1620が偽(No)を返すと、ステップ1610に戻る。ステップ1620が真(Yes)を返すと、ステップ1625に進む。印が付いた線領域は現在の線と呼ばれ、ステップ1625で使用される。
【0192】
ステップ1625では、現在の線の幅をチェックし、パラメータを累積する。すなわち、現在の線の幅wcurrが選択され、その後、線内長さパラメータ(lline)が非ゼロで幅パラメータwlineが以前に設定されているならば、ステップ1625では受入れテストをオプションで行ってもよい。幅パラメータが300dpiのピクセル単位で測定されるならば、修正済み幅パラメータは以下のように計算してもよい。
【0193】

【0194】
そして、修正済み幅パラメータ及び修正済みの現在の線幅パラメータの最大に対する最小の比率が閾値0.6以上ならば、現在の線幅を受入れる。
【0195】

【0196】
次に、線内長さパラメータ(lline)がゼロならば、幅パラメータwlineがこの幅に設定される。さもなければ、幅パラメータは現在のパラメータwlineと現在の線幅の加重平均に設定される。
【0197】

【0198】
破線が本システムで処理中ならば、ダッシュスタイルもオプションで処理しなければならない。線内長さパラメータ(lline)がゼロならば、オブジェクトのダッシュスタイルは単に現在の線ダッシュスタイルに設定される。線内長さパラメータ(lline)が非ゼロであり、そのためダッシュスタイルがオブジェクトに設定されているならば、現在の線ダッシュスタイルがオブジェクトの周囲の現在のダッシュスタイルと比較される。スタイルに整合性があれば、オブジェクトの周囲のダッシュスタイルは2つのダッシュスタイルに基づいて設定され、スタイルに整合性がなければ、現在の線ダッシュスタイルは棄却される。最後に、境界線長さパラメータlbordが線長さパラメータllineに加算され(すなわち、lline=lline+lbord)、ステップ1625を完了する。
【0199】
決定ステップ1630に進み、グラフィックオブジェクトが現在の境界線で重ねられているかをチェックする。これは、境界線に隣接するグラフィックオブジェクトに含まれる領域に基づいて判定できる。領域が2つ以上のグラフィックオブジェクトに含まれ、グラフィックオブジェクトの少なくとも1つが現在のグラフィックオブジェクト上に部分的な透明性を持って重ねられているならば、そのグラフィックオブジェクトは現在の境界線で重ねられ(Yes)、ステップ1640に進む。ステップ1630が偽(No)を返すと、ステップ1635に進む。
【0200】
ステップ1635において、色誤差がチェックされ、パラメータが本オプションのステップで累積される。非重なり線色が設定されたならば、線色に対してオプションの受入れテストを行ってもよい。受入れテストでは、非重なり線の平均色Cioverを現在の線色Cicurrと比較する。好適なテストでは、RGB空間の色距離(色パラメータが0〜255の範囲の値を取ると仮定して)を閾値と比較するが、このテストは以下の不等式をテストすることにより行われてもよい。
【0201】

【0202】
等式が真であるならば、線色を受入れる。
【0203】
非重なり線の平均色Cioverは以下のように更新される。非重なり線内長さパラメータ(lover)がゼロならば、各チャンネルに対する非重なり線の平均色Cioverは現在の線色Cicurrに設定される。さもなければ、各チャンネルに対する非重なり線の平均色Cioverは非重なり線色及び現在の線色の加重平均に設定される。
【0204】

【0205】
色を設定した後、境界線長さパラメータlbordが非重なり線内長さloverに加算され(すなわち、lover=lover+lbord)、ステップ1635を完了する。処理はステップ1610に戻る。
【0206】
ステップ1640では、透明重なり部を補償する。ステップ1640では、透明重なりオブジェクトがない場合の現在の線の真の線色Citrueを推定する。単一の重なり層については、式(1)に基づき、現在の線色Cicurrが重なりグラフィックオブジェクトの色Ciupper及び透明性αupperと真の線色とに以下のように関連付けられる。
【0207】

【0208】
この式を書き換えると、真の線色の式が得られる。
【0209】

【0210】
多重の層を処理するため、最上位層の重なりオブジェクトから開始し最下位層のオブジェクトで終了するように上記関係式が複数回使用される。各層が処理されると、現在の線色の値が推定された真の線色と置換され、次の層に対して繰り返される。しかし、推定された線色は各処理済み追加重なり層に対して精度が低いこともあるので、多重の重なりオブジェクトが存在する場合、ステップ1640及び1645を省略するのが好ましい。
【0211】
ステップ1645において、オプションで色誤差がチェックされ、パラメータが累積される。すなわち、重なり線色が設定されたならば、線色に対してオプションの受入れテストを行ってもよい。受入れテストでは、重なり線の平均色Ciunderをステップ1640で推定された現在の真の線色Citrueと比較する。好適なテストでは、RGB空間の色距離(色パラメータが0〜255の範囲の値を取ると仮定して)を閾値と比較するが、このテストは以下の不等式をテストすることで行われてもよい。
【0212】

【0213】
等式が真であるならば、線色を受入れる。
【0214】
重なり線の平均色Ciunderは以下のように更新される。重なり線内長さパラメータ(lunder)がゼロならば、各チャンネルに対する重なり線の平均色Ciunderは現在の真の線色Citrueに設定される。さもなければ、重なり線色及び現在の真の線色の加重平均に設定される。
【0215】

【0216】
色を設定した後、境界線長さパラメータlbordが重なり線内長さlunderに加算され(すなわち、lunder=lunder+lbord)、ステップ1645を完了する。処理はステップ1610に戻る。
【0217】
ステップ1650では、累積データに基づきグラフィックオブジェクトの線スタイルを形成する。線幅(wobj)は平均幅パラメータに基づき選択され、線色(Ciobj)はCiover、Ciunder、又はこれらの組み合わせに基づいて選択される。例えば、wobj=wline且つCiobj=Cioverである。破線を処理中であれば、ダッシュスタイルも線スタイルの一部として記憶される。使用中の色又は幅パラメータが設定されていないならば、線スタイルは設定されない。
【0218】
方法1600の最終ステップ1655は、受入れ可能線スタイルがグラフィックオブジェクトに対して決定されたかを判定する受入れテストである。以下の判定基準のいずれかが生じると線スタイルは棄却される。
1.線スタイルがステップ1650で設定されていない。
2.ステップ1625の線幅受入れテストがいずれかの境界線で失敗した。
3.ステップ1635の色受入れテストがいずれかの境界線で失敗した。
4.ステップ1645の色受入れテストがいずれかの境界線で失敗した。
5.線内長さパラメータ(lline)が、オブジェクトの全長パラメータ(ltot)の十分な割合(例えば、lline<0.8ltot)を占めていない。
6.ステップ1625のダッシュスタイル整合性テストがいずれかの境界線で失敗した。
【0219】
その後、処理は終了する。
【産業上の利用可能性】
【0220】
上述の構成は、コンピュータ及びデータ処理産業、特に処理グラフィックオブジェクトに対して利用可能である。
【0221】
オブジェクト表現をビットマップ画像から生成する方法、装置及びコンピュータ可読媒体を説明した。上記では、本発明のいつかの実施形態のみを記載したが、本発明の範囲から逸脱することなく変形及び/又は変更可能であり、これらの実施形態は例示的なものであり限定的なものではない。
【0222】
本明細書の文脈において、用語「具備する」は、「主に含むが、単独で必要ではない」、「有する」又は「含む」ことを意味し、「〜のみから構成される」ことではない。用語「具備する」の語形変化は、それに対応して意味の変化を示す。

【特許請求の範囲】
【請求項1】
オブジェクト表現をビットマップ画像から生成するコンピュータにより実現される方法であって、
前記ビットマップ画像の背景領域を含む一組の領域を前記ビットマップ画像から選択するステップと、
前記一組の領域の色に応じて第2のグラフィックオブジェクトに重なる部分的な透明性を有する第1のグラフィックオブジェクトの色及び部分的な透明性パラメータを推定するステップであって、前記推定される色及び部分的な透明性パラメータは透明性合成モデルと一致し、前記透明性合成モデルは色及び部分的な透明性パラメータによって2つのグラフィックオブジェクトの重複部の領域の色を定義するステップと、
前記一組の領域と前記第1のグラフィックオブジェクトの前記推定された色及び透明性パラメータとから前記第1及び第2のグラフィックオブジェクトの幾何形状モデルを構成するステップと、
前記幾何形状モデルに応じて前記オブジェクト表現を生成するステップと、
を有する方法。
【請求項2】
前記オブジェクト表現は電子文書であり、前記ビットマップ画像は文書の走査版である請求項1に記載の方法。
【請求項3】
前記第1のグラフィックオブジェクトの前記部分的な透明性パラメータは、
前記第1及び第2のグラフィックオブジェクトの重複部の領域として考えられる前記一組の領域である第1の領域と、
前記第1のグラフィックオブジェクトの一部として考えられる前記第1の領域に隣接する前記一組の領域である第2の領域と、
前記第2のグラフィックオブジェクトの一部として考えられる前記第1の領域に隣接する前記一組の領域である第3の領域と、
に応じて推定される請求項1に記載の方法。
【請求項4】
前記第1のグラフィックオブジェクトの前記部分的な透明性パラメータは、前記ビットマップ画像の前記第1の領域の色と、前記第2の領域及び前記第3の領域並びに背景領域の色を考慮して前記透明性合成モデルにより定義される色との間で色差が最小になるように推定される請求項3に記載の方法。
【請求項5】
前記第2のグラフィック領域は部分的に透明である請求項1に記載の方法。
【請求項6】
前記第1のグラフィックオブジェクトは前記第2のグラフィックオブジェクト及び第3のグラフィックオブジェクトに部分的な透明性をもって重なり、前記第2のオブジェクトは前記第3のオブジェクトに部分的な透明性をもって重なり、
前記第1、第2及び第3のグラフィックオブジェクトは部分的な透明性をもって重なり、
前記一組の領域は第1の領域と、前記第1の領域の外側境界に隣接する少なくとも3つの領域と、背景領域とを有し、
前記3つの隣接領域の各々は、部分的な透明性で前記グラフィックオブジェクトの2つの重複部に対応する色及び透明性パラメータを含む関連透明性モデルを有し、
前記3つの隣接領域の前記透明性モデルは、部分的な透明性で前記3つのグラフィックオブジェクトの重複部に対応する透明性モデルと一致する請求項5に記載の方法。
【請求項7】
前記3つのグラフィックオブジェクトは部分的な透明性をもって重なる円である請求項6に記載の方法。
【請求項8】
グラフィックオブジェクトの幾何形状モデルは、辿った境界線に隣接する領域の透明性モデルを追跡しながら領域の境界線を辿ることにより構成される請求項1に記載の方法。
【請求項9】
前記グラフィックオブジェクトの色、透明性及び階層化パラメータは、グラフィックオブジェクトの幾何形状モデルを構成する際に横断された境界線に隣接する領域の透明性モデルに応じて設定される請求項8に記載の方法。
【請求項10】
オブジェクト表現をビットマップ画像から生成する装置であって、
データとコンピュータプログラムとを記憶するメモリと、
コンピュータプログラムを実行するために、前記メモリに連結されたプロセッサ部とを有し、前記メモリ及び前記プロセッサは、前記オブジェクト表現を前記ビットマップ画像から生成するように構成され、前記コンピュータプログラムは、
前記ビットマップ画像の背景領域を含む一組の領域を前記ビットマップ画像から選択するコンピュータプログラムコード手段と、
前記一組の領域の色に応じて第2のグラフィックオブジェクトに重なる部分的な透明性を有する第1のグラフィックオブジェクトの色及び部分的な透明性パラメータを推定するコンピュータプログラムコード手段であって、前記推定される色及び部分的な透明性パラメータは透明性合成モデルと一致し、前記透明性合成モデルは色及び部分的な透明性パラメータによって2つのグラフィックオブジェクトの重複部の領域の色を定義するコンピュータプログラムコード手段と、
前記一組の領域と前記第1のグラフィックオブジェクトの前記推定された色及び透明性パラメータとから前記第1及び第2のグラフィックオブジェクトの幾何形状モデルを構成するコンピュータプログラムコード手段と、
前記幾何形状モデルに応じて前記オブジェクト表現を生成するコンピュータプログラムコード手段とを有する装置。
【請求項11】
前記オブジェクト表現は電子文書であり、前記ビットマップ画像は文書の走査版である請求項10に記載の装置。
【請求項12】
前記第1のグラフィックオブジェクトの前記部分的な透明性パラメータは、
前記第1及び第2のグラフィックオブジェクトの重複部の領域として考えられる前記一組の領域である第1の領域と、
前記第1のグラフィックオブジェクトの一部として考えられる前記第1の領域に隣接する前記一組の領域である第2の領域と、
前記第2のグラフィックオブジェクトの一部として考えられる前記第1の領域に隣接する前記一組の領域である第3の領域と、
に応じて推定される請求項10に記載の装置。
【請求項13】
前記第1のグラフィックオブジェクトの前記部分的な透明性パラメータは、前記ビットマップ画像の前記第1の領域の色と、前記第2の領域及び前記第3の領域並びに背景領域の色を考慮して前記透明性合成モデルにより定義される色との間で色差が最小になるように推定される請求項12に記載の装置。
【請求項14】
前記第2のグラフィック領域は部分的に透明である請求項10に記載の装置。
【請求項15】
グラフィックオブジェクトの幾何形状モデルは、辿った境界線に隣接する領域の透明性モデルを追跡しながら領域の境界線を辿ることにより構成される請求項10に記載の装置。
【請求項16】
プロセッサ部による実行のために、オブジェクト表現をビットマップ画像から生成するコンピュータプログラムが記録されたコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
前記ビットマップ画像から前記ビットマップ画像の背景領域を含む一組の領域を選択するコンピュータプログラムコード手段と、
前記一組の領域の色に応じて第2のグラフィックオブジェクトに重なる部分的な透明性を有する第1のグラフィックオブジェクトの色及び部分的な透明性パラメータを推定するコンピュータプログラムコード手段であって、前記推定される色及び部分的な透明性パラメータは透明性合成モデルと一致し、前記透明性合成モデルは色及び部分的な透明性パラメータによって2つのグラフィックオブジェクトの重複部の領域の色を定義するコンピュータプログラムコード手段と、
前記一組の領域と前記第1のグラフィックオブジェクトの前記推定された色及び透明性パラメータとから前記第1のグラフィックオブジェクト及び前記第2のグラフィックオブジェクトの幾何形状モデルを構成するコンピュータプログラムコード手段と、
前記幾何形状モデルに応じて前記オブジェクト表現を生成するコンピュータプログラムコード手段とを備えたコンピュータ読み取り可能な記憶媒体。
【請求項17】
前記オブジェクト表現は電子文書であり、前記ビットマップ画像は文書の走査版である請求項16に記載のコンピュータ読み取り可能な記憶媒体。
【請求項18】
前記第1のグラフィックオブジェクトの前記部分的な透明性パラメータは、
前記第1及び第2のグラフィックオブジェクトの重複部の領域として考えられる前記一組の領域である第1の領域と、
前記第1のグラフィックオブジェクトの一部として考えられる前記第1の領域に隣接する前記一組の領域である第2の領域と、
前記第2のグラフィックオブジェクトの一部として考えられる前記第1の領域に隣接する前記一組の領域である第3の領域と、
に応じて推定される請求項16に記載のコンピュータ読み取り可能な記憶媒体。
【請求項19】
前記第1のグラフィックオブジェクトの前記部分的な透明性パラメータは、前記ビットマップ画像の前記第1の領域の色と、前記第2の領域及び前記第3の領域並びに背景領域の色を考慮して前記透明性合成モデルにより定義される色との間で色差最小になるように推定される請求項18に記載のコンピュータ読み取り可能な記憶媒体。
【請求項20】
前記第2のグラフィック領域は部分的に透明である請求項16に記載のコンピュータ読み取り可能な記憶媒体。
【請求項21】
オブジェクト表現をビットマップ画像から生成するコンピュータにより実現される方法であって、
部分的な透明性を持つ独立した第1のグラフィックオブジェクトと共に独立した第2のグラフィックオブジェクトを含む前記ビットマップ画像から、各々が塗りつぶし色を持つ塗りつぶし領域と各々が線色を持つ線領域との一組を判定するステップと、
前記線領域の少なくとも1つにより分離された2つ以上の塗りつぶし領域を位置決めし、位置決めされた領域を隣接させることにより前記塗りつぶし領域の隣接性データを生成するステップと、
前記塗りつぶし色と前記塗りつぶし領域の隣接性データとに応じて前記第2のグラフィックオブジェクトに重なる前記第1のグラフィックオブジェクトの色及び部分的な透明性パラメータを推定するステップと、
前記線領域のうちの少なくとも1つの領域の線色に基づいて前記第2のグラフィックオブジェクトの輪郭線の単一の線色を決定するステップと、
前記オブジェクト表現を生成するために、前記推定された色及び部分的な透明性パラメータを有する前記第1の独立したグラフィックオブジェクトと、前記決定された単一の線色を有する前記第2の独立したグラフィックオブジェクトとを記憶するステップと、
を有する方法。
【請求項22】
前記単一の線色は前記第1のオブジェクトの前記推定された色及び部分的な透明性パラメータに基づいて決定され、前記第1のオブジェクトにより重ねられる前記線領域の線色は前記第1のオブジェクトの前記推定された色及び部分的な透明性パラメータにより修正された場合に前記単一の線色と一致する請求項21に記載の方法。
【請求項23】
前記第1及び第2のグラフィックオブジェクトを記憶するステップは、前記線色が前記第1のオブジェクトの前記推定された色及び部分的な透明性パラメータにより修正された場合、前記単一の線色と前記第1のグラフィックオブジェクトにより重ねられる線領域の内の1つの領域の線色との間の比較に依存する請求項22に記載の方法。

【図1】
image rotate

【図2a】
image rotate

【図2b】
image rotate

【図2c】
image rotate

【図3a】
image rotate

【図3b】
image rotate

【図4】
image rotate

【図5a】
image rotate

【図5b】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11a】
image rotate

【図11b】
image rotate

【図12】
image rotate

【図13a】
image rotate

【図13b】
image rotate

【図13c】
image rotate

【図14】
image rotate

【図15a】
image rotate

【図15b】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


【公開番号】特開2011−129125(P2011−129125A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−281023(P2010−281023)
【出願日】平成22年12月16日(2010.12.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】