JP5653141B2 - 画像処理方法、画像処理装置、及び、プログラム - Google Patents

画像処理方法、画像処理装置、及び、プログラム Download PDF

Info

Publication number
JP5653141B2
JP5653141B2 JP2010196092A JP2010196092A JP5653141B2 JP 5653141 B2 JP5653141 B2 JP 5653141B2 JP 2010196092 A JP2010196092 A JP 2010196092A JP 2010196092 A JP2010196092 A JP 2010196092A JP 5653141 B2 JP5653141 B2 JP 5653141B2
Authority
JP
Japan
Prior art keywords
point
anchor
coordinate
points
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010196092A
Other languages
English (en)
Other versions
JP2012053691A5 (ja
JP2012053691A (ja
Inventor
洋 大藤
洋 大藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010196092A priority Critical patent/JP5653141B2/ja
Priority to US13/216,955 priority patent/US8787677B2/en
Publication of JP2012053691A publication Critical patent/JP2012053691A/ja
Publication of JP2012053691A5 publication Critical patent/JP2012053691A5/ja
Application granted granted Critical
Publication of JP5653141B2 publication Critical patent/JP5653141B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

本発明は画像処理技術に関するものであり、特にラスタ画像から特徴点を抽出し、関数近似を行うことでベクタ画像へ変換を行う画像処理装置と画像処理方法およびプログラムに関する。
近年、ディスプレイや印刷機器など解像度の異なる機器の混在化が進み、一つの画像情報を異なる解像度で表示する機会が増えてきている。低解像度機器に適した画像を高解像度機器で表示あるいは印刷しようとすると、そのままでは出力サイズが小さくなるため、画素を補間するなどして画像を本来のサイズに変換する必要がある。このようにサイズが変更された画像は、高解像度機器で出力してもその解像度を生かすことができず画質の劣化が目立ってしまう。このことからラスタ形式で表現された画像を、解像度に依存しないベクタ形式へ変換する、ベクトル化技術が必要となってきている。ベクトル化技術の検討は以前からも行われており、下記に示すようなベクトル化手法が開示されている。
特許文献1では二値画像の輪郭を示す座標点列を、以下の条件を満たす分割点で分割を行う。
角点1:隣接する点列を結ぶベクトルの変化が鋭角となる点。
角点2:連続する点と点との距離がある閾値より大きい場合の両端の点。
変曲点:連続するベクトルの外積の符号が変化する点。
このようにしてできた分割点に対し、近傍の座標点形状から接線方向を定め、それぞれベジェ曲線で近似を行う。
しかしながら上記特許文献1においては、接線方向の決定法は明記されていない。また近似した結果をフィードバックし、精度が低いと判定された場合は分割点の追加を行っており、処理速度の低下や過剰な分割点の抽出を行ってしまう可能性がある。
特許文献2では、入力された座標点列に対し連続する曲線区間でx方向、またはy方向についてベクトルの向きが逆転する点、及び曲率が大きな点を分割点とする。そして分割点間を隣接する節点の方向を接線方向として制御点を決定し、その後隣り合う統合区間の接線方向を合わせるために、決定した制御点を補正する。
しかしながら上記特許文献2においては、接線方向を隣接する座標点の方向と一意に定めており、近似区間にノイズが含まれる場合、近似精度が上がらない可能性がある。
特許文献3では、入力された座標点列を三次曲線で表すことできるようなセグメントに区切り、最小二乗近似を行う。そして最小二乗近似で得られた曲線セグメントの始点と終点における接線を微分により求めてベジェ曲線を生成し、その後セグメント同士をつなぐため決定した接線方向を補正する。
しかしながら上記特許文献3においては、ベジェ近似処理の前処理として、最小二乗近似を必要としており、処理速度の低下を招く可能性がある。
特開2005−310070号公報 特開平04−116690号公報 特開平04−287173号公報 特許第3026592号明細書 特開2006−031245号公報
上述したように、従来のベクトル化方法では、得られたベクタデータの基となるラスタデータに対する近似精度とベクトル化処理の負荷とが互いにトレードオフの関係にあり、高精度のベクトルデータを簡易な処理で得ることは困難であった。
本発明は上記課題を鑑みてなされたものであり、その目的とするところは高精度な曲線近似処理を簡便に行うことである。
上記課題を解決するために、本発明に係る画像処理装置は以下の構成を備える。即ち、画像データにおけるオブジェクトの輪郭を表現する座標点列を、三次ベジェ曲線の単位近似区間に区切るアンカ点を設定するアンカ点設定手段と、
前記アンカ点設定手段で設定された複数のアンカ点の中で着目するアンカ点を第一アンカ点とし、これに隣接するアンカ点を第二アンカ点とし、前記第一アンカ点と前記第二アンカ点の二つのアンカ点を通る第一の直線を座標軸のひとつとし且つ前記第一アンカ点もしくは前記第二アンカ点を原点とした直交座標系において、前記二つのアンカ点で区切られる単位近似区間の座標点列の中で前記第一の直線から最も離れている点が存在する象限にそれぞれ第一のコントロール点候補と第二のコントロール点候補とを設定するコントロール点候補設定手段と、
前記第一のコントロール点候補と前記第一アンカ点を結ぶ線分と、前記第二のコントロール点候補と前記第二アンカ点の線分とが互いに交差することのないように第一のコントロール点と第二のコントロール点を決定するコントロール点決定手段と
を具備し、
前記コントロール点決定手段は、
前記コントロール点候補の位置が前記単位近似区間の形状で決定される制限区間に収まっているか否かを判定する手段を備え、
前記コントロール点候補の位置が前記制限区間に収まっていると判定された場合は前記コントロール点候補を補正した座標点をコントロール点とし、前記コントロール点候補の位置が前記制限区間に収まっていないと判定された場合は前記コントロール点候補をコントロール点とし、
前記コントロール点決定手段はまた、
前記第一の直線に対し前記単位近似区間の前記座標点列の中で最も離れている前記座標点を通る垂線上で、かつ前記アンカ点間を結ぶ第一の直線から前記アンカ点間に含まれる座標点列の中で最も離れている点までの距離の4/3倍となる点を制限点、前記アンカ点と前記制限点までの距離を制限距離とし、
前記アンカ点と対応する前記コントロール点候補との距離が、前記制限距離を超過しているか否かを判定する手段を備え、
制限距離を超過していると判定された場合は前記制限点をコントロール点とし、制限距離を超過していないと判定された場合は前記コントロール点候補をコントロール点とする
あるいは他の観点によれば、本発明は以下の構成を有する。
画像データにおけるオブジェクトの輪郭を表現する座標点列を三次ベジェ曲線の単位近似区間に区切るアンカ点の設定を行うアンカ点設定手段と、
前記アンカ点設定手段で設定された複数のアンカ点における互いに隣接する二つのアンカ点を結ぶ直線を座標軸のひとつとし且つ前記二つのアンカ点の何れかを原点とした直交座標系において、前記二つのアンカ点で区切られる単位近似区間における座標点列の中で前記直線から最も離れている座標点が存在する象限に、前記二つのアンカ点の夫々に対応する計二つのコントロール点候補を設定するコントロール点候補設定手段と、
前記座標点を通る前記直線に対する垂線上で、前記座標点までの距離の4/3倍となる点を制限点、前記二つのアンカ点のうちの一つのアンカ点と前記制限点までの距離を、当該一つのアンカ点に対応する制限距離とし、当該一つのアンカ点と、当該一つのアンカ点に対応するコントロール点候補との距離が、当該一つのアンカ点に対応する前記制限距離を超過しているか否かを判定する手段と、
前記制限距離を超過していると判定された場合は、前記制限点を当該一つのアンカ点に対応するコントロール点と決定し、前記制限距離を超過していないと判定された場合は、当該一つのアンカ点に対応するコントロール点候補を当該一つのアンカ点に対応するコントロール点と決定するコントロール点決定手段とを有する。
本発明によれば、以下が実現可能となる。
・ノイズを含むような区間も破綻なく近似を行うことができる。
・フィードバックを用いず簡便に近似処理を行うことができる。
・分割点の過剰抽出を防止でき、データ量が削減できる。
即ち、従来に比し、高精度な近似処理を簡便に行うことができる。
実施形態における画像処理装置のブロック構成図である。 実施形態1における画像処理装置のメイン処理ブロック構成図である。 実施形態1における画像処理装置のメイン処理を示すフローチャートである。 画像、および画像により生成される座標点列例を示す図である。 ベジェ曲線の概念を示す図である。 着目点と周辺の座標点と中点を示す図である。 実施形態1におけるアンカ点候補情報抽出処理を示すフローチャートである。 実施形態1における着目点のアンカ点候補判定処理を示すフローチャートである。 実施形態1における着目辺のアンカ点候補判定処理を示すフローチャートである。 実施形態1におけるアンカ点候補情報抽出ルールの例を示す図である。 実施形態1におけるアンカ点決定処理を示すフローチャートである。 実施形態1における削減判定処理を示すフローチャートである。 実施形態1におけるコントロール点候補設定処理に関する説明図である。 実施形態1におけるコントロール点候補設定処理を示すフローチャートである。 実施形態1におけるコントロール点決定処理を示すフローチャートである。 実施形態1におけるコントロール点決定処理に関する説明図である。 実施形態2におけるアンカ点決定処理を示すフローチャートである。 実施形態1と実施形態3における座標点追跡の違いを示す図である。 実施形態3におけるアンカ点候補情報抽出処理を示すフローチャートである。 実施形態3における着目点のアンカ点候補判定処理を示すフローチャートである。 実施形態3における屈曲点と変曲点の抽出ルールの例を示す図である。
[実施形態1]
以下、添付の図面を参照して本発明の実施の形態を説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
<画像処理装置の構成例>
本実施形態の画像処理装置の構成例について、図1のブロック図を参照して説明する。画像処理装置は、汎用コンピュータにより実現しても良いし、あるいは多機能複写機(MFP)などの周辺装置でにより実現しても良い。図1において、CPU7は装置全体を制御する処理ユニットである。本実施形態で説明するフローチャートの手順はこのCPU7により当該手順を記述したプログラムを実行することで実現される。ROM6は変更を必要としないプログラムやパラメータを格納する読み出し専用メモリである。RAM5は外部装置等から供給されるプログラムやデータを一時記憶するランダムアクセスメモリである。スキャナ1は、文書等を光電走査して電子的な画像データを得るための周辺デバイスであり、画像入出力I/O3によりスキャナ1と画像処理装置本体とが接続される。画像メモリ2は、スキャナ1で読み取られた画像データ等を保持する画像メモリである。外部記憶ユニット12は固定して設置されたハードディスクやメモリカード、あるいは着脱可能なフレキシブルディスク(FD)やコンパクトディスク(CD)等の光ディスク、磁気や光カード、ICカード、メモリカード等を含む外部記憶装置である。また、I/O13は外部記憶装置12と画像処理装置本体(例えばコンピュータ装置)とを接続するI/Oインタフェースである。I/O15は、ユーザの操作を受け、データを入力するマウス等のポインティングデバイス10やキーボード9等の入力デバイスとのインタフェースである。映像I/O14は画像処理装置の保持するデータや供給されたデータを表示するためのディスプレイモニタ8とのインタフェースである。通信I/F4はインターネット等のネットワーク回線に接続するための通信インタフェースである。システムバス11は、ユニット1〜15の各々を通信可能に接続するシステムバスである。
以下、CPU7上で実行されるプログラムにより本願発明を実現する処理手順を、図2のブロック図と図3のフローチャートを用いて説明する。
<ベクトル化処理手順>
始めに図3のフローチャートにおいて、ステップS100において座標点列入力を行う。ここではまずステップS110で処理を開始すると、処理対象となる画像領域を含むラスタ画像データを入力する。画像入力に関しては、スキャナ1にて読み取られた画像データを画像入出力I/O3を介して画像メモリ2に入力する。また、通信I/F4を介して、装置外部より前記処理対象となる画像領域を含む画像を入力してもよい。あるいは、外部記憶装置12に予め記憶される画像データをI/O 13を介して読み込むものであってもよい。得られた入力画像データは、画像メモリ2上に保持される。以上の処理は図2における画像入力手段110を実現している。
次に読み取った画像データに対してステップS120で座標点列抽出処理を行う。この処理により、画像中のオブジェクトの輪郭が水平および垂直ベクトルにより近似されて表される。ここで扱う画像データの1画素を図4(a)に示す。図4(a)で示すように、画像データにおける1画素は、4つの頂点をもち、各頂点を始点および終点とする垂直ベクトルと水平ベクトルとにより構成される正方形として扱う。なおここでいう頂点とは、後述するベクトルデータにおいてアンカ点のひとつとなる「頂点」とは異なり、単なる角点を指す。1画素を形成す4つのベクトルそれぞれを単位ベクトルと呼ぶことにする。1画素を4つの頂点をもつ正方形として扱い、その集合であるオブジェクト(画像オブジェクト)の輪郭(アウトライン)を抽出すると、水平ベクトルと垂直ベクトルからなるアウトラインベクトルがアウトラインデータとして抽出される。オブジェクトは例えば、背景色とは異なる前景色を持つ画素の集まりである。一般にアウトライン化(あるいはベクトル化)される画像データは二値であることが多くベクトル化処理の対象となるオブジェクトは特定が容易である。しかしもちろん多値画像データであってもベクトル化は可能である。
アウトラインベクトルは、垂直ベクトルと水平ベクトルとが交互に表れ、或るベクトルの終点が次のベクトルの始点となるベクトル列である。そのため、ベクトル化されたアウトラインは、連続するベクトルの始点(あるいは終点)を並べた座標点列で表すことができる。このような座標点列の抽出方法は種々提案されており、例えば特許文献4(特許第3026592号)で開示されている座標点列抽出方法を用いれば、画像一面より効率良くかつ高速に座標点列を抽出することが可能である。例えば、図4(b)で示す画像から抽出された座標点列は、図4(c)に示すような、水平ベクトル、垂直ベクトルが交互に並ぶベクトル列を構成となる座標点列となる。
またこのとき、読み取った画像データが複数色で構成されている場合は、例えば特許文献5に記載されている座標点列追跡法を適用することができる。即ち、図4(d)に示したように、3色以上の色領域の交点が存在した時、該交点で座標点列の分割を行い、図4(e)で示したようにそれぞれを異なる座標点列として抽出する手法である。本実施形態では、座標点列の始点と終点が同一の座標となるような座標点列を閉輪郭、始点と終点が異なった座標となる座標点列を開輪郭と呼称する。以上の処理は図2における座標点列抽出手段120を実現している。また、ステップS110とステップS120は合わせて図2における座標点列入力手段100を構成している。ステップS100で抽出された座標点列は、画素単位で画像の輪郭をたどったものであり、以下の説明では、ステップS100で抽出された、ベクトル化対象となる画像データの輪郭ベクトルの始点あるいは終点を座標点と呼び、輪郭ベクトルに沿った座標点列を単に座標点列と呼ぶ。
次にステップS200、S300では抽出した座標点列に対して関数近似処理を行う。本実施形態では置き換える関数として3次ベジェ曲線を用いる。3次ベジェ曲線は図5に示すとおり、2つのアンカ点a1,a2と2つのコントロール点c1,c2で定義される。これらアンカ点とコントロール点の組が画像の輪郭を近似する近似データとなる。図5において、黒丸はアンカ点a1,a2を、白丸はコントロール点c1,c2をそれぞれ示す。またa1,a2,c1,c2を座標値とすると3次ベジェ曲線は以下の式によって定義される。なおtは媒介変数であり0≦t≦1とする。
r(t)=(1−t)3a1+3t(1−t)2c1+3t2(1−t)c2+t3a2
よって3次ベジェ曲線を用いて関数近似を行うには、ステップS120で得た座標点列を適切に単位近似区間に区切るアンカ点の決定と、その間を構成する座標点列の形状を適切に近似するコントロール点の決定が必要となる。以下から本実施形態における関数近似処理のフローを説明する。なお単位近似区間とは、ひとつの三次ベジェ曲線で近似される区間を指す。なおベクトルデータが本来のオブジェクトを水平および垂直ベクトルで近似したデータであるから、関数近似処理は、オブジェクト本来の輪郭を回復する処理ということもできる。
<アンカ点の設定>
まずステップS200ではアンカ点設定処理を行う。本実施形態におけるアンカ点設定処理は図3のフローチャートに示すようにステップS210のアンカ点候補情報抽出処理と、ステップS220のアンカ点決定処理の二つの処理からなる。以下からアンカ点候補情報抽出処理の説明をする。
<アンカ点候補の決定>
ステップS210のアンカ点候補情報抽出処理では、ステップS120で抽出した座標点列中の着目している点とその近傍の座標点のなすパターンと、予め定められた複数の抽出ルールで予め定めたパターンとを比較する。そしてパターンが合致した場合に、着目点をアンカ点の候補としアンカ点候補情報を出力する。ここでは、図6に示すように現在着目している座標点列の点を着目点Pi(i=1,2,…n)と呼称する。また着目点Piから見て座標点列追跡方向と逆方向の座標点をPi-1、Pi-2…とし、座標点列追跡方向と順方向の座標点をPi+1、Pi+2…と呼称することとする。また、アンカ点候補情報とは、アンカ点の候補として抽出した輪郭点の座標と、アンカ点候補である輪郭点Pi近傍のパターン特性を示す属性とを含む。また図6における中点座標については後述する。アンカ点候補とする点は、それぞれ所定の条件を満たす端点、折点、屈曲点、変曲点、直線保持点、頂点であり、S210では着目点がそれらに該当するか否かが判定される。なお頂点とは、オブジェクトの輪郭の頂点であり、関数の極大値または極小値に相当する。また変曲点とは、オブジェクトの輪郭の曲率の符号が変化する点と言い得る。屈曲点とは、オブジェクトの輪郭が一定角度以上折れ曲がった点である。折点とは、オブジェクトの輪郭が直角に折れ曲がる点である。直線保持点とは、オブジェクトの輪郭において、ラスタデータを単にベクトル化した際の垂直ベクトルまたは水平ベクトルと同方向の直線の始点となる点である。またこの辺を直線保持辺と呼ぶ。なお、ここでいうオブジェクトの輪郭とは、座標点列を垂直ベクトルまたは水平ベクトルで連結した階段状の輪郭、すなわち画像のデジタル化により生じた輪郭ではなく、オブジェクトが本来持つ形状の輪郭を指す。そしてオブジェクトが本来持つ輪郭は、座標点列の配置を参照して決定され、上記各点が特定される。
図7はステップS210で行われるアンカ点候補情報抽出処理のフローである。まずステップS211で、追跡する座標点列の初期点を検索し、該当の座標点を最初の着目点とする。次にステップS212では着目点Pi自身をアンカ点候補とすべきか否かを判定する。図8はその詳細な処理フローである。
まずステップS2121で着目点の端点判定を行う。端点は図10(a)に示したように開輪郭の着目座標点Piに対し、前、もしくは後に座標点が存在しない点Piである。すなわち輪郭ベクトルの始点又は終点のいずれかでしかない点が端点である。着目点Piが端点と判定された場合は、ステップS2122に移り、その着目点Pi自身の座標と、「端点」という属性とを関連付けて保持し、処理を終える。抽出された座標点列は、開輪郭であっても閉輪郭であっても座標点列を構成する座標点の集合として表すことができる。そして座標点列を抽出する処理において、開輪郭については端点はその座標点列の先頭又は末尾に配置されるとすれば、端点であるか否かの判定は例えば以下のように行うことができる。まず、抽出処理において抽出した座標点列に開輪郭であることを示す情報を付加しているのであれば、その情報を参照して開輪郭であると判定した場合、先頭と末尾の座標点が端点であると判定できる。また開輪郭であることが示されていないとすれば、末尾の座標点を始点とし、先頭の座標点を終点とするベクトルが垂直ベクトルでも水平ベクトルでもなければ、それは開輪郭であると判定できる。また、当該ベクトルが垂直ベクトル又は水平ベクトルであっても、その前後のベクトルのいずれか一方又は両方が同じ方向のベクトルであれば、それは開輪郭であると判定できる。開輪郭であればその先頭および末尾の座標点は端点となる。もちろんこの方法は判定方法の一例に過ぎない。
ステップS2121で端点でないと判定された場合は、ステップS2123の折点判定に移る。折点は図10(b)に示したように座標Pi-1、Pi+1を参照点とし、着目点Piと参照点がなす辺Pi-1iと辺Pii+1の長さがいずれも閾値T1以上となる場合の着目点とする。ここで言う辺の長さとは、座標間に内包される画素長(画素数)を指す。このとき閾値T1は、固定的に定めてもよいし、画像の大きさを加味して可変としてもよい。本実施形態ではCを座標点列の外接矩形の外周の長さとして、値T1=2+C/300としている。ただし、閾値T1は2≦T1≦6の範囲で限定をしている。すなわち2+C/300が2に満たない場合にはT1=2とし、2+C/300が6を越える場合にはT1=6とする。折点と判定された場合は、ステップS2122に移り、その着目点Pi自身の座標と、「折点」という属性を互いに関連付けて保持し、処理を終える。
ステップS2123で折点でないと判定された場合は、ステップS2124に移る。ステップS2124では現在着目している点が奇数点目か偶数点目かを判定する。ここで偶数点目であると判定された場合はステップS2127に移り、着目点Pi自身の座標のみを保持し、そのまま処理を終える。奇数点目と判定された場合はステップS2125へ移る。
ステップS2125では屈曲点判定を行う。屈曲点は、図10(f)に示したように座標Pi-2、Pi+2を参照点とし、ベクトルPi-2iと、ベクトルPii+2とがなす角度θを算出し、角度θが閾値T2以上となる場合の着目点とする。本実施形態では閾値T2を25°としている。屈曲点と判定された場合は、ステップS2122に移り、その着目点Pi自身の座標と、「屈曲点」という属性を保持し、処理を終える。
ステップS2125で屈曲点ではないと判定された場合は、ステップS2126の変曲点判定に移る。変曲点は図10(g)に示したように座標Pi-4、Pi-2、Pi+2を参照点とする。そして線分Pi-4i-2の傾きαと、線分Pi-2iの傾きβと、線分Pii+2の傾きγを算出し、傾きの変化量となるβ‐α、γ‐βを算出する。そして、この傾きの変化量同士の正負が入れ替わる点、すなわちベクトルの傾きの変化量の符号が反転する座標点を変曲点とする。ただし、傾きの変化量β‐αの絶対値が閾値T3以下となる場合は、β‐αの絶対値が閾値T3以上の値を取るまで、傾きαをとる線分をPi-6i-4、Pi-8i-6…と遡らせて判定を行う。本実施形態では閾値T3を1.0×10-7としている。変曲点と判定された場合は、ステップS2122に移り、その着目点Pi自身の座標と、「変曲点」という属性を関連付けて保持し、処理を終える。
ステップS2126で変曲点ではないと判定された場合は、ステップS2127に移り、着目点Pi自身の座標のみを保持し、そのまま処理を終える。
ここまででステップS212の着目点Pi自身がアンカ点候補であるかの判定(アンカ点候補判定)は終えた。次に着目辺Pii+1上にアンカ点候補を取るべきか否かを判定するステップS213に移る。ここで、着目辺とは着目点Piと、その次に存在する座標点Pi+1を結ぶ辺を指す。ここでアンカ点候補が抽出された場合は、その座標は着目辺上となるためステップS120で抽出した座標点列Pii+1の間に書き加える。図9はその詳細な処理フローである。
まずステップS2131で着目辺Pii+1が直線保持辺か否かを判定する。直線保持辺の判定は図10(c)、(d)に示したように、座標Pi-2、Pi-1、Pi+1または座標Pi+1、Pi+2、Pi+3を参照点とする。そして次にベクトルPi-2i-1、Pii+1の長さ|Pi-2i-1|、|Pii+1|、またはベクトルPii+1、Pi+2i+3の長さ|Pii+1|、|Pi+2i+3|をそれぞれ算出する。そして|Pii+1|が|Pi-2i-1|のT4倍以上、または|Pii+1|が|Pi+2i+3|のT4倍以上となり、かつ双方のベクトル方向が同一である辺を直線保持辺であると判定する。着目辺が直線保持辺であると判定された場合、ステップS2132に移り、着目辺Pii+1上において、座標Pi、Pi+1からそれぞれ距離|Pii+1|/T5だけ離れた点を2点決定し、その属性を「直線保持点」として決定した直線保持点に関連付けて保持し、処理を終える。このとき係数T4、T5は、一意に定めてもよいし、画像の大きさを加味して可変としてもよい。本実施形態では係数T4を10、係数T5を5としている。
ステップS2131で着目辺Pii+1が直線保持辺でないと判定された場合は、ステップS2133の、頂点を含む辺判定に移る。頂点を含む辺は、図10(e)に示したように座標Pi-1、Pi+1、Pi+2を参照点として、ベクトルPi-1iと、ベクトルPi+1i+2が逆方向となる辺である。着目辺Pii+1が頂点を含む辺であると判定された場合、ステップS2134に移り、線分Pii+1の中点座標と、当該座標に関連付けて属性「頂点」を保持し、処理を終える。ステップS2133で着目辺Pii+1が頂点を含む辺でないと判定された場合は、そのまま処理を終える。
ここまででステップS213の着目辺Pii+1のアンカ点候補判定は終えた。次にステップS214で、現在の着目点が、追跡している座標点列の終点すなわち最後の点であるか否かを判定する。終点ではないと判定された場合は、ステップS215で着目点を座標点列上における次の点に移し、再度ステップS212へ移る。終点であると判定された時はアンカ点候補情報抽出処理を終える。
<アンカ点の決定>
次に抽出したアンカ点候補情報に基づいてステップS220でアンカ点決定処理を行う。アンカ点候補は輪郭点に関連付けて属性が保存されているため、その属性に基づいてアンカ点候補であることを判定できる。ここで、ステップS210において抽出された座標点列をQj(j=1,2,…m)と呼称することとする。そして着目点Qjに対し、その前後の座標点Qj-2、Qj-1、Qj+1、Qj+2を参照点とする。そしてその参照点のうちにアンカ点候補があった場合、各アンカ点候補の属性に応じて着目アンカ点候補を削除するか否かを決定する。またここでいう削除とは、ステップS210でアンカ点候補として抽出した座標に関連付けて保存された属性を削除し、アンカ点候補ではない座標点の状態に戻すことを指す。ただし、「頂点」と「直線保持点」においては、辺上に新たに書き加えた点であるので、削除する場合は元のS120で抽出した座標点列の状態に戻すために、属性だけでなく、その座標も削除することとする。
図11はステップS220で行われるアンカ点決定処理の詳細なフローである。まずステップS221で、追跡する座標点列の初期点を検索し、該当の座標点を着目点Qjとして、ステップS222に移る。
ステップS222では、着目点Qjがアンカ点候補として抽出された点か否かを判定する。着目点Qjがアンカ点候補として抽出された点でなかった場合は、ステップS226へ移る。ステップS226の詳細については後に述べる。着目点Qjがアンカ点候補として抽出された点であった時は、ステップS223に移る。ただし、本実施形態では端点をアンカ点候補から削除しないため、S222では着目点が端点であると判定されたなら、S226に分岐する。
ステップS223では着目しているアンカ点候補Qjに対し、前後2点以内(Qj-2、Qj-1、Qj+1、Qj+2)を参照点とし、参照点内にアンカ点候補が含まれているか否かを判定する。参照点内にアンカ点候補が存在しなかった場合は、ステップS226へ移る。参照点内にアンカ点候補が存在した場合は、ステップS224に移る。
ステップS224ではアンカ点候補同士の優先順位の比較を行う。ここで、アンカ点候補の優先順位は、アンカ点候補情報における属性に依存する。本実施形態ではアンカ点候補の優先順位をあらかじめ高いものから「折点」、「直線保持点」、「頂点」、「屈曲点」、「変曲点」とする。また「端点」は、近似処理を終えた後各座標点列をつなぎ合わせる過程で必要な点であるため、例外として削減対象とはしない。そこで「端点」の優先順位を「折点」より高い最高順位とする。着目アンカ点候補Qjの優先順位が、参照点内に存在するアンカ点候補の優先順位よりも大きかった場合、ステップS226へ移る。着目アンカ点候補Qjの優先順位が、参照点内に存在するアンカ点候補の優先順位以下であった場合はステップS225に移る。
ステップS225ではアンカ点候補の削減処理を行う。図12は削減処理の詳細なフローである。まずステップS2251では、着目アンカ点候補Qjの属性が「変曲点」か否かを判定する。
着目アンカ点候補Qjの属性が「変曲点」であった場合、ステップS2252に移り、着目アンカ点候補Qjの属性を削除し、そのまま処理を終える。着目アンカ点候補Qjの属性が「変曲点」でなかった場合、ステップS2253に移る。
ステップS2253では、着目アンカ点候補Qjの属性が「屈曲点」か否かを判定する。着目アンカ点候補Qjの属性が「屈曲点」であった場合、ステップS2254に移り、参照点内のアンカ点候補が隣接する参照点Qj-1、Qj+1か否かを判定する。そして隣接する参照点Qj-1、Qj+1であった場合はステップS2255に移り、着目アンカ点候補Qjの属性を削除し、そのまま処理を終える。隣接しない座標点であった場合はそのまま処理を終える。着目アンカ点候補Qjの属性が「屈曲点」でなかった場合、ステップS2256に移る。
ステップS2256では、着目アンカ点候補Qjの属性が「頂点」か否かを判定する。
着目アンカ点候補Qjの属性が「頂点」であった場合、ステップS2257に移り、優先度の高いアンカ点候補が隣接する参照点Qj-1、Qj+1双方に存在するか否かを判定する。すなわち高優先度のアンカ点候補に挟まれているか判定する。そして隣接する参照点Qj-1、Qj+1双方にアンカ点候補が存在した場合はステップS2258に移り、着目アンカ点候補Qjの属性と座標を削除し、そのまま処理を終える。隣接する参照点Qj-1、Qj+1双方にアンカ点候補が存在しない場合はそのまま処理を終える。着目アンカ点候補Qjの属性が「頂点」でなかった場合、ステップS3259に移る。
ステップS2259では、着目アンカ点候補Qjの属性が「直線保持点」か否かを判定する。着目アンカ点候補Qjの属性が「直線保持点」であった場合、必ず参照点Qj+1は同じ「直線保持点」となる。よって次にステップS22510に移り、優先度の高いアンカ点候補が参照点Qj-1、Qj+2双方に存在するか否かを判定する。そして参照点Qj-1、Qj+2双方に優先度の高いアンカ点候補が存在した場合はステップS22511に移り、参照点Qj+1に存在するアンカ点候補と、着目アンカ点候補Qjの属性と座標を削除し、そのまま処理を終える。参照点Qj-1、Qj+2双方にアンカ点候補が存在しない場合はそのまま処理を終える。着目アンカ点候補Qjの属性が「直線保持点」でなかった場合、処理を終える。
ここまでで着目アンカ点候補を削減するか否かの判定を終えた。次にステップS226で、現在の着目点が追跡している座標点列の終点であるか否かを判定する。終点ではないと判定された場合は、ステップS227で着目点を座標点列上における次の点に移し、再度ステップS222へ移る。終点であると判定された時はアンカ点決定処理を終える。
この時点で残ったアンカ点候補が選ばれたアンカ点となる。こうして決定されたアンカ点により区切られる単位近似区間では、当該アンカ点を通る直線(これを第一の直線とも呼ぶ。)を座標軸とし、いずれかのアンカ点を原点とする直交座標系において、座標点列で近似される輪郭の極大値もしくは極小値(すなわちピーク)が一つ以下となる。なおここで座標点列で近似される輪郭とは、座標点列の配置から特定されるオブジェクト本来の輪郭である。すなわち、オブジェクト本来の輪郭は垂直ベクトルと水平ベクトルとで近似されているため、単位ベクトル(1画素長に相当するベクトル)で形成される凹凸は、近似のための誤差であって極小値又は極大値とは見なさない。
以上、ステップS210のアンカ点候補情報抽出処理と、ステップS220のアンカ点決定処理は図2におけるアンカ点設定手段200を実現している。
<コントロール点の設定>
次にステップS300ではコントロール点設定処理を行う。本実施形態におけるコントロール点設定処理は、ステップS310のコントロール点候補設定処理と、ステップS320のコントロール点決定処理で構成される。そしてコントロール点候補設定処理はステップS311の最大角接線決定処理と、ステップS312の交点算出処理からなる。またコントロール点決定処理ステップS321の制限距離超過判定処理、ステップS322のコントロール点候補補正処理からなる。
まずステップS310のコントロール点候補設定処理について以下から説明する。図13はステップS200で得たアンカ点で区切られた一つの単位近似区間におけるコントロール点候補設定処理の説明図である。ここでは便宜的に座標点列を単位近似区間に区切る二つのアンカ点をa1,a2とする。コントロール点候補設定処理ではステップS200で得たアンカ点で区切られた単位近似区間を曲線で近似するためのコントロール点を仮決定する。
ここで、三次ベジェ曲線による近似の説明をする。まずこれから求めるべきコントロール点間を結ぶ直線Lcを、アンカ点間を結ぶ直線Laと平行であると仮定する。そしてアンカ点で区切られた単位近似区間の座標点列の中で、線分Laから最も離れた点Pfとし、その距離Dfとする。このとき近似後の三次ベジェ曲線における、直線Laと垂直方向の最大の距離を距離Dfと同値とすると、直線Laから直線Lcの距離DcはDc=4/3Dfの関係が成り立つ。これにより直線Lcは一意に定まる。
次に各アンカ点に対応する接線t1、t2を決定し、接線t1、t2と直線Lcとの交点c1、c2をそれぞれ算出することで、各アンカ点に対応するコントロール点候補c1、c2(それぞれ第一のコントロール点候補及び第二のコントロール点候補とも呼ぶ)を得ることができる。以下から各処理の内容を詳細に述べる。
図14は本実施形態におけるコントロール点候補設定処理の詳細なフローである。まずステップS311の最大角接線決定処理の説明をする。
ここで、アンカ点a1,a2で単位近似区間の座標点数をnとし、座標点列をpk(k=1,2…n)と定義する。ステップS3111においては、座標点列pkにおいて最も遠い点Pfを抽出する。
次にステップS3112においては、図13に示したようにアンカ点間を結ぶ直線Laをu軸とし、アンカ点a1を原点としたu軸の垂直方向をv軸とした直交座標系を定義する。そしてこの直交座標系において、最も遠い点Pfと同象限であり、かつ直線Laと直線a1pkのなす角度θ1が最大となる点を基準点s1、直線Laと直線a2pkのなす角度θ2が最大となる点を基準点s2として決定する。このとき、平滑性のためにアンカ点直近の一点は基準点としない。すなわち、座標点p1と、pnは基準点の抽出を行わない。また今回図示していないが、単位近似区間に含まれる座標点数nが、最も遠い点Pfや、基準点s1、s2を求めるために必要な点数に満たない場合は、当該アンカ点の間は直線区間としてコントロール点を付加せずそのままステップS400のデータ出力処理に移る例外処理がある。
次にステップS3113においては、アンカ点a1とステップS3112で決定した基準点s1を結ぶ直線を接線t1、アンカ点a2とステップS3112で決定した基準点s2を結ぶ直線を接線t2として算出し、最大角接線決定処理を終える。
ここまでで各アンカ点における接線の決定ができた。以上の処理は図2における最大角接線決定手段311を実現している。次にステップS312で交点算出処理を行う。
ここではまず、ステップS3121において、単位近似区間の座標点列の中で、線分Laから最も離れた点Pfを決定し、その距離Dfを算出し、ステップS3122に移る。ステップS3122では直線Lcはアンカ点a1、a2を結ぶ直線Laと平行であり、かつ直線Laからの距離が4/3Dfとなる直線を直線Lcとして算出し、ステップS3123に移る。ステップS3123では、ステップS200で決定したアンカ点a1、a2における接線t1、t2と、線分Lcとの交点を算出し、それぞれコントロール点候補c1、c2として定め、交点算出処理を終える。決定したコントロール点候補の座標は、コントロール点の決定に用いたアンカ点に関連付けて記憶することで、当該アンカ点に係るベジェ曲線を定義できる。以上は一対のアンカ点について行われる処理であり、これを輪郭上のアンカ点の対について実行する。
ここまででコントロール点候補の決定ができた。以上の処理は図2における交点算出手段312を実現しており、またステップS311とステップS312を合わせてコントロール点候補設定手段310を実現している。
次にステップS320のコントロール点決定処理を行う。図15はコントロール点決定処理の詳細なフローである。ここではステップS321において、コントロール点候補の位置が制限距離で定義される区間内であるか否かを判定する。そして制限距離で定義される区間内であった場合はそのままコントロール点候補をコントロール点として決定し、制限距離で定義される区間外であった場合はステップS322においてコントロール点候補の位置を補正した点をコントロール点として決定する。以下からその詳細について述べる。
まずステップS321で制限距離超過判定処理を行う。ここでは、ステップS310で求めたコントロール点候補の位置が、制限距離で定義される区間内に収まっているか否かを判定する。
ステップS3211において、単位近似区間に区切る二つのアンカ点をa1、a2とし、それに対応するコントロール点候補をそれぞれc1、c2としたとき、アンカ点間を結ぶ直線Laに対する垂線であり、かつ直線Laから最も遠い点Pfを通る直線を算出する。そして求めた直線と、直線Lcとの交点を算出し、この点を制限点Climとして、ステップS3212に移る。すなわち制限点Climは、直線Laに対する垂線上にあり、かつ、直線Lc上にある。
ステップS3212ではまず図16(a)に示すようにステップS3211で算出した制限点Climからアンカ点a1までの距離を制限距離|Clim−a1|とし、コントロール点候補c1からアンカ点a1までの距離を|c1−a1|とする。このとき制限距離|Clim−a1|を、アンカ点a1とコントロール点候補c1との距離|c1−a1|の上限とし、制限距離の条件|Clim−a1|>|c1−a1|を満たすか否かを判定する。また同様に、|Clim−a2|をコントロール点候補c2の制限距離とし、|Clim−a2|>|c2−a2|という制限距離の条件を満たすか否かを判定する。上記のステップS3211とステップS3212を合わせて図2における制限距離超過判定手段321を実現している。
そしてステップS3212における制限距離の条件を満たすコントロール点候補は、ステップS3221には入らずそのままコントロール点候補をコントロール点とし、処理を終える。図16(a)のように制限距離の条件を満たさなかったコントロール点候補は、ステップ322のコントロール点候補補正処理におけるステップS3221に移る。
ステップS3221では制限距離を満たさなかったコントロール点候補の位置を図16(b)に示すように制限点Climの位置に補正し、この点をコントロール点として決定し、処理を終える。すなわち、制限距離を満たさないコントロール点候補は、制限点に移動される。この処理は図2におけるコントロール点候補補正手段322を実現している。また、ステップS321とステップS322は、合わせてコントロール点決定手段320を実現している。以上の処理を、すべてのアンカ点およびコントロール点にについて施し、制限距離の条件を満足させる。
そして上記ステップS310のコントロール点候補設定処理と、ステップS320のコントロール点決定処理は合わせて図2におけるコントロール点設定手段300を実現している。
以上のコントロール点決定処理により、図16(c)に示すようなアンカ点a1,a2の位置に対しコントロール点c1,c2が交差した状態で決定された場合でも図16(d)のように補正することができる。すなわちコントロール点の交差による近似曲線の尖りを防止することができる。
以上のようにして処理対象画像全体についてアンカ点およびコントロール点を決定したなら、最後にステップS400では生成したデータを、同一の座標を有する「端点」同士を結合し、ベクトルデータとして出力する。結合するとは、例えば結合を示す情報を端点に関連付けて記憶しても良いし、座標点列の先頭と末尾とが結合すべき端点であれば、出力時の処理の仕方を決めておけば、特に処理をする必要はない。また出力するとは、生成したベクトルデータをファイル記憶部に記憶したり、あるいはディスプレイやプリンタ等の出力装置に送信することを含む。この処理は図2におけるデータ出力手段400を実現している。
以上の構成および手順により本実施形態によれば、アンカ点の数を少なくした上で基となるラスタデータに対する高い近似精度を維持しつつ、軽い処理でベクタデータを生成することができる。
[実施形態2]
実施形態1では、アンカ点決定処理において、着目アンカ点候補の前後の座標点二点以内に他のアンカ点候補が存在した場合に削減処理を行った。しかし、アンカ点候補間に含まれる座標点数が3点以上離れている場合は、例え冗長なアンカ点候補が存在した場合でも削減することはできない。本実施形態によれば、二次曲線で表現可能な範囲で単位近似区間に区切れていれば破綻なく近似処理を行うことが可能なので、さらなるアンカ点候補の削減を行ってもよい。
そこで本実施形態では、隣接するアンカ点候補の優先順位を比較し、その上で削減処理を行う。また、アンカ点候補同士を比較して削減を行った場合、削減した結果をアンカ点候補情報に上書きし、上書きした結果における隣接アンカ点候補を再度判定していくこととしている。このことにより、より広い範囲での削減処理が可能となり、データ量の削減に寄与することができる。
図17は本実施形態の処理フローである。この手順は、実施形態1における図3のS220として、図11に代えて実行される本実施形態の着目点判定処理である。
まず、座標点列を追跡し、ステップS510で初めのアンカ点候補を第一アンカ点候補として抽出する。次にステップS520で第一アンカ点候補からさらに座標点列を追跡し、次に検出されたアンカ点候補を第二アンカ点候補とする。ここで図示していないが、もし第二アンカ点候補がない場合、すなわち次に第二アンカ点候補となるはずのアンカ点候補が、座標点列の末尾の端点であるか、または全アンカ点候補について処理を終えており新たな候補がないなら、図17の処理は終了する。
次にステップS530で第一アンカ点候補と第二アンカ点候補の優先順位の比較を行う。第二アンカ点候補の優先順位が低かった場合はステップS540に移る。
ステップS540では第一アンカ点候補と第二アンカ点候補で区切られた単位近似区間の座標点列の形状を判定する。ここで判定する形状は座標点列の角度でもよいし、長さでもよいし、座標点数でもよいし、削減したアンカ点候補の数でもよい。ここで削減を行うと判定された場合は、ステップS560に移り、第二アンカ点候補を削減し、ステップS520に戻る。削減を行わないと判定された場合、ステップS580に移る。ステップS580については後に述べる。また、S540とS560の一連の処理を、実施形態1の図12ので置換しても良い。ただしその場合には、図12の「着目アンカ点候補Qi」は、「第二アンカ点候補」と読み替えるべきである。そしてS2252,S2255,S2258,S22511のいずれかの処理が行われたなら削減が行われたとしてS520に分岐し、そうでなければS580に分岐する。
ステップS530で第一アンカ点候補の優先順位が低かった場合はステップS550に移る。ステップS550ではステップS540と同様に第一アンカ点候補と第二アンカ点候補で区切られた単位近似区間の座標点列の形状を判定する。ここで判定する形状は座標点列の角度でもよいし、長さでもよいし、座標点数でもよいし、削減したアンカ点候補の数でもよい。ここで削減を行うと判定された場合は、ステップS570に移り、第一アンカ点候補を削減し、ステップS580に移る。また削減を行わないと判定された場合、そのままステップS580に移る。ステップS580では現在第二アンカ点候補として着目している点を第一アンカ点候補とし、ステップS520へ戻る。また、S550とS570の一連の処理を、実施形態1の図12ので置換しても良い。ただしその場合には、図12の「着目アンカ点候補Qi」は、「第一アンカ点候補」と読み替えるべきである。そしてS2252,S2255,S2258,S22511のいずれかの処理が行われたなら削減が行われたとしてS580に分岐し、そうでなければS520に分岐する。
以上の処理を、処理した座標点数が開輪郭、閉輪郭における総座標点数となるまで行う。ただし、図17をアンカ点決定処理として行う場合には、選択されているアンカ点候補すべてについて行う。この処理により座標点列の追跡方向に従って、次々にアンカ点候補を比較していくことができ、アンカ点候補間の座標点数に制限されることのないアンカ点決定処理を実行することができる。
[実施形態3]
実施形態1では、アンカ点候補抽出処理において、ステップS120で抽出した座標点列に対して追跡を行い、アンカ点候補情報を抽出した。このとき、「変曲点」や「屈曲点」のように角度の変化を用いて抽出を行う属性は、座標点列の角度を算出する必要があることから、図18(a)に示したように、一点おきに判定を行うようにしている。
しかしこのとき、同じ座標点列でも図18(a)の座標点列1を判定する場合と図18(a)の座標点列2を判定する場合では異なる抽出結果が得られてしまい、2つの場合で最終的な近似結果が一致しないことがある。
これに対応するため、実施形態1におけるアンカ点候補情報抽出処理で、角度変化を用いてアンカ点候補情報の抽出を行う「変曲点」と「屈曲点」の判定を、図18(b)に示すように各座標点列間を結ぶ辺の中点を用いて行ってもよい。即ち、図7の着目点判定処理S212を、図8に代えて、図19で示すフローチャートに沿って処理し、着目辺判定処理S213を、図9に代えて図20に従って実行するように構成してもよい。尚、アンカ点候補情報抽出処理以外の処理は実施形態1と同様の処理を行えばよい。
ここでは、図6に示すように現在着目している座標点列の点を着目点Pi(i=1,2,…n)と呼称する。そして着目点Piから見て座標点列追跡方向と逆方向の座標点をPi-1、Pi-2…とし、座標点列追跡方向と順方向の座標点をPi+1、Pi+2…と呼称する。また座標点Piと座標点Pi+1間を結ぶ辺の中点をC(l=1,2,…n−1)と呼称する。そして着目点Piから見て座標点列追跡方向と逆方向の座標点同士がなす中点をCl−1、Cl−2…とし、座標点列追跡方向と順方向座標点同士がなす中点をCl+1、Cl+2…と呼称することとする。以下、本実施形態におけるアンカ点候補情報抽出処理の詳細を図19に示すフローチャートを用いて述べる。
図19のステップS621で着目点の端点判定を行う。この処理は実施形態1における図8のステップS2121と同様のものでよい。端点と判定された場合は、ステップS622に移り、その着目点Pi自身の座標と、「端点」という属性を保持し、処理を終える。
ステップS621で端点でないと判定された場合は、ステップS623の折点判定に移る。この処理は実施形態1における図8のステップS2123と同様のものでよい。折点と判定された場合は、ステップS622に移り、その着目点Pi自身の座標と、「折点」という属性を保持し、処理を終える。
ステップS623で折点でないと判定された場合は、ステップS624に移り、着目点Pi自身の座標のみを保持し、そのまま処理を終える。
ここまででステップS212の着目点Pi自身のアンカ点候補判定は終えた。次に着目辺Pii+1上にアンカ点候補を取るべきか否かを判定するステップS213に移る。図20は本実施形態におけるその詳細な処理フローである。
まずステップS631で着目辺Pii+1が直線保持辺か否かを判定する。この処理は実施形態1における図9のステップS2131と同様のものでよい。着目辺Pii+1が直線保持辺であると判定された場合、ステップS632に移り、実施形態1と同様の座標を2点取り、その属性を「直線保持点」として保持し、処理を終える。
ステップS631で着目辺Pii+1が直線保持辺でないと判定された場合は、ステップS633の頂点を含む辺判定に移る。この処理は実施形態1における図9のステップS2133と同様のものでよい。着目辺Pii+1が頂点を含む辺であると判定された場合、ステップS634に移り、線分Pii+1の中点座標と、属性「頂点」を保持し、処理を終える。
ステップS633で着目辺Pii+1が頂点を含む辺でないと判定された場合は、ステップS635の屈曲点を含む辺判定に移る。ここでは着目辺Pii+1の中点座標Cと、辺Pi-1iの中点座標Cl−1と、辺Pii+1の中点座標Cl+1を参照点とする。このとき屈曲点を含む辺は図21(a)に示したように線分Cl−1と、線分Cl+1とがなす角度θを算出し、角度θが閾値T6以上となる辺とする。本実施形態では閾値T6を25°としている。着目辺Pii+1が屈曲点を含む辺であると判定された場合、ステップS634に移り、線分Pii+1の中点座標Cと、属性「屈曲点」を保持し、処理を終える。
ステップS635で着目辺Pii+1が屈曲点を含む辺でないと判定された場合は、ステップS636の変曲点を含む辺判定に移る。ここでは着目辺Pii+1の中点座標Cと、辺Pi-1iの中点座標Cl−1と、辺Pi-2i-1の中点座標Cl−2と、辺Pii+1の中点座標Cl+1を参照点とする。このとき変曲点を含む辺は図21(b)に示したように、線分Cl−2l−1の傾きαと、線分Cl−1の傾きβと、線分Cl+1の傾きγを算出し、傾きの変化量となるβ‐α、γ‐βを算出し、この傾きの変化量同士の正負が入れ替わる辺とする。ただし、傾きの変化量β‐αの絶対値が閾値T7以下となる場合は、β‐αの絶対値が閾値以上(すなわちT7以上)の値を取るまで傾きαをとる線分をCl−3l−2、Cl−4l−3…と遡らせて判定を行う。本実施形態では閾値T7を1.0×10-7としている。着目辺Pii+1が変曲点を含む辺であると判定された場合、ステップS634に移り、線分Pii+1の中点座標Cと、属性「変曲点」を保持し、処理を終える。
ステップS636で着目辺Pii+1が変曲点を含む辺でないと判定された場合は、そのまま処理を終える。
ここまででステップS213の着目辺Pii+1のアンカ点候補判定は終えた。次にステップS214で、現在の着目点が追跡している座標点列の終点であるか否かを判定する。終点ではないと判定された場合は、ステップS215で着目点を座標点列上における次の点に移し、再度ステップS212へ移る。終点であると判定された時はアンカ点候補情報抽出処理を終える。
上記の処理をアンカ点候補情報抽出処理として実施することで、角度の変化を用いて抽出する変曲点や屈曲点を、着目点の偶数点目か奇数点目かという判定を必要とせず、入力した座標点列に一対一で対応したアンカ点抽出結果を得ることができる。
[実施形態4]
実施形態3ではアンカ点候補情報抽出処理において入力された座標点列がなす辺の中点を抽出対象としていた。それに対して、コントロール点候補設定処理においても同様にしてよい。すなわち、最大角接線決定処理における、最遠点Pfを抽出する際に、入力された座標点列がなす辺の中点をその抽出対象としても同様の効果が得られる。
[実施形態5]
実施形態1では、アンカ点候補情報抽出処理において、アンカ点決定処理における優先順位の高いものから順番に抽出を行っており、抽出したアンカ点候補は一意に決定された属性を保持していた。それに対して、複数の属性の性質を持つ点の場合、重複して属性を保持してもよい。例えば、「屈曲点」と「変曲点」の属性を持つ場合は優先順位を上げ、接線方向は「変曲点」の場合と同様とする、などその重複属性の組み合わせによって優先順位や接線方向の取り方を変えることで、さらに精度の高いベクトル化を実現することができる。
[実施形態6]
実施形態1では、最大角接線決定処理の際に、基準点の抽出範囲をアンカ点間で区切られた単位近似区間内の座標点列においてアンカ点直近の一点を除く全ての点としていた。それに対して、アンカ点の属性を用いて抽出範囲を変えてもよい。例えば、平滑性のために属性が変曲点であるアンカ点の場合は対応する基準点の抽出範囲を直近の2点を除く、直線保持点と頂点は直近の一点も含む、等である。
[実施形態7]
実施形態1では、最大角接線決定処理の際にアンカ点間に含まれる座標点数が、最大角接線を求めるために必要な点数に満たない場合のみ、コントロール点を付加せずアンカ点のみを出力し直線区間とした。それに対して、他に直線区間とみなせる区間を含めてもよい。例えばアンカ点a1、a2間を結ぶ線分a1a2の長さを距離Dfで除算した値が閾値T8以下である場合、該当区間は直線部であるとしコントロール点は出力しないこととしてもよい。すなわち、アンカ点間を線分で結んだものと想定し、その線分と当該アンカ点間に分布する座標点との最大距離が、当該線分の長さに対して一定の割合T8以下であれば、当該アンカ点は直線区間を構成するものと判定し、コントロール点を付加しない。本実施形態ではこの閾値T8を30としている。
[実施形態8]
実施形態1ではコントロール点の位置の制限区間超過を、ステップS321の制限距離超過判定処理において線分の長さを用いて判定したが、その他の手段でコントロール点の位置を判定してもよい。
例えば、まず実施形態1と同様に制限点Climを設ける。次にアンカ点a1とアンカ点a2を結ぶ線分と、アンカ点a1と制限点Climを結ぶ線分との角度Clima1a2をコントロール点候補c1の制限角度とし、同様にコントロール点候補c2の制限角度を角度Clima2a1とする。そしてコントロール点候補c1がなす角度c1a1a2とコントロール点候補c2がなす角度c2a2a1がそれぞれ制限角度を下回っていないかを判定する。そして下回っている場合にはコントロール点c1,c2を制限点Climに移動することでも同様の効果が見込める。
[実施形態9]
実施形態1では、コントロール点の位置が制限区間内であるか否かを判定し、その結果に応じてコントロール点候補補正を行った。本実施形態ではアンカ点a1とコントロール点c1を結ぶ線分と、アンカ点a2とコントロール点c2を結ぶ線分が交差しているか否かを判定する交差判定処理を行い、交差している場合のみコントロール点候補の補正を行う。
このときの交差判定処理方法の例を説明する。例えばアンカ点a1とアンカ点a2を結ぶベクトルa1a2と、コントロール点候補c1とコントロール点候補c2を結ぶベクトルc1c2を用い、ベクトルa1a2の向きとベクトルc1c2の向きが同一であるか否かで判定する方法が挙げられる。また他には、アンカ点a1とコントロール点候補c1を結ぶ線分a1c1の長さ|a1c1|が、アンカ点a1とコントロール点候補c2を結ぶ線分a1c2の長さ|a1c2|よりも小さいか否かで判定する方法が挙げられる。
上記例に挙げたように、アンカ点a1とコントロール点c1を結ぶ線分と、アンカ点a2とコントロール点c2を結ぶ線分が交差の判定は、アンカ点a1,a2とコントロール点c1,c2の4点の相対的位置関係を判定することができれば、その方法は問わない。これらは公知の図形演算方法で容易に実装が可能である。
ただし実施形態1によれば交差している場合以外の、コントロール点が偏った位置に決定された場合においても補正することを可能とする、特有の効果を持つが、本実施形態においてはその効果を持たない。
[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
上記実施形態では、プログラムはRAM5やROM6、またはCD−ROM等のコンピュータ可読記憶媒体に格納されていて、それをコンピュータにセットし、システムにコピーもしくはインストールすることで実行可能になる。

Claims (13)

  1. 画像データにおけるオブジェクトの輪郭を表現する座標点列を、三次ベジェ曲線の単位近似区間に区切るアンカ点を設定するアンカ点設定手段と、
    前記アンカ点設定手段で設定された複数のアンカ点の中で着目するアンカ点を第一アンカ点とし、これに隣接するアンカ点を第二アンカ点とし、前記第一アンカ点と前記第二アンカ点の二つのアンカ点を通る第一の直線を座標軸のひとつとし且つ前記第一アンカ点もしくは前記第二アンカ点を原点とした直交座標系において、前記二つのアンカ点で区切られる単位近似区間の座標点列の中で前記第一の直線から最も離れている点が存在する象限にそれぞれ第一のコントロール点候補と第二のコントロール点候補とを設定するコントロール点候補設定手段と、
    前記第一のコントロール点候補と前記第一アンカ点を結ぶ線分と、前記第二のコントロール点候補と前記第二アンカ点の線分とが互いに交差することのないように第一のコントロール点と第二のコントロール点を決定するコントロール点決定手段と
    を具備し、
    前記コントロール点決定手段は、
    前記コントロール点候補の位置が前記単位近似区間の形状で決定される制限区間に収まっているか否かを判定する手段を備え、
    前記コントロール点候補の位置が前記制限区間に収まっていると判定された場合は前記コントロール点候補を補正した座標点をコントロール点とし、前記コントロール点候補の位置が前記制限区間に収まっていないと判定された場合は前記コントロール点候補をコントロール点とし、
    前記コントロール点決定手段はまた、
    前記第一の直線に対し前記単位近似区間の前記座標点列の中で最も離れている前記座標点を通る垂線上で、かつ前記アンカ点間を結ぶ第一の直線から前記アンカ点間に含まれる座標点列の中で最も離れている点までの距離の4/3倍となる点を制限点、前記アンカ点と前記制限点までの距離を制限距離とし、
    前記アンカ点と対応する前記コントロール点候補との距離が、前記制限距離を超過しているか否かを判定する手段を備え、
    制限距離を超過していると判定された場合は前記制限点をコントロール点とし、制限距離を超過していないと判定された場合は前記コントロール点候補をコントロール点とすることを特徴とした画像処理装置。
  2. 画像データにおけるオブジェクトの輪郭を表現する座標点列を三次ベジェ曲線の単位近似区間に区切るアンカ点の設定を行うアンカ点設定手段と、
    前記アンカ点設定手段で設定された複数のアンカ点における互いに隣接する二つのアンカ点を結ぶ直線を座標軸のひとつとし且つ前記二つのアンカ点の何れかを原点とした直交座標系において、前記二つのアンカ点で区切られる単位近似区間における座標点列の中で前記直線から最も離れている座標点が存在する象限に、前記二つのアンカ点の夫々に対応する計二つのコントロール点候補を設定するコントロール点候補設定手段と、
    前記座標点を通る前記直線に対する垂線上で、前記座標点までの距離の4/3倍となる点を制限点、前記二つのアンカ点のうちの一つのアンカ点と前記制限点までの距離を、当該一つのアンカ点に対応する制限距離とし、当該一つのアンカ点と、当該一つのアンカ点に対応するコントロール点候補との距離が、当該一つのアンカ点に対応する前記制限距離を超過しているか否かを判定する手段と、
    前記制限距離を超過していると判定された場合は、前記制限点を当該一つのアンカ点に対応するコントロール点と決定し、前記制限距離を超過していないと判定された場合は、当該一つのアンカ点に対応するコントロール点候補を当該一つのアンカ点に対応するコントロール点と決定するコントロール点決定手段と
    を有することを特徴とする画像処理装置。
  3. 画像データを入力する画像入力手段と、
    前記画像入力手段により入力された画像データにおけるオブジェクトの輪郭を表現する座標点列を生成する座標点列抽出手段と
    を更に具備することを特徴とする請求項に記載の画像処理装置。
  4. 前記二つのアンカ点、前記二つのアンカ点の夫々に対応する二つのコントロール点とを前記単位近似区間における前記輪郭の形状を近似する近似データとして出力する近似データの出力手段と
    を更に具備することを特徴とする請求項2又は3に記載の画像処理装置。
  5. 前記アンカ点設定手段は、記直線を軸にした前記直交座標系における単位近似区間の座標点列で近似される輪郭の極大値もしくは極小値が一つ以下となるようにアンカ点を設定することを特徴とする請求項2乃至4の何れか1項に記載の画像処理装置。
  6. 前記アンカ点設定手段では、前記座標点列で近似される輪郭が極大値又は極小値となる頂点と、前記座標点列で近似される輪郭の曲率の符号が変化する変曲点とを少なくとも抽出することを特徴とする請求項に記載の画像処理装置。
  7. 前記アンカ点設定手段では、前記頂点として、前記座標点列で近似される輪郭の傾きの符号の正負が入れ替わる点を、前記変曲点として、前記座標点列で近似される輪郭の傾きの変化量の符号の正負が入れ替わる点を抽出することを特徴とする請求項に記載の画像処理装置。
  8. 前記コントロール点候補設定手段は、前記直交座標系の前記象限
    記直線に対して最も大きい角度を持つ、前記二つのアンカ点のうちの一つのアンカ点と前記単位近似区間内の座標点とを結ぶ直線の上に、当該一つのアンカ点に対応するコントロール点候補を設定し、
    記直線に対して最も大きい角度を持つ、前記二つのアンカ点のうちのもう一つのアンカ点と前記単位近似区間内の座標点とを結ぶ直線の上に、当該もう一つのアンカ点に対応するコントロール点候補を設定することを特徴とする請求項2乃至7の何れか1項に記載の画像処理装置。
  9. 前記単位近似区間に対し直線で表現してよい区間か否かを判定する直線区間の判定手段を更に備え、
    前記直線区間でないと判定された場合は前記コントロール点候補設定手段により前記コントロール点の候補を決定し、前記直線区間であると判定された場合は前記コントロール点の候補を決定しないことを特徴する請求項2乃至8の何れか1項に記載の画像処理装置。
  10. 前記直線区間の判定手段は、前記二つのアンカ点同士の距離を、前記直線に対して前記単位近似区間の前記座標点列の中で最も離れている前記座標点までの距離で除算した値が閾値以上であった場合、当該単位近似区間を直線区間として判定することを特徴とする請求項に記載の画像処理装置。
  11. 前記コントロール点決定手段は、
    前記二つのアンカ点のうちの一つのアンカ点と当該アンカ点に対応するコントロール点候補と結ぶ線分と、前記二つのアンカ点のうちのもう一つのアンカ点と当該アンカ点に対応するコントロール点候補とを結ぶ線分とが互いに交差するか否かを判定する交差判定手段と、
    前記交差判定手段による判定の結果に応じてコントロール点候補を補正するコントロール点候補補正手段とを備えることを特徴とする請求項2に記載の画像処理装置。
  12. 請求項1乃至11のいずれか一項に記載した画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
  13. アンカ点設定手段と、コントロール点候補設定手段と、判定手段と、コントロール点決定手段とを有する画像処理装置における画像処理方法であって、
    前記アンカ点設定手段が、画像データにおける輪郭の形状を表現する座標点列を三次ベジェ曲線の単位近似区間に区切るアンカ点の設定を行うアンカ点設定工程と、
    前記コントロール点候補設定手段が、前記アンカ点設定工程で設定された複数のアンカ点における互いに隣接する二つのアンカ点を結ぶ直線を座標軸のひとつとし且つ前記二つのアンカ点の何れかを原点とした直交座標系において、前記二つのアンカ点で区切られる単位近似区間における座標点列の中で前記直線から最も離れている座標点が存在する象限に、前記二つのアンカ点の夫々に対応する計二つのコントロール点候補を設定するコントロール点候補設定工程と、
    前記判定手段が、前記座標点を通る前記直線に対する垂線上で、前記座標点までの距離の4/3倍となる点を制限点、前記二つのアンカ点のうちの一つのアンカ点と前記制限点までの距離を、当該一つのアンカ点に対応する制限距離とし、当該一つのアンカ点と、当該一つのアンカ点に対応するコントロール点候補との距離が、当該一つのアンカ点に対応する前記制限距離を超過しているか否かを判定する工程と、
    前記コントロール点決定手段が、前記制限距離を超過していると判定された場合は、前記制限点を当該一つのアンカ点に対応するコントロール点と決定し、前記制限距離を超過していないと判定された場合は、当該一つのアンカ点に対応するコントロール点候補を当該一つのアンカ点に対応するコントロール点と決定するコントロール点決定工程と
    を有することを特徴とした画像処理方法。
JP2010196092A 2010-09-01 2010-09-01 画像処理方法、画像処理装置、及び、プログラム Expired - Fee Related JP5653141B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010196092A JP5653141B2 (ja) 2010-09-01 2010-09-01 画像処理方法、画像処理装置、及び、プログラム
US13/216,955 US8787677B2 (en) 2010-09-01 2011-08-24 Image processing method, image processing apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010196092A JP5653141B2 (ja) 2010-09-01 2010-09-01 画像処理方法、画像処理装置、及び、プログラム

Publications (3)

Publication Number Publication Date
JP2012053691A JP2012053691A (ja) 2012-03-15
JP2012053691A5 JP2012053691A5 (ja) 2013-10-10
JP5653141B2 true JP5653141B2 (ja) 2015-01-14

Family

ID=45697356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010196092A Expired - Fee Related JP5653141B2 (ja) 2010-09-01 2010-09-01 画像処理方法、画像処理装置、及び、プログラム

Country Status (2)

Country Link
US (1) US8787677B2 (ja)
JP (1) JP5653141B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103325130B (zh) * 2013-06-18 2016-09-14 浙江大学 基于t样条的几何迭代图像拟合方法
JP2016111616A (ja) * 2014-12-09 2016-06-20 キヤノン株式会社 情報処理装置および曲線算出方法、画像表示装置
US10212457B1 (en) * 2015-11-17 2019-02-19 Evernote Corporation Coordinated piecewise bezier vectorization
US10347016B2 (en) * 2016-01-12 2019-07-09 Monotype Imaging Inc. Converting font contour curves
US10936792B2 (en) 2017-12-21 2021-03-02 Monotype Imaging Inc. Harmonizing font contours
US10625824B2 (en) * 2018-01-13 2020-04-21 Thomas Frizlen Method and system for determining displacement of an anchor
DE102018104994A1 (de) * 2018-03-05 2019-09-05 Jungheinrich Ag Ortungssystem zur Positionsbestimmung in einer Warenlogistikeinrichtung sowie Verfahren zum Betreiben desselben
US11048932B2 (en) * 2019-08-26 2021-06-29 Adobe Inc. Transformation of hand-drawn sketches to digital images
US11372529B1 (en) * 2021-08-03 2022-06-28 Adobe Inc. Digital image object anchor points
CN114564106B (zh) * 2022-02-25 2023-11-28 北京字跳网络技术有限公司 交互指示线的确定方法、装置、电子设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0326592A (ja) 1989-06-23 1991-02-05 Nippon Zeon Co Ltd 顕色シート用塗工組成物及び顕色シート
JPH04116690A (ja) * 1990-09-07 1992-04-17 Ricoh Co Ltd ベクトルフォント処理方式
JP3026592B2 (ja) 1990-10-22 2000-03-27 キヤノン株式会社 輪郭抽出方法及びその装置
JP3158368B2 (ja) * 1991-03-15 2001-04-23 ソニー株式会社 物体の表面形状データ作成方法及び装置
JPH05114002A (ja) * 1991-10-23 1993-05-07 Mitsubishi Heavy Ind Ltd 自由曲線の設計装置
JPH06282658A (ja) * 1993-03-24 1994-10-07 Mutoh Ind Ltd 曲線データ生成方法および装置
JP3287685B2 (ja) * 1994-02-02 2002-06-04 キヤノン株式会社 データ変換装置及び方法
JP3210609B2 (ja) * 1997-06-20 2001-09-17 松下電器産業株式会社 到達可能範囲表示装置
JPH11203489A (ja) * 1998-01-19 1999-07-30 Fuji Xerox Co Ltd ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベジェ曲線の描画プログラムを記録した記録媒体
JP2000099732A (ja) * 1998-09-22 2000-04-07 Sony Corp 曲線編集装置及び方法
JP2000099733A (ja) * 1998-09-22 2000-04-07 Sony Corp 曲線編集装置及び方法、曲線ループ検出方法及び装置並びに曲線ループ除去方法及び装置
US7873218B2 (en) * 2004-04-26 2011-01-18 Canon Kabushiki Kaisha Function approximation processing method and image processing method
JP4371911B2 (ja) * 2004-05-31 2009-11-25 キヤノン株式会社 関数化処理方法及び関数化処理装置
JP4378208B2 (ja) * 2004-04-26 2009-12-02 キヤノン株式会社 情報処理装置及び情報処理方法
JP2006031245A (ja) * 2004-07-14 2006-02-02 Japan Science & Technology Agency ディジタル画像の輪郭追跡による画像処理方法並びに画像処理装置

Also Published As

Publication number Publication date
JP2012053691A (ja) 2012-03-15
US20120051655A1 (en) 2012-03-01
US8787677B2 (en) 2014-07-22

Similar Documents

Publication Publication Date Title
JP5653141B2 (ja) 画像処理方法、画像処理装置、及び、プログラム
JP4845715B2 (ja) 画像処理方法、画像処理装置、プログラム、及び記憶媒体
US6185341B1 (en) Image processing using vector data to reduce noise
US8466920B2 (en) Two dimensional vector graphics triangulation system and method thereof
JP2008282377A (ja) 画像処理方法および装置
JP2008282376A (ja) 画像処理方法および装置
JP4388030B2 (ja) 文書自動分類システムと方法及びその記録媒体
US20220319145A1 (en) Image processing device, image processing method, moving device, and storage medium
RU2469400C1 (ru) Способ преобразования растрового изображения в метафайл
EP2782065B1 (en) Image-processing device removing encircling lines for identifying sub-regions of image
JP5566158B2 (ja) 画像処理方法、画像処理装置、及びプログラム
US20130120802A1 (en) Image processing apparatus and image processing method
JP2940956B2 (ja) 線図形の特徴抽出方法
JP4873554B2 (ja) 画像配信装置および画像配信方法
JP5629483B2 (ja) 画像処理方法、画像処理装置、及びプログラム
US20060119897A1 (en) Output apparatus and program thereof
JP2006237858A (ja) 画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、および記録媒体
CN114862752A (zh) 分类图的置信度辅助上采样
US20130343636A1 (en) Image processing apparatus, control method of the same and non-transitory computer-readable storage medium
JP2007304894A (ja) 画像照合装置、画像照合方法及びプログラム
JP2007304893A (ja) 画像照合装置、画像照合方法及びプログラム
CN115713460A (zh) 信息处理装置、教师数据的生成方法、已学习模型的生成方法、以及存储介质
JP3567727B2 (ja) 画像処理方法および装置
CN116358524A (zh) 裁剪空间的确定方法、数据裁剪方法、装置及电子设备
JP2954434B2 (ja) 画像処理方法及びその装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130822

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140811

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140929

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141118

R151 Written notification of patent or utility model registration

Ref document number: 5653141

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees