JP2904671B2 - 多階調画像の修正装置 - Google Patents

多階調画像の修正装置

Info

Publication number
JP2904671B2
JP2904671B2 JP5069261A JP6926193A JP2904671B2 JP 2904671 B2 JP2904671 B2 JP 2904671B2 JP 5069261 A JP5069261 A JP 5069261A JP 6926193 A JP6926193 A JP 6926193A JP 2904671 B2 JP2904671 B2 JP 2904671B2
Authority
JP
Japan
Prior art keywords
data
vector
contour
image data
image
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
JP5069261A
Other languages
English (en)
Other versions
JPH06261209A (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.)
Dainippon Screen Manufacturing Co Ltd
Original Assignee
Dainippon Screen Manufacturing Co Ltd
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 Dainippon Screen Manufacturing Co Ltd filed Critical Dainippon Screen Manufacturing Co Ltd
Priority to JP5069261A priority Critical patent/JP2904671B2/ja
Priority to EP19940103065 priority patent/EP0614154A3/en
Publication of JPH06261209A publication Critical patent/JPH06261209A/ja
Priority to US08/573,599 priority patent/US5724454A/en
Application granted granted Critical
Publication of JP2904671B2 publication Critical patent/JP2904671B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • G06T5/30Erosion or dilatation, e.g. thinning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/409Edge or detail enhancement; Noise or error suppression
    • H04N1/4097Removing errors due external factors, e.g. dust, scratches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10008Still image; Photographic image from scanner, fax or copier

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、多階調画像を修正す
る装置に関する。
【0002】
【従来の技術】スキャナで読み込まれた画像には、原稿
についた「こすれキズ」やホコリ等によって画像欠陥が
生じることが多い。また、画像読取の際の電気的なノイ
ズや光学系の汚れも画像欠陥を生じる原因となる。従来
は、製版処理の前処理として多階調画像をCRTに表示
し、オペレータが画像欠陥の部分に他の正常な部分の画
素の濃度データをコピーすることにより画像欠陥を消去
していた。
【0003】画像欠陥の消去は画像の修正処理の1つで
あり、多階調画像を修正する他の処理としてはレタッチ
が良く知られている。近年ではディスプレイ上に表示さ
れたカラー画像をライトペンなどを用いて修正する電子
的なレタッチも行なわれている。電子的なレタッチにお
いても、多階調画像を修正する際には修正すべき画素位
置に他の部分の画素における画像データをコピーすると
いう手法によって画像を修正することがある。
【0004】
【発明が解決しようとする課題】従来は、画素ごとの濃
度値を他の場所からコピーすることによって多階調画像
を修正していたので、修正すべき画素位置と、その画素
位置にコピーすべき画像の位置とをオペレータが指定し
なければならず、煩雑な手間を要していた。
【0005】この発明は、従来技術における上述の課題
を解決するためになされたものであり、多階調画像を容
易に修正することのできる多階調画像の修正装置を提供
することを目的とする。
【0006】
【課題を解決するための手段】上述の課題を解決するた
め、この発明による第1の装置では、(A)多階調画像
の濃度を画素ごとに表現した多階調画像データを記憶す
る第1の記憶手段と、(B)複数の濃度レベルをしきい
値として前記多階調画像データを2値化することによ
り、複数の2値画像データを作成する2値化手段と、
(C)前記複数の2値画像データを記憶する第2の記憶
手段と、(D)前記複数の2値画像データのそれぞれ
を、該2値画像データによって表わされる2値画像の輪
郭を表わす輪郭ベクトルデータに変換する輪郭抽出手段
と、(E)前記複数の輪郭ベクトルデータに対して収縮
処理を実行することによって、前記複数の輪郭データ
表わされる複数の2値画像輪郭の凹凸を減少させ、その
後、収縮後の複数の輪郭ベクトルデータに対して膨張処
理を実行することによって、輪郭が修正された複数の2
値画像輪郭を表す輪郭修正後の複数の輪郭ベクトルデー
タを生成する輪郭修正手段と、(F)前記輪郭修正後の
複数の輪郭ベクトルデータを多階調画像データに復元す
る復元手段と、を備える。
【0007】また、この発明による第2の装置では、
(A)多階調画像の濃度を画素ごとに表現した多階調画
像データを記憶する第1の記憶手段と、(B)複数の濃
度レベルをしきい値として前記多階調画像データを2値
化することにより、複数の2値画像データを作成する2
値化手段と、(C)前記複数の2値画像データを記憶す
る第2の記憶手段と、(D)前記複数の2値画像データ
のそれぞれを、該2値画像データによって表わされる2
値画像の輪郭を表わす輪郭ベクトルデータに変換する輪
郭抽出手段と、(E)前記複数の輪郭ベクトルデータに
対して収縮処理を実行することによって、前記複数の輪
郭データで表わされる複数の2値画像輪郭の凹凸を減少
させ、その後、収縮後の複数の輪郭ベクトルデータに対
して膨張処理を実行することによって、輪郭が修正され
た複数の2値画像輪郭を表す輪郭修正後の複数の輪郭ベ
クトルデータを生成する輪郭修正手段と、(F)前記輪
郭修正後の複数の輪郭ベクトルデータを多階調画像デー
タに復元する復元手段と、を備える。
【0008】第1と第2の装置において、さらに、
(G)修正したい2値画像輪郭部分を含むように、多階
調画像内の修正すべき領域を指定する指定手段と、
(H)復元手段によって復元された多階調画像データか
ら、前記修正すべき領域内の画像を表わすデータ部分を
抽出するとともに、該抽出したデータ部分によって、修
正前の多階調画像データの対応するデータ部分を置き換
えることにより、修正後の多階調画像データを作成する
データ修正手段と、を備えることが好ましい。
【0009】
【作用】第1の装置の2値化手段が多階調画像データを
変換して作成した複数の2値画像データには、多階調画
像内の輪郭が含まれている。複数の2値画像データにつ
いて収縮処理を実行すると輪郭の凹凸が減少し、その
後、それらの複数の2値画像データについて膨張処理を
行うと、凹凸が減少した輪郭が得られる。そして、復元
手段が輪郭修正後の複数の2値画像データを多階調画像
に復元すれば、画像内の輪郭が修正された多階調画像が
得られる。
【0010】第2の装置の輪郭抽出手段は、2値画像デ
ータを輪郭ベクトルデータに変換するので、2値画像デ
ータに含まれている多階調画像内の輪郭が輪郭ベクトル
データによって表わされる。輪郭修正手段が輪郭ベクト
ルデータについて収縮処理を実行すると輪郭の凹凸が減
し、その後、それらの複数の輪郭ベクトルデータにつ
いて膨張処理を行うと、凹凸が減少した輪郭が得られ
る。そして、復元手段が輪郭修正後の複数の輪郭ベクト
ルデータを多階調画像に復元すれば、画像内の輪郭が修
正された多階調画像が得られる。
【0011】修正したい2値画像輪郭部分を含むよう
に、指定手段で修正すべき領域を指定し、データ修正手
段でその修正すべき領域における元の多階調画像データ
を輪郭修正後の多階調画像データで置き換えるようにす
れば、画像全体を収縮・膨張処理する場合に生じ易い画
質の劣化を防止できる。
【0012】
【実施例】以下の順序に従ってこの発明の実施例を説明
する。 A.第1の実施例: A1.装置の構成: A2.輪郭修正処理の手順: A3.第1の実施例の変形例:
【0013】B.第2の実施例: B1.画素輪郭と境界輪郭: B2.装置の構成: B3.輪郭修正処理の手順: B4.輪郭ベクトルデータから画像データへの復元処
理: B5.第2の実施例の変形例:
【0014】C.輪郭抽出処理の詳細: C1.輪郭抽出に関連する装置の構成: C2.ランデータへの変換方法: C3.ベクトル検出時の接続処理の内容: C4.接続処理の詳細手順: C5.ベクトル検出処理の詳細: C6.輪郭抽出の全体処理手順: C7.輪郭抽出の変形例: D.その他の変形例
【0015】A.第1の実施例: A1.装置の構成:図1はこの発明の一実施例としての
画像処理装置を示すブロック図である。この画像処理装
置は、CPU10と、バスライン12とを備えている。
バスライン12には、主メモリ14と、補助メモリ16
とが接続されており、また、入出力インタフェイス30
を介してキーボード33と、マウス34と、カラーCR
T36と、磁気ディスク38とが接続されている。磁気
ディスク38には多階調画像データが記憶されている。
【0016】補助メモリ16はこの発明における第1と
第2の記憶手段に相当し、マウス34は指定手段に相当
する。主メモリ14に記憶されたプログラムをCPU1
0が実行することによって実現される2値化処理部10
a、膨張・収縮処理部10b、多階調画像復元部10
c、および多階調画像修正部10dは、この発明におけ
る2値化手段と輪郭修正手段と復元手段とデータ修正手
段とにそれぞれ相当する。なお、これらの処理部10
a,10b,復元部10c,および修正部10dは、ハ
ードウエアで実現するようにしてもよい。
【0017】A2.輪郭修正処理の手順:図2は、第1
の実施例における処理手順を示すフローチャートであ
る。ステップTT1では、処理対象となる多階調画像
(以下「原画像」と呼ぶ)をオペレータが選択してカラ
ーCRT36に表示する。図3は、表示された原画像の
一例を示す平面図であり、図3(A)はキズのない原画
像を示し、図3(B)はキズDFのある原画像を示して
いる。この実施例では、原画像はカラー画像であり、原
画像を表わす多階調画像データはRGBの3原色の輝度
データを含んでいるものとする。
【0018】図3(B)のようにキズDFを含む場合に
は、ステップTT2において図3(C)に示すキズマス
クDMと処理領域SAとをマウス34を用いて指定す
る。キズマスクDMはキズDFを含む領域、例えば矩形
の領域であり、処理領域SAはキズマスクDMを含む矩
形の領域である。処理領域SAを表わす多階調画像デー
タは、補助メモリ16内の画像データバッファ20に記
憶される。キズマスクDMの内部は、画像データバッフ
ァ20内において白色(または黒色)に塗りつぶされ
る。例えばRGBの各色の輝度が8ビットで表わされて
いる場合には、キズマスクDM内の輝度値が各色とも2
55(または0)に設定される。多階調画像の原点Oを
基準としたキズマスクDMの輪郭点の座標データは、補
助メモリ16内のキズデータバッファ22に記憶され
る。
【0019】キズマスクDMは、この発明における「修
正すべき領域」に相当する。なお、キズマスクDMはキ
ズDFを含む領域であればよく、その形状は任意であ
る。また、処理領域SAは、オペレータが指定せずに、
キズマスクDMを含む領域(例えばキズマスクDMに外
接する矩形の領域)を処理領域SAとして自動的に決定
しても良い。
【0020】ステップTT3では、2値化処理部10a
が処理領域SAの多階調画像データに対して2値化処理
を行なう。図4はステップTT3における2値化処理の
詳細手順を示すフローチャートである。ステップTT3
1では、RGBの3色の中から対象色を1つ選択する。
そして、ステップTT32では2値化のしきい値Dthを
0に初期化し、ステップTT33ではしきい値Dthに1
が加算される。
【0021】ステップTT34では、しきい値Dthを用
いて多階調画像データを2値化することにより2値画像
データが作成される。すなわち、多階調画像データの値
がしきい値Dth未満の画素については2値画像データの
値を0(黒色を示す)とし、しきい値Dth以上の画素に
ついては2値画像データの値を1(白色を示す)とす
る。
【0022】ステップTT35では、現在のしきい値D
thを所定の最大値Dmaxと比較する。この最大値Dmax
は、画像データの最大値(8ビットの場合には255)
である。しきい値Dthが最大値Dmax に等しくない場合
にはステップTT33に戻り、しきい値Dthを1つ増加
して2値化処理を繰り返す。
【0023】図5は、2値化処理の結果を示す説明図で
ある。図5(A)は処理領域SA内の多階調画像を示
し、図5(B)は2値化処理によって得られた2値画像
を重ねて上から見た状態を示している。また、図5
(C)は、図5(B)を矢印Cの方向にやや上方から見
た斜視図である。なお、図5の例では簡単化するため
に、処理領域SA内において多階調画像データDiの値
が1から9の範囲にあるものとしている。この実施例で
は、多階調画像データは輝度を表わすので、白色のキズ
マスクの領域における多階調画像データDiの値は9で
ある。図5(A)の多階調画像データに対して、しきい
値Dthを1〜9の範囲で変化させて2値化を行なうと、
図6に示す9組の2値画像が得られる。図5(B),
(C)は、これらの2値画像の白色領域のみを重ねて示
したものである。図6の各2値画像において、白色の領
域は2値画像データDpの値が1の領域であり、斜線を
付した領域は2値画像データDpの値が0の領域であ
る。キズマスクDMの形状は、図6(A)〜(G)の7
組の2値画像において観察される。9つの2値画像を表
わす2値画像データは、補助メモリ16内の画像データ
バッファ20に記憶される。なお、補助メモリ16の容
量が不足する場合には、2値画像データを磁気ディスク
38に一旦保存するようにしても良い。
【0024】図4に戻り、ステップTT36ではRGB
の3色すべてについて2値化処理が終了したか否かが判
断され、終了していなければステップTT31に戻り次
の色を選択して上述した2値化処理を実行する。
【0025】こうしてRGBのすべての色について2値
化処理が終了すると、図2のステップTT4において各
2値画像を収縮し、ステップTT5において膨張するこ
とによってキズを消去する。図7は2値画像の収縮と膨
張の処理を示す説明図である。図7(A)は、図6
(E)に示す2値画像の白色部WAの輪郭を示してい
る。図7(A)の2値画像について白色部WAを収縮す
ると、図7(B)に示すようなキズマスクの形状が消え
た白色部WA1が得られる。収縮処理は、2値画像に含
まれるキズマスクDMの形状を消去するために行なうも
のであり、キズマスクDMの幅WDMの1/2以上の幅で
白色部WAを収縮する。キズマスクDMの幅は、補助メ
モリ16内のキズデータバッファ22に記憶されている
キズマスクの座標データに基づいて算出される。収縮処
理の後、収縮幅と同じ幅で膨張処理を行なうと、図7
(C)に示すように、キズマスクDMの形状を含まない
2値画像が得られる。
【0026】なお、収縮処理と膨張処理はそれぞれ「細
らせ」および「太らせ」とも呼ばれる処理であり、8近
傍ウィンドウを用いて実行することができる。なお、白
色領域WAの収縮処理は黒色領域の膨張処理と等価であ
り、白色領域の膨張処理は黒色領域の収縮処理と等価で
ある。
【0027】上記の収縮処理と膨張処理が各2値画像に
対してそれぞれ実行されると、図7(D)および(E)
に示すように、各2値画像内のキズマスクに相当する形
状が消去される。
【0028】図2のステップTT6では、多階調画像復
元部10cが2値画像から多階調画像を復元する。図8
(A)に示すように、各2値画像の白色領域における2
値画像データDpの値は1なので、これらの2値画像デ
ータDpの値を画素ごとを単純に加算するだけで、図8
(B)に示す多階調画像データDiが得られる。
【0029】図8に示す多階調画像データDiは、キズ
のない画像であるが、画像の収縮と膨張を行なったの
で、キズ以外の部分の画像が劣化する場合がある。そこ
で、図2のステップTT7では、多階調画像修正部10
dが、キズ消去後の多階調画像(図8(B))の中から
キズマスクDMの領域のデータを抽出し、抽出した画像
データで原画像データを置き換える。この際、図9に示
すように、キズデータバッファ22に記憶されたキズマ
スクDM(図9(B))の輪郭点の座標からキズマスク
DMの領域が判断され、キズ消去後の多階調画像データ
(図9(A))の中からキズマスクDMの領域内でデー
タだけが抽出されて原画像データにコピーされる。こう
して得られた多階調画像は、図9(C)に示すように、
キズマスクDMの領域だけが更新されているので、画像
全体を収縮・膨張処理した場合に比べて画像全体が高画
質に保たれている。
【0030】A3.第1の実施例の変形例: (1)上記の第1の実施例では、キズマスクを白く塗り
つぶしていたが、黒く塗りつぶすようにしてもよい。キ
ズマスクを黒く塗りつぶす場合には、図2のステップT
T4で黒色領域を収縮し、ステップTT5では黒色領域
を膨張すれば良い。また、キズマスクを黒く塗りつぶす
場合には、図2のステップTT4で白色領域を膨張し、
ステップTT5で白色領域を収縮してもよい。図53
は、キズマスクDMを黒く塗りつぶした場合に、しきい
値Dthを1〜9の範囲で変化させて得られた2値画像を
示し、図6に対応するものである。ここでは図53
(G)〜(I)の3組の2値画像においてキズマスクD
Mの形状が観察される。図54は、図7に対応し、2値
画像の膨張と収縮の処理を示す。図54(A)は、図5
3(E)に示す2値画像の白色部WAの輪郭であり、キ
ズマスクDMの幅WDMの1/2以上の幅で白色部WAを
膨張すると、図54(B)に示すように、キズマスクの
形状が消えた白色部WA1が得られる。なお、破線で示
しているのは、膨張処理前の白色部WAである。そして
膨張幅と同じ幅で収縮処理すれば、図54(C)に示す
ように、キズマスクDMの形状を含まない2値画像が得
られる。
【0031】(2)図2のステップTT7ではキズマス
クDMの領域でなく、処理領域SA内の多階調画像デー
タを更新するようにしてもよい。ただし、キズマスクD
Mの領域内の多階調画像データのみを更新する方が、画
像データを更新する領域が小さいので、画質劣化を小さ
く抑えることができるという利点がある。
【0032】B.第2の実施例:第1の実施例では2値
画像データを処理することによって画像を修正したが、
以下に説明する第2の実施例では、2値画像データから
画像の輪郭を表わす輪郭ベクトルデータを求め、輪郭ベ
クトルデータを処理することによって画像を修正する。
【0033】B1.画素輪郭と境界輪郭:図10は、2
値画像における画素輪郭と境界輪郭とを比較して示す説
明図である。画素輪郭は、図10(a)に示すように画
素座標Xp、Ypで規定された端点を連結して構成され
る輪郭であり、その輪郭ベクトルは各画素の中心を通っ
ているものと考えることができる。一方、境界輪郭は、
図10(b)に示すように画素間の境界の座標(以下、
「境界座標」と呼ぶ)Xb、Ybで規定された端点を連
結して構成される輪郭であり、輪郭ベクトルは画素の境
界を通っているものと考えることができる。
【0034】境界輪郭は、画素輪郭と比較して以下のよ
うな利点を有している。 (1)画素輪郭では1画素幅の画像領域をベクトルで表
現できないが、境界輪郭ではこれが可能である。 (2)図10(c)に示すように、2つの画像領域が互
いに接触しているときに、境界輪郭では輪郭線が互いに
重なるので、接触していることを容易に検出することが
できる。一方、画素輪郭では、接触する部分における2
つの画像領域の輪郭線が互いに重ならないので、接触し
ていることを検出するのが困難である。 (3)解像度が異なった装置(CRT、プリンタなど)
へ出力するために間引きなどの収縮処理を行なった場合
に、画素輪郭よりも境界輪郭の方が収縮処理に伴う誤差
が小さい。これは、画素輪郭では輪郭ベクトルで表わさ
れたルートに沿って連結された画素によって輪郭の形状
が作成されるので輪郭形状が1画素の大きさに依存して
しまうのに対して、境界輪郭では輪郭ベクトルが輪郭の
形状自身を表わしている、という差に起因している。 (4)上記(3)と同じ理由により、画素輪郭では画像
データのアフィン変換や変形処理の際に誤差を生じ易
い。
【0035】B2.装置の構成:図11は、この発明の
第2の実施例としての画像処理装置を示すブロック図で
ある。この画像処理装置は、第1の実施例における画像
処理装置(図1)のCPU10内にランデータ変換部1
0eと輪郭抽出部10fとを追加し、補助メモリ16内
に輪郭抽出用データバッファ24と、復元用データバッ
ファ26とを追加したものである。なお、ランデータ変
換部10eと輪郭抽出部10fはこの発明における輪郭
抽出手段に相当する。
【0036】ランデータ変換部10eは、2値画像デー
タに基づいて、走査線に沿った2値画像データの変化点
を画素の境界座標に従って表わしたランデータに変換す
る。2値画像データからランデータへの変換方法につい
ては更に後述する。輪郭抽出部10fは、ランデータに
基づいて、輪郭点の検出、輪郭の部分ベクトルの生成、
および部分ベクトルを連結した閉ループの検出を行な
う。これらの処理の詳細は後述する。
【0037】輪郭抽出用データバッファ24は、ランデ
ータ変換部10eおよび輪郭抽出部10fが2値画像デ
ータから輪郭ベクトルデータを生成する際に使用するデ
ータを記憶する。また、復元用データバッファ26は、
多階調画像復元部10cが輪郭ベクトルデータを多階調
画像データに復元する際に使用するデータを記憶する。
【0038】B3.輪郭修正処理の手順:図12は第2
の実施例における輪郭修正処理の手順を示すフローチャ
ートである。ステップTT1〜TT3は第1の実施例に
おけるこれらのステップ(図2)と同じであり、これに
よって、例えば図6に示す9つの2値画像データが得ら
れる。
【0039】ステップTT10では、ランデータ変換部
10eおよび輪郭抽出部10fが、2値画像データに基
づいて輪郭ベクトルデータを作成する。図13は、図6
の各2値画像に対応する輪郭ベクトルを示す概念図であ
る。輪郭ベクトルデータは、2値画像の白色領域(図6
において2値画像データDpの値が1の部分)の輪郭を
表わしている。なお、輪郭ベクトルは境界輪郭を表わす
ベクトルであり、主走査方向Yまたは副走査方向Xに平
行なベクトルのみで構成されている。ただし、図13で
は図示の便宜上、斜めのベクトルを使用して簡略化して
いる。輪郭ベクトルデータを作成する手順の詳細につい
ては、さらに後述する。
【0040】ステップTT11では、9つの各輪郭ベク
トルについて収縮処理を実行する。図14は、輪郭ベク
トルの収縮処理の方法を示す説明図である。図14にお
いて、破線は収縮処理前のベクトル、実線は収縮処理後
のベクトルを示している。斜線を付して示すように、各
ベクトルの進行方向の左側が黒色領域、右側が白色領域
である。
【0041】図14(A1)〜(A4)の例では、2つ
の連続するベクトルV1,V2が進行方向に対して右に
曲がっている。これらの場合には、2つのベクトルV
1,V2の中間点Pm(図中、白丸で示す)がベクトル
の進行方向に対して右下に移動する。図14(A5)に
示す4つのベクトルV1〜V4に対して、図14(A
1)〜(A4)で示される中間点の移動方向を当てはめ
ると、4つのベクトルV1〜V4で囲まれる白色部が収
縮される。
【0042】図14(B1)〜(B4)の例では、2つ
の連続するベクトルV1,V2が進行方向に対して左に
曲がっている、これらの場合には、2つのベクトルV
1,V2の中間点Pmがベクトルの進行方向に対して右
上に移動する。この結果、図14(B5)で示されるよ
うに、4つのベクトルV1〜V4で囲まれた黒色部が膨
張される。
【0043】なお、移動するのは2つの連続したベクト
ルV1,V2の中間点Pmのみであり、第1のベクトル
V1の始点は、その点を中間点とする2つのベクトルの
曲がり方に応じて移動する。第2のベクトルV2の終点
についても同様である。
【0044】図14における各場合の中間点Pmの移動
後の座標を求める方法としては、例えば、以下に示すも
のを適用できる。輪郭ベクトルは境界輪郭を表わすの
で、各ベクトルは境界座標Xb,Ybの座標軸のどちら
かに平行である。従って、1つのベクトルの始点と終点
の座標を比べると、境界座標Xb,Ybのいずれか一方
が同じで他方が異なるだけである。図14(A1)の例
では第1のベクトルV1の始点と終点の座標はXb座標
が同じでYb座標が異なり、第2のベクトルV2の始点
と終点の座標はYb座標が同じでXb座標が異なる。2
つの連続するベクトルV1,V2が進行方向に対してど
ちらに曲がっているかは、2つのベクトルV1,V2の
始点と終点の座標の増減の向きを調べることによって知
ることができる。下記の表1は、図14(A1)〜(A
4)および(B1)〜(B4)における2つのベクトル
V1,V2の始点と終点の座標の増減の向きと、中間の
端点Pm(Xm,Ym)を移動させた後の座標を示して
いる。
【表1】 ここで、WDMはキズマスクの幅である。このように、輪
郭ベクトルを収縮する際には、一度の収縮処理で所望の
幅(ここではWDM/2)だけ収縮することが可能であ
る。
【0045】図15は、図13(E)をさらに簡略化し
て描いた輪郭ベクトルが収縮される様子を示す説明図で
ある。図15(A)は収縮前の状態を示し、図15
(B)は図14に示す方法に従ってベクトルの端点を移
動させた状態、図15(C)は収縮後の最終状態を示し
ている。図15(B)の状態では、2つの箇所VA,V
Bにおいて、異なる向きのベクトルが重なりあってい
る。このように、異なる向きのベクトルが重なる部分V
A,VBについては、それらのベクトルが省略され、図
15(C)に示すような重なりの無い輪郭ベクトルが形
成される。
【0046】こうして輪郭ベクトルが収縮されると、図
12のステップTT12において輪郭ベクトルを膨張す
る。この膨張は、下記の表2に示すように、表1に示す
収縮の場合と移動の向きを逆にしたものである。
【表2】
【0047】以上の収縮・膨張処理を行なうと、第1の
実施例における図7の場合と同じように、画像内のキズ
が消去される。図12のステップTT13では、多階調
画像復元部10cによって修正後の輪郭ベクトルが2値
画像に復元される。この処理手順についてはさらに後述
する。つぎのステップTT6およびステップTT7で
は、第1の実施例(図2)におけるこれらのステップと
同じ処理が実行され、キズが消去された多階調画像が作
成される。
【0048】以上のように、第2の実施例では、2値画
像を輪郭ベクトルデータに変換し、輪郭ベクトルデータ
に対して収縮処理と膨張処理を実行する。輪郭ベクトル
データに対しては、所望の幅の収縮や膨張をそれぞれ一
回の処理で実行することができるので、収縮・膨張処理
を短時間で行なうことができるという利点がある。
【0049】B4.輪郭ベクトルデータから画像データ
への復元処理:図16は、ステップTT13における復
元処理の詳細手順を示すフローチャートである。ステッ
プTT41では、この復元処理に使用されるすべてのバ
ッファが初期化される。図17は、この復元処理におい
て処理の対象となる輪郭ベクトルの一例と、初期化され
たバッファとを示す説明図である。
【0050】復元処理に使用されるバッファは、水平変
化点バッファ52と、ペイントバッファ54と、垂直ソ
ートバッファ56と、端点格納メモリ58であり、これ
らは復元用データバッファ26(図11)内の領域とし
て補助メモリ16内に確保される。水平変化点バッファ
52は、水平方向(Xb軸方向に平行な方向)における
白黒の変化点の境界座標を記憶する。ペイントバッファ
54は、1本の水平な走査線について得られた2値画像
データを一時記憶する。垂直ソートバッファ56は、水
平ベクトルを垂直方向に対してソートする際に用いられ
る。端点格納メモリ58は、垂直方向にソートされた水
平ベクトルの始点の座標Xsと終点の座標Xeとを記憶
する。なお、復元の結果として得られる2値画像データ
は、画像データバッファ20に記憶される。
【0051】ステップTT42では、輪郭ベクトルの中
で水平方向のベクトルのみが抽出され、垂直方向にソー
トされる。図18は、垂直方向のソーティングの状態を
示す説明図である。垂直方向のソーティングでは、まず
図18(d)に太い実線で示すように、水平方向のベク
トルV0〜V4のみが抽出される。抽出された水平ベク
トルの始点の境界座標Xsと終点の境界座標Xeは、端
点格納メモリ58に記憶される。例えば第1のベクトル
V0の場合には、始点座標Xs=#1と終点座標Xe=
#2とが記憶される。また、垂直ソートバッファ56に
は、その水平ベクトルV0のYb座標(=0)に対応す
る位置に、水平ベクトルV0の端点格納メモリ58にお
けるアドレス*0が書き込まれる。なお、端点格納メモ
リ58のリンクデータ(図中では単に「リンク」と示
す)は、他のアドレスとの連結状態を示すデータであ
り、「NC]は他のアドレスと連結されていないことを
示している。
【0052】第3の水平ベクトルV2を抽出する場合に
は、水平ベクトルV2のYb座標(=1)に対応する垂
直ソートバッファ56内の位置には、既に第2の水平ベ
クトルV1のアドレス*1が登録されている。このよう
な場合には、図18(c)および(f)において矢印で
示すように、端点格納メモリ58における水平ベクトル
V2のリンクデータにはアドレス*1と連結されている
ことを示す旨を登録し、垂直ソートバッファ56には新
たに抽出された水平ベクトルV2のアドレス*2が書き
込まれる。図19は、すべての水平ベクトルV0〜V4
に対して垂直方向のソーティングが終了した状態を示し
ている。このようなソーティングは、従来のソーティン
グに比べて極めて高速に実行できる。
【0053】図16のステップTT43では、垂直ソー
トバッファ56内の位置(すなわち、境界座標Yb)を
示すパラメータnを−1に初期化し、ステップTT44
ではパラメータnを1つ増加する。次のステップTT4
5〜TT50では、水平方向の1本の走査線に注目し、
その走査線上にある水平ベクトルを2値画像に変換す
る。図20は、n=0の場合の処理、すなわち境界座標
Ybが0の走査線についてのステップTT45〜TT5
0の処理の様子を示している。
【0054】ステップTT45では、パラメータnで示
される垂直ソートバッファ56の位置に、水平ベクトル
が登録されているか否かが判断される。水平ベクトルが
登録されていなければ、ステップTT44に戻り、パラ
メータnを1つ増加する。図20に示すように、この例
ではn=0の位置にアドレス*0が登録されているの
で、ステップTT46が実行される。ステップTT46
では、垂直ソートバッファ56に登録されているアドレ
ス*0に従って、端点格納メモリ58から水平ベクトル
の始点座標Xsと終点座標Xeが読出される。ステップ
TT47では、この始点座標Xs(=#1)に対応する
水平変化点バッファ52の位置に「+1」を登録し、終
点座標Xe(=#2)に対応する位置に「−1」を登録
する。ステップTT48では、端点格納メモリ58の現
在処理中の水平ベクトルに他の水平ベクトルがリンクさ
れているか否かが判断される。リンクされている水平ベ
クトルがあれば、そのベクトルに対してステップTT4
6,TT47が実行される。図20において、アドレス
*0のリンクデータは「NC]なので、連結されている
水平ベクトルは無い。
【0055】ステップTT49では、水平変化点バッフ
ァ52のデータに従ってペイントバッファ54に2値画
像データが書き込まれる。この処理では、図20(b)
に示すように、水平変化点バッファ52の値が「+1」
の境界座標から「−1」の境界座標までの範囲の画素に
対して2値画像データの値が「1」に設定される。
【0056】ステップTT50では、ペイントバッファ
54内の2値画像データが画像データバッファ20にコ
ピーされる。なお、この際、図20(c)に示すよう
に、パラメータnで示される位置における垂直ソートバ
ッファ56のデータが0に初期化される。
【0057】ステップTT51では画像内の最下段の走
査線についての処理が終了したか否かが判断され、終了
していなければステップTT44に戻り、上述のステッ
プTT44〜TT50の処理が繰り返される。
【0058】図21は、パラメータnが1の場合の処理
を示す説明図である。パラメータn=1で示される垂直
ソートバッファ56の位置には、水平ベクトルのアドレ
ス*2が登録されている。そこで、端点格納メモリ58
のアドレス*2に登録されている水平ベクトルの始点座
標Xsと終点座標Xeが読出される(ステップTT4
6)。そして、この始点座標Xs(=#3)に対応する
水平変化点バッファ52の位置に「+1」を加算し、終
点座標Xe(=#4)に対応する位置に「−1」を加算
する(ステップTT47)。端点格納メモリ58のアド
レス*2の水平ベクトルには、アドレス*1とリンクさ
れている旨が登録されているので、アドレス*1の水平
ベクトルに対してステップTT46,TT47が実行さ
れる。この結果、水平変化点バッファ52の座標#0の
位置に「+1」が加算され、座標#1の位置に「−1」
が加算される。これ以前に、パラメータn=0の処理
(図20)において水平変化点バッファ52の座標#1
の位置に「+1」が書き込まれていたので、パラメータ
n=1の処理において同じ座標#1の位置に「−1」が
加算されると、その結果は0になる。また、座標#2の
位置の値(=−1)は図20の値のままである。
【0059】こうして、水平変化点バッファ52にデー
タが加算されると、このデータに従ってペイントバッフ
ァ54に2値画像データが書き込まれる(ステップTT
49)。すなわち、水平変化点バッファ52の値が「+
1」の境界座標から「−1」の境界座標までの範囲の画
素に対して2値画像データの値が「1」に設定される。
そして、ペイントバッファ54内の2値画像データが画
像データバッファ20にコピーされ(ステップTT5
0)、垂直ソートバッファ56のパラメータn=1の位
置のデータが0に初期化される。
【0060】図22,23,24はそれぞれn=2,
3,4の場合の処理を示している。n=3(図23)の
場合には、垂直ソートバッファ56には水平ベクトルの
アドレスが登録されていないので、水平変化点バッファ
52にすでに登録されているデータに従ってペイントバ
ッファ54に2値画像データが書き込まれ、画像データ
バッファ20にコピーされる。また、n=4(図24)
の場合には、端点格納メモリ58における始点座標Xs
と終点座標Xeとに従って水平変化点バッファ52内に
「+1」と「−1」がそれぞれ加算されると、水平変化
点バッファ52内のデータがすべて0になる。また、垂
直ソートバッファ56のn=4の位置のデータも0に初
期化される。この結果、水平変化点バッファ52と垂直
ソートバッファ56内のデータはすべて0になり、図1
7に示す初期化時の状態と同じになる。従って、図24
(d)に示すベクトルV4よりも下に他の輪郭ベクトル
が存在する場合にも、ステップTT44〜TT51の処
理を繰り返すことによって、その輪郭ベクトルを2値画
像に復元することができる。
【0061】B5.第2の実施例の変形例: (1)以上の復元処理では、輪郭ベクトルを2値画像に
復元したが、輪郭ベクトルから多階調画像を直接復元す
ることも可能である。例えば、図13(E)のものを収
縮・膨張処理して得られた輪郭ベクトルについては、ペ
イントバッファ54(例えば図20)に値「1」を書き
込む代わりに、2値化で用いたしきい値Dth(=5)の
値を書き込むようにする。この場合には、2値化の際に
用いたしきい値Dthが小さい輪郭ベクトルデータから順
に(すなわち図13(I)から(A)の順に)図16の
復元処理を実行し、復元して得られた多階調画像データ
を画像データバッファ20に上書きしていけば、図8
(B)に示す多階調画像データを得ることができる。こ
のように、輪郭ベクトルデータから多階調画像データを
直接復元するようにすれば、図12のステップTT6が
不要になるという利点がある。
【0062】(2)上記の第2の実施例では境界輪郭に
関する輪郭ベクトルを使用したが、画素輪郭に関する輪
郭ベクトルを求めて画像の輪郭を修正してもよい。
【0063】C.輪郭抽出処理の詳細: C1.輪郭抽出に関連する装置の構成:図25は、輪郭
抽出に関連する装置の構成を示すブロック図である。輪
郭抽出には、図11にも示すランデータ変換部10e
と、輪郭抽出部10fと、画像データバッファ20と、
輪郭抽出用データバッファ24とが使用される。輪郭抽
出用データバッファ24は、ランデータバッファ3と、
作業バッファ5と、ベクトルデータメモリ6とを含んで
いる。
【0064】ランデータバッファ3は、ランデータ変換
部10eで作成されたランデータを一時記憶するバッフ
ァである。1つ前の走査線のランデータを記憶するため
の第1のランデータバッファ31と、現在の走査線のラ
ンデータを記憶するための第2のランデータバッファ3
2とを有している。
【0065】作業バッファ5は、輪郭抽出の処理に用い
るデータを一時的に格納するバッファであり、3つのレ
ジスタ5c、5p、5nを備えている。以下では、第1
のレジスタ5cを「columnレジスタ」、第2のレ
ジスタ5pを「prevレジスタ」、第3のレジスタ5
nを「nextレジスタ」と呼ぶ。これらのレジスタの
使用方法については後述する。
【0066】ベクトルデータメモリ6は、輪郭ベクトル
データの座標データと、各座標データの連結状態を示す
データ(「リンクポインタ」と呼ぶ)を格納する。
【0067】C2.ランデータへの変換方法:図27
は、ランデータ変換部10eにおける2値画像データか
らランデータへの変換方法を示す説明図である。図26
(a)、(b)には、それぞれ2値画像データDpと、
2値画像データDpを変換して求められたランデータD
rとが示されている。図26(a)は走査線の先頭の画
素の2値画像データの値が0の場合であり、図26
(b)は走査線の先頭の画素の2値画像データの値が1
の場合である。
【0068】ランデータDrは、2値画像データDpの
値が変化する境界座標Xbの座標値を順に配列したデー
タである。1本の走査線のランデータDrの最後には、
境界座標Xbの最大値Nbに1を加えた値(=Nb+
1、この値は走査線上の画素数に1を加えた値に等し
い)が走査線終了データとして3つ連続して付加されて
いる。この走査線終了データ(Nb+1)は、1走査線
分のランデータの最後を示している。なお、図26
(b)のように走査線の先頭の画素の2値データの値が
1の場合には、ランデータDrの最初の値は0となる。
【0069】C3.ベクトル検出時の接続処理の内容:
図27〜図31は、輪郭ベクトルの検出時における接続
処理の内容を示す説明図である。ここで、「接続処理」
とは、輪郭ベクトル相互の接続関係を更新する処理を言
い、具体的には、輪郭ベクトルの両端点に関するデータ
を作業バッファおよびベクトルデータメモリに登録する
処理のことを言う。接続処理は、輪郭抽出部10fによ
って実行される。なお、以下の説明において、colu
mn[#Xb]はcolumnレジスタ5cの境界座標
Xbの位置を示す(但し、その位置に登録されているデ
ータを示す場合もある)。prev[#Xb]、nex
t[#Xb]も同様である。
【0070】図27は、(a)に示すベクトルV1が検
出された状態を示している(ベクトルの検出方法につい
ては更に後述する)。この時、ベクトルデータメモリ6
には,(c)に示すようにベクトルV1の始点P1と終
点P2の境界座標(Xb,Yb)がアドレス*1、*2
にそれぞれ格納される。ベクトルデータメモリ6のリン
クデータは、各アドレスの座標データがどのアドレスの
座標データと連結されているかを示している。この実施
例では、リンクデータで指定されたアドレスの座標デー
タで示される端点が、そのベクトルの終点である。図2
7の例では、アドレス*1の座標データで示される端点
を始点とし、アドレス*2の座標データで示される端点
を終点とするベクトルV1が検出されたことがリンクデ
ータによって表わされている。アドレス*2のリンクデ
ータとしては、どのアドレスとも連結されていないこと
を示すデータ(図中「NC」と記す)が格納される。
【0071】図27(b)に示すように、作業バッファ
5の各レジスタ(prev、columnおよびnex
t)には、各境界座標Xbに対して1つのデータが登録
できる。各レジスタは、次のような機能を有している。 a)columnレジスタ5c:ベクトル列の開始点の
境界座標Xbの位置に、開始点の座標データのアドレス
(ベクトルデータメモリ6のアドレス)を格納する。ま
た、ベクトル列の終了点の境界座標Xbの位置に、終了
点の座標データのアドレスを格納する。 b)prevレジスタ5p:ベクトル列の終了点の境界
座標Xbの位置に、ベクトル列の開始点の境界座標Xb
の値を格納する。 c)nextレジスタ5n:ベクトル列の開始点の境界
座標Xbの位置に、ベクトル列の終了点の境界座標Xb
の値を格納する。 これらのレジスタに登録されるデータは、後述する「対
応関係」を示す。
【0072】図27において、作業バッファ5のcol
umnレジスタ5cには、検出されたベクトルV1の始
点P1の境界座標Xb(=#1)の位置(column
[#1])に始点の座標データが格納されているベクト
ルデータメモリ6のアドレス(以下、座標データのアド
レスと称す)(=*1)が登録される。また、終点P2
の境界座標Xb(=#3)の位置(column[#
3])に、終点の座標データのアドレス(=*2)が登
録される。なお、図27(b)の各レジスタにおける
「−」のマークは、有効なデータが登録されていないこ
とを示している。
【0073】prevレジスタ5pには、ベクトルV1
の終点P2の境界座標Xb(=#3)の位置(prev
[#3])に、ベクトルV1の始点P1の境界座標Xb
(=#1)が登録される。一方、nextレジスタ5n
には、ベクトルV1の始点P1の境界座標Xb(=#
1)の位置(next[#1])に、ベクトルV1の終
点P2の境界座標Xb(=#3)が登録される。
【0074】図28は、図27に引き続いてベクトルV
2が検出された際の処理を示している。後述するよう
に、輪郭抽出部10fがランデータに基づいて最初に検
出するのは境界座標Xbの座標軸に沿ったベクトルV
1、V2(言い換えれば、主走査方向に沿ったベクト
ル)である。ベクトルV2が検出されると、ベクトルV
2に関するデータがベクトルデータメモリ6と作業バッ
ファ5とに登録されるとともに、これらのデータに基づ
いて境界座標Ybに沿ったベクトルV3(言い換えれ
ば、副走査方向に沿ったベクトル)が検出される。ベク
トルV2のデータの登録、および、ベクトルV3の検出
とそのデータの登録の手順は次の通りである。なお、図
28〜図31には、下記の手順1)〜11)のいくつか
の番号が書き込まれており、各手順における処理の内容
が示されている。
【0075】1)ベクトルV2が検出されると、ベクト
ルデータメモリ6には,ベクトルV2の始点P3と終点
P4の境界座標(Xb,Yb)の値がアドレス*3、*
4にそれぞれ格納される。同時に、アドレス*3の座標
データがアドレス*4の座標データに連結されることを
示すリンクデータも、ベクトルデータメモリ6に登録さ
れる。アドレス*4のリンクデータとしては、どのアド
レスとも連結されていないことを示すデータNCが格納
される。
【0076】2)prevレジスタ5pには、ベクトル
V2の終点P4の境界座標Xb(=#2)の位置(pr
ev[#2])に、ベクトルV2の始点P3の境界座標
Xb(=#3)が登録される。一方、nextレジスタ
5nには、ベクトルV2の始点P3の境界座標Xb(=
#3)の位置(next[#3])に、ベクトルV2の
終点P4の境界座標Xb(=#2)が登録される。
【0077】3)columnレジスタ5cには、ベク
トルV2の始点P3の境界座標Xb(=#3)の位置
(column[#3])に、始点P3の座標データの
アドレス(=*3)が登録される。この時、既にデータ
が登録されている場合には新たなデータが上書きされ
る。
【0078】4)上述の3)の処理において、colu
mn[#3]にアドレス*3を書き込む際に、輪郭抽出
部10fが同じ位置にアドレス*2が既に登録されてい
ることを検出すると、アドレス*2がアドレス*3に連
結されるものと判断する。そして、アドレス*2のリン
クデータとしてアドレス*3が格納される。この結果、
端点P2とP3とを接続したベクトルV3(図28
(a)参照)が生成されるとともに、3つのベクトルV
1,V3,V2が順次連結されたベクトル列が形成され
る。ベクトル列の開始点はベクトルV1の始点P1であ
り、ベクトル列の終了点はベクトルV2の終点P4であ
る。 図29は、4)までの処理においてベクトルデータメモ
リ6と作業バッファ5に登録されたデータを示すととも
に、次の5)以降の処理を説明する説明図である。
【0079】5)上記4)の処理の終了時には、pre
v[#3]にもnext[#3]にもデータが登録され
ている。このことは、境界座標Xb=#3にあるベクト
ルの端点P2、P3の前にも後にも他の端点が連結され
ていることを示している。すなわち、境界座標Xb=#
3の位置の端点P2、P3が、ベクトル列の中間点であ
ることを示している。これに応じて、輪郭抽出部10f
は境界座標Xb=#3の位置における作業バッファ5の
登録内容を以下の5)〜7)の手順に従って変更する
(以下のような作業バッファ5の登録内容の変更を「対
応関係の最適化処理」と呼ぶ)。
【0080】対応関係の最適化処理では、次のようにし
てnextレジスタ5nの登録内容を変更する。まず、
prevレジスタ5pにおいて、処理の対象となる境界
座標Xb=#3の位置prev[#3]に登録されてい
る境界座標Xbの値(=#1)を読み取る。prev
[#3]=#1は、境界座標Xb=#3の端点P2、P
3の前側に、境界座標Xb=#1の端点P1が連結され
ていることを示している。次に、nextレジスタ5n
において、この境界座標Xb=#1の位置(next
[#1])に登録された境界座標Xb(=#3)を読み
取る。next[#1]=#3は、境界座標Xb=#1
の端点P1の後側に、境界座標Xb=#3の端点P2、
P3が連結されていることを示している。今、これらの
端点P2、P3のデータを中間点として作業バッファ5
から削除したいので、そのためには、端点P1の後側
に、中間点P2、P3の後側の端点P4を直接連結する
ようにnextレジスタ5nの内容を変更すればよい。
すなわち、next[#1]の値(端点P1の後側の端
点の境界座標Xbを示す)として、next[#3]=
#2(端点P2、P3の後側の端点の境界座標Xbを示
す)を代入すればよい。
【0081】6)prevレジスタ5pの内容も同様に
して変更される。まず、削除される中間点P2、P3の
境界座標Xb(=#3)におけるnextレジスタ5n
の値next[#3]=#2を読み取り、prevレジ
スタ5pにおける境界座標Xb=#2の値prev[#
2]=#3を読む。prev[#2]=#3は、端点P
4の前側に端点P2、P3が連結されていることを示し
ている。いま、境界座標Xb=#3の端点P2、P3を
中間点として削除するには、prev[#2](端点P
4の前側の端点の境界座標Xbを示す)の値として、p
rev[#3]=#1(端点P2、P3の前側の端点の
境界座標Xbを示す)を代入すればよい。
【0082】7)こうしてprevレジスタ5pとne
xtレジスタ5nの内容を変更した後、境界座標Xbに
おけるprevレジスタ5p、columnレジスタ5
c、およびnextレジスタ5nから中間点に相当する
値を消去する。 以上の5)から7)までで対応関係の最適化処理が終了
し、prevレジスタ5pとnextレジスタ5nで表
わされる連結状態が修正される。
【0083】8)最後に、columnレジスタ5cに
おいて、ベクトルV2の終点P4の境界座標Xb(=#
2)の位置(column[#2])に、終点P4の座
標データのアドレス*4が登録される。こうしてベクト
ルV2の検出に伴う処理が終了する。 図30は、8)の処理を終了した時点における状態を示
している。prev[#2]=#1のデータは、境界座
標Xb=#2の位置にベクトル列の終了点が存在し、ベ
クトル列の開始点が境界座標Xb=#1に存在すること
を意味している。また、next[#1]=#2のデー
タは、境界座標Xb=#1の位置にベクトル列の開始点
が存在し、ベクトル列の終了点が境界座標Xb=#2に
存在することを意味している。また、columnレジ
スタ5cには、ベクトル列の開始点と終了点の座標デー
タが格納されているアドレス*1、*4がそれぞれの境
界座標Xbの位置に登録されている。
【0084】図31は、更に、ベクトルV4が検出され
た時の処理を示す説明図である。 9)ベクトルV4が検出されると、その始点P5の境界
座標データ(2,3)がベクトルデータメモリ6のアド
レス*5に登録されるとともに、終点P6の境界座標デ
ータ(1,3)がアドレス*6に登録される。また、上
記3)と同じ処理によって、アドレス*5の端点P5が
アドレス*6の端点P6に連結されることがリンクデー
タとして登録される。この結果、端点P1〜P6が順次
連結されたベクトル列が形成される。
【0085】10)次に、上記4)と同じ処理によっ
て、prev[#1]とnext[#2]にデータが登
録される。すなわち、prevレジスタ5pには、ベク
トルV4の終点P6の境界座標Xb(=#1)の位置p
rev[#1]に、ベクトルV4の始点P5の境界座標
Xb(=#2)が登録される。一方、nextレジスタ
5nには、ベクトルV4の始点P5の境界座標Xb(=
#2)の位置next[#2]に、ベクトルV4の終点
P6の境界座標Xb(=#1)が登録される。
【0086】この状態では、次の式が成立している。 prev[#2]=next[#2] …(1) prev[#1]=next[#1] …(2) 一般的に、新たに検出されたベクトル列の始点の境界座
標XbをXsとし、終点の境界座標XbをXeとする
と、上式(1)、(2)は次のように書くことができ
る。 prev[Xs]=next[Xs] …(1a) prev[Xe]=next[Xe] …(2a)
【0087】式(1a)および(2a)が両方とも成立
しているということは、新たに検出されたベクトル列の
始点および終点が共に、ベクトル列の開始点でもあり終
了点でもあることを意味している。すなわち、ベクトル
列が閉ループを構成していることを示している。
【0088】11)輪郭抽出部10fは、式(1a)お
よび(2a)が両方とも成立していることを検出する
と、新たに検出されたベクトルV4の始点を閉ループベ
クトルの開始点と定義するとともに、ベクトルV4の終
点のアドレス*6の座標データをアドレス*1に連結す
ることを示すリンクデータを登録する。この結果、端点
P1〜P6で構成された閉ループベクトルが形成され
る。閉ループベクトルは、1つの画像領域の輪郭を表わ
している。
【0089】なお、閉ループベクトルが形成されると、
作業バッファ5の各レジスタに最後に登録された始点お
よび終点の境界座標Xbが削除される。
【0090】作業バッファ5とベクトルデータメモリ6
の登録内容は、次のようにまとめられる。 a)columnレジスタ5c:ベクトル列の開始点の
境界座標Xbの位置に、開始点の座標データのアドレス
を格納する。また、ベクトル列の終了点の境界座標Xb
の位置に、終了点の座標データのアドレスを格納する。 b)prevレジスタ5p:ベクトル列の終了点の境界
座標Xbの位置に、ベクトル列の開始点の境界座標Xb
の値を格納する。 c)nextレジスタ5n:ベクトル列の開始点の境界
座標Xbの位置に、ベクトル列の終了点の境界座標Xb
の値を格納する。 d)座標データ:ベクトルの端点の境界座標(Xb,Y
b)を示すデータ。 e)リンクデータ:ベクトルの端点の連結状態を示すデ
ータ。
【0091】このような作業バッファ5とベクトルデー
タメモリ6とを用いることによって、境界座標Xbの座
標軸と平行なベクトルを新たに検出するごとに、ベクト
ル列の開始点と終了点の登録データを更新しつつ、ベク
トル列の各端点の連結状態を更新できる。また、ベクト
ル列が閉ループを構成した際に、その閉ループを直ちに
検出することができる。従って、この輪郭抽出方法は、
走査線ごとにランデータを処理することによってベクト
ルを検出しつつ、閉ループベクトルを検出する度に、そ
の閉ループベクトルデータ(輪郭ベクトルデータ)を外
部装置に出力することができるという利点がある。
【0092】C4.接続処理の詳細手順:図32および
図33は、図27〜図31で説明したベクトルの接続処
理の詳細手順を示すフローチャートである。
【0093】ステップSS0は例外処理であり、輪郭抽
出部10fによって検出されたベクトルの始点X座標デ
ータXsと終点X座標データXeとを比較し、等しい場
合には強制的に接続処理を終了し、異なる場合にはステ
ップSS1を実行する。この例外処理を実行するのは、
始点X座標データXsと終点X座標データXeとが等し
い場合には、接続状態を変化させる必要がないためであ
り、また作業バッファ5の各レジスタにおいて接続状態
の矛盾が発生するのを防止するためである。
【0094】ステップSS1では、輪郭抽出部10fに
よって検出されたベクトルの始点の座標データ(Xs,
Ys)と終点の座標データ(Xe,Ye)とがベクトル
データメモリ6に格納される。この時、リンクデータは
まだ登録されない。ステップSS2では、next[#
Xs]にXeが格納されるとともに、prev[#X
e]にXsが格納される。また、閉ループ判定結果に用
いるフラグをオフにセットする。
【0095】ステップSS3では、ベクトル列が閉ルー
プを構成しているか否かが判定される。すなわち、上式
(1a)と(2a)が成立しているか否かが判断され
る。ステップSS3においてベクトル列が閉ループを構
成していると判断されると、ステップSS4においてフ
ラグをオンにセットし、次のステップSS5(図33)
に進む。一方、ベクトル列が閉ループを構成していない
場合には、直接ステップSS5に移行する。
【0096】ステップSS5では、column[#X
s]に既にデータが登録されているか否かが判断され
る。column[#Xs]にデータが登録されていな
い場合には、ステップSS6において、新たに検出され
たベクトルの始点の座標データが格納されているアドレ
スが、column[#Xs]に登録される。そして、
ステップSS10に移行し、始点の座標データが終点の
座標データに連結されることを示すリンクデータが、ベ
クトルデータメモリ6に登録される。
【0097】ステップSS5において、column
[#Xs]に既にデータ(アドレス)が登録されている
場合には、ステップSS7において、既に登録されてい
たアドレスの座標データを、ステップSS1で新たに格
納された始点の座標データに連結されることを示すリン
クデータが、ベクトルデータメモリ6に登録される。こ
の処理は、図28で説明した処理4)に相当する。
【0098】ステップSS8では、作業バッファ5の対
応関係の最適化処理が行なわれ(図29の処理5)およ
び6)に相当)、ステップSS9では始点の境界座標X
sにおける作業バッファ5が初期化される(図29の処
理7)に相当)。そして、ステップSS10において、
始点の座標データが終点の座標データに連結されること
を示すリンクデータが、ベクトルデータメモリ6に登録
される。
【0099】ステップSS11〜SS15は、ベクトル
の終点について、ステップSS5〜SS10と同じ処理
を行なう手順である。ステップSS16では、フラグが
オンにセットされているか否かが判断され、オンにセッ
トされている場合には、ステップSS17において閉ル
ープベクトルデータを外部装置に出力してから接続処理
を終了する。「外部装置への出力」とは、例えば磁気デ
ィスク38に記憶する処理である。一方、フラグがオフ
であれば、直ちに接続処理を終了する。なおステップS
S17では、ベクトルデータメモリ6に最後に登録した
座標データを起点とし、リンクデータに基づいて、順次
座標データを外部装置に出力する。そして、リンクデー
タが起点となった座標データを示した際に出力を停止す
る。
【0100】C5.ベクトル検出処理の詳細:図34お
よび図35は、ベクトルの検出とこれに伴う接続処理の
手順を示すフローチャートである。ベクトルの検出は、
ランデータバッファ3に格納された隣接する2走査線分
のランデータに基づいて輪郭抽出部10fが実行する。
【0101】ステップS0では、ベクトル検出に用いる
ポインタが初期化される。図36は以下のデータの内容
を説明する説明図である。 第1のアドレスポインタN1:第1のランデータバッフ
ァ31のアドレスを示すポインタであり、ステップS0
では0に初期化される。 第2のアドレスポインタN2:第2のランデータバッフ
ァ32のアドレスを示すポインタであり、ステップS0
では0に初期化される。 作業データDa〜Df:作業データDaは第1のランデ
ータバッファ31において第1のアドレスポインタN1
の位置に格納されているランデータであり、Db,Dc
は、Daに続く2つのランデータである。また、作業デ
ータDdは第2のランデータバッファ32において第2
のアドレスポインタN2の位置に格納されているランデ
ータであり、De,Dfは、Ddに続く2つのランデー
タである。作業データDa〜Dfは、補助メモリ16内
に格納される。
【0102】ステップS1では、アドレスポインタN
1,N2がそれぞれ2ずつ増加される。この更新は、図
36に破線で示すように、各ランデータバッファ31、
32から読み取られる作業データの先頭データDa、D
dのアドレスを、2つずつ更新することを示している。
図26でも説明したように、ランデータバッファ3のア
ドレス0のランデータは、2値画像データの値が0→1
に変化する境界座標Xbを示している。従って、アドレ
スポインタN1が2ずつ更新されると、作業データD
a,Db,Dcは、常に2値画像データの値が0→1、
1→0、および0→1の変化位置をそれぞれ示すことに
なる。作業データDd,De,Dfも同様である。ステ
ップS2では、作業データDa,Ddをそれぞれ走査線
終了データ(Nb+1)と比較し、条件が満たされれば
処理を終了し、条件が満たされない場合はステップS3
に移行する。
【0103】ステップS3では、2つの作業データD
a,Deが比較され、De<DaならステップS4が実
行され、Da≦DeならステップS6が実行される。図
37はステップS4が実行される場合(条件1)の画像
の状態を示す説明図である。作業データDa,Db,D
cは第1の走査線SL1に沿った画像を表わしており、
作業データDd,De,Dfは第2の走査線SL2に沿
った画像を表わしている。なお、図37では第1と第2
の走査線の間の副走査方向の座標をYbとしている。
【0104】前述したように、作業データDa,Db,
Dcは、常に2値画像データの値が0→1、1→0、お
よび0→1の変化位置をそれぞれ示しているので、作業
データDaとDbで表わされる区間の2値画像データは
常に1であり、作業データDbとDcの区間では0であ
る。同様に、作業データDdとDeの区間の2値画像デ
ータは1であり、作業データDeとDfの区間では0で
ある。
【0105】図37に示すように、De<Da(条件
1)の場合には、点(Dd,Yb)と点(De,Yb)
を結ぶベクトルVaが存在し、このベクトルVaは領域
の上部の境界線上にある。ステップS4では、輪郭抽出
部が点(Dd,Yb)と点(De,Yb)を接続する接
続処理を上記の図32および図33の手順に従って実行
することにより、作業バッファ5とベクトルデータメモ
リ6にベクトルVaに関するデータを登録する。ステッ
プS4の接続処理が終了すると、作業データDd,D
e,Dfを更新するとともに、第2のアドレスポインタ
N2を2だけ増加してステップS3に戻る。
【0106】ステップS3においてDa≦Deの場合に
は、ステップS6が実行される。ステップS6において
Db<DdならステップS7が実行され、Dd≦Dbな
らステップS9(図35)が実行される。図38は、ス
テップS7が実行される場合(条件2)の画像の状態を
示す説明図である。図38に示すように、条件2では次
の式が成立している。 条件2:[Da≦De and Db<Dd] …(3)
【0107】条件2の場合は、点(Db,Yb)と点
(Da,Yb)を結ぶベクトルVaが存在し、このベク
トルVaは2値画像データの値が1である領域の下部の
境界線を構成している。ステップS7では、輪郭抽出部
10fが点(Db,Yb)から点(Da,Yb)への接
続処理を実行することにより、これらを両端点とするベ
クトルVaに関するデータを作業バッファ5とベクトル
データメモリ6に登録する。また、点(Da,Yb)か
ら上方の端点に向かうベクトルVbと、上方の端点から
点(Db,Yb)に向かうベクトルVcのデータも、接
続処理によって登録される。ステップS7の接続処理が
終了すると、作業データDa,Db,Dcを更新すると
ともに、第1のアドレスポインタN1を2だけ増加して
ステップS3に戻る。
【0108】ステップS6においてDd≦Dbとなる場
合(条件3)には、図39(a)、図39(b)、図4
0、および図41の4つの状態のいずれかになってい
る。条件3では、次の式が成立している。 条件3:[Da≦De and Dd≦Db] …(4) 条件3が成立する4つの状態のいずれの場合にも、ステ
ップS9において輪郭抽出部10fが点(Dd,Yb)
から点(Da,Yb)への接続処理を実行し、これによ
って、これらを両端点とするベクトルVaに関するデー
タを作業バッファ5とベクトルデータメモリ6に登録す
る。このとき、点(Da,Yb)から上方の端点に向か
うベクトルVbのデータも登録される。
【0109】ステップS10およびステップS11で
は、作業データDfとDb、およびDeとDcがそれぞ
れ比較される。この結果によって、上記の4つの状態が
条件4(ステップS12、図39に対応)と、条件5
(ステップS14、図40に対応)と、条件6(ステッ
プS16、図41に対応)とに分けられる。
【0110】図39に示すように、ステップS12が実
行される場合は、条件3に次の条件4が加重されてい
る。 条件4:[Db≦Df and De≦Dc] …(5) 条件4が成立するのは、図39(a)および図39
(b)のいずれかの状態であり、このときには、ステッ
プS12において輪郭抽出部10fが点(Db,Yb)
から点(De,Yb)への接続処理を実行し、これによ
って、これらを両端点とするベクトルVcに関するデー
タを作業バッファ5とベクトルデータメモリ6に登録す
る。このとき、上方の端点から点(Db,Yb)に向か
うベクトルVdのデータも登録される。そして、ステッ
プS13において、6つの作業データDa〜Dfをすべ
て更新するとともに、第1と第2のアドレスポインタN
1,N2を更新してステップS3に戻る。
【0111】図40に示すように、ステップS14が実
行される場合は、条件3に次の条件5が加重されてい
る。 条件5:[Df<Db] …(6) ステップS14では、輪郭抽出部10fが点(Df,Y
b)から点(De,Yb)への接続処理を実行し、これ
によって、これらを両端点とするベクトルVcに関する
データを作業バッファ5とベクトルデータメモリ6に登
録する。そして、ステップS13において、作業データ
Dd,De,Dfと第2のアドレスポインタN2を更新
し、ステップS10に戻る。
【0112】図41に示すように、ステップS16が実
行される場合は、条件3に次の条件6が加重されてい
る。 条件6:[Dc<De] …(7) ステップS16では、輪郭抽出部10fが点(Db,Y
b)から点(Dc,Yb)への接続処理を実行し、これ
によって、これらを両端点とするベクトルVcに関する
データを作業バッファ5とベクトルデータメモリ6に登
録する。この時、上方の端点から点(Db,Yb)に向
かうベクトルVdのデータと、点(Dc,Yb)から上
方の端点に向かうベクトルVeのデータも、接続処理に
よって登録される。そして、ステップS17において、
作業データDa,Db,Dcと第1のアドレスポインタ
N1を更新し、ステップS10に戻る。
【0113】上述したように、条件5と条件6では接続
処理と作業データの更新を行なった後に、ステップS1
0に戻り、条件4が成立するまで条件5または条件6の
処理を繰り返す。そして、ステップS10において条件
4が成立すると判断されると、ステップS12において
条件4の処理が実行され、ステップS13からステップ
S2に戻る。
【0114】以上のように、この輪郭抽出方法では、ラ
ンデータバッファ3に記憶された2本の走査線上のラン
データに基づいて、2本の走査線の境界にある輪郭ベク
トルが検出される。なお、2本の走査線上のランデータ
に基づいてベクトルを抽出する方法については、前述し
た特開昭63−204376号公報や"An Improved Alg
orithm forthe Sequential Extraction of boundaries
from a Raster Scan", David W Capason, COMPUTER VIS
ION, GRAPHICS, AND IMAGE PROCESSING, Vol. 28, 109-
125, 1984 にも記載されている。
【0115】C6.輪郭抽出の全体処理手順:図42
は、実施例における全体の処理手順を示すフローチャー
トである。処理の開始時にはステップT0を通過し、ス
テップT1において画像データバッファ20から2値画
像データが1走査線分読み出される。
【0116】ステップT2では、2値画像データに基づ
いてランデータが生成される。なお、前述したように、
ランデータバッファ3には2本の走査線分のランデータ
が記憶されるので、最初の走査線のランデータがステッ
プT2において生成されると、ステップT3,T4,T
0,T1を経由してステップT2に戻り、2番目の走査
線のランデータが生成される。一般には、N番目の走査
線のランデータが第2のランデータバッファ32に記憶
され、(N−1)番目の走査線のランデータが第1のラ
ンデータバッファ31に記憶される。
【0117】ステップT3では、図34および図35の
手順に従ってベクトルの抽出処理が実行される。さらに
ステップT3では、図32および図33の手順に従って
ベクトルの接続処理が実行され、接続処理において閉ル
ープベクトルが検出されると、その閉ループベクトルデ
ータが出力される。その後、ステップT4において走査
線が1本更新されてステップT0にもどり、ステップT
0〜T4が繰り返される。
【0118】図43〜図51は、上述の方法で輪郭ベク
トルの検出を行なった一例を示す説明図である。これら
の図では画像全体が8×8画素で構成されており、ま
た、2値画像データの値が1の3つの領域R1,R2,
R3(図中に斜線を付した領域)が含まれている。図4
3〜図51は、境界座標Yb=0〜8の位置において画
素間の境界を走る仮想的な走査線(以下、「境界走査
線」と呼ぶ)に関して図42の手順で処理を行なった結
果をそれぞれ示している。この際、境界走査線の上側の
画素走査線(画素の中心を通る走査線)のランデータが
第1のランデータバッファ31に記憶されるとともに、
境界走査線の下側の画素走査線のランデータが第2のラ
ンデータバッファ32に記憶される。
【0119】図43において、第2のランデータバッフ
ァ32にはYb=0の境界走査線の下側の画素走査線の
ランデータ(すなわち、図43(a)の一番上側の1行
の画像を示すランデータ)が記憶される。但し、この画
素走査線上には領域R1,R2,R3のいずれも存在し
ないので、第2のランデータバッファ32には、ランデ
ータの終了を示すデータ(図中「e」と記す)が記憶さ
れているだけである。図43の状態では、境界走査線上
にベクトルが検出されないので、作業バッファ5やベク
トルデータメモリ6にはデータが登録されていない。
【0120】図44に示すように、Yb=1の境界走査
線では3つのベクトルが検出され、それぞれのベクトル
の始点と終点の座標データおよびリンクデータがベクト
ルデータメモリ6に格納される。また、作業バッファ5
にもこれらの3つのベクトルの始点と終点に関するデー
タが登録される。
【0121】図45では、Yb=2の境界走査線に沿っ
て3つのベクトルが検出されるとともに、境界座標Yb
の座標軸に沿ったベクトル(図中の垂直方向のベクト
ル)が形成され、図44で検出されたベクトルと連結さ
れる。この結果、アドレス*1,*2,*7,*8の座
標データで示される各端点を順次連結した閉ループベク
トルCL1が領域R1の輪郭ベクトルとして検出され、
その閉ループベクトルデータが外部装置に出力される。
そして、閉ループベクトルCL1に関するデータが作業
バッファ5とベクトルデータメモリ6から削除される。
【0122】図46では、Yb=3の境界走査線に沿っ
て3つのベクトルが検出されるとともに、既登録のベク
トルと連結される。図47では、領域R2に取り囲まれ
た背景領域W2の輪郭を形成する閉ループベクトルCL
2が検出され、その閉ループベクトルデータが外部装置
に出力される。以下は同様に、図48では2つのベクト
ルが検出され、図49では領域R2の輪郭を形成する閉
ループベクトルCL3が検出され、外部装置に出力され
る。また、図50ではベクトルは検出されず、図51で
は領域R3の輪郭を形成する閉ループベクトルCL4が
検出され、外部装置に出力される。
【0123】図46〜図48の(a)に特に顕著に示さ
れているように、画像内に複数の画像領域(領域R1〜
R3および背景領域W1)が含まれている場合には、複
数組のベクトル列が作業バッファ5とベクトルデータメ
モリ6に登録される。しかし、この場合にも、あるベク
トル列の開始点の境界座標Xbが他のベクトル列の開始
点または終了点の境界座標Xbと同じになることはな
く、また、あるベクトル列の終了点の境界座標Xbが、
他のベクトル列の開始点または終了点の境界座標Xbと
同じになることもない。これは、ある第1のベクトル列
の開始点または終了点の境界座標Xbが他の第2のベク
トル列の開始点または終了点の境界座標Xbと同じにな
るときには、第1と第2のベクトル列がその境界座標X
bにおいてYb軸方向にそって連結されて、1つのベク
トル列に統合されてしまうからである。
【0124】このようなベクトル列の端点に関する特徴
を考慮して、作業バッファ5の各レジスタ5p,5c,
5nのそれぞれは、境界座標Xbの各位置に対応して1
つのデータを記憶するように構成されているのである。
ある第1のベクトル列の開始点または終了点の境界座標
Xbが他の第2のベクトル列の開始点または終了点の境
界座標Xbと同じになるときには、同じ境界座標Xbの
位置における3つのレジスタ5p,5c,5nのすべて
にデータが登録されるので、これをベクトル列の中間点
と認識し、第1と第2のベクトル列を接続する(これは
図29で詳細に説明した対応関係の最適化処理であ
る)。そして、上述した式(1a)および(2a)が成
立したときには、閉ループベクトルが形成されたと判断
することができる。
【0125】この輪郭抽出方法の大きな特徴は、境界走
査線を1本ずつ更新しながら各ベクトルを検出しして行
く際に、上記のような作業バッファ5を利用することに
よって、各ベクトルを連結しつつ閉ベクトルを検出する
ことができるように工夫した点にある。
【0126】以上のように、この輪郭抽出方法は、Xb
軸方向の境界走査線に沿った画像のランデータを1本の
境界走査線ごとに(すなわち、1本の境界走査線を挟む
2本の画素走査線ごとに)順次処理しつつ、画像領域の
輪郭を形成する閉ループベクトルを検出することがで
き、画像全体を処理する以前に輪郭の閉ループベクトル
を検出することができる。この輪郭抽出方法を利用すれ
ば、画像領域の輪郭を抽出しつつ、抽出された輪郭の閉
ループベクトルの処理を後段の装置で並行して実行する
ことができるので、効率よく比較的短時間で画像全体の
処理を行なうことができるという利点がある。
【0127】C7.輪郭抽出の変形例: (1)作業バッファ5は、一般にベクトル列の開始点と
終了点の対応関係を示すデータを登録するレジスタを有
していればよく、上述のような3つのレジスタ5p,5
c,5n以外の構成を有していてもよい。
【0128】(2)ベクトルデータメモリ6の空領域を
管理して、そのメモリ空間を有効に利用するようにして
もよい。図52は、ベクトルデータメモリの空領域を管
理する方法を示す説明図である。図52において、アド
レス*1、*2、*7、*8に登録されていたデータが
既に閉ループベクトルデータとして外部装置に出力され
ており、これらのアドレスが空領域になっている。この
ような場合に、空領域の先頭のアドレス*1を示す空領
域アドレスポインタBAPを用いることによって、この
後に検出されたベクトルのデータを空領域に登録するこ
とができる。空領域のリンクデータとしては、次の空領
域のアドレスを示す値が登録されている。例えば、アド
レス*1のリンクデータとしては2番目の空領域のアド
レス*2が登録され、アドレス*2のリンクデータとし
ては3番目の空領域のアドレス*7が登録されている。
このように、空領域アドレスポインタBAPを用いてベ
クトルデータメモリ6の空領域を利用するようにすれ
ば、ベクトルデータメモリ6をより有効に利用すること
ができるという利点がある。
【0129】D.その他の変形例:なお、この発明は上
記実施例に限られるものではなく、その要旨を逸脱しな
い範囲において種々の態様において実施することが可能
であり、例えば次のような変形も可能である。
【0130】(1)この発明は、画像内のキズを消去す
る場合に限らず、画像内の不要な画像部分を消去する場
合にも適用できる。例えば、青空を横切る電線や、不要
な文字、顔のシミなどを消去する場合にも適用すること
が可能である。一般には、画像内の凹凸のある輪郭から
凹凸を消去する場合に適用することができる。
【0131】(2)画像の膨張・収縮の幅は、キズマス
クの形状からその幅を求め、キズマスクの幅以上の値に
設定していたが、キズマスクとは別に膨張・収縮の幅を
指定するようにしてもよい。
【0132】
【発明の効果】以上説明したように、本発明の第1と第
2の装置によれば、多階調画像内の輪郭を容易に修正す
ることができるという効果がある。特に、第2の装置に
よれば、輪郭ベクトルデータについて収縮処理と膨張処
理とを実行するので、収縮処理と膨張処理を高速に実行
することができるという効果がある。また、修正すべき
領域における元の多階調画像データを輪郭修正後の多階
調画像データで置き換えるようにすれば、画像全体を収
縮・膨張処理する場合に生じ易い画質の劣化を防止でき
るという効果がある。
【図面の簡単な説明】
【図1】この発明の第1の実施例としての画像処理装置
を示すブロック図。
【図2】第1の実施例における処理手順を示すフローチ
ャート。
【図3】原画像とキズマスクとを示す平面図。
【図4】ステップTT3における2値化処理の詳細を示
すフローチャート。
【図5】2値化処理の結果を示す説明図。
【図6】多階調画像を2値化して得られた9組の2値画
像を個別に示す平面図。
【図7】2値画像の収縮と膨張の処理を示す説明図。
【図8】2値画像データから多階調画像データへの復元
方法を示す説明図。
【図9】キズマスクDMの領域内の多階調データを更新
する方法を示す説明図。
【図10】2値画像における画素輪郭と境界輪郭とを比
較して示す説明図。
【図11】この発明の第2の実施例としての画像処理装
置を示すブロック図。
【図12】第2の実施例に置ける輪郭修正処理の手順を
示すフローチャート。
【図13】図6の各2値画像に対応する輪郭ベクトルを
示す概念図。
【図14】輪郭ベクトルの収縮処理の方法を示す説明
図。
【図15】輪郭ベクトルが収縮される様子を示す説明
図。
【図16】ステップTT13における復元処理の詳細手
順を示すフローチャート。
【図17】輪郭ベクトルデータから2値画像データを得
る処理の工程を示す説明図。
【図18】輪郭ベクトルデータから2値画像データを得
る処理の工程を示す説明図。
【図19】輪郭ベクトルデータから2値画像データを得
る処理の工程を示す説明図。
【図20】輪郭ベクトルデータから2値画像データを得
る処理の工程を示す説明図。
【図21】輪郭ベクトルデータから2値画像データを得
る処理の工程を示す説明図。
【図22】輪郭ベクトルデータから2値画像データを得
る処理の工程を示す説明図。
【図23】輪郭ベクトルデータから2値画像データを得
る処理の工程を示す説明図。
【図24】輪郭ベクトルデータから2値画像データを得
る処理の工程を示す説明図。
【図25】輪郭抽出に関連する装置の構成を示すブロッ
ク図。
【図26】ランデータ変換部10eにおける画像データ
からランデータへの変換方法を示す説明図。
【図27】輪郭ベクトルの検出に応じて作業バッファお
よびベクトルデータメモリにデータを登録する接続処理
の内容を示す説明図。
【図28】ベクトルの接続処理の内容を示す説明図。
【図29】ベクトルの接続処理の内容を示す説明図。
【図30】ベクトルの接続処理の内容を示す説明図。
【図31】ベクトルの接続処理の内容を示す説明図。
【図32】ベクトルの接続処理の詳細手順を示すフロー
チャート。
【図33】ベクトルの接続処理の詳細手順を示すフロー
チャート。
【図34】ベクトルの検出処理の手順を示すフローチャ
ート。
【図35】ベクトルの検出処理の手順を示すフローチャ
ート。
【図36】ベクトル検出に使用されるデータを説明する
ための説明図。
【図37】ベクトル検出の条件1が成立する場合の画像
の状態を示す説明図。
【図38】ベクトル検出の条件2が成立する場合の画像
の状態を示す説明図。
【図39】ベクトル検出の条件3と4が成立する場合の
画像の状態を示す説明図。
【図40】ベクトル検出の条件3と5が成立する場合の
画像の状態を示す説明図。
【図41】ベクトル検出の条件3と6が成立する場合の
画像の状態を示す説明図。
【図42】輪郭抽出の全体処理手順を示すフローチャー
ト。
【図43】輪郭ベクトルの抽出処理の工程を境界走査線
ごとに示す説明図。
【図44】輪郭ベクトルの抽出処理の工程を境界走査線
ごとに示す説明図。
【図45】輪郭ベクトルの抽出処理の工程を境界走査線
ごとに示す説明図。
【図46】輪郭ベクトルの抽出処理の工程を境界走査線
ごとに示す説明図。
【図47】輪郭ベクトルの抽出処理の工程を境界走査線
ごとに示す説明図。
【図48】輪郭ベクトルの抽出処理の工程を境界走査線
ごとに示す説明図。
【図49】輪郭ベクトルの抽出処理の工程を境界走査線
ごとに示す説明図。
【図50】輪郭ベクトルの抽出処理の工程を境界走査線
ごとに示す説明図。
【図51】輪郭ベクトルの抽出処理の工程を境界走査線
ごとに示す説明図。
【図52】ベクトルデータメモリの空領域を管理する方
法を示す説明図。
【図53】多値画像を2値化して得られた9組の2値画
像を個別に示す平面図。
【図54】2値画像の膨張と収縮の処理を示す説明図。
【符号の説明】
2…ランデータ変換部 3…ランデータバッファ 31…第1のランデータバッファ 32…第2のランデータバッファ 4…輪郭抽出部 5…作業バッファ 5c…columnレジスタ 5n…nextレジスタ 5p…prevレジスタ 6…ベクトルデータメモリ 10…CPU 10a…2値化処理部 10b…膨張・収縮処理部 10c…多階調画像復元部 10d…多階調画像修正部 10e…ランデータ変換部 10f…輪郭抽出部 12…バスライン 14…主メモリ 16…補助メモリ 20…画像データバッファ 22…キズデータバッファ 24…輪郭抽出用データバッファ 26…復元用データバッファ 30…入出力インタフェイス 33…キーボード 34…マウス 36…カラーCRT 38…磁気ディスク 52…水平変化点バッファ 54…ペイントバッファ 56…垂直ソートバッファ 58…端点格納メモリ BAP…空領域アドレスポインタ CL1〜CL4…閉ループベクトル Dmax…2値化しきい値の最大値 Dth…2値化しきい値 DF…キズ DM…キズマスク Da〜Df…作業データ Di…多階調画像データ Dp…2値画像データ Dr…ランデータ N1,N2…アドレスポインタ O…原点 P1〜P6…ベクトルの端点 Pm…2つの連続するベクトルの中間点 R1〜R3…2値画像データが1の領域 SA…処理領域 SL1,SL2…走査線 V0〜V4…ベクトル Va〜Ve…ベクトル WDM…キズマスクの幅 W1,W2…背景領域(2値画像データが0の領域) WA…白色部 Xb,Yb…境界座標 Xe…終点座標 Xs…始点座標 Xp,Yp…画素座標 n…走査線を示すパラメータ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) H04N 1/40 - 1/409 H04N 1/46 H04N 1/60

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 多階調画像を修正する装置であって、 (A)多階調画像の濃度を画素ごとに表現した多階調画
    像データを記憶する第1の記憶手段と、 (B)複数の濃度レベルをしきい値として前記多階調画
    像データを2値化することにより、複数の2値画像デー
    タを作成する2値化手段と、 (C)前記複数の2値画像データを記憶する第2の記憶
    手段と、 (D)前記複数の2値画像データに対して収縮処理を実
    行することによって、前記複数の2値画像データで表わ
    される複数の2値画像の輪郭の凹凸を減少させ、その
    後、収縮後の複数の2値画像データに対して膨張処理を
    実行することによって、輪郭が修正された複数の2値画
    像を表す輪郭修正後の複数の2値画像データを生成する
    輪郭修正手段と、 (E)前記輪郭修正後の複数の2値画像データを多階調
    画像データに復元する復元手段と、 を備える多階調画像の修正装置。
  2. 【請求項2】 多階調画像を修正する装置であって、 (A)多階調画像の濃度を画素ごとに表現した多階調画
    像データを記憶する第1の記憶手段と、 (B)複数の濃度レベルをしきい値として前記多階調画
    像データを2値化することにより、複数の2値画像デー
    タを作成する2値化手段と、 (C)前記複数の2値画像データを記憶する第2の記憶
    手段と、 (D)前記複数の2値画像データのそれぞれを、該2値
    画像データによって表わされる2値画像の輪郭を表わす
    輪郭ベクトルデータに変換する輪郭抽出手段と、 (E)前記複数の輪郭ベクトルデータに対して収縮処理
    を実行することによって、前記複数の輪郭データで表わ
    される複数の2値画像輪郭の凹凸を減少させ、その後、
    収縮後の複数の輪郭ベクトルデータに対して膨張処理を
    実行することによって、輪郭が修正された複数の2値画
    像輪郭を表す輪郭修正後の複数の輪郭ベクトルデータを
    生成する輪郭修正手段と、 (F)前記輪郭修正後の複数の輪郭ベクトルデータを多
    階調画像データに復元する復元手段と、 を備える多階調画像の修正装置。
  3. 【請求項3】 請求項1または2記載の多階調画像の修
    正装置であって、さらに、 (G)修正したい2値画像輪郭部分を含むように、多階
    調画像内の修正すべき領域を指定する指定手段と、 (H)復元手段によって復元された多階調画像データか
    ら、前記修正すべき領域内の画像を表わすデータ部分を
    抽出するとともに、該抽出したデータ部分によって、修
    正前の多階調画像データの対応するデータ部分を置き換
    えることにより、修正後の多階調画像データを作成する
    データ修正手段と、 を備える多階調画像の修正装置。
JP5069261A 1993-03-03 1993-03-03 多階調画像の修正装置 Expired - Fee Related JP2904671B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP5069261A JP2904671B2 (ja) 1993-03-03 1993-03-03 多階調画像の修正装置
EP19940103065 EP0614154A3 (en) 1993-03-03 1994-03-01 Method and device for improving multi-tone images.
US08/573,599 US5724454A (en) 1993-03-03 1995-12-07 Method and apparatus for correcting a multi-tone image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5069261A JP2904671B2 (ja) 1993-03-03 1993-03-03 多階調画像の修正装置

Publications (2)

Publication Number Publication Date
JPH06261209A JPH06261209A (ja) 1994-09-16
JP2904671B2 true JP2904671B2 (ja) 1999-06-14

Family

ID=13397594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5069261A Expired - Fee Related JP2904671B2 (ja) 1993-03-03 1993-03-03 多階調画像の修正装置

Country Status (3)

Country Link
US (1) US5724454A (ja)
EP (1) EP0614154A3 (ja)
JP (1) JP2904671B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289136B1 (en) 1995-03-22 2001-09-11 Canon Kabushiki Kaisha Image processing method and apparatus
JPH0927028A (ja) * 1995-07-07 1997-01-28 Dainippon Screen Mfg Co Ltd 多階調画像の修正装置
US5923775A (en) * 1996-04-04 1999-07-13 Eastman Kodak Company Apparatus and method for signal dependent noise estimation and reduction in digital images
JP2001188910A (ja) * 1999-10-22 2001-07-10 Toshiba Corp 画像の輪郭抽出方法、画像からの物体抽出方法およびこの物体抽出方法を用いた画像伝送システム
US6990255B2 (en) * 2001-09-19 2006-01-24 Romanik Philip B Image defect display system
JP3516937B2 (ja) * 2001-09-19 2004-04-05 株式会社Pfu 画像読み取りシステムの制御方法およびその制御プログラム
US7031549B2 (en) * 2002-02-22 2006-04-18 Hewlett-Packard Development Company, L.P. Systems and methods for enhancing tone reproduction
US7356193B2 (en) * 2004-04-01 2008-04-08 Eastman Kodak Company Detection of hanging wires in digital color images
JP4652717B2 (ja) * 2004-04-26 2011-03-16 株式会社ミツトヨ 画像処理装置及び方法並びにプログラム
JP4968192B2 (ja) * 2008-06-18 2012-07-04 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、画像処理プログラム、および画像処理方法
US8189943B2 (en) * 2009-03-17 2012-05-29 Mitsubishi Electric Research Laboratories, Inc. Method for up-sampling depth images

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4520505A (en) * 1981-12-23 1985-05-28 Mitsubishi Denki Kabushiki Kaisha Character reading device
US4698843A (en) * 1985-08-19 1987-10-06 Rca Corporation Method for compensating for void-defects in images
JPS63265371A (ja) * 1986-12-15 1988-11-01 Toshiba Corp 線図形つなぎ装置
GB2199803B (en) * 1987-01-20 1991-05-29 Sanwa Shutter Corp Elevation bed
JP3014097B2 (ja) * 1987-02-20 2000-02-28 株式会社日立製作所 輪郭追跡方法及びシステム
US5181255A (en) * 1990-12-13 1993-01-19 Xerox Corporation Segmentation of handwriting and machine printed text
JPH0425980A (ja) * 1990-05-22 1992-01-29 Fuji Photo Film Co Ltd ノイズ除去方法
US5131058A (en) * 1990-08-24 1992-07-14 Eastman Kodak Company Method for obtaining output-adjusted color separations
JPH04107069A (ja) * 1990-08-28 1992-04-08 Toshiba Corp 二値画像から多階調画像への変換装置
JP2958584B2 (ja) * 1991-09-19 1999-10-06 富士写真フイルム株式会社 ノイズ除去方法
JP2845384B2 (ja) * 1991-11-14 1999-01-13 キヤノン株式会社 画像処理装置
US5341224A (en) * 1992-04-17 1994-08-23 Xerox Corporation Image processing system and method for employing adaptive scanning of halftones to provide better printable images

Also Published As

Publication number Publication date
EP0614154A3 (en) 1994-10-26
JPH06261209A (ja) 1994-09-16
EP0614154A2 (en) 1994-09-07
US5724454A (en) 1998-03-03

Similar Documents

Publication Publication Date Title
EP0558049B1 (en) Method and apparatus for extracting a contour of an image
JP2904671B2 (ja) 多階調画像の修正装置
CN108876701B (zh) 一种基于游程的单次扫描连通域标记方法及其硬件结构
JPH06203153A (ja) 画像処理方法及び装置
US5293471A (en) Graphics processing system for deleting one of overlapping line and graphics images
Cuisenaire Region growing Euclidean distance transforms
US6580429B1 (en) Method of generating data for three-dimensional graphic recording medium and three-dimensional graphic system
US5949913A (en) Method and apparatus for modifying multi-tone image
US5835629A (en) Code pattern-image processing apparatus
JP2846486B2 (ja) 画像入力装置
JP2773127B2 (ja) 画像編集方法
JP3679619B2 (ja) 画像の輪郭抽出方法、装置、および記録媒体
JP2650443B2 (ja) 線図形ベクトル化方式
JP2930599B2 (ja) 図形ベクトル化処理方法及び装置
Olsson et al. Implementation of an efficient labeling algorithm on a pipelined architecture
JP3147469B2 (ja) 画像処理装置
JP2634905B2 (ja) 図形ぬりつぶし方法
JPH05151350A (ja) 画像データの位置歪み補正方法
JP5505953B2 (ja) 画像判別システム、その方法及びそのプログラム
JP3395346B2 (ja) フィレ座標生成方法およびその装置
JP2575047B2 (ja) ディジタル画像の復元装置
JPH01128171A (ja) 画像処理装置
JPH06203155A (ja) 画像処理方法
JPH06318248A (ja) 画像処理装置及び方法
JPH0758960A (ja) ピンホール処理方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees