JP2000099733A - 曲線編集装置及び方法、曲線ループ検出方法及び装置並びに曲線ループ除去方法及び装置 - Google Patents

曲線編集装置及び方法、曲線ループ検出方法及び装置並びに曲線ループ除去方法及び装置

Info

Publication number
JP2000099733A
JP2000099733A JP26868898A JP26868898A JP2000099733A JP 2000099733 A JP2000099733 A JP 2000099733A JP 26868898 A JP26868898 A JP 26868898A JP 26868898 A JP26868898 A JP 26868898A JP 2000099733 A JP2000099733 A JP 2000099733A
Authority
JP
Japan
Prior art keywords
loop
segment
curve
intersection
unit
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.)
Withdrawn
Application number
JP26868898A
Other languages
English (en)
Inventor
Tomotaka Ogino
友隆 荻野
Makoto Kawamura
真 河村
Takushi Totsuka
卓志 戸塚
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP26868898A priority Critical patent/JP2000099733A/ja
Priority to US09/398,866 priority patent/US6535213B1/en
Publication of JP2000099733A publication Critical patent/JP2000099733A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Studio Circuits (AREA)

Abstract

(57)【要約】 【課題】 画像内の対象物の輪郭を示す曲線を編集した
結果発生したループを検出するとともに除去する。 【解決手段】 画像内に含まれる対象物の輪郭形状を示
し複数のセグメントからなる境界曲線の形状を編集する
編集手段12と、編集手段12で編集処理がなされるこ
とで形成されたループを各セグメントごとに検出する第
1の検出手段と、複数のセグメントで形成されたループ
を検出する第2の検出手段と、上記第1の検出手段及び
第2の検出手段で検出されたループを除去するループ除
去手段13A,13Bとを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CAD分野や映像
制作分野等でなされる画像処理技術のうち、画像内に含
まれる対象物の輪郭を示す境界曲線を編集する曲線編集
装置及び方法、境界曲線を編集することで形成されるル
ープを検出する曲線ループ検出方法及び装置、境界曲線
で形成されたループを除去する曲線ループ除去方法及び
装置に関する。
【0002】
【従来の技術】従来の画像中の対象物について輪郭を抽
出してキー信号を生成する技術は、物体認識、追尾、画
像合成等の様々な分野で応用される基本的かつ重要な画
像処理技術である。上記キー信号としては、対象物の輪
郭部分において前景画像の値を1とし、背景画像の値α
を0として2値で表したハードキーと称されるものや、
対象物の輪郭部分を2本の境界曲線により構成し、境界
曲線間で上記前景画像と背景画像の値αを0から1まで
徐々に変化させたソフトキーと称されるものがある。
【0003】従来のソフトキーの生成方法は、主として
ハードキーの境界部分に、適当な傾斜を付ける処理を行
っていた。例えば特開昭60−232787号公報で開
示されている「画像合成装置」では、ハードキーに基づ
き、対象物の輪郭部分のみを抽出して滑らかにする手法
が開示されている。また、ソフトキーを生成する他の手
法としては、ハードキーの信号を用いて対象物の輪郭部
分だけにローパスフィルタで処理を施すことにより、対
象物の輪郭部分をぼかして見た目に滑らかにする方法が
ある。
【0004】更に、特開平4−340671号公報の
「画像合成におけるアンチエイリアシング方法」では、
対象物の輪郭部分のうち、ある注目画素を中心とした画
素ブロックを設定して、画素ブロック内の画素の前景画
像と背景画像のパターンに基づいてソフトキーを生成す
る手法が開示されている。しかし、これらの手法により
生成されたソフトキーは、対象物の輪郭部分の付近に一
様な傾斜を付けるため、対象物が動いている場合のモー
ションブラーに対応できないことが多い。
【0005】動画におけるモーションブラーを考慮して
ソフトキーを生成する従来の方法としては、例えば特開
平5−153493号公報で開示されている手法が知ら
れている。すなわち、この手法においては、動画像にお
ける現在のフレームと直前のフレームを比較することに
より、対象物の位置ごとに画素の変化量の総和を求め
て、変化量の大きさに基づいてソフトキーの幅を決める
処理をしている。しかし、この手法では、ソフトキーの
曲面を制御していないのでユーザによる曲面の変更が困
難である。
【0006】また、特開平5−236347号公報の
「ソフトキー生成装置」で開示されているソフトキー生
成技術では、物体境界線上の各点において、ハードキー
を楕円錐で削り取る処理を行うことでソフトキーを生成
する手法が開示されている。その際に、注目する箇所の
動きベクトルと画像の勾配を算出して、楕円錐の底面と
なる楕円の長軸と短軸を決定する。しかし、このソフト
キー生成技術によるソフトキーを生成するときの制御
は、動きベクトルとエッジ強度でなされ楕円錐の長軸と
短軸を決定するために使われるので、動きベクトルとエ
ッジ強度が生成されたソフトキーにどのように反映され
ているのかを判断するのかが困難である。また、このソ
フトキー生成技術では、直接ソフトキーを生成するので
はなく、ハードキーを削ってソフトキーを生成するとい
う間接的な処理を行っていることから、生成するソフト
キー制御の反映のされ方を判断するのを困難としてい
る。従って、このソフトキー生成技術では、例えばユー
ザがソフトキーの一部を変更しようとする際にユーザが
望む変更を行なうのが困難であった。
【0007】そこで、従来のソフトキー生成技術として
は、特開平8−331445号公報で開示された「ソフ
トキー生成装置」がある。このソフトキー生成技術は、
輪郭部分の表現手法として曲面を導入しており、輪郭上
の局所的なソフトキー幅の変化に対応することが可能で
ある。更にまた、特開平9−37153号公報で開示さ
れた「キー信号算出装置および方法」のソフトキー生成
技術では、画素値の変化を用いてキー信号の算出を自動
化しており、ソフトキー幅の算出を可能にしている。
【0008】
【発明が解決しようとする課題】しかし、上述の特開平
8−331445号公報で開示された「ソフトキー生成
装置」や、特開平9−37153号公報で開示された
「キー信号算出装置および方法」のソフトキー生成技術
においては、画素値の変化から求めた幅を有するソフト
キーをそのまま画像合成に使用すると、合成結果の画像
に背景領域の色が漏れるという問題点があり、輪郭部分
のソフトキーの幅を調節したり、全体的に外側/内側に
寄せるなど、ユーザの手による編集を必要とする。
【0009】幅を有するソフトキーを編集するときに
は、平面的な画像表示装置に投影する必要があり、前景
画像と背景画像の混合比をαとするとα=0,α=1に
おける2本の曲線で表現することで編集が実現できる。
すなわち、これらの2本の曲線は、キー曲面の性質上、
輪郭を囲むような形状になるため、対象物の輪郭形状と
密接な関係がある。また、キー曲面の形状の一貫性を保
つためには、2本の曲線はそれぞれ自身との交差や、互
いの曲線同士での交差があってはならない。
【0010】例えば図33(a)に示すような2本の境
界曲線A0,A1について編集を行うことで全体として
中心線pcを内側に移動させて図33(b)に示すよう
に中心線pc’とするとともに境界曲線A0’,A1’
としたとき、2本の境界曲線A0’,A1’のうち、内
側に位置する境界曲線A1’にループが発生してしまう
ことがある。更に他の一例としては、図34(a)に示
す境界曲線A0,A1を図34(b)に示す境界曲線A
0’,A1’に変形させるとともに、幅をWからW’に
変換したときにおいてもループが発生してしまうことが
ある。
【0011】そこで、本発明は、上述したような実情に
鑑みて提案されたものであり、画像内の対象物の輪郭を
示す曲線を編集した結果発生したループを検出するとと
もに除去することができる曲線編集装置及び方法、曲線
ループ検出方法及び装置並びに曲線ループ除去方法及び
装置を提供することを目的とする。
【0012】
【課題を解決するための手段】上述の課題を解決する本
発明に係る曲線編集装置及び方法は、画像内に含まれる
対象物の輪郭形状を示し複数のセグメントからなる境界
曲線の形状を編集し、編集処理がなされることで形成さ
れたループを各セグメントごとに検出し、複数のセグメ
ントで形成されたループを検出し、検出されたループを
除去することを特徴とする。
【0013】このような曲線編集装置及び方法によれ
ば、境界曲線が編集された結果発生したループをセグメ
ント単位又は相互のセグメントで形成されていることを
検出してループを除去する。
【0014】本発明に係る曲線ループ検出方法及び装置
は、画像内に含まれる対象物の輪郭形状を示す境界曲線
を構成し、端点及び制御点で定義されるベジェ曲線から
なる各セグメントの端点と制御点とを結ぶベクトルを各
セグメントの端点を結ぶ直線上に投影して上記ベクトル
の方向を検出することで単一のセグメントでループが形
成されているか否かを判定し、上記粗判定処理で単一の
セグメントでループが形成されていると判定されたセグ
メントを分割し、分割することで生成した各セグメント
についての端点及び制御点を結んで各セグメントを囲む
矩形領域を設定し、各矩形領域が重複しているか否かを
判定して単一のセグメントでループが形成されているか
否かを判定することを特徴とする。
【0015】このような曲線ループ検出方法及び装置に
よれば、単一のセグメントでループが形成されているか
否かを判定する粗判定を行い、粗判定をした結果、ルー
プが形成されている可能性を有するセグメントについて
精判定を行う。
【0016】本発明に係る曲線ループ除去方法及び装置
は、画像内に含まれる対象物の輪郭形状を示す境界曲線
を分割してなる各セグメントが交差してループが形成さ
れていることを示す交点情報を用いて各交点において接
する複数のループをループ長に応じて抽出し、ループ長
に応じて各交点において接する複数のループを除去する
ことを特徴とする。
【0017】このような曲線ループ除去方法及び装置に
よれば、交点情報を用いて各交点において接する複数の
ループをループ長の大きさに応じて、大きい順又は小さ
い順に除去する。
【0018】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照しながら詳細に説明する。
【0019】本発明を適用した曲線編集装置1は、例え
ば図1に示すような構成となされている。この曲線編集
装置1は、演算処理部2、プログラムメモリ3、データ
メモリ4、フレームメモリ5、操作入力部6、外部記憶
部7がバス8に接続されてなる。
【0020】曲線生成装置1は、例えばキーボードやマ
ウス等からなりユーザにより操作されることで操作入力
信号を生成する操作入力部6を備える。この操作入力部
6は、ユーザの操作に応じて生成した操作入力信号を演
算処理部2に出力する。
【0021】演算処理部2は、操作入力部6からの操作
入力信号に従って、上述の各部を制御する制御信号を生
成する。演算処理部2は、生成した制御信号を各部に出
力することにより、操作入力信号に応じた処理を行う。
この演算処理部2は、例えば外部記憶部7に格納された
動画像を示す画像データを用いて各フレームに含まれる
対象物の輪郭を示す境界曲線を編集するプログラムをプ
ログラムメモリ3から入力する。なお、この演算処理部
2の処理ブロックについては後述する。
【0022】ここで境界曲線は、各フレームに含まれる
対象物の輪郭に相当する領域を囲むような2本の曲線か
らなり、例えば画像のエッジ強度等に基づいて生成され
る。そして、2本の境界曲線は、注目する対象物と、当
該対象物の背景となる画像との混合率に応じて決定され
る。例えば静止画像における前景と背景の境界を含んだ
画素に注目すると、画素の内部には、前景と背景が境界
を挟んで存在している。このとき、画素における前景の
混合率を0から1までの値で表現したものを、アルファ
値と呼んでいる。また、動画像における前景と背景の境
界部分の画素に注目すると、前景と背景の明確な境界は
存在しないで、前景と背景が重なり合っている。このと
きの画素における前景の混合率も、同様にアルファ値で
表現する。すなわち、上記2本の境界曲線は、例えば図
2に示すように、中心線Cを中心として、例えば幅Wを
以て配された、上記アルファ値が「1」である位置を示
す境界曲線A1と、上記アルファ値が「0」である位置
を示す境界曲線A0とからなる。
【0023】演算処理部2により編集処理がなされる境
界曲線は、その一部を図3に示すように、複数のセグメ
ントs0、s1で構成されている。セグメントs0は、
複数の制御点cp0〜cp3とベジェ曲線の線分から構
成され、セグメントs1は、複数の制御点cp3〜cp
6とベジェ曲線の線分から構成されている。なお、図3
に示した境界曲線は、2つのセグメントからなり、各セ
グメントが4つの制御点を有するものであるが、セグメ
ント及び制御点の数は任意であっても良い。ここで、図
2に示す2本の境界曲線A0,A1は、同数のセグメン
トを有する閉曲線であり、自身で交差しない曲線であ
る。
【0024】プログラムメモリ3は、演算処理部2が操
作入力部6からの操作入力信号に応じて処理するための
プログラムが格納されている。このプログラムメモリ3
は、演算処理部2からの制御信号に応じて格納されたプ
ログラムが読み込まれる。このプログラムメモリ3に格
納されているプログラムとしては、例えば境界曲線を編
集しているときに読み込まれる曲線編集プログラム等が
格納されている。
【0025】曲線編集装置1により編集処理がなされる
境界曲線が示す対象物を示す画像データは、外部記憶部
7に格納されている。外部記憶部7は、例えば光ディス
ク等の記録媒体を備え、演算処理部2からの制御信号に
応じて記録媒体に記録されている動画像を示す画像デー
タを演算処理部2、データメモリ4やフレームメモリ5
に出力するとともに、記録媒体に画像データが記録され
る。
【0026】データメモリ4には、上述の演算処理部2
により輪郭を示す境界曲線等が格納される。また、この
データメモリ4には、例えば境界曲線について編集処理
しているときの処理途中のデータが入力される。
【0027】フレームメモリ5には、演算処理部2の制
御信号に従ってデータメモリ4や外部記憶部7からの1
フレーム分の画像データ等が入力される。フレームメモ
リ5には、例えば演算処理部2からの制御信号により読
み出された画像データや、編集処理がなされた境界曲線
等を示すデータ等が入力される。そして、このフレーム
メモリ5は、ユーザに画像や処理内容等を表示する表示
部9と接続しており、制御信号に従って入力された画像
データ等を表示部9に出力することで、表示部9に当該
画像データが示す画像を表示させる。
【0028】また、上記演算処理部2は、図4に示すよ
うに、曲線抽出部11A,11B、曲線変形部12、ル
ープ除去部13A,13B、合成部14を備える。
【0029】曲線抽出部11A,11Bは、操作入力部
6からの操作入力信号により指定された例えば上述の図
2に示す境界曲線A0,A1が入力される。そして、曲
線抽出部11Aは、境界曲線A0、A1のうち境界曲線
A0を抽出して曲線変形部12に出力する。一方、曲線
抽出部11Aは、境界曲線A0、A1のうち境界曲線A
0を抽出して曲線変形部12に出力する。
【0030】曲線変形部12は、図5に示すように、曲
線抽出部11A,11Bからの境界曲線A0、A1が入
力されるセグメント抽出部21A、21Bを備える。各
セグメント抽出部21A、21Bは、入力された境界曲
線A0、A1からセグメント単位で抽出を行って点列生
成部22A、22Bに出力する。このとき、セグメント
抽出部21A,21Bは、各境界曲線A0,A1を構成
する複数のセグメントを抽出するとともに、所定の処理
タイミングで点列生成部22A,22Bに出力する。
【0031】点列生成部22A,22Bは、セグメント
抽出部21A,21Bからのセグメントを点列に変換し
て、各セグメントに対応する点列を生成する。すなわ
ち、この点列生成部22A,22Bは、上記ベジェ曲線
の線分についてサンプリング処理を施すことにより点列
に変換して、点列移動部23に出力する。
【0032】点列移動部23は、点列生成部22A、2
2Bからの各セグメントに対応した各点列の座標位置を
示す座標情報を、操作入力部6からの操作入力信号に応
じて指定された幅値及びオフセット値に基づいて変更す
る。このとき、点列移動部23は、境界曲線A0に対応
する点列と、境界曲線A1に対応する点列とを連係させ
て各点の座標を変更する。すなわち、この点列移動部2
3は、図2に示した境界曲線A0,A1を、例えば境界
曲線A0,A1全体の幅をk倍するとともに境界曲線A
0,A1を内側にLだけ移動させる幅値及びオフセット
値に基づいて、例えば図6に示すように中心線CをC’
の位置にオフセットするとともに、幅WをW’=kWと
するように、各点の座標情報を変更する。このとき、点
列移動部23は、各セグメントに対応した点列に応じた
移動量を演算し、点列の座標情報を変更してセグメント
再構成部24A,24Bに出力する。また、点列移動部
23は、図7に示すように例えば境界曲線A0,A1の
点pc近傍を外側に移動させるとともに、点pa近傍の
幅を大きくするような幅値及びオフセット値が入力され
たときには、該当するセグメントに対応した点列に応じ
た移動量を演算し、点列の座標情報を変更する。
【0033】セグメント再構成部24A,24Bは、点
列移動部23からの各セグメントに対応した点列を再構
成することにより、セグメントを生成する。ここで、セ
グメント再構成部24Aは境界曲線A1を構成するセグ
メントに対応した点列を再構成し、セグメント再構成部
24bは境界曲線A0を構成するセグメントに対応した
点列を再構成して、曲線合成部25A,25Bに出力す
る。
【0034】曲線合成部25A,25Bは、セグメント
再構成部24A、24Bからのセグメントを合成するこ
とで境界曲線A0、A1を生成する。これにより、曲線
合成部25A,25Bは、例えば図6又は図7に示すよ
うな変形後の境界曲線A0,A1を生成し、上記ループ
除去部13A、13Bに出力する。
【0035】ループ除去部13A、13Bは、それぞれ
図8に示すように構成されている。なお、図8に示した
ループ除去部13A、13Bの説明においては、2本の
境界曲線A0,A1を単に「境界曲線A」と称する。ル
ープ除去部13A、13Bは、曲線変形部12に備えら
れる曲線合成部25A,25Bから変形後の境界曲線A
が入力されるセグメント抽出部31を備えている。この
セグメント抽出部31は、曲線合成部25A,25Bか
らの境界曲線Aから単一のセグメントを抽出する処理を
行う。このセグメント抽出部31は、抽出したセグメン
トをセグメント単位ループ除去部32に出力する。
【0036】セグメント単位ループ除去部32は、セグ
メント抽出部31からの単一のセグメントsaについ
て、上述の曲線変形部12により変形された結果、境界
曲線Aに図9に示すようなループが生じているか否かを
判定する。そして、このセグメント単位ループ除去部3
2は、単一のセグメントsaで形成されたループを検出
したときには、例えばセグメントを構成する端点におけ
る打ち出し速度を下げる等の処理を施すことにより、単
一のセグメントsaで形成された生じているループを除
去する処理を行い、ループが生じているか否かの判定及
び除去を行った単一のセグメントsaを曲線合成部33
に出力する。なお、このセグメント単位ループ除去部3
2で行うループが生じているか否かの判定、ループを除
去する処理の詳細は後述する。
【0037】曲線合成部33は、上述のセグメント抽出
部31で単一セグメントとして抽出され、セグメント単
位ループ除去部32でループを除去する処理がなされた
各セグメントを合成する処理を行う。この曲線合成部3
3は、合成した境界曲線Aを交点算出部34及び複数セ
グメントループ検出部35に出力する。
【0038】交点算出部34は、曲線合成部33からの
境界曲線Aの全体について交点が存在するか否かを求め
ることにより、上述の曲線変形部12により変形された
結果、境界曲線Aの全体についてループが生じているか
否かを判定する。これにより、交点算出部34は、例え
ば図10に示すように複数セグメントsb〜seで形成
されたループを検出する。そして、この交点算出部34
は、境界曲線A全体での交点を算出することで交点リス
トを生成して複数セグメントループ除去部35に出力す
る。
【0039】複数セグメントループ除去部35は、交点
算出部34からの交点リストを用いて曲線合成部33か
らの境界曲線Aの交点を除去することで複数のセグメン
トで形成されたループを除去する。そして、複数セグメ
ントループ除去部35は、境界曲線Aを合成部14に出
力する。なお、複数のセグメントで形成されたループを
除去する処理についての詳細は後述する。
【0040】図4に戻って、合成部14は、上述の図8
を用いて説明したループ除去部13Aからの境界曲線A
0とループ除去部13Bからの境界曲線A1とを合成す
る。これにより、曲線編集装置1は、曲線変形部12で
変形された境界曲線A0,A1を得る。
【0041】このような曲線編集装置1で2本の境界曲
線A0,A1を変形するときには、図11のフローチャ
ートに示す処理を演算処理部2により行う。すなわち、
演算処理部2は、先ずステップST101において、境
界曲線A0,A1の幅及びオフセットを変更する処理を
主として図5に示した各部により行い、次のステップS
T102において境界曲線A0,A1を変形した結果発
生したループを検出して除去する処理を主として図8に
示した各部で行う。
【0042】上記ステップST101において境界曲線
A0,A1を変形するときには、図12に示すように、
先ずステップST201において、セグメント抽出部2
1A,21Bにより境界曲線A0,A1からi=1(i
=1,2,3・・・)のセグメントを抽出することを指
定する。
【0043】次のステップST202において、セグメ
ント抽出部21A,21Bは、ステップST201で指
定された境界曲線A0からセグメントS0(i)及び境界曲
線A1からセグメントS1(i)を抽出して、点列生成部2
2A、22Bに出力する。
【0044】次のステップST203において、点列生
成部22Aは、セグメント抽出部21Aからのセグメン
トS0(i)をm個の点列p0(1)〜p0(m)に変換するととも
に、点列生成部22Aは、セグメント抽出部21Bから
のセグメントS1(i)をm個の点列p1(1)〜p1(m)に変換
する処理を行う。そして、点列生成部22Aは、生成し
た点列p0(1)〜p0(m)を点列移動部23に出力するとと
もに、点列生成部22Bは、生成した点列p1(1)〜p
1(m)を点列移動部23に出力する。
【0045】次のステップST204において、点列移
動部23は、点列生成部22A、22Bからの点列から
j=1(j=1,2,3・・・)の点p0(j),p1(j)に
ついての座標情報を変更することを指定する。
【0046】次のステップST205において、点列移
動部23は、指定した点p0(j),p1(j)の座標情報を、
操作入力部6からの操作入力信号に応じて指定された幅
値及びオフセット値に基づいて変更する。
【0047】ここで、点列移動部23により幅値及びオ
フセット値を用いて、図13(a)に示すように点p
0,p1を図13(b)に示す点p0’,p1’の位置
に移動させるときの座標情報の計算方法について説明す
る。ここで、p0,p1,p0’,p1’,cは位置ベ
クトルであり、点列移動部23は、点p0’と点p1’
とを結ぶ直線上に位置する中心点cも、中心点c’に移
動させる。この結果、点列移動部23は、幅をWから
W’とし、中心点cをLだけ移動させる。
【0048】座標情報を計算する場合において、先ず、
点cは点p0と点p1との中点であることから、 c=(p0+p1)/2 と表される。そして、Wを点p0と点p1との距離、
W’を点p0’と点p1’との距離とすると、W及び
W’は以下の式により表される。 W=|p1−p0| W’=|p1’−p0’| また、Lは、中心点cから変形後の移動点c’との距
離、すなわちオフセット値であり、例えば点p0’から
点p1’に向かう方向にオフセットがなされたときには
Lは正の値となる。
【0049】そして、ベクトルp0p1に平行な単位ベ
クトルをuとすると、uは以下の式で表される。 u=(p0−p1)/|p1−p0| 以上を用いて、移動後のp0’、p1’の座標は以下の
式で求める。 p0’=c−{(W/2)−L}・u p1’=c+{(W/2)−L}・u 点列移動部23は、このような計算を行うことにより、
幅値及びオフセット値に基づいて点p0,p1の座標情
報を変更する。
【0050】次のステップST206において、点列移
動部23は、「j」についてインクリメントすること
で、次の点p0(j),p1(j)についての座標情報を変更す
ることを指定する。
【0051】次のステップST207において、点列移
動部23は、上記ステップST206で指定した点がi
番目のセグメントに対応する点列の個数を超えたか否か
を判断し、越えていると判断したときにはステップST
208に進み、越えていないと判断したときにはステッ
プST205に戻る。すなわち、点列移動部23は、ス
テップST201で指定したi番目のセグメントに対応
する点列を構成する各点について幅値及びオフセット値
に基づいて座標情報を更新するステップST205の処
理を行う。
【0052】ステップST208において、セグメント
再構成部24A,24Bは、点列移動部23で座標情報
が更新された点列からセグメントを再構成する。ここ
で、セグメント再構成部24A,24Bは、例えば特開
平10−134199号公報で示された手法を用いて点
列からセグメントを構成する。具体的には、セグメント
再構成部24A,24Bは、点列を構成する各点を連結
するための連結条件を各点毎に算出し、各点における連
結条件を満たすようにセグメントを構成する。
【0053】次のステップST209において、演算処
理部2は、変形処理を行うセグメントについてインクリ
メントすることで、次のi+1番目のセグメントを指定
し、ステップST210においてステップST209で
指定したi+1番目のセグメントが境界曲線A0,A1
を構成するセグメント数を越えているかを判定し、越え
ていると判定したときには、境界曲線A0,A1につい
ての変形処理を終了し、越えていないと判断したときに
は、i+1番目のセグメントについて上述のステップS
T202〜ステップST210で示した処理を行う。す
なわち、曲線変形部12は、境界曲線A0,A1を構成
する全セグメントについて操作入力信号から生成された
幅値及びオフセット値に基づいて変形処理を行う。
【0054】したがって、このような曲線編集装置1
は、曲線変形部12により境界曲線A0,A1の変形を
行うとき、セグメントごとに2本の境界曲線A0,A1
を点列生成部22A、22Bにより点列に変換し、点列
の座標情報を変更して編集処理をするときに、各境界曲
線A0についての点列と、境界曲線A1についての点列
とを連係させて各点の座標情報を変更し、座標が変更さ
れた各点の座標から2本の境界曲線A0,A1を再構成
することで曲線の編集処理を行うので、画像内の対象物
の輪郭を示す2本の境界曲線A0,A1を簡便に編集す
ることができる。すなわち、この曲線編集装置1によれ
ば、ユーザが指定した操作入力部6からの操作入力信号
から幅値及びオフセット値を生成することで、自動的に
上述の図12で示した処理を行って境界曲線A0,A1
の形状を編集することができる。
【0055】つぎに、曲線変形部12により各境界曲線
A0,A1について変形処理が施されたことにより発生
するループを、図8に示したループ除去部13A,13
Bにより除去するときには、図14に示すように、先ず
ステップST301において境界曲線A0,A1を構成
する単一のセグメントで構成されたループを除去し、次
のステップST302において複数のセグメントで構成
されたループを除去する。
【0056】ループ除去部13A,13Bにより単一の
セグメントで構成されたループを除去するときには、ル
ープ除去部13A,13Bは、図15に示すように、先
ずステップST401において境界曲線A0,A1を構
成するi=1番目のセグメントについてループを除去す
ることを指定して処理を開始する。
【0057】次のステップST402において、ループ
除去部13A,13Bは、セグメント抽出部31により
ステップST401又はステップST406で指定され
た境界曲線A0,A1を構成する単一のセグメントを抽
出して、セグメント単位ループ除去部32に出力する。
【0058】次のステップST403において、セグメ
ント単位ループ除去部32は、上述のステップST40
2でセグメント抽出部31により抽出したセグメントに
ついてループが存在しているか否かの可能性を検出する
粗判定を行う。すなわち、セグメント単位ループ除去部
32は、例えば図16に示すようなセグメントについ
て、端点p0〜制御点p1に対応するベクトルn01、
制御点p1〜制御点p2に対応するベクトルn12及び
制御点p2〜端点p3に対応するベクトルn23を端点
p0と端点p3とを結ぶ直線上に投影したときにおける
向きを検出する。ここで、境界曲線A0,A1上の点の
速度は、各ベクトルn01、n12、n23を内分した
ものであるため、ループが存在する場合は境界曲線A
0,A1上の点が一時的に端点p0と制御点p3とを結
ぶ直線に対して逆方向を向いていることから、検出した
各ベクトルn01、n12、n23のうちいずれかは逆
方向でなければならない。従って、セグメント単位ルー
プ除去部32は、検出した各ベクトルn01、n12、
n23の向きを検出することにより粗判定を行う。
【0059】すなわち、セグメント単位ループ除去部3
2は、例えば図17に示すようなセグメントにおいて
は、ベクトルn01とベクトルn23とが同方向であ
り、ベクトルn12が逆方向であることから、単一のセ
グメント内にループが存在すると判定する。更に、セグ
メント単位ループ除去部32は、例えば図18に示すよ
うなセグメントにおいては、ベクトルn01とベクトル
n23とが同方向であり、ベクトルn12が逆方向であ
ることから、単一のセグメント内にループが存在すると
判定する。
【0060】そして、ステップST403においてセグ
メント単位ループ除去部32は、単一のセグメントで形
成されたループが発生していると判断したときにはステ
ップST404に進み、ループが発生していないと判断
したときにはステップST406に進む。
【0061】ステップST405において、セグメント
単位ループ除去部32は、上述の粗判定によりi番目の
セグメントにループが発生している可能性が高いことか
ら、上述の粗判定よりもより精密な判定である精判定を
行う。そして、セグメント単位ループ除去部32は、精
判定により、ループが存在していると判断したときに
は、ステップST405に進み、ループが存在していな
いと判断したときにはステップST406に進む。な
お、セグメント単位ループ除去部32で行う精判定を行
う処理の詳細については後述する。
【0062】ステップST405において、セグメント
単位ループ除去部32は、単一のセグメント内に存在す
るループを除去するために、セグメントの端点における
打ち出し速度を下げる処理を行う。ここで、打ち出し速
度とは、例えば図19(a)に示すセグメントについて
言えば、p0p1及びp3p2である。そして、セグメ
ント単位ループ除去部32は、打ち出し速度を下げる処
理を行うことにより、図19(b)に示すようにp0p
1及びp3p2を短縮し、制御点p2の位置をp2’の
位置に変更し、制御点p1の位置をp1’に変更してル
ープを除去する。そして、セグメント単位ループ除去部
32は、打ち出し速度を下げる処理を行ったセグメント
について再びステップST404で精判定を行う。すな
わち、セグメント単位ループ除去部32は、精判定を行
ってループが形成されていないと判断するまでステップ
ST405で示した打ち出し速度を下げる処理を行うこ
とになる。
【0063】ステップST406において、セグメント
単位ループ除去部32は、境界曲線A0,A1を構成す
るセグメントについてインクリメントすることにより、
i+1番目のセグメントを指定し、ステップST407
においてステップST406で指定したi+1番目のセ
グメントが境界曲線A0,A1を構成するセグメント数
を越えているかを判定し、越えていると判定したときに
は、境界曲線A0,A1についてループを除去する処理
を終了し、越えていないと判断したときには、i+1番
目のセグメントについて上述のステップST402〜ス
テップST407に示した処理を行う。すなわち、セグ
メント単位ループ除去部32は、境界曲線A0,A1を
構成する全セグメントについてループを除去する処理を
行う。
【0064】つぎに、上述のステップST404におけ
る精判定について説明する。セグメント単位ループ除去
部32は、精判定を行うときには、図20に示すよう
に、先ず、ステップST402で示す処理によりセグメ
ント抽出部31で抽出した座標t=0〜t=1で表現さ
れたセグメント上の座標t=0.5の位置で分離して2
つのセグメントとし、分割することにより生成した2つ
のセグメントが互いに交差しているか否かの判定を行
う。そして、セグメント単位ループ除去部32は、2つ
のセグメントが座標t=0.5の位置のみで交差してい
ると判定したときにはセグメント抽出部31で抽出した
単一のセグメントによりループが形成されてないと判断
し、座標t=0.5以外の位置で交差していると判定し
たときにはセグメント抽出部31で抽出した単一のセグ
メントによるループが形成されていると判定する。
【0065】すなわち、セグメント単位ループ除去部3
2は、図21のフローチャートに示す処理を行うことに
より、単一のセグメントを分割して生成された2つのセ
グメントが交差しているか否かの判定を行う。セグメン
ト単位ループ除去部32は、先ずステップST501に
おいて、分割されて生成された2つのセグメントsa、
sbについてバウンディングボックス(Bounding Box)
ba及びbbを生成する。ここで、バウンディングボッ
クスとは、図22に示すように各セグメントsの端点又
は制御点を結ぶことにより形成されたセグメントを囲む
矩形領域を指す。
【0066】次のステップST502において、セグメ
ント単位ループ除去部32は、セグメントsaについて
のバウンディングボックスと、セグメントsbについて
のバウンディングボックスとが重なっているかを判定す
る。そして、セグメント単位ループ除去部32は、重な
っていると判定したときには、ステップST503に進
み、重なっていないと判定したときには座標t=0以外
に交点はないと判断して処理を終了する。
【0067】ステップST503において、セグメント
単位ループ除去部32は、セグメントsaの曲率ea及
びセグメントsbの曲率ebを求める。ここで、セグメ
ント単位ループ除去部32は、曲率ea、ebを求める
ときには、図23に示すように、端点p0,p3、制御
点p1,p2及び線分からなるセグメントにおいて、制
御点p1と直線p0p3とを結ぶ垂線の長さL1と、制
御点p2と直線p0p3とを結ぶ垂線の長さL2の2乗
総和を近似量として用いる。このように求めた近似値
は、「0」に近いほど、セグメントが直線に近いことを
示している。
【0068】次のステップST504において、セグメ
ント単位ループ除去部32は、上述のステップST50
3で求めた曲率ea、ebと所定の閾値とを比較する。
ここで閾値は、セグメントsa及びセグメントsbが直
線の線分として近似できるか否かにより決定された値で
ある。すなわち、セグメント単位ループ除去部32は、
曲率ea、ebが閾値以下であって直線の線分として近
似できると判定したときにはステップST505に進
み、曲率ea、ebが閾値以下でなく直線の線分として
近似できないと判定したときにはステップST507に
進む。
【0069】ステップST505において、セグメント
単位ループ除去部32は、図24に示すように、セグメ
ントsaを直線p0p1に近似するとともにセグメント
sbを直線q0q1で近似して交点cを求め、ステップ
ST506において、セグメント単位ループ除去部32
は、求めた交点cを交点リストに加える。
【0070】一方、ステップST507において、セグ
メント単位ループ除去部32は、セグメントsaを更に
分割することによりセグメントsa0、sa1を生成す
るとともに、セグメントsbを更に分割することにより
セグメントsb0、sb1を生成する。
【0071】次のステップST508、ステップST5
09、ステップST510及びステップST511にお
いて、セグメント単位ループ除去部32は、ステップS
T507で生成したセグメントを用いてステップST5
01〜ステップST506までの処理を行うことにより
交点を求めて交点リストを生成する。
【0072】すなわち、セグメント単位ループ除去部3
2は、例えば図25(a)に示すような分割してなる2
つのセグメントs0、s1をステップST507におい
て更に分割することにより図25(b)に示すセグメン
トs01、s00とセグメントs10、s11とし、再
びステップST501〜ステップST504までの処理
を行うことでセグメントs01及びセグメントs10が
直線で近似できるか否かを判定する。そしてセグメント
単位ループ除去部32は、セグメントs01及びセグメ
ントs10が直線で近似できないと判定したときには、
更にセグメントを分割することで図25(c)に示すよ
うにセグメントs011,s010とセグメントs10
0,s101としてバウンディングボックスで囲む矩形
領域を縮小していく。そして、セグメント単位ループ除
去部32は、分割したセグメントが直線で近似できるま
で上述のステップST501〜ステップST504まで
の処理を行い、分割したセグメントが交差する交点を求
める。
【0073】このようにセグメント単位ループ除去部3
2は、セグメントsa0とセグメントsb0について、
上述のステップST501〜ステップST504の処理
を行うことによりセグメントsa0とセグメントsb0
との交点を求める。
【0074】つぎに、ループ除去部13A,13Bによ
り複数のセグメントで形成されるループを除去するとき
には、図26のフローチャートに示すように、先ずステ
ップST601において複数のセグメントで形成される
ループの交点を交点算出部34で計算することにより求
める。次のステップST602において、ステップST
601で求めた交点を用いて、複数のセグメントで形成
されるループを除去する処理を複数セグメントループ除
去部35で行う。
【0075】上記ステップST601において、交点算
出部34は、図27のフローチャートに示す処理を行
う。すなわち、交点算出部34は、ステップST701
において、曲線合成部33で各セグメントを合成するこ
とにより生成された境界曲線A0,A1から交点の計算
を行うセグメントを指定する。ここで、交点算出部34
は、先ずi=1のセグメントを抽出するように指定す
る。
【0076】ステップST702において、交点算出部
34は、上述のステップST701又はステップST7
09で指定されたセグメントS(i)を抽出する。
【0077】次のステップST703において、交点算
出部34は、上述のステップST702で指定したi番
目のセグメントS(i)と隣接するj番目のセグメントS(j)
を指定する。
【0078】次のステップST704において、交点算
出部34は、上述のステップST703で指定したj番
目のセグメントS(j)を境界曲線A0,A1から抽出す
る。
【0079】次のステップST705において、交点算
出部34は、セグメントS(i)とセグメントS(j)について
上述した図21を用いて説明した処理を行うことによ
り、セグメントS(i)とセグメントS(j)とが交差している
かを判定する。そして、交点算出部34は、セグメント
S(i)とセグメントS(j)とが交差していると判定したとき
にはステップST706に進み、S(i)とセグメントS(j)
とが交差していないと判定したときにはステップST7
07に進む。
【0080】ステップST706において、交点算出部
34は、ステップST705で求めた交点を交点リスト
に追加する処理を行う。
【0081】ステップST707において、交点算出部
34は、jについてインクリメントを行うことにより、
セグメントS(i)と交差しているか否かを求めるセグメン
トS(j)の次のセグメントS(j+1)を指定する。
【0082】次のステップST708において、交点算
出部34は、上述のステップST707で指定したセグ
メントS(j+1)が境界曲線A0,A1を構成するセグメン
トの数を超えたか否かを判断し、越えたと判断したとき
にはステップST709に進み、越えていないと判断し
たときにはステップST704に戻る。すなわち、交点
算出部34は、i番目のセグメントS(i)と、当該i番目
のセグメントS(i)とは他のセグメントとについて、ステ
ップST704〜ステップST708に示した処理を行
うことにより、セグメントS(i)と他のセグメントとが交
差する交点を求めて交点リストに追加する処理を行う。
【0083】ステップST709において、交点算出部
34は、iについてインクリメントを行うことにより、
セグメントS(i+1)を指定する。
【0084】次のステップST710において、交点算
出部34は、上述のステップST709で指定したセグ
メントS(i+1)が境界曲線A0,A1を構成するセグメン
トの数を超えたか否かを判断し、越えたと判断したとき
には交点を計算して求める処理を終了し、越えていない
と判断したときにはステップST702に戻る。すなわ
ち、交点算出部34は、境界曲線A0,A1を構成する
全てのセグメントについてステップST702〜ステッ
プST710に示す処理を行うことにより、ステップS
T709で指定した全てのセグメントが、ステップST
709で指定されていない他のセグメントと交差する交
点を算出して交点リストに追加する処理を行うことにな
る。
【0085】つぎに、上述のステップST601で求め
た交点リストを用いて、複数のセグメントで形成される
ループを除去する処理について図28のフローチャート
を用いて説明する。先ずステップST801において、
複数セグメントループ除去部35は、交点算出部34で
生成した交点リストをソートする処理を行う。すなわ
ち、複数セグメントループ除去部35は、交点リストを
ソートすることにより、ループを除去するときの優先順
位を決定する。すなわち、このステップST801にお
いて、複数セグメントループ除去部35は、交点リスト
に記述された交点を用いてループを検出し、ループ長が
最も小さいループを除去するように交点を指定する処理
を行う。なお、複数セグメントループ除去部35で行う
交点リストのソートは、後述する。
【0086】次のステップST802において、複数セ
グメントループ除去部35は、交点リストから、上述の
ステップST801で指定された交点を取り出す。
【0087】次のステップST803において、複数セ
グメントループ除去部35は、上述のステップST80
2で指定された交点のうち、ループ長の小さい方のルー
プを除去する処理を行う。複数セグメントループ除去部
35は、例えば図29(a)に示すような境界曲線A
0,A1の交点pが指定されたときには、図29(b)
に示すループR1と、図29(c)に示すループR2の
うちループR1を除去する処理を行う。このとき、複数
セグメントループ除去部35は、図30に示すように、
ループR1の各セグメントを構成する端点及び制御点を
交点pに集約することで、図30(a)に示す境界曲線
A0,A1を図30(b)に示す境界曲線A0,A1と
し、ループR1を除去する。このとき、複数セグメント
ループ除去部35は、ループR1を除去するとともに、
交点pを交点リストから削除する処理を行う。
【0088】次のステップST804において、複数セ
グメントループ除去部35は、交点リストを検索して、
境界曲線A0,A1に他の交点が存在するか否かを判定
する。そして、複数セグメントループ除去部35は、境
界曲線A0,A1に交点が存在すると判定したときには
ステップST801〜ステップST804までの処理を
行うことでループを除去する処理を行い、境界曲線A
0,A1に交点が存在しないと判定したときにはループ
を除去する処理を終了する。
【0089】つぎに、上述のステップST801で交点
リストをソートする処理について図31に示すフローチ
ャートを用いて説明する。
【0090】先ず、ステップST901において、複数
セグメントループ除去部35は、交点リストの最初に記
述された交点i=1を指定する処理を行い、ステップS
T902において、交点j=i+1を指定する。
【0091】次のステップST903において、複数セ
グメントループ除去部35は、上述のステップST90
1で指定したi番目の交点における2つのループのう
ち、ループ長の短いループを抽出し、ループRiとす
る。
【0092】また、ステップST904において、複数
セグメントループ除去部35は、上述のステップST9
02で指定したj番目の交点における2つのループのう
ち、ループ長の短いループを抽出し、ループRjとす
る。
【0093】次のステップST905において、複数セ
グメントループ除去部35は、ループRiのループ長
と、ループRjのループ長とを比較し、ループRiのル
ープ長がループRjのループ長よりも長いときにはステ
ップST906に進み、ループRiのループ長がループ
Rjのループ長よりも長くないときにはステップST9
12に進む。
【0094】ステップST906において、複数セグメ
ントループ除去部35は、交点リストのうち、k番目の
交点を指定する。ここで、ステップST906におい
て、複数セグメントループ除去部35は、k=1として
指定する処理をする。
【0095】次のステップST907において、上述の
ステップST906で指定したk番目の交点における2
つのループのうち、ループ長の短いループを抽出し、ル
ープRkとする。
【0096】次のステップST908において、複数セ
グメントループ除去部35は、ループRkのループ長
と、ループRjのループ長とを比較し、ループRkのル
ープ長の方がループRjのループ長よりも長いときには
ステップST909に進み、ループRkのループ長の方
がループRjのループ長よりも長くないときにはステッ
プST911に進む。
【0097】ステップST909において、複数セグメ
ントループ除去部35は、k番目の交点とj番目の交点
を交換する。すなわち、複数セグメントループ除去部3
5は、k番目の交点におけるループRkを最もループ長
の短いループとする。
【0098】次のステップST910において、複数セ
グメントループ除去部35は、k+1番目の交点を指定
する処理をする。
【0099】次のステップST911において、複数セ
グメントループ除去部35は、上述のステップST91
0において指定した交点kが交点iよりも大きいか否か
を判断する。そして、複数セグメントループ除去部35
は、交点kが交点iよりも小さいと判断したときにはス
テップST912に進み、交点kが交点iと等しい又は
大きいと判断したときにはステップST907に戻る。
すなわち、複数セグメントループ除去部35は、交点リ
ストのうち、交点iより後に記述されている交点kにお
けるループRkのループ長と、ループRiのループ長よ
りも短いループ長を有するループjのループ長とを比較
して、最も短いループ長のループRjを特定する。
【0100】ステップST912において、複数セグメ
ントループ除去部35は、交点iの次の交点i+1を指
定し、ステップST913において、ステップST91
2で指定した交点が交点リストに記述されている交点の
数を超えているか否かを判断し、越えていると判断した
ときには処理を終了し、越えていないと判断したときに
はステップST902に戻る。すなわち、複数セグメン
トループ除去部35は、交点リストに記述されている全
ての交点について上述のステップST902〜ステップ
ST913の処理を行うことにより、境界曲線A0,A
1に発生したループのうち、最もループ長の小さいルー
プを検出するとともに、ループ除去を行うときの優先順
位を決定する。
【0101】このような複数セグメントループ除去部3
5は、例えば図32(a)に示すようなループR1〜R
4が発生された境界曲線A0,A1についてループ除去
処理を行うときには、上述の図31を用いて説明した処
理を行うことで、ループを除去するときの優先順位を決
定し、図28を用いて説明した処理を行うことで、図3
2(b)に示すように先ずループR1を除去し、次に図
32(c)に示すようにループR4を除去し、次に図3
2(d)に示すようにループR2を除去することによ
り、境界曲線A0,A1に発生されたループを除去する
ことができる。
【0102】以上説明したように、曲線編集装置1は、
セグメント単位ループ除去部32で単一のセグメントで
発生したループを除去するとともに、複数セグメントル
ープ除去部35で複数のセグメントで形成されたループ
を除去するので、境界曲線A0,A1の編集を行うこと
で境界曲線A0,A1の形状を変形したことにより生じ
たループを曲線変形部12により除去することができ
る。
【0103】更に、この曲線編集装置1は、単一のセグ
メントで形成されたループを除去するとき、上述の図1
5で示すように粗判定を行うことによりループ発生の有
無の可能性を判定し、粗判定の後に精密な精判定を行う
ので、ループが明らかに発生していないセグメントにつ
いてはループを除去するための処理量を低減させること
ができる。
【0104】なお、上述した曲線編集装置1の説明にお
いては、ユーザが操作入力部6を操作することにより幅
値及びオフセット値を生成して境界曲線A0,A1の形
状を変化させることを説明したが、変形前における境界
曲線A0,A1に対応する点列の座標情報をリファレン
スデータとして保持し、境界曲線A0,A1の全周に亘
って当該リファレンスデータに対する相対値として幅値
及びオフセット値を生成しても良い。これにより、曲線
編集装置1は、境界曲線A0,A1を変形させるときに
おける操作入力部6を操作するユーザの処理量を低減さ
せることができる。
【0105】また、上述した曲線編集装置1は、境界曲
線A0,A1上にいくつかの特徴点を設定し、当該特徴
点における幅値及びオフセット値を設定することで、境
界曲線A0,A1の形状を変化させても良い。このと
き、曲線編集装置1は、各特徴点間に設定された幅値及
びオフセット値を補間することにより全周に亘って境界
曲線A0,A1の形状を変形させることができるととも
に、一部の特徴点に幅値及びオフセット値を与えること
で、境界曲線A0,A1の一部についてのみ形状を変化
させることができる。
【0106】
【発明の効果】以上詳細に説明したように、本発明に係
る曲線編集装置及び方法は、編集処理がなされることで
形成されたループを各セグメントごとに検出し、複数の
セグメントで形成されたループを検出し、検出されたル
ープを除去するので、境界曲線を編集した結果発生した
ループをセグメント単位又は相互のセグメントで形成さ
れていることを検出してループを除去することができ
る。
【0107】また、本発明に係る曲線ループ検出方法及
び装置は、画像内に含まれる対象物の輪郭形状を示す境
界曲線を構成し、端点及び制御点で定義されるベジェ曲
線からなる各セグメントの端点と制御点とを結ぶベクト
ルを各セグメントの端点を結ぶ直線上に投影して上記ベ
クトルの方向を検出することで単一のセグメントでルー
プが形成されているか否かを判定し、単一のセグメント
でループが形成されていると判定されたセグメントを分
割し、分割することで生成した各セグメントについての
端点及び制御点を結んで各セグメントを囲む矩形領域を
設定し、各矩形領域が重複しているか否かを判定して単
一のセグメントでループが形成されているか否かを判定
するので、ループが明らかに発生していないセグメント
についてはループを除去するための処理量を低減させる
ことができる。
【0108】更に、本発明に係る曲線ループ除去方法及
び装置は、画像内に含まれる対象物の輪郭形状を示す境
界曲線を分割してなる各セグメントが交差してループが
形成されていることを示す交点情報を用いて各交点にお
いて接する複数のループをループ長に応じて抽出し、ル
ープ長に応じて各交点において接する複数のループを除
去するので、交点情報を用いて各交点において接する複
数のループをループ長の大きさに応じて、ループ長の大
きい順又は小さい順に除去することができる。
【図面の簡単な説明】
【図1】本発明を適用した曲線編集装置の構成を示すブ
ロック図である。
【図2】境界曲線A0及び境界曲線A1とを説明するた
めの図である。
【図3】演算処理部により編集処理がなされる境界曲線
を説明するための図である。
【図4】本発明を適用した曲線編集装置に備えられる演
算処理部の構成を示すブロック図である。
【図5】演算処理部に備えられる曲線変形部の構成を示
すブロック図である。
【図6】図2に示した境界曲線A0,A1の幅をk倍す
るとともに内側にLだけ移動させる処理を説明するため
の図である。
【図7】図2に示した境界曲線A0,A1上の点pc近
傍を外側に移動させるとともに、点pa近傍の幅を大き
くする処理を説明するための図である。
【図8】ループ除去部の構成を示すブロック図である。
【図9】曲線変形部により変形された結果、境界曲線に
発生するループについて説明するための図である。
【図10】複数セグメントで構成されたループについて
説明するための図である。
【図11】演算処理部により2本の境界曲線を変形する
ときの処理を示すフローチャートである。
【図12】曲線変形部により境界曲線を変形するときの
処理を示すフローチャートである。
【図13】(a)に示す境界曲線上の点p0,p1を
(b)に示す境界曲線上の点p0’,p1’の位置に移
動させるときの座標情報の計算方法を説明するための図
である。
【図14】曲線変形部により各境界曲線について変形処
理が施されたことにより発生するループを、ループ除去
部により除去する処理を示すフローチャートである。
【図15】ループ除去部により単一のセグメントで構成
されたループを除去する処理を示すフローチャートであ
る。
【図16】セグメントについてループが存在しているか
否かの可能性を検出する粗判定を行うときの一例につい
て説明するための図である。
【図17】セグメントについてループが存在しているか
否かの可能性を検出する粗判定を行うときの他の一例に
ついて説明するための図である。
【図18】セグメントについてループが存在しているか
否かの可能性を検出する粗判定を行うときの他の一例に
ついて説明するための図である。
【図19】(a)は打ち出し速度について説明するため
の図であり、(b)はセグメント単位ループ除去部によ
り打ち出し速度を下げる処理を行うことによりp0p1
及びp3p2を短縮してループを除去することを説明す
るための図である。
【図20】座標t=0〜t=1で表現されたセグメント
上の座標t=0.5の位置で分離して2つのセグメント
とすることを説明するための図である。
【図21】単一のセグメントを分割して生成された2つ
のセグメントが交差しているか否かの判定を行うときの
処理を示すフローチャートである。
【図22】分割して得た各セグメントを囲むように形成
されるバウンディングボックスを説明するための図であ
る。
【図23】セグメント単位ループ除去部により分割して
得た各セグメントについての曲率を求める処理を説明す
るための図である。
【図24】セグメントsaを直線p0p1に近似すると
ともにセグメントsbを直線q0q10で近似し交点c
を求めることを説明するための図である。
【図25】(a)は、分割して得た2つのセグメント及
びバウンディングボックスを示す図であり、(b)は
(a)に示した各セグメントを更に分割することを説明
するための図であり、(c)は(b)に示した各セグメ
ントを更に分割することを説明するための図であり、バ
ウンディングボックスで囲む矩形領域を縮小していくこ
とを説明するための図である。
【図26】ループ除去部により複数のセグメントで形成
されるループを除去する処理を示すフローチャートであ
る。
【図27】交点算出部により複数のセグメントで形成さ
れた交点を計算することにより求める処理を示すフロー
チャートである。
【図28】交点リストを用いて複数のセグメントで形成
されるループを除去する処理を示すフローチャートであ
る。
【図29】(a)は境界曲線の一例を示す図であり、
(b)及び(c)は交点pにより定義されるループR1
及びループR2を説明するための図である。
【図30】、複数セグメントループ除去部によりループ
R1の各セグメントを構成する端点及び制御点を交点p
に集約してループを除去することを説明するための図で
ある。
【図31】交点リストをソートする処理について説明す
るための図である。
【図32】(a)はループR1〜R4が発生された境界
曲線の一例を示す図であり、(b)は最初にループR1
を除去することを説明するための図であり、(c)は次
にループR4を除去することを説明するための図であ
り、(d)は次にループR2を除去することを説明する
ための図である。
【図33】境界曲線A0,A1を変形することでループ
が生ずることを説明するための図である。
【図34】境界曲線A0,A1を変形することでループ
が生ずることを説明するための図である。
【符号の説明】
1 曲線編集装置、2 演算処理部、12 曲線変形
部、22A,22B 点列生成部、23 点列移動部、
24A,24B 曲線合成部、13A,13B ループ
除去部、32 セグメント単位ループ除去部、34 交
点算出部、35 複数セグメントループ除去部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 戸塚 卓志 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 Fターム(参考) 5B050 AA08 AA09 BA07 EA06 EA21 5B057 CA12 CA17 CB12 CB17 CF10 DC05 DC08 DC16 DC30 5B080 AA06 BA07 5C023 AA01 AA07 AA34 AA38 AA40 BA01 BA02 CA01 DA04 DA08 5L096 FA06 FA07 FA67 FA68

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 画像内に含まれる対象物の輪郭形状を示
    し複数のセグメントからなる境界曲線の形状を編集する
    編集手段と、 上記編集手段で編集処理がなされることで形成されたル
    ープを各セグメントごとに検出する第1の検出手段と、 複数のセグメントで形成されたループを検出する第2の
    検出手段と、 上記第1の検出手段及び第2の検出手段で検出されたル
    ープを除去するループ除去手段とを備えることを特徴と
    する曲線編集装置。
  2. 【請求項2】 上記第1の検出手段は、画像内に含まれ
    る対象物の輪郭形状を示す境界曲線を構成し、端点及び
    制御点で定義されるベジェ曲線からなる各セグメントの
    端点と制御点とを結ぶベクトルを各セグメントの端点を
    結ぶ直線上に投影して上記ベクトルの方向を検出するこ
    とで単一のセグメントでループが形成されているか否か
    を判定する粗判定手段と、上記粗判定手段で単一のセグ
    メントでループが形成されていると判定されたセグメン
    トを分割し、分割することで生成した各セグメントにつ
    いての端点及び制御点を結んで各セグメントを囲む矩形
    領域を設定し、各矩形領域が重複しているか否かを判定
    して単一のセグメントでループが形成されているか否か
    を判定する精判定手段とを備えることを特徴とする請求
    項1記載の曲線編集装置。
  3. 【請求項3】 上記精判定手段は、分割することで生成
    した各セグメントの曲率を算出して直線近似できるか否
    かを判定し、直線近似できると判断したら分割すること
    で生成した各セグメントを直線近似して交点を算出する
    ことを特徴とする請求項2記載の曲線編集装置。
  4. 【請求項4】 画像内に含まれる対象物の輪郭形状を示
    す境界曲線を分割してなる各セグメントが交差してルー
    プが形成されていることを示す交点情報を用いて各交点
    において接する複数のループをループ長に応じて抽出す
    るループ抽出手段を備え、 上記ループ除去手段は、上記ループ抽出手段で抽出され
    たループを除去することを特徴とする請求項1記載の曲
    線編集装置。
  5. 【請求項5】 上記ループ抽出手段は、上記交点情報が
    示す各交点において接する複数のループのうち、最もル
    ープ長の小さいループを抽出し、 上記ループ除去手段は、上記ループ抽出手段で抽出され
    たループを除去することで境界曲線に形成されたループ
    のうち、ループ長の小さい順にループを除去することを
    特徴とする請求項4記載の曲線編集装置。
  6. 【請求項6】 画像内に含まれる対象物の輪郭形状を示
    し複数のセグメントからなる境界曲線の形状を編集する
    編集処理と、 上記編集処理がなされることで形成されたループを各セ
    グメントごとに検出する第1の検出処理と、 複数のセグメントで形成されたループを検出する第2の
    検出処理と、 上記第1の検出処理及び第2の検出処理で検出されたル
    ープを除去するループ除去処理とを有することを特徴と
    する曲線編集方法。
  7. 【請求項7】 上記第1の検出処理は、画像内に含まれ
    る対象物の輪郭形状を示す境界曲線を構成し、端点及び
    制御点で定義されるベジェ曲線からなる各セグメントの
    端点と制御点とを結ぶベクトルを各セグメントの端点を
    結ぶ直線上に投影して上記ベクトルの方向を検出するこ
    とで単一のセグメントでループが形成されているか否か
    を判定する粗判定処理と、上記粗判定処理で単一のセグ
    メントでループが形成されていると判定されたセグメン
    トを分割し、分割することで生成した各セグメントにつ
    いての端点及び制御点を結んで各セグメントを囲む矩形
    領域を設定し、各矩形領域が重複しているか否かを判定
    して単一のセグメントでループが形成されているか否か
    を判定する精判定処理とを有することを特徴とする請求
    項6記載の曲線編集方法。
  8. 【請求項8】 上記精判定処理は、分割することで生成
    した各セグメントの曲率を算出して直線近似できるか否
    かを判定し、直線近似できると判断したら分割すること
    で生成した各セグメントを直線近似して交点を算出する
    ことを特徴とする請求項6記載の曲線編集方法。
  9. 【請求項9】 上記ループ除去処理は、画像内に含まれ
    る対象物の輪郭形状を示す境界曲線を分割してなる各セ
    グメントが交差してループが形成されていることを示す
    交点情報を用いて各交点において接する複数のループを
    ループ長に応じて抽出し、ループ長に応じて各交点にお
    いて接する複数のループを除去することを特徴とする請
    求項6記載の曲線編集方法。
  10. 【請求項10】 上記ループ除去処理は、上記交点情報
    が示す各交点において接する複数のループのうち、最も
    ループ長の小さいループを抽出し、境界曲線に形成され
    たループのうち、ループ長の小さい順にループを除去す
    ることを特徴とする請求項9記載の曲線編集方法。
  11. 【請求項11】 画像内に含まれる対象物の輪郭形状を
    示す境界曲線を構成し、端点及び制御点で定義されるベ
    ジェ曲線からなる各セグメントの端点と制御点とを結ぶ
    ベクトルを各セグメントの端点を結ぶ直線上に投影して
    上記ベクトルの方向を検出することで単一のセグメント
    でループが形成されているか否かを判定する粗判定処理
    と、 上記粗判定処理で単一のセグメントでループが形成され
    ていると判定されたセグメントを分割し、分割すること
    で生成した各セグメントについての端点及び制御点を結
    んで各セグメントを囲む矩形領域を設定し、各矩形領域
    が重複しているか否かを判定して単一のセグメントでル
    ープが形成されているか否かを判定する精判定処理とを
    有することを特徴とする曲線ループ検出方法。
  12. 【請求項12】 上記精判定処理は、分割することで生
    成した各セグメントの曲率を算出して直線近似できるか
    否かを判定し、直線近似できると判断したら分割するこ
    とで生成した各セグメントを直線近似して交点を算出す
    ることを特徴とする請求項11記載の曲線ループ検出方
    法。
  13. 【請求項13】 画像内に含まれる対象物の輪郭形状を
    示す境界曲線を構成し、端点及び制御点で定義されるベ
    ジェ曲線からなる各セグメントの端点と制御点とを結ぶ
    ベクトルを各セグメントの端点を結ぶ直線上に投影して
    上記ベクトルの方向を検出することで単一のセグメント
    でループが形成されているか否かを判定する粗判定手段
    と、 上記粗判定手段で単一のセグメントでループが形成され
    ていると判定されたセグメントを分割し、分割すること
    で生成した各セグメントについての端点及び制御点を結
    んで各セグメントを囲む矩形領域を設定し、各矩形領域
    が重複しているか否かを判定して単一のセグメントでル
    ープが形成されているか否かを判定する精判定手段とを
    備えることを特徴とする曲線ループ検出装置。
  14. 【請求項14】 上記精判定手段は、分割することで生
    成した各セグメントの曲率を算出して直線近似できるか
    否かを判定し、直線近似できると判断したら分割するこ
    とで生成した各セグメントを直線近似して交点を算出す
    ることを特徴とする請求項13記載の曲線ループ検出装
    置。
  15. 【請求項15】 画像内に含まれる対象物の輪郭形状を
    示す境界曲線を分割してなる各セグメントが交差してル
    ープが形成されていることを示す交点情報を用いて各交
    点において接する複数のループをループ長に応じて抽出
    し、 ループ長に応じて各交点において接する複数のループを
    除去することを特徴とする曲線ループ除去方法。
  16. 【請求項16】 上記交点情報が示す各交点において接
    する複数のループのうち、最もループ長の小さいループ
    を抽出し、 境界曲線に形成されたループのうち、ループ長の小さい
    順にループを除去することを特徴とする請求項15記載
    の曲線ループ除去方法。
  17. 【請求項17】 画像内に含まれる対象物の輪郭形状を
    示す境界曲線を分割してなる各セグメントが交差してル
    ープが形成されていることを示す交点情報を用いて各交
    点において接する複数のループをループ長に応じて抽出
    するループ抽出手段と、 上記ループ抽出手段で抽出されたループを除去するルー
    プ除去手段とを備えることを特徴とする曲線ループ除去
    装置。
  18. 【請求項18】 上記ループ抽出手段は、上記交点情報
    が示す各交点において接する複数のループのうち、最も
    ループ長の小さいループを抽出し、 上記ループ除去手段は、上記ループ抽出手段で抽出され
    たループを除去することで境界曲線に形成されたループ
    のうち、ループ長の小さい順にループを除去することを
    特徴とする請求項17記載の曲線ループ除去装置。
JP26868898A 1998-09-22 1998-09-22 曲線編集装置及び方法、曲線ループ検出方法及び装置並びに曲線ループ除去方法及び装置 Withdrawn JP2000099733A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP26868898A JP2000099733A (ja) 1998-09-22 1998-09-22 曲線編集装置及び方法、曲線ループ検出方法及び装置並びに曲線ループ除去方法及び装置
US09/398,866 US6535213B1 (en) 1998-09-22 1999-09-20 Curve edition system, curve-loop detecting system, curve-loop removing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26868898A JP2000099733A (ja) 1998-09-22 1998-09-22 曲線編集装置及び方法、曲線ループ検出方法及び装置並びに曲線ループ除去方法及び装置

Publications (1)

Publication Number Publication Date
JP2000099733A true JP2000099733A (ja) 2000-04-07

Family

ID=17462013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26868898A Withdrawn JP2000099733A (ja) 1998-09-22 1998-09-22 曲線編集装置及び方法、曲線ループ検出方法及び装置並びに曲線ループ除去方法及び装置

Country Status (1)

Country Link
JP (1) JP2000099733A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006517042A (ja) * 2003-01-15 2006-07-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 三次元の変形可能なモデルを三次元の物体の略管状の面に自動的に適合させる画像処理方法
JP2008186477A (ja) * 2008-04-07 2008-08-14 Sony Corp 画像処理装置、画像処理方法及び画像処理プログラム
JP2012053691A (ja) * 2010-09-01 2012-03-15 Canon Inc 画像処理方法、画像処理装置、及び、プログラム
KR20190051526A (ko) * 2017-11-07 2019-05-15 포항공과대학교 산학협력단 3차원 트리 구조 이미지의 형태 분석 시스템 및 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006517042A (ja) * 2003-01-15 2006-07-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 三次元の変形可能なモデルを三次元の物体の略管状の面に自動的に適合させる画像処理方法
JP2008186477A (ja) * 2008-04-07 2008-08-14 Sony Corp 画像処理装置、画像処理方法及び画像処理プログラム
JP2012053691A (ja) * 2010-09-01 2012-03-15 Canon Inc 画像処理方法、画像処理装置、及び、プログラム
KR20190051526A (ko) * 2017-11-07 2019-05-15 포항공과대학교 산학협력단 3차원 트리 구조 이미지의 형태 분석 시스템 및 방법
KR101979906B1 (ko) * 2017-11-07 2019-05-20 포항공과대학교 산학협력단 3차원 트리 구조 이미지의 형태 분석 시스템 및 방법

Similar Documents

Publication Publication Date Title
US6535213B1 (en) Curve edition system, curve-loop detecting system, curve-loop removing system
JP2806961B2 (ja) 画像符号化方法
JP3391864B2 (ja) 画像データ処理方法及び装置及びグラフィックシステム
JP3352181B2 (ja) 画像データ処理方法および装置
US7079144B1 (en) Curve generating device and method, and program recorded medium
Sari et al. Interactive image inpainting of large-scale missing region
JP2000099733A (ja) 曲線編集装置及び方法、曲線ループ検出方法及び装置並びに曲線ループ除去方法及び装置
JPH05334383A (ja) 画像図形編集装置
US6404434B1 (en) Curve generating apparatus and method, storage medium storing curve generating program, and method of setting associate points
JP2002099911A (ja) ラスタ像のベクトル化のコンピュータ自動化による方法
US8520951B2 (en) Image processing method, image processing apparatus, and computer readable storage medium
JP5566158B2 (ja) 画像処理方法、画像処理装置、及びプログラム
JP2000099732A (ja) 曲線編集装置及び方法
US5568565A (en) Handwriting input method and apparatus
US5694536A (en) Method and apparatus for automatic gap closing in computer aided drawing
JP2007293829A (ja) 画像処理方法及び画像処理装置
US5574839A (en) Method and apparatus for automatic gap closing in computer aided drawing
JP2000348207A (ja) 画像描画方法、画像描画装置及び記録媒体
JP3332511B2 (ja) 画像データ処理方法及び装置及びグラフィックシステム
JP5629483B2 (ja) 画像処理方法、画像処理装置、及びプログラム
KR100392516B1 (ko) 보간되지 않은 볼륨 데이터의 실시간 렌더링 방법
JP5028174B2 (ja) 画像処理装置、画像処理方法、及び、画像処理プログラム
JP3521049B2 (ja) 曲線生成装置及び曲線生成方法
JPH11120379A (ja) コンピュータ画像データ作成・表示方法
JPH11272879A (ja) データ処理方法、および該方法に係るプログラムを格納した記憶媒体

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060110