説明

画像処理方法、画像処理装置、及び、プログラム、プログラム記憶媒体

【課題】 細線化されてベクトル化されたデータ出力を画像表示する際には、まったく加工・修正等の編集操作が加えられないうちは、細線の画像表示上の太さを、基本的には、原画に即した太さの表示が好ましい。現状、原画中における細線化処理対象部の元の状態にかかわらず、既定の固定幅での表示である。本発明の課題は、細線の画像表示上の太さを、原画に即した太さでの表示とすることを可能とすることである。
【解決手段】 2値画像獲得手段、細線化処理手段、細線化処理回数記憶手段(あるいは、各細線化回数での細線化による削減画素数カウント・記憶手段)、ラインアートベクトル化処理手段(含 ラインアートベクトル抽出手段、平滑手段)、処理済ラインアートベクトルの線幅決定手段、処理済ラインアートベクトルへの線幅情報付与手段を有する構成とすることである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、図面や文書画像内などの線図形の処理に向く、ラスタ走査順に記憶された2値画像から線図形のベクトル情報とその属性値を抽出する方法とその装置、とりわけ、1画素幅に細線化された2値画像から得られる線図形の線芯ベクトル情報として、そのベクトルデータの再生時における標準的な太さに関する情報を生成する方法とその装置に関するものである。
【背景技術】
【0002】
近年、ペーパーレス化への要求が高まり、既存の画像データを電子化して再利用することが頻繁に行われるようになってきた。従来、画像データの再利用は、画像データを2値化処理した後にベクトル化技術を用いてベクトルデータに変換し、このベクトルデータをCADソフト等で使用するという形で行われてきている。
【0003】
先述のように、ペーパーレス化への要求が高まりのもと、ビジネス文書においても、既存の画像データを電子化して再利用することが望まれている。原図のもつ各部分の部分的な太さの差や面積等をも、所望とされる変倍率を反映した形で(即ち、原図中での太い部分は変倍後の図中でも相対的に太く、原画中での細い部分では変倍後の図中でも相対的に細く)変倍するような再利用の形態に対しては、オリジナル文書中の2値図形の輪郭(アウトライン)ベクトルを抽出して、2次元形状を任意の拡大縮小率で変倍することで、その実現が可能である。
【0004】
ところで、ビジネス文書で既存の画像データを再利用する場合においても、これまでのCAD/CAMシステム等での各種手書き図面の自動入力方法のように、面積をもった図形全体というよりも、ある図形の輪郭を構成する線を、太さや、面積といった概念に意味をもたせずに、単なる線(直線、[開]曲線、[閉]曲線等)、あるいは、その線の集まりとして扱いたい場合も少なくない。また、もともと太さを意識せずに、細線のみで描かれている線画の再利用の要望も強い。すなわち、線の集まりの中から一部の線のみを削除したり、別な線を付与したり、あるいは、これら各線の一部の線のみに部分的な曲率、長さ、太さや線種(実線、破線、一点鎖線等)に変更を加える等の編集操作がその代表的な活用法である。これらの線画のベクトル化には、とりわけ、図面や文書画像をスキャナ等で読み込んで、コンピュータに入力して線画として扱うためには、従来、細線化処理と呼ばれる画像処理が良く利用されている。
【0005】
細線化処理とは、スキャナ等で読み込んで得られるイメージデータを2値化した後、その線幅が1になるように細めていく処理である。
【0006】
しかしながら、この細線化処理を施して得られる細線化済の2値画像には、原画(細線化前の2値画像)の各線の太さに関する情報はなくなっているために、細線化済の2値画像をベクトル化して得られるベクトルデータにも、原画の太さに関する情報が反映されていなかった。
【0007】
このため、得られたベクトルデータを図形として、対話的に編集操作するために、まずは無編集のままに1画素幅で表示したり、あるいは、そのまま1画素幅でプリント出力した場合には、原画像に比して太さが細く再生され、違和感が否めなかった。また、特に編集操作による太さの指示が場合には、デフォルトの太さを1画素ではなく、これより太い固定値、例えば1ポイント(約1/72インチ)の幅で出力したとしても、やはり、原画像に比して太さが異なって再生されることにより、違和感が否めなかった。
【0008】
たとえ,線画としてのベクトル処理を限定として得られたベクトルデータであったとしても、無編集のままでの表示や、プリント出力が求められる場合がある。
【0009】
従来例としては、例えば特許文献1と特許文献2をあげることが出来る。
【特許文献1】特開2001−357406号公報
【特許文献2】特登録2775122号公報
【非特許文献1】酒井幸市著“ディジタル画像処理の基礎と応用”第2版,P.51-P.54,ISBN4-7898-3707-6,CQ出版社,2004年2月1日発行
【発明の開示】
【発明が解決しようとする課題】
【0010】
本願では、上記従来例における問題点に鑑み、原画像における線の太さを反映した太さ情報を有するベクトル化を実現する方法及び装置、プログラムを提案することをその課題としている。
【課題を解決するための手段】
【0011】
細線化処理対象画像を獲得する画像獲得工程と、前記細線化処理対象画像をラスター走査により細線化する細線化工程と、ラスター走査による細線化処理における細線化に要した処理回数を計数する細線化処理回数計数工程と、前記細線化に要した細線化処理回数を記憶する細線化処理回数記憶工程と、前記、細線化処理工程にて得られた細線化済画像をラインアートベクトル処理するラインアートベクトル処理工程と、前記細線化処理回数からラインアートベクトル処理工程にて得られるラインアートベクトルの線幅情報を生成する線幅情報生成工程と、前記ラインアートベクトル処理工程により得られるラインアートベクトルに、前記線幅情報生成工程にて生成される線幅情報を付与する線幅情報付与工程とから構成される。
【発明の効果】
【0012】
線画としてのベクトル処理を想定して得られたベクトルデータであったとしても、無編集のままでの表示や、プリント出力を行ったとしても、従来に比し、原画像に比しての視覚的な違和感の少ないベクトル結果を得られる効果を有する。
【発明を実施するための最良の形態】
【0013】
<実施形態1>
本実施形態の画像処理装置の構成例について、図2のブロック図を参照して説明する。同図において、7は装置全体を制御するCentral Processing Unit(CPU)である。6は変更を必要としないプログラムやパラメータを格納するRead Only Memory(ROM)である。5は外部装置などから供給されるプログラムやデータを一時記憶するRandom Access Memory(RAM)である。1は、文書等を光電走査して電子的な画像データを得るためのスキャナであり、3はこのスキャナ1と画像処理装置を接続する画像入出力インターフェースである。2は、前記スキャナ1で読み取られた画像データ等を保持する画像メモリである。12は固定して設置されたハードディスクやメモリカード、あるいは着脱可能なフレキシブルディスク(FD)やCompact Disk(CD)等の光ディスク、磁気や光カード、ICカード、メモリカードなどを含む外部記憶装置である。また、13はこれら外部記憶装置12とコンピュータ装置との入出力(I/O(Input/Output))インターフェースである。15はユーザの操作を受け、データを入力するマウス等のポインティングデバイス10やキーボード9などの入力デバイスとのインターフェイスである。14は画像処理装置の保持するデータや供給されたデータを表示するためのディスプレイモニタ8とのインターフェイスである。4はインターネットなどのネットワーク回線に接続するためのネットワークインタフェイスである。11は1〜15の各ユニットを通信可能に接続するシステムバスである。
【0014】
以下、CPU7上で実行されるプログラムにより本願発明を実現する処理手順を、図1のフローチャートを用いて説明する。
【0015】
図1は、本願による発明を実施する装置における動作全体の流れを示すフローチャートである。同図において、処理を開始すると、ステップS110では、処理対象となる画像領域を含む画像データを入力する。画像入力に関しては、スキャナ1にて読み取られた画像データを画像入出力I/O3を介して画像メモリ2に入力する。また、通信I/F4を介して、装置外部より前記処理対象となる画像領域を含む画像を入力してもよく、あるいは、H/D装置12に予め記憶される画像データをI/O13を介して読み込むものであってもよい。得られた入力画像は、画像メモリ2上に保持される。
【0016】
次に、ステップS120では、前記ステップS110で得られた画像データを映像I/Oを介してディスプレイモニタ8上に表示する。
【0017】
次に、ステップS130では、ROM6上の図示しない領域に予め記憶される閾値を用いて、ステップS110で入力した画像データを2値化することにより、細線化対象とする2値画像を得る。尚、ステップS110で入力した画像が既に2値画像である場合には,ステップS130では、事実上このステップS110で入力した2値画像そのものを持って、細線化対象とする2値画像とする。尚、2値化に用いる閾値は、I/O15を介してキーボード9やマウス9等を用いて操作者より指示入力されるように構成してもよい。
【0018】
ステップS140では、入力画像中の細線化対象領域パラメータを初期化する。一般的には、ステップS130で得られた2値画像の全画像領域が対象となるが、同全画像領域中の部分領域のみを細線化対象領域として設定することも可能である。例えば、ステップS130で得られる2値画像が、図3に示す様な、横(x)方向に2520画素、縦(y)方向に3564画素からなる矩形領域20で示される画像であったとすると、ステップS140では、その中に例えば矩形領域21のような、領域20の原点(同領域の左上の点)から右にy0画素、下にx0画素のオフセットを持った画素を原点とする横(x)方向に1280画素、縦(y)方向に1892画素からなる矩形領域を細線化対象領域として設定する。
【0019】
ステップS150では、RAM5上の不図示のメモリー領域に保持する削除画素数を0にリセットした上で、ステップS130で得られた2値画像の中で、ステップS140で設定した細線化対象領域を公知のHilditch法による細線化手法に従い細線化処理する。即ち、注目画素位置の画素を中心画素とし、その周囲の8画素とからなる3×3のウィンドウ内を予め用意されたマスクパターンとの比較することにより細線化による削除対象画素であるかを判定し、削除対象画素の場合には、注目画素位置(x,y)の画素を削除する。即ち、黒画素から白画素に置き換える。また、RAM5上の不図示のメモリー領域にある削除画素数を1増やす。一方、削除対象画素ではない場合には、細線化処理範囲内におけるラスター走査での次の画素位置に注目画素位置を移し、ステップS140で設定した細線化対象領域内すべての画素に対して同処理を繰り返す。そして、同領域内のラスター走査を完了するとステップS160に進む。
【0020】
尚、Hilditch法に関しては、例えば、非特許文献の、酒井幸市著“ディジタル画像処理の基礎と応用”第2版,ISBN4-7898-3707-6,CQ出版社,2004年2月1日発行,P.51-P.54,([非特許文献1])等に述べられている。
【0021】
ステップS160では、RAM5上の不図示のメモリー領域に保持する削除画素数をみて、0のままであれば細線化が完了したと判断してステップS180へ進む。そうではない場合には、RAM5上の不図示のメモリー領域に保持する削除画素数を0にリセットするとともにステップS170に進む。
【0022】
ステップS170では、RAM5上の不図示の第2のメモリー領域に保持する細線化処理の試行回数、即ち、細線化回数カウントを1増やし、ステップS150に戻る。
【0023】
ステップS180では、ステップS150からステップS170までの間でカウントされた細線化の試行回数に基づいて細線化されたベクトルの太さの情報(以降、“太さ情報“、もしくは、単に”太さ“と称する)を求める。Hilditch法による細線化手法においては、1回の細線化の処理(1回のラスター走査)では、高々2画素までの幅でしか細線化されない。そこで、前記、細線化の回数(kとする)と予め定める調整計数(αとする)とから、細線化されたベクトルの太さを(α×2×k=2αk)とする。ここで、調整計数αは、想定するシステムで扱う画像に応じて予め定めておく。即ち、処理対象画像が比較的一定幅の画像が多い場合にはαは1近い値(例えば、0.9等)に設定しておく。あるいは、必ずしも扱う画像が一定幅の線画像ではない場合には、十分な数の典型的な入力画像における平均的な線の太さと、それぞれの画像の線の太さの最大値の平均との比をもってαの値と設定しておいても良い。
【0024】
ステップS190では、細線化済の2値画像を入力し、ラインアートベクトル化を行う。即ち、細線化された2値画像を構成する端点や交点間をつなぐ独立した線や閉曲線毎にベクトル化する。即ち、細線化された2値画像を構成する端点や交点間をつなぐ独立した線や閉曲線のそれぞれから得られる線成分に対応する線芯化された端点間毎線芯(周回)化済ベクトルを平滑化(関数近似)処理する際に、端点部分に相当するベクトルが、他のベクトルと統合されて端点位置が不明にならぬように、端点部分に相当する部分を明示する始端点・終端点情報を生成する。そして、端点部分に相当する部分が端点として保存される(ベジェ曲線のアンカーポイントとなる)ように補助ベクトルを挿入する。得られた端点間毎補助ベクトル入り(周回)ベクトルに対して、2次や3次のベジェ曲線近似をする。
【0025】
ステップS200では、ステップS190で得られた、細線化された2値画像を構成する端点や交点間をつなぐ独立した線や閉曲線毎にベクトル化されたそれぞれのベクトルに、ステップS180で求めた太さ情報を付与する。
【0026】
ステップS210では、ステップS200までに得られた、太さ情報付のラインアートベクトルデータを出力して、一連の処理を終える。
【0027】
<実施形態2>
上記の実施形態1においては、ステップS160において、RAM5上の不図示のメモリー領域に保持する削除画素数をみて、0ではない場合には、細線化処理が1回試行されたものとして、ステップS170に進み、RAM5上の不図示の第2のメモリー領域に保持する細線化処理の試行回数、即ち、細線化回数カウントを1増やしていたが本発明は、それに限らない。即ち、図4に示すように、ステップS160において、RAM5上の不図示のメモリー領域に保持する削除画素数をみて、0ではない場合には、ステップS165において、さらに、前記削除画素数が予め定める値以上の値であるか否かを判定し、前記削除画素数が予め定める値以上の値である場合には、ステップS170へ進んで細線化回数カウントをを1増やし、そうではない場合には、たとえ、ステップS160において、RAM5上の不図示のメモリー領域に保持する削除画素数が0ではかったとしても、即ち、細線化処理が1回試行されてはいても、細線化回数カウントを増やさないようにしてもよい。このように構成することによって、扱う画像が必ずしも一定幅の線からなる画像ではなく、部分的に不ぞろいの太さをもつ線が少数混在していたとしても、これらの影響をほとんど受けずに、細線化されたベクトルに付与すべき太さ(α×2×k=2αk)をもとめることが可能となる。即ち、ごく少数の削除画素しか発生していない場合には、本来、処理対象画像中に含まれて得いる線のごく一部分しか細線化されていないために、これをもっては、原画に含まれていた線の太さを定める基礎となる細線化回数kの値を増やさない様にすることによって、細線化されたベクトルの太さに、原画に含まれるより大多数の線の太さをうまく反映させることができる特有の効果を有する。
【0028】
<実施形態3>
上記の実施形態1、及び、2においては、細線化の範囲は基本的には、まとまった1領域として扱う前提で話をすすめたが、本発明はこれに限らない。即ち、1つの領域の内部を仮想的に複数の部分領域に分けてその各領域における削除画素数を管理するように構成しても良い。図5に1つの領域の内部を課像的に複数の部分領域分けた状態を示す。同図は、先に示した、図3の細線化対象領域である矩形領域21をさらに、それぞれが横(x)方向に256画素、縦(y)方向に256画素からなる複数の部分矩形領域に細分化した例をしめしている。ここで、前記、実施形態1、もしくは、2におけるRAM5上に保持する削除画素数を格納する不図示のメモリー領域を、これらの複数の部分領域における削除画素数をそれぞれ独立に保持できる分確保する。そして、スッテプS150の細線化の処理においては、削除画素が発生するたびに、その画素が含まれている部分領域における削除画素数を保持するメモリ領域にある値を1ずつ増やすようにする。また、ステップS160においては、これらすべての部分領域における削除画素数の総和が0であるか否かをもって、0であれば、ステップS180へ進み、そうではなければ、ステップS170もしくは、ステップS165に進むようにする。
【0029】
また、RAM5上の不図示の第2のメモリー領域もまた、前記複数の部分領域に足る分を確保し、ステップS170においては、それぞれの部分領域で、細線化により削除される画素が存在する場合に、該当する部分領域に対応するメモリー領域の保持する細線化処理の試行回数、即ち、細線化回数カウントを1増やし、ステップS150に戻る。なお、この場合は、RAM5上のに確保される、複数の部分領域における削除画素数をそれぞれ独立に保持できる分の不図示のメモリー領域のそれぞれは、ステップS165もしくは、ステップS170において0に初期化されることになる。
【0030】
このように構成すると、各部分領域ごとに細線化されたベクトルに付与すべき太さ(α×2×k=2αk)をもとめることが可能となる。
【0031】
ステップS190により求められる、細線化された2値画像を構成する端点や交点間をつなぐ独立した線の端点部分が含まれている部分領域の太さ情報をもとに、当該端点や交点間を結ぶ線をベクトル化したベクトルの太さ情報を定める。即ち、線ベクトルの両端がそれぞれ属する領域の太さ情報の平均の値をもって、そのベクトルの太さ情報とする。また、端点が存在しない閉曲線の場合には、その閉曲線がその一部もしくは全部の存在するすべての部分領域の太さ情報の平均をとって、その閉曲線をベクトル化したベクトルの太さ情報とてもよい。
【0032】
尚、この複数の部分領域の太さ情報は、必ずしも平均するのみならず、最小値や最大値、あるいは、線図形上の画素の各部分領域に存在する画素数の比等を用いた重み付の平均(加重平均)等により太さ情報を求めてももちろん良い。
【0033】
<実施形態4>
本発明の目的は前述した実施例の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、装置に供給し、その装置を構成するCPU(またはMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0034】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0035】
また、CPUが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、CPU上で稼動しているOperating System(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0036】
さらに、記憶媒体から読み出されたプログラムコードが、画像処理装置に挿入された機能拡張ボードや画像処理装置に接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0037】
【図1】本願発明を実現する一連の処理手順を表すフローチャート
【図2】本願発明を実施する装置構成例のブロック図
【図3】2値画像の全画像領域中の部分領域を細線化対象領域とした設定例を示す図
【図4】本願発明の第2の実施形態を実現する一連の処理手順を表すフローチャート
【図5】細線化対象領域を複数の部分領域に細分化した例を示す図
【符号の説明】
【0038】
1 スキャナ
2 画像メモリ
3 画像入出力I/O
4 通信I/F
5 RAM
6 ROM
7 CPU
8 ディスプレイ
9 キーボード
10 マウス
11 バス
12 ハードディスク
13 I/O
14 映像I/O
15 I/O

【特許請求の範囲】
【請求項1】
細線化処理対象画像を獲得する画像獲得工程と、前記細線化処理対象画像をラスター走査により細線化する細線化工程と、ラスター走査による細線化処理における細線化を行った回数に関する情報を記憶する細線化回数記憶工程と、前記、細線化により得られる画像をベクトル化するラインアートベクトル化処理工程と、前記、細線化回数記憶工程にて記憶された細線化を行った回数に関する情報から、前記、ラインアートベクトル化処理工程にて得られるベクトルの線幅情報を求める太さ情報生成工程と、前記太さ情報生成工程でもとめた太さ情報を前記ラインアートベクトル処理工程で得られたベクトルに太さ情報を付与する太さ情報付与工程とを有することを特徴とする画像処理方法。
【請求項2】
上記請求項1に記載の画像処理方法において、加えて、前記細線化工程にて削除された画素数に関する情報を得る削除画素情報獲得工程と、前記細線化回数記憶工程は、前記削除画素情報獲得工程でえられる削除画素情報に基づいて、ラスター走査による細線化処理における細線化を行った回数に関する情報を記憶することを特徴とする画像処理方法。
【請求項3】
上記請求項1もしくは2に記載の画像処理方法において、前記細線化対象画像を複数の部分領域に細分化し、前記、削除画素情報獲得工程は前記複数の部分領域別に前記細線化工程にて削除された画素数に関する情報を得て、かつ、前記細線化回数記憶工程は、前記削除画素情報獲得工程でえられる前記複数の部分領域別の削除画素情報に基づいて、前記複数の部分領域別にラスター走査による細線化処理における細線化を行った回数に関する情報を記憶し、前記、太さ情報生成工程は、前記細線化回数記憶工程において記憶される、複数の部分領域別のラスター走査による細線化処理における細線化を行った回数に関する情報からラインアートベクトル化処理工程にて得られるベクトルの線幅情報を求める特徴とする画像処理方法。
【請求項4】
細線化処理対象画像を獲得する画像獲得手段と、前記細線化処理対象画像をラスター走査により細線化する細線化手段と、ラスター走査による細線化処理における細線化を行った回数に関する情報を記憶する細線化回数記憶手段と、前記、細線化により得られる画像をベクトル化するラインアートベクトル化処理手段と、前記、細線化回数記憶手段にて記憶された細線化を行った回数に関する情報から、前記、ラインアートベクトル化処理工程にて得られるベクトルの線幅情報を求める太さ情報生成手段と、前記太さ情報生成手段でもとめた太さ情報を前記ラインアートベクトル処理手段で得られたベクトルに太さ情報を付与する太さ情報付与手段とを有することを特徴とする画像処理装置。
【請求項5】
上記請求項4に記載の画像処理装置において、加えて、前記細線化手段にて削除された画素数に関する情報を得る削除画素情報獲得手段と、前記細線化回数記憶手段は、前記削除画素情報獲得手段でえられる削除画素情報に基づいて、ラスター走査による細線化処理における細線化を行った回数に関する情報を記憶することを特徴とする画像処理装置。
【請求項6】
上記請求項4もしくは5に記載の画像処理装置において、前記細線化対象画像を複数の部分領域に細分化し、前記、削除画素情報獲得手段は前記複数の部分領域別に前記細線化手段にて削除された画素数に関する情報を得て、かつ、前記細線化回数記憶手段は、前記削除画素情報獲得手段でえられる前記複数の部分領域別の削除画素情報に基づいて、前記複数の部分領域別にラスター走査による細線化処理における細線化を行った回数に関する情報を記憶し、前記、太さ情報生成手段は、前記細線化回数記憶手段において記憶される、複数の部分領域別のラスター走査による細線化処理における細線化を行った回数に関する情報からラインアートベクトル化処理手段にて得られるベクトルの線幅情報を求める特徴とする画像処理装置。
【請求項7】
コンピュータ装置が実行可能なプログラムであって、前記プログラムを実行するコンピュータ装置を、前記請求項4〜6のいずれかに記載の画像処理装置として機能させることを特徴とするプログラム。
【請求項8】
前記請求項7に記載のプログラムを記憶したプログラム記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate