(57)【要約】 【課題】  ビットマップ画像の中のグラデーション部分を、データ量の少ないベクトル画像に変換することができる画像情報処理装置を提供する。【解決手段】  ＣＰＵ２１は、まずデータ用メモリ２３から読み出したビットマップ画像データが表すビットマップ画像からグラデーション領域、つまり画素が連なる方向にグラデーションがある画素からなる領域を抽出する。次に抽出したグラデーション領域に含まれる画素の濃度の平均変化率を算出し、算出した濃度の平均変化率を用いて、グラデーション領域の画素のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換する。【選択図】      図１
2007066070.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素を含むビットマップ画像を表すビットマップ画像データをベクトルで画像を表すベクトル画像データに変換する画像情報処理装置であって、
ビットマップ画像に含まれる画素の中から画素が連なる方向に濃度のグラデーションがある画素からなるグラデーション領域を抽出する抽出手段と、
抽出手段によって抽出されたグラデーション領域のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換する変換手段とを含むことを特徴とする画像情報処理装置。
【請求項２】
前記抽出手段は、
ビットマップ画像に含まれる画素のうち予め定める方向に予め定める画素数毎に代表画素を設定し、隣接する代表画素の濃度差を算出する濃度差算出手段と、
１つの隣接する代表画素について濃度差算出手段によって算出された濃度差と、画素が連なる方向に次に隣接する代表画素について濃度差算出手段によって算出された濃度差とが予め定める変化量以下で変化するか否かを判定する判定手段とを含み、
判定手段によって濃度差が予め定める変化量以下で変化すると判定された２つの隣接する代表画素およびその２つの隣接する代表画素の間の画素からなる領域が、予め定める個数以上連続して連なる領域をグラデーション領域として抽出することを特徴とする請求項１に記載の画像情報処理装置。
【請求項３】
前記抽出手段によって抽出されたグラデーション領域に含まれる画素の濃度の平均変化率を算出する算出手段をさらに含み、
前記変換手段は、算出手段によって算出された濃度の平均変化率を用いて前記抽出手段によって抽出されたグラデーション領域のビットマップ画像データをグラデーション画像データに変換することを特徴とする請求項１または２に記載の画像情報処理装置。
【請求項４】
前記算出手段は、
前記抽出手段によって抽出されたグラデーション領域に含まれる画素の中から濃度が極値である極値画素を抽出する極値画素抽出手段と、
極値画素抽出手段によって抽出された極値画素のうち、グラデーション領域の一端に最も近い隣接する極値画素の中間の第１の位置およびそれらの極値画素の濃度の第１の平均値、ならびにグラデーション領域の他端に最も近い隣接する極値画素の中間の第２の位置およびそれらの極値画素の濃度の第２の平均値を求める中間位置算出手段とを含み、
中間位置算出手段が算出した濃度の第１の平均値と第２の平均値との差を、第１の位置と第２の位置との間にある画素数で除算することによって、グラデーション領域に含まれる画素の濃度の平均変化率を算出することを特徴とする請求項３に記載の画像情報処理装置。
【請求項５】
前記算出手段は、
前記抽出手段によって抽出されたグラデーション領域に含まれる画素の中から、濃度が極値である極値画素を抽出する極値画素抽出手段と、
極値画素抽出手段によって抽出されたすべての極値画素について隣接する極値画素の中間の位置およびその隣接する極値画素の濃度の平均値を算出する中間位置算出手段と、
中間位置算出手段が算出したすべての中間の位置について隣接する２つの中間の位置におけるそれぞれの濃度の平均値の差をその隣接する２つの中間の位置の間にある画素数で除算することによってその隣接する２つの中間の位置間の濃度の変化率を算出する中間変化率算出手段とを含み、
中間変化率算出手段が算出したすべての濃度の変化率を平均することによってグラデーション領域に含まれる画素の濃度の平均変化率を算出することを特徴とする請求項３に記載の画像情報処理装置。
【請求項６】
複数の画素を含むビットマップ画像を表すビットマップ画像データを、ベクトルで画像を表すベクトル画像データに変換する画像情報処理方法であって、
ビットマップ画像に含まれる画素の中から、画素が連なる方向に濃度のグラデーションがある画素からなるグラデーション領域を抽出し、
抽出したグラデーション領域のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換することを特徴とする画像情報処理方法。
【請求項７】
コンピュータを請求項１〜５のいずれか１つに記載の画像情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを処理する画像情報処理装置、画像情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
複数の画素からなるビットマップ画像を、ベクトルを用いて表されるベクトル画像に変換することによって、データ量の削減および解像度の維持を図るための従来の技術がある。
【０００３】
たとえば、複数の濃度レベルをもつ画素の集合として表現された濃淡画像を符号化する画像符号化方式がある。この画像符号化方式は、濃淡画像の中に含まれる物体の輪郭あるいは有意義な陰影の境界などの線図形と、その線図形内に形成される閉領域の明るさあるいは色の情報とに分離して符号化するものである。必要な幾何学情報の精度を保ちながら、符号量を大幅に削減することができる（たとえば特許文献１参照）。
【０００４】
さらに、手書き図面の清書などに利用することができるデジタル複写装置がある。このデジタル複写装置は、ビットマップ画像を図形および文字に区分した後、図形についてはベクトルデータに変換し、文字については直線近似を行うことによって、手書き図面の清書を行うものである（たとえば特許文献２参照）。
【０００５】
【特許文献１】特開昭５８−２１９８６号公報
【特許文献２】特開平４−８１０７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、これらの従来の技術は、輪郭、図形、あるいは文字を少ないデータ量で表すためのものであり、ビットマップ画像の濃度あるいは色調がなだらかに変化するグラデーション部分を、ベクトルデータ化することができないという問題がある。
【０００７】
本発明の目的は、ビットマップ画像の中のグラデーション部分を、データ量の少ないベクトル画像に変換することができる画像情報処理装置、画像情報処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明は、複数の画素を含むビットマップ画像を表すビットマップ画像データをベクトルで画像を表すベクトル画像データに変換する画像情報処理装置であって、
ビットマップ画像に含まれる画素の中から画素が連なる方向に濃度のグラデーションがある画素からなるグラデーション領域を抽出する抽出手段と、
抽出手段によって抽出されたグラデーション領域のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換する変換手段とを含むことを特徴とする画像情報処理装置である。
【０００９】
本発明に従えば、複数の画素を含むビットマップ画像を表すビットマップ画像データを、ベクトルで画像を表すベクトル画像データに変換するにあたって、抽出手段によって、ビットマップ画像に含まれる画素の中から、画素が連なる方向に濃度のグラデーションがある画素からなるグラデーション領域が抽出され、抽出手段によって抽出されたグラデーション領域のビットマップ画像データが、変換手段によって、グラデーションを表すグラデーション画像データに変換される。
【００１０】
このように、ビットマップ画像に含まれる画素の中から、画素が連なる方向に濃度のグラデーションがある画素からなるグラデーション領域を抽出し、抽出したグラデーション領域のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換するので、ビットマップ画像の中のグラデーション部分をベクトル画像に変換することができる。
【００１１】
また本発明は、前記抽出手段は、
ビットマップ画像に含まれる画素のうち予め定める方向に予め定める画素数毎に代表画素を設定し、隣接する代表画素の濃度差を算出する濃度差算出手段と、
１つの隣接する代表画素について濃度差算出手段によって算出された濃度差と、画素が連なる方向に次に隣接する代表画素について濃度差算出手段によって算出された濃度差とが予め定める変化量以下で変化するか否かを判定する判定手段とを含み、
判定手段によって濃度差が予め定める変化量以下で変化すると判定された２つの隣接する代表画素およびその２つの隣接する代表画素の間の画素からなる領域が、予め定める個数以上連続して連なる領域をグラデーション領域として抽出することを特徴とする。
【００１２】
本発明に従えば、隣接する代表画素の濃度差が予め定める変化量以下で変化する隣接する代表画素およびその隣接する代表画素の間の画素からなる領域が、予め定める数以上連続して連なる領域をグラデーション領域として抽出するので、代表画素の濃度に基づいて、グラデーション領域を抽出することができる。
【００１３】
また本発明は、前記抽出手段によって抽出されたグラデーション領域に含まれる画素の濃度の平均変化率を算出する算出手段をさらに含み、
前記変換手段は、算出手段によって算出された濃度の平均変化率を用いて前記抽出手段によって抽出されたグラデーション領域のビットマップ画像データをグラデーション画像データに変換することを特徴とする。
【００１４】
本発明に従えば、グラデーション領域の濃度の傾きを、濃度の平均変化率で表すので、ビットマップ画像のグラデーション部分を、ベクトル画像に変換することができる。
【００１５】
また本発明は、前記算出手段は、
前記抽出手段によって抽出されたグラデーション領域に含まれる画素の中から濃度が極値である極値画素を抽出する極値画素抽出手段と、
極値画素抽出手段によって抽出された極値画素のうち、グラデーション領域の一端に最も近い隣接する極値画素の中間の第１の位置およびそれらの極値画素の濃度の第１の平均値、ならびにグラデーション領域の他端に最も近い隣接する極値画素の中間の第２の位置およびそれらの極値画素の濃度の第２の平均値を求める中間位置算出手段とを含み、
中間位置算出手段が算出した濃度の第１の平均値と第２の平均値との差を、第１の位置と第２の位置との間にある画素数で除算することによって、グラデーション領域に含まれる画素の濃度の平均変化率を算出することを特徴とする。
【００１６】
本発明に従えば、グラデーション領域に含まれる極値画素のうち、グラデーション領域の始端に最も近い隣接する極値画素と、グラデーション領域の終端に最も近い隣接する極値画素とに基づいて、グラデーション領域に含まれる画素の濃度の平均変化率を算出するので、グラデーション領域の始端部分の平均濃度と終端部分の平均濃度とから平均変化率を算出することができる。
【００１７】
また本発明は、前記算出手段は、
前記抽出手段によって抽出されたグラデーション領域に含まれる画素の中から、濃度が極値である極値画素を抽出する極値画素抽出手段と、
極値画素抽出手段によって抽出されたすべての極値画素について隣接する極値画素の中間の位置およびその隣接する極値画素の濃度の平均値を算出する中間位置算出手段と、
中間位置算出手段が算出したすべての中間の位置について隣接する２つの中間の位置におけるそれぞれの濃度の平均値の差をその隣接する２つの中間の位置の間にある画素数で除算することによってその隣接する２つの中間の位置間の濃度の変化率を算出する中間変化率算出手段とを含み、
中間変化率算出手段が算出したすべての濃度の変化率を平均することによってグラデーション領域に含まれる画素の濃度の平均変化率を算出することを特徴とする。
【００１８】
本発明に従えば、グラデーション領域に含まれるすべての隣接する極値画素の中間の位置について、すべての隣接する２つの中間の位置間の濃度の変化率を求め、さらに求めたすべての濃度の平均値を平均することによって、グラデーション領域に含まれる画素の濃度の平均変化率を算出するので、グラデーション領域の全体に渡って平均化された濃度の平均変化率を算出することができる。
【００１９】
また本発明は、複数の画素を含むビットマップ画像を表すビットマップ画像データを、ベクトルで画像を表すベクトル画像データに変換する画像情報処理方法であって、
ビットマップ画像に含まれる画素の中から、画素が連なる方向に濃度のグラデーションがある画素からなるグラデーション領域を抽出し、
抽出したグラデーション領域のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換することを特徴とする。
【００２０】
本発明に従えば、複数の画素を含むビットマップ画像を表すビットマップ画像データを、ベクトルで画像を表すベクトル画像データに変換するにあたって、ビットマップ画像に含まれる画素の中から、画素が連なる方向に濃度のグラデーションがある画素からなるグラデーション領域を抽出し、抽出したグラデーション領域のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換するので、ビットマップ画像の中のグラデーション部分をベクトル画像に変換することができる。
【００２１】
このように、ビットマップ画像に含まれる画素の中から、画素が連なる方向に濃度のグラデーションがある画素からなるグラデーション領域を抽出し、抽出したグラデーション領域のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換するので、ビットマップ画像の中のグラデーション部分をベクトル画像に変換することができる。
【００２２】
また本発明は、コンピュータを前記画像情報処理装置として機能させるためのプログラムである。
【００２３】
本発明に従えば、コンピュータを画像情報処理装置として機能させるためのプログラムとして、提供することができる。
【発明の効果】
【００２４】
本発明によれば、ビットマップ画像の中のグラデーション部分をベクトル画像に変換することができるので、グラデーション部分の画像のデータ量を少なくすることができる。
【００２５】
また本発明によれば、代表画素の濃度に基づいて、グラデーション領域を抽出するので、グラデーション領域の抽出時間を短くすることができる。
【００２６】
また本発明によれば、ビットマップ画像のグラデーション部分を、ベクトル画像に変換することができるので、ビットマップ画像がグラデーションのある画像を含んでいても、容易にベクトル画像に変換することができる。
【００２７】
また本発明によれば、グラデーション領域の始端部分の平均濃度と終端部分の平均濃度とから平均変化率を算出することができるので、グラデーション領域全体の濃度の傾きを精度良く、短時間に算出することができる。
【００２８】
また本発明によれば、グラデーション領域の全体に渡って平均化された濃度の平均変化率を算出することができるので、グラデーション領域全体の濃度の傾きをより精度良く算出することができる。
【００２９】
また本発明によれば、ビットマップ画像の中のグラデーション部分をベクトル画像に変換することができるので、グラデーション部分の画像のデータ量を少なくすることができる。
【００３０】
また本発明によれば、コンピュータを画像情報処理装置として機能させるためのプログラムとして、提供することができる。
【発明を実施するための最良の形態】
【００３１】
図１は、本発明の実施の一形態である画像情報処理装置１の機能の概略の構成を示す。画像情報処理装置１は、たとえばカラー複写機などの画像形成装置、携帯電話機などの移動体通信装置、あるいはパーソナルコンピュータなどの情報処理装置であり、入力部１０、処理部２０、および出力部３０を含む。
【００３２】
入力部１０は、たとえばＣＣＤ（Charge Coupled Device）を用いて画像を取り込むスキャナあるいはカメラなどの入力装置、あるいは他の処理装置から送信されてくる画像データを受信するための通信装置から構成され、取り込んだ画像データあるいは受信した画像データを処理部２０に与える。処理部２０は、たとえば情報を処理するＣＰＵ
（Central Processing Unit）２１、ＣＰＵ２１によって実行されるプログラムが記憶された半導体メモリなどのメモリ２２、および入力部１０から与えられた画像データあるいは出力部３０に与えるための画像データなどのデータを記憶するための半導体メモリなどのデータ用メモリ２３によって構成される。出力部３０は、たとえば液晶ディスプレイなどの表示装置、プリンタなどの印刷装置、あるいは他の処理装置にデータを送信するための通信装置によって構成される。
【００３３】
メモリ２２に記憶されているプログラムは、たとえば複数の画素を含むビットマップ画像を表すビットマップ画像データを、ベクトルで画像を表すベクトル画像データに変換するためのプログラムである。
【００３４】
図２は、図１に示した画像情報処理装置１が処理するビットマップ画像の例を示す。ビットマップ画像は、たとえば横方向および縦方向にそれぞれ予め定める画素数から構成される画像、つまり１ラインに複数の画素を含む複数ラインから構成される画像である。図２に示したビットマップ画像４０は、１ラインが横方向の画素から構成され、１ライン分の画素４１を含む。
【００３５】
ビットマップ画像４０は、画素が連なる方向にグラデーションがある画素からなる２次元のグラデーション２次元領域４２を含む。グラデーションは、画像の濃度あるいは色調などがなだらかに変化することである。以下、画素の濃度のグラデーションがあるビットマップ画像に限定して説明するが、色調などのグラデーションについても、同様に適用することができる。
【００３６】
グラデーション領域は、１ラインの中で画素が連なる方向にグラデーションがある画素からなる領域であり、図２には、１ライン分の画素４１に含まれるグラデーション領域４３を示している。
【００３７】
処理部２０に含まれるＣＰＵ２１は、入力部１０からビットマップ画像データを受け取ると、受け取ったビットマップ画像データをデータ用メモリ２３に書き込み、ビットマップ画像データに対する処理を行うときに、データ用メモリ２３からビットマップ画像データを読み出す。ＣＰＵ２１は、データ用メモリ２３から読み出したビットマップ画像データが表すビットマップ画像からグラデーション領域を抽出する。
【００３８】
グラデーション領域の抽出は、１ライン毎に行い、１つのラインの途中で１つのグラデーション領域を抽出した場合、同じラインの引続く画素についてグラデーション領域の抽出を行う。さらに１ラインに含まれるすべての画素についてグラデーション領域の抽出が終了すると、次のラインについてグラデーション領域の抽出を行う。
【００３９】
ＣＰＵ２１は、抽出したグラデーション領域に含まれる画素の濃度の平均変化率を算出し、算出した濃度の平均変化率を用いて、抽出したグラデーション領域のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換する。グラデーション領域のビットマップ画像データのグラデーション画像データへの変換は、抽出されたグラデーション領域毎に行う。
【００４０】
ベクトル画像データは、たとえばＳＶＧ（Scalable Vector Graphics）のデータ形式を用いる。ＳＶＧのデータ形式は、ＸＭＬ（Extensible Markup Language）がベースになっており、内部のデータはすべてテキストデータで記述されている。ＳＶＧでは、直線あるいは曲線などで表すベクトル情報を用いて画像を表現するので、画素数の大きい画像データを、少ないデータ量で表現することができ、さらに画像の品質を落とすことなく、画像の拡大あるいは縮小を行うことができる。
【００４１】
グラデーションを表すグラデーション画像データは、たとえば「SVG.linearGradient.
qname」エレメントを用いて表される。このエレメントは、グラデーションが始まる画素の位置、その画素の濃度、濃度の勾配つまり濃度の平均変化率、グラデーションが継続する長さ、および角度情報つまりグラデーションの方向などの属性情報で規定される。本実施の形態では、グラデーション領域をライン方向に抽出するので、角度情報つまりグラデーションの方向は、固定値たとえばライン方向を示す角度を設定すればよい。
【００４２】
このように、ビットマップ画像に含まれる画素の中から、画素が連なる方向に濃度のグラデーションがある画素からなるグラデーション領域を抽出し、抽出したグラデーション領域のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換するので、ビットマップ画像の中のグラデーション部分をベクトル画像に変換することができる。したがって、グラデーション部分の画像のデータ量を少なくすることができる。
【００４３】
図３は、図１に示した画像情報処理装置１が処理するグラデーション領域の抽出処理の概要を示す。図３は、縦軸が画素の濃度および横軸が画素の位置を示し、図２に示した１ライン分の画素４１の一部の画素についての濃度を示している。波線４０は画素毎の濃度を示す曲線で、直線４１は曲線４０で示される画素毎の濃度の変化を平均化して、一定の濃度の変化率としたときの画素毎の濃度を示す直線であり、直線４１の傾きがグラデーション領域の画素の濃度の平均変化率を示している。
【００４４】
グラデーション領域の抽出は、画素が連なる方向に画素の濃度がなだらかに変化する領域、つまり画素が連なる方向に隣接する画素の濃度差が予め定める変化量以下で変化する領域を抽出すればよい。グラデーション領域では、画素の濃度の変化がなだらかであるので、すべての画素について、隣接する画素の濃度差を用いて抽出する必要はなく、予め定める画素数毎に、たとえば濃度差に応じた画素数毎に代表画素を設定し、隣接する代表画素の濃度差を用いて抽出すればよい。すなわち隣接する代表画素の濃度差が、予め定める変化量以下で変化し連続する代表画素およびそれらの代表画素間にある画素の領域を、グラデーション領域として抽出する。
【００４５】
図３に示した１ライン分の画素４１の一部の画素は、画素の位置が右側の位置になるほど、濃度が減少しており、○印は、画素数α毎にある４つの代表画素、つまりｎα番目、（ｎ＋１）α番目、（ｎ＋２）α番目、および（ｎ＋３）α番目の画素の濃度と位置とを示している。変数ｎは、代表画素を識別するための番号であり、αは、隣接する代表画素間の画素数を表す予め定める自然数である。
【００４６】
隣接する代表画素の濃度差の変化量、たとえばｎα番目の画素と（ｎ＋１）α番目の画素との濃度差と、（ｎ＋１）α番目の画素と（ｎ＋２）α番目の画素との濃度差との変化量が、予め定める変化量以下であるとき、ｎα番目の画素と（ｎ＋２）α番目の画素との間にある画素は、１つのグラデーション領域に含まれる。さらに（ｎ＋１）α番目の画素と（ｎ＋２）α番目の画素との濃度差と、（ｎ＋２）α番目の画素と（ｎ＋３）α番目の画素との濃度差との変化量が、予め定める変化量以下であるとき、（ｎ＋２）α番目の画素と（ｎ＋３）α番目の画素との間にある画素も、同じグラデーション領域に含まれる。
【００４７】
このように、隣接する代表画素の濃度差の変化量が予め定める変化量以下である２つの隣接する代表画素およびそれらの代表画素の間の画素からなる領域が、連続して連なる領域を、グラデーション領域として抽出する。
【００４８】
図４および図５は、図１に示したＣＰＵ２１が処理するグラデーション領域の抽出処理手順を示すフローチャートである。図４および図５に示したフローチャートは、ＣＰＵ２１がメモリ２２に記憶されているプログラムを実行することによって、ビットマップ画像に含まれる画素のうち、１ライン分の画素に対して、グラデーション領域を抽出する処理手順を示す。
【００４９】
図４は、図１に示したＣＰＵ２１が処理するグラデーション領域の抽出処理手順の前半部分を示すフローチャートであり、濃度の増加が継続する画素の領域または濃度の減少が継続する画素の領域を特定する処理手順を示す。ＣＰＵ２１が入力部１０からビットマップ画像データを受け取ると、変数ｎ、および隣接する代表画素間の濃度差（以下濃度の差分ともいう）を識別するための番号を表す変数ｍを、それぞれ「１」に初期設定して、ステップＳ１に移る。
【００５０】
ステップＳ１では、入力データ、つまり入力部１０から受け取ったビットマップ画像データ、あるいはすでにデータ用メモリ２３に記憶されているときは、データ用メモリ２３から読み出したビットマップ画像データの１ラインについて、ｎα番目の画素、つまりｎ番目の代表画素の濃度Ｄｎを算出する。ステップＳ２では、同じラインで（ｎ＋１）α番目の画素、つまり（ｎ＋１）番目の代表画素の濃度Ｄｎ＋１を算出する。ステップＳ３では、ｎα番目の画素の濃度Ｄｎが（ｎ＋１）α番目の画素の濃度Ｄｎ＋１よりも大きいか否かを判定する。ｎα番目の画素の濃度Ｄｎが（ｎ＋１）α番目の画素の濃度Ｄｎ＋１よりも大きいとき、ステップＳ４に進み、ｎα番目の画素の濃度Ｄｎが（ｎ＋１）α番目の画素の濃度Ｄｎ＋１よりも大きくないとき、ステップＳ９に進む。
【００５１】
ステップＳ４では、１つ前の差分、つまり（ｍ−１）番目の差分に対応する差分属性、すなわち濃度が減少したか増加したかを示す属性を参照して、濃度が減少であるか否かを判定する。（ｍ−１）番目の差分属性が減少であるとき、つまりｎα番目の画素の濃度Ｄｎが（ｎ＋１）α番目の画素の濃度Ｄｎ＋１に減少し、かつ（ｍ−１）番目のときも濃度が減少したとき、ステップＳ５に進み、（ｍ−１）番目の差分属性が減少でないとき、つまり（ｍ−１）番目のときは濃度が増加であったが、ｎα番目の画素の濃度Ｄｎが（ｎ＋１）α番目の画素の濃度Ｄｎ＋１に減少したとき、ステップＳ１２に進む。変数ｍが「１」の場合、１つ前の濃度の差分はまだデータ用メモリ２３に記憶されていないので、何も処理しないで、ステップＳ５に進む。
【００５２】
ステップＳ５では、ｎα番目の画素の濃度Ｄｎから（ｎ＋１）α番目の画素の濃度Ｄｎ＋１を引いた値を、ｍ番目の濃度の差分として、データ用メモリ２３に記憶する。このとき濃度の差分とともに、差分属性として、濃度が減少であることも記憶しておく。ステップＳ６では、入力データの中の１つのラインに含まれるすべての画素について処理が終了したか否かを判定する。１つのラインに含まれるすべての画素について処理が終了したとき、ステップＳ１２に進み、１つのラインに含まれるすべての画素について処理が終了していないとき、ステップＳ７に進む。
【００５３】
ステップＳ７では、濃度の差分を連続して一定回数以上取得したか否かを判定する。濃度の差分を連続して一定回数以上取得つまりデータ用メモリ２３に記憶したとき、図５に示すステップＳ２０に進み、濃度の差分を連続して一定回数以上取得していないとき、ステップＳ８に進む。一定回数は、たとえば２０回程度とする。ステップＳ８では、変数ｎおよび変数ｍをそれぞれ「＋１」更新する。つまり変数ｎの値および変数ｍの値にそれぞれ「１」を加算して、ステップＳ１に戻る。変数ｍは、ステップＳ５またはステップＳ１１で、ｍ番目の濃度の差分を取得したときのみ、「＋１」更新する。
【００５４】
ステップＳ９では、ｎα番目の画素の濃度Ｄｎが（ｎ＋１）α番目の画素の濃度Ｄｎ＋１よりも小さいか否かを判定する。ｎα番目の画素の濃度Ｄｎが（ｎ＋１）α番目の画素の濃度Ｄｎ＋１よりも小さいとき、ステップＳ１０に進み、ｎα番目の画素の濃度Ｄｎが（ｎ＋１）α番目の画素の濃度Ｄｎ＋１よりも小さくないとき、つまりｎα番目の画素の濃度Ｄｎと（ｎ＋１）α番目の画素の濃度Ｄｎ＋１とが等しく、濃度が変化していないとき、ステップＳ６に進む。
【００５５】
ステップＳ１０では、１つ前の差分、つまり（ｍ−１）番目の差分に対応する差分属性を参照して、濃度が増加であるか否かを判定する。（ｍ−１）番目の差分属性が増加であるとき、つまりｎα番目の画素の濃度Ｄｎが（ｎ＋１）α番目の画素の濃度Ｄｎ＋１に増加し、かつ（ｍ−１）番目のときも濃度が増加であるとき、ステップＳ１１に進み、（ｍ−１）番目の差分属性が増加でないとき、つまり（ｍ−１）番目のときは濃度が減少であったが、ｎα番目の画素の濃度Ｄｎが（ｎ＋１）α番目の画素の濃度Ｄｎ＋１に増加したとき、ステップＳ１２に進む。変数ｍが「１」の場合、１つ前の濃度の差分はまだデータ用メモリ２３に記憶されていないので、何も処理しないで、ステップＳ１１に進む。
【００５６】
ステップＳ１１では、（ｎ＋１）α番目の画素の濃度Ｄｎ＋１からｎα番目の画素の濃度Ｄｎを引いた値を、ｍ番目の濃度の差分として、データ用メモリ２３に記憶して、ステップＳ６に進む。このとき濃度の差分とともに、差分属性として、濃度が増加であることも記憶しておく。ステップＳ１２では、処理した代表画素間の画素のビットマップ画像データは、グラデーション情報をもたないデータ、つまりグラデーション領域がないデータであると判定して、終了する。
【００５７】
図５は、図１に示したＣＰＵ２１が処理するグラデーション領域の抽出処理手順の後半部分を示すフローチャートであり、図４に示したフローチャートの処理手順で特定された画素の領域、つまり図４の処理手順で処理が行われた最初の代表画素と最後の代表画素との間にある画素の領域がグラデーション領域であるか否かを判定する処理手順を示す。図４に示したフローチャートのステップＳ７で、濃度の差分を連続して一定回数以上取得したと判定されたとき、ステップＳ２０に進む。
【００５８】
ステップＳ２０では、変数ｍが１番目の濃度の差分をデータ用メモリ２３から取得する。ステップＳ２１では、ｍ番目の濃度の差分、つまり次の濃度の差分をデータ用メモリ２３から取得して、ｍ番目の濃度の差分と（ｍ−１）番目の濃度の差分との差、つまり濃度差の変化量が、一定値以下、つまり予め定める変化量以下であるか否かを判定する。この一定値は、たとえば２５６階調の濃度であれば、５〜６階調という値である。ｍ番目の濃度の差分と（ｍ−１）番目の濃度の差分との差が一定値以下であるとき、ステップＳ２２に進み、ｍ番目の濃度の差分と（ｍ−１）番目の濃度の差分との差が一定値以下でないとき、ステップＳ２３に進む。
【００５９】
ステップＳ２２では、誤差範囲内データ数を「＋１」更新する。すなわち隣接する差分の差つまり濃度差の変化量が一定値以下であった回数に「１」を加算する。ステップＳ２３では、データ用メモリ２３に記憶されているすべての濃度の差分について、隣接する差分の差が一定値以下であるか否かを確認したか否かを判定する。すべての濃度の差分について確認したとき、ステップＳ２４に進み、すべての濃度の差分について確認していないとき、ステップＳ２６に進む。
【００６０】
ステップＳ２４では、誤差範囲内データ数、つまり隣接する差分の差が一定値以下であった回数が、一定回数つまり予め定める数以上であるか否かを判定する。誤差範囲内データ数が一定回数以上であるとき、ステップＳ２５に進み、誤差範囲内データ数が一定回数以上でないとき、ステップＳ２７に進む。ステップＳ２５では、図４に示したフローチャートのステップＳ７で濃度の差分を連続して一定回数以上取得したと判定された画素の領域のビットマップ画像データは、グラデーション情報をもつデータである判定して、終了する。すなわち濃度の差分を連続して一定回数以上取得したと判定した画素の領域をグラデーション領域として抽出して、終了する。
【００６１】
ステップＳ２６では、変数ｍを「＋１」更新して、ステップＳ２１に戻る。ステップＳ２７では、図４に示したフローチャートのステップＳ７で濃度の差分を連続して一定回数以上取得したと判定された画素の領域のビットマップ画像データは、グラデーション情報をもたないデータ、つまりグラデーション領域がないデータであると判定して、終了する。
【００６２】
このように、隣接する代表画素の濃度差が予め定める変化量以下で変化する隣接する代表画素およびその隣接する代表画素の間の画素からなる領域が、予め定める数以上連続して連なる領域をグラデーション領域として抽出するので、代表画素の濃度に基づいて、グラデーション領域を抽出することができる。したがって、グラデーション領域の抽出時間を短くすることができる。
【００６３】
図４および図５に示したフローチャートの抽出処理手順は、１ラインに含まれる画素に対する処理であり、１ラインの途中で１つのグラデーション領域を抽出したとき、あるいは１つのラインに含まれるすべての画素について処理したとき、このフローチャートの処理手順が終了する。したがって、引続く同じラインの画素に対するグラデーション領域の抽出、あるいは次のラインに含まれる画素に対するグラデーション領域の抽出については、新たにこのフローチャートの最初から処理を行う。
【００６４】
ビットマップ画像が、文字領域と写真領域とに分離されている場合など、グラデーションのない領域が明確に分離されている場合は、グラデーションのある領域、たとえば写真領域についてのみ、グラデーション領域を抽出すれば、処理時間を短縮することができる。
【００６５】
図６は、図１に示したＣＰＵ２１が処理するグラデーション領域のグラデーション画像データへの第１の変換処理手順を示すフローチャートである。第１の変換処理手順では、図４および図５に示したフローチャートの抽出処理手順によって抽出されたグラデーション領域について、濃度が極値である画素、つまり濃度が極大値または極小値の画素（以下極値画素という）のうち、グラデーション領域の始端に最も近い隣接する極値画素と、グラデーション領域の終端に最も近い隣接する極値画素とに基づいて、グラデーション領域の濃度の平均変化率を算出した後、グラデーション領域をグラデーション画像データに変換する。この変換処理は、ＣＰＵ２１がメモリ２２に記憶されているプログラムを実行することによって、処理される。図５に示したグラデーション領域の抽出処理手順が終了すると、ステップＴ１に移る。
【００６６】
ステップＴ１では、グラデーション領域に含まれる画素のうちで、等間隔にあるすべての隣接する画素間、たとえばすべての隣接する代表画素間の濃度の増減を判定する。ステップＴ２では、濃度の増減が逆転する画素間の領域、つまり濃度が増加する代表画素間の領域と濃度が減少する隣接する代表画素間の領域とが隣接する領域を特定する。
【００６７】
ステップＴ３では、特定された領域毎に、画素の濃度の極値、つまりその領域内での画素の極大値または極小値、およびその極値の画素の位置を算出する。ステップＴ４では、算出された極値画素うち、グラデーション領域の始端に最も近い、つまりグラデーション領域の中で最も小さい番号の代表画素に最も近い隣接する極値画素の濃度の平均値Ｎ１およびその隣接する極値画素の中間の位置Ｃ１を算出する。ステップＴ５では、算出された極値画素うち、グラデーション領域の終端に最も近い、つまりグラデーション領域の中で最も大きい番号の代表画素に最も近い隣接する極値画素の濃度の平均値Ｎ２およびその隣接する極値画素の中間の位置Ｃ２を算出する。
【００６８】
ステップＴ６では、ステップＴ４およびステップＴ５でそれぞれ算出された濃度の平均値Ｎ１および濃度の平均値Ｎ２と、中間の位置Ｃ１および中間の位置Ｃ２とに基づいて、濃度の平均変化率を求める。すなわち濃度の平均値Ｎ１から濃度の平均値Ｎ２を減算した値を、中間の位置Ｃ１と中間の位置Ｃ２との間にある画素数で除算することによって、グラデーション領域の濃度の平均変化率を算出する。ステップＴ７では、グラデーション領域のビットマップ画像データを、算出された濃度の平均変化率を用いて、グラデーションを表すグラデーション画像データに変換して、終了する。
【００６９】
このように、グラデーション領域に含まれる極値画素のうち、グラデーション領域の始端に最も近い隣接する極値画素と、グラデーション領域の終端に最も近い隣接する極値画素とに基づいて、グラデーション領域に含まれる画素の濃度の平均変化率を算出するので、グラデーション領域の始端部分の平均濃度と終端部分の平均濃度とから平均変化率を算出することができる。したがって、グラデーション領域全体の濃度の傾きを精度良く、短時間に算出することができる。
【００７０】
さらに、グラデーション領域の濃度の傾きを、濃度の平均変化率で表すので、ビットマップ画像のグラデーション部分を、ベクトル画像に変換することができる。したがって、ビットマップ画像がグラデーションのある画像を含んでいても、容易にベクトル画像に変換することができる。
【００７１】
図７は、図６に示したグラデーション領域の濃度の平均変化率の算出処理を適用した例を示す。図７に示したグラデーション領域は、図３に示した画素毎の濃度を示す曲線４０の一部を拡大した画素毎の濃度を示す曲線４０ａを示し、さらに曲線４０ａにある極値画素、つまり濃度が極大値または極小値の画素のうち、グラデーション領域の始端に最も近い隣接する極値画素と、グラデーション領域の終端に最も近い隣接する極値画素とを示している。
【００７２】
図７に示したグラデーション領域では、グラデーション領域の始端に最も近い隣接する極値画素、つまり極小の画素Ｓ１および極大の画素Ｄ１と、グラデーション領域の終端に最も近い隣接する極値画素、つまり極小の画素Ｓ２および極大の画素Ｄ２とに基づいて、グラデーション領域の濃度の平均変化率を求める。すなわち、極小の画素Ｓ１の濃度および極大の画素Ｄ１の濃度の平均値から、極小の画素Ｓ２の濃度および極大の画素Ｄ２の濃度の平均値を減算した値を、極小の画素Ｓ１および極大の画素Ｄ１の中間の位置Ｃ１と極小の画素Ｓ２および極大の画素Ｄ２の中間の位置Ｃ２との間の画素数で除算して、除算した値をグラデーション領域の濃度の平均変化率とする。極小の画素は、濃度が極小値を有する画素であり、極大の画素は、濃度が極大値を有する画素である。
【００７３】
図８は、図７に示した極値画素の求め方の一例を示す。図７に示した画素毎の濃度を示す曲線４０ａの一部、つまり極小の画素Ｓ１および極大の画素Ｄ１の前後の曲線４０ａを拡大して示している。図８に示した目盛は、代表画素の位置に付したものである。隣接する代表画素間の各領域Ｒｉについて、代表画素間の濃度の増減を判断する。ここに、ｉは自然数である。領域Ｒ１〜領域Ｒｓ−１は濃度が減少しており、領域Ｒｓ〜領域Ｒｄは濃度が増加しており、領域Ｒｄ＋１以降は濃度が減少している。
【００７４】
濃度の極小値は、濃度が減少から増加に転ずる画素の濃度であるので、極小の画素は、濃度が減少する領域と濃度が増加する領域とがその順序で隣接する２つ領域のいずれか１つの領域に存在する。したがって、その隣接する２つの領域内で最小の濃度の画素が、極小の画素、つまり極小の濃度を有する画素である。同様に、濃度の極大値は、濃度が増加から減少に転ずる画素の濃度であるので、極大の画素は、濃度が増加する領域と濃度が減少する領域とがその順序で隣接する２つの領域のいずれか１つの領域に存在する。したがって、その隣接する２つの領域内で最大の濃度の画素が、極大の画素、つまり極大の濃度を有する画素である。図８に示した例では、極小の画素は領域Ｒｓに存在する極小の画素Ｓ１であり、極大の画素は領域Ｒｄに存在する極大の画素Ｄ１である。
【００７５】
図９は、図１に示したＣＰＵ２１が処理するグラデーション領域のグラデーション画像データへの第２の変換処理手順を示すフローチャートである。第２の変換処理手順では、図４および図５に示したフローチャートの抽出処理手順によって抽出されたグラデーション領域について、グラデーション領域内のすべての極値画素、つまり濃度が極大値または極小値のすべての画素に基づいて、グラデーション領域の濃度の平均変化率を算出した後、グラデーション領域をグラデーション画像データに変換する。この変換処理は、ＣＰＵ２１がメモリ２２に記憶されているプログラムを実行することによって、処理される。図５に示したグラデーション領域の抽出処理手順が終了すると、ステップＵ１に移る。
【００７６】
ステップＵ１では、グラデーション領域に含まれる画素のうちで、等間隔にあるすべての隣接する画素間、たとえばすべての隣接する代表画素間の濃度の増減を判定する。ステップＵ２では、濃度の増減が逆転する画素間の領域、つまり濃度が増加する代表画素間の領域と濃度が減少する隣接する代表画素間の領域とが隣接する領域を特定する。
【００７７】
ステップＵ３では、特定された領域毎に、画素の濃度の極値、つまりその領域内での画素の極大値または極小値、およびその極値の画素の位置を算出する。ステップＵ４では、算出されたすべての隣接する極値画素、つまりすべての隣接する極大の画素および極小の画素の濃度の平均値およびそのすべての隣接する極大の画素および極小の画素の中間の位置を算出する。
【００７８】
ステップＵ５では、隣接する２つの中間の位置間の濃度の変化率を求める。ステップＵ６では、グラデーション領域終端まで処理したか否か、つまりグラデーション領域内のすべての隣接する２つの中間の位置間について、濃度の変化率を求めたか否かを判定する。すべての隣接する２つの中間の位置間の濃度の変化率を求めたとき、ステップＵ７に進み、すべての隣接する２つの中間の位置間の濃度の変化率を求めていないとき、ステップＵ５に戻る。
【００７９】
ステップＵ７では、すべての隣接する２つの中間の位置間の濃度の変化率を平均することによって、グラデーション領域の濃度の平均変化率を算出する。ステップＵ８では、グラデーション領域のビットマップ画像データを、算出された濃度の平均変化率を用いて、グラデーションを表すグラデーション画像データに変換して、終了する。
【００８０】
このように、グラデーション領域に含まれるすべての隣接する極値画素の中間の位置について、すべての隣接する２つの中間の位置間の濃度の変化率を求め、さらに求めたすべての濃度の平均値を平均することによって、グラデーション領域に含まれる画素の濃度の平均変化率を算出するので、グラデーション領域の全体に渡って平均化された濃度の平均変化率を算出することができる。したがって、グラデーション領域全体の濃度の傾きをより精度良く算出することができる。
【００８１】
図１０は、図９に示したグラデーション領域の濃度の変化率の算出処理を適用した例を示す。図１０に示したグラデーション領域は、図３に示した画素毎の濃度を示す曲線４０の一部を拡大した画素毎の濃度を示す曲線４０ｂを示し、さらに曲線４０ｂにあるすべての極値画素、つまり濃度が極大値または極小値のすべての画素を示している。
【００８２】
図１０に示したグラデーション領域のすべての隣接する極値画素について、隣接する極値画素間の濃度の平均値と中間の位置とを求める。すなわち、極大の画素Ｄ１１と極小の画素Ｓ１１とについて、中間の位置Ｃ１１および濃度の平均値Ｎ１１、極小の画素Ｓ１１と極大の画素Ｄ１２について、中間の位置Ｃ１２および濃度の平均値Ｎ１２、極大の画素Ｄ１２と極小の画素Ｓ１２とについて、中間の位置Ｃ１３および濃度の平均Ｎ１３、極小の画素Ｓ１２と極大の画素Ｄ１３とについて、中間の位置Ｃ１４および濃度の平均値Ｎ１４、ならびに極大の画素Ｄ１３と極小の画素Ｓ１３とについて、中間の位置Ｃ１５および濃度の平均値Ｎ１５を求める。
【００８３】
求めた各隣接する中間の位置について、グラデーション領域の始端に近いほうの隣接する極値画素の濃度の平均値から、グラデーション領域の終端に次に近い隣接する極値画素の濃度の平均値を減算した値を、それら隣接する極値画素間の２つ中間の位置間の画素数で除算することによって、その隣接する２つの中間の位置間の濃度の変化率を求める。すなわち中間の位置Ｃ１１および中間の位置Ｃ１２についての濃度の変化率は、濃度の平均値Ｎ１１から濃度の平均値Ｎ１２を減算した値を、中間の位置Ｃ１１および中間の位置Ｃ１２の間の画素数で除算した値である。同様に中間の位置Ｃ１２および中間の位置Ｃ１３、中間の位置Ｃ１３および中間の位置Ｃ１４、ならびに中間の位置Ｃ１４および中間の位置Ｃ１５について、濃度の変化率を算出する。算出されたすべての隣接する２つの中間の位置間の濃度の変化率を平均することによって、グラデーション領域の濃度の変化率を算出する。
【００８４】
図４、図５、および図６の組合せ、ならびに図４、図５、および図９の組合せは、それぞれ本発明の実施の他の形態である画像情報処理方法の処理工程を示すフローチャートでもある。いずれの画像情報処理方法も、図１に示した画像情報処理装置１の処理部２０によって処理される。すなわち図４および図５に示したフローチャートは、グラデーション領域の抽出工程を示し、図６または図９に示したフローチャートは、グラデーション領域のグラデーション画像データへの変換工程を示す。
【００８５】
このように、ビットマップ画像に含まれる画素の中から、画素が連なる方向に濃度のグラデーションがある画素からなるグラデーション領域を抽出し、抽出したグラデーション領域のビットマップ画像データを、グラデーションを表すグラデーション画像データに変換するので、ビットマップ画像の中のグラデーション部分をベクトル画像に変換することができる。したがって、グラデーション部分の画像のデータ量を少なくすることができる。
【００８６】
画像情報処理装置１に含まれる各手段、たとえば抽出手段、変換手段、算出手段、抽出手段に含まれる濃度差算出手段および判定手段、ならびに算出手段に含まれる極値画素抽出手段、中間位置算出手段、および中間変化率算出手段は、ＣＰＵ２１を各手段として機能させるためにメモリ２２に記憶されているプログラムをＣＰＵ２１が実行することによって実現される。
【００８７】
画像情報処理装置１の処理部２０に含まれるメモリ２２に記憶されているプログラムであって、図４、図５、および図６に示された処理手順を実行するプログラム、ならびに図４、図５、および図９に示された処理手順を実行するプログラムは、本発明の実施のさらに他の形態であるプログラムとして提供することができる。このプログラムは、たとえばコンピュータ読み取り可能な記録媒体に記録されていてもよく、プログラムをその記録媒体からコンピュータに読み取らせ、コンピュータにそのプログラムを実行させてもよい。コンピュータにそのプログラムを実行させることによって、コンピュータを画像情報処理装置１として機能させることができる。
【００８８】
このように、コンピュータを画像情報処理装置１として機能させるためのプログラムとして、提供することができる。
【図面の簡単な説明】
【００８９】
【図１】本発明の実施の一形態である画像情報処理装置１の機能の概略の構成を示す。
【図２】図１に示した画像情報処理装置１が処理するビットマップ画像の例を示す。
【図３】図１に示した画像情報処理装置１が処理するグラデーション領域の抽出処理の概要を示す。
【図４】図１に示したＣＰＵ２１が処理するグラデーション領域の抽出処理手順の前半部分を示すフローチャートである。
【図５】図１に示したＣＰＵ２１が処理するグラデーション領域の抽出処理手順の後半部分を示すフローチャートである。
【図６】図１に示したＣＰＵ２１が処理するグラデーション領域のグラデーション画像データへの第１の変換処理手順を示すフローチャートである。
【図７】図６に示したグラデーション領域の濃度の平均変化率の算出処理を適用した例を示す。
【図８】図７に示した極値画素の求め方の一例を示す。
【図９】図１に示したＣＰＵ２１が処理するグラデーション領域のグラデーション画像データへの第２の変換処理手順を示すフローチャートである。
【図１０】図９に示したグラデーション領域の濃度の変化率の算出処理を適用した例を示す。
【符号の説明】
【００９０】
１  画像情報処理装置
１０  入力部
２０  処理部
２１  ＣＰＵ
２２  メモリ
２３  データ用メモリ
３０  出力部
４０  ビットマップ画像
４１  １ライン分の画素
４２  グラデーション２次元領域
４３  １ライン内のグラデーション領域
【図１】
2007066070.tif 000003
【図２】
2007066070.tif 000004
【図４】
2007066070.tif 000005
【図５】
2007066070.tif 000006
【図６】
2007066070.tif 000007
【図７】
2007066070.tif 000008
【図８】
2007066070.tif 000009
【図９】
2007066070.tif 000010
【図１０】
2007066070.tif 000011
【図３】
2007066070.tif 000012