JP2954434B2 - 画像処理方法及びその装置 - Google Patents

画像処理方法及びその装置

Info

Publication number
JP2954434B2
JP2954434B2 JP4254989A JP25498992A JP2954434B2 JP 2954434 B2 JP2954434 B2 JP 2954434B2 JP 4254989 A JP4254989 A JP 4254989A JP 25498992 A JP25498992 A JP 25498992A JP 2954434 B2 JP2954434 B2 JP 2954434B2
Authority
JP
Japan
Prior art keywords
vector
image
pixel
contour
image processing
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
JP4254989A
Other languages
English (en)
Other versions
JPH06103379A (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 JP4254989A priority Critical patent/JP2954434B2/ja
Priority to EP93307549A priority patent/EP0589702B1/en
Priority to DE69324874T priority patent/DE69324874T2/de
Publication of JPH06103379A publication Critical patent/JPH06103379A/ja
Priority to US08/636,629 priority patent/US5828794A/en
Priority to US09/038,477 priority patent/US6111994A/en
Application granted granted Critical
Publication of JP2954434B2 publication Critical patent/JP2954434B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Analysis (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は画像処理方法及びその装
置、詳しくはラスタ走査順で入力した2値画像の輪郭線
を抽出する画像処理方法とその装置に関するものであ
る。
【0002】
【従来の技術】2値ドットパターンからアウトラインフ
ォントを作成する場合、2値画像文字パターンの輪郭線
を抽出し、その輪郭線をベクトル情報形式で記憶するこ
とにより、その文字のアウトラインフォントを作成す
る。このような2値画像より輪郭線を抽出するには、ま
ず2値画像における輪郭線追跡のための追跡開始点を見
付けることから始められる。そして、この追跡開始点が
発見されると、次にこの追跡開始点から順にその画像の
輪郭を追跡していき、追跡の終った輪郭点には次々に追
跡済のマークを付けながら追跡を続行する。こうして、
この追跡が一巡した時点で1つの輪郭点列(輪郭線)を
求めている。このような手順を繰り返し行うことによ
り、その画像中のすべての輪郭線を抽出することができ
る。
【0003】ここで8連結の輪郭追跡の手順例を図2に
示す。図2において、201は内側に空白部分202を
含む2値画像パターンで、この輪郭線を抽出する場合を
説明する。但し、図2における1つのマス目は1ドット
(画素)を表わしている。
【0004】(1)2値画像パターン201を画面の基
準点(0,0)からラスタ走査してゆく。
【0005】(2)追跡済のマークが付いていない画素
(例えばドット203)が存在する点にぶつかったなら
ば、その点をP0としてドットパターンの輪郭追跡を開
始する。全画面分を探しても点P0が存在しなければ手
順終了。
【0006】(3)開始点P0に隣接する8方向の近傍
画素方向に、図3に示す順番で探索を開始する。そし
て、最初に出会った画素が存在する点(図2の場合では
ドット204)を次の輪郭点P1とする。尚、この時、
隣接点が存在しない場合は、その点を孤立点として手順
(2)へ戻る。
【0007】(4)このようにしてPiのマーク付けを
行い、図4に示したように、Piに隣接する8方向の近
傍画素に対して、次の輪郭点Pi+1を抽出する。これ
は、直前にマーク付けを行った点401より、Pi(ド
ット204)を中心に反時計回り方向にドットが存在す
るかを探索し、最初に出会った画素が存在する点を次の
輪郭点Pi+1とするものである。
【0008】(5)以下、手順(4)を繰り返して、次
々に輪郭点を求める。但し、Pn+1=P1、Pn=P0とな
ったならは、P0、P1、・・・、Pn-1を1つの領域の
輪郭点列となし、手順(6)へ進む。
【0009】(6)別の画像領域の輪郭点列を求めるた
めに手順(2)へ戻る。
【0010】以上である。
【0011】尚、図3及び図4において、中心部分は注
目点を、◎(401)は直前にマーク付けを行った点を
示している。又、図中に示された数字は画素(ドット)
の有無を探索する順番を表現している。
【0012】しかしながら、上記例では、輪郭追跡の開
始点を決定した後は、輪郭線に沿った追跡を行うため、
全画像をメモリ上に取り込んだ後で、輪郭線の抽出処理
を開始しなければならない。このため、必要とするメモ
リ容量が大きくなり、コストアップや処理時間が遅くな
る等の不具合があった。
【0013】これに対してメモリ容量の削減を図るため
に、ラスタ走査順に画像を取り込み、注目画素とその近
傍の画素の状態により輪郭点を抽出する方法を本願出願
人は提案した。この方法では、画素単位に輪郭線の接続
状態を保持しておく接続情報テーブルを持っており、画
像内の全ての画素について輪郭を抽出し終った段階で、
再び接続情報テーブルを走査して、最終的な輪郭ベクト
ルの総ループ数、各ループを構成する輪郭点の個数、各
ループを構成する輪郭点の座標値等を求めている。
【0014】
【発明が解決しようとする課題】しかしながら、これで
も、画像内の全ての画素について輪郭(粗輪郭)ベクト
ルを抽出し終った段階で、再び接続情報テーブルを走査
して、最終的な輪郭ベクトルの総ループ数、各ループを
構成する輪郭点の個数、各ループを構成する輪郭点の座
標値等を求めているため、画像内の輪郭点の接続情報を
全て保持しておかなければならないので接続情報テーブ
ルの容量が大きくなり、テーブルの検索スピードが低下
する傾向にあることがわかった。
【0015】
【課題を解決するための手段】本発明は、かかる問題点
に鑑み成されたものであり、輪郭ベクトルを抽出する場
合における各輪郭ベクトルの接続関係を記憶するための
メモリ量を少なくすることを可能にする画像処理方法及
び装置を提供しようとするものである。
【0016】この課題を解決するため、例えば本発明の
画像処理装置は以下の構成を備える。すなわち、入力画
像から1ライン以上の白ラインを検出する検出手段と、
前記検出手段による1ライン以上の白ラインが検出され
た場合、入力画像を、検出された白ライン位置に基づい
て帯状画像に分割する分割手段と、前記分割手段により
分割された帯状画像単位で輪郭ベクトルを抽出する抽出
手段とを有する。
【0017】また、本発明の画像処理方法は以下の工程
を備える。
【0018】入力画像から1ライン以上の白ラインを検
出する検出ステップと、前記検出ステップによる1ライ
ン以上の白ラインが検出された場合、入力画像を、検出
された白ライン位置に基づいて帯状画像に分割する分割
ステップと、前記分割ステップにより分割された帯状画
像単位で輪郭ベクトルを抽出する抽出ステップとを有す
る。
【0019】また、他の発明の画像処理装置は、更に、
抽出した輪郭ベクトルの整列処理までを高速に行え、且
つ、必要とするメモリも少なくて済む画像処理装置及び
方法を提供しようとするものである。
【0020】この課題を解決するため、本発明の画像処
理装置は以下の構成を備える。すなわち、入力画像を記
憶するメモリに入力画像が所定量記憶されたことを検出
する検出手段と、前記検出手段による所定量記憶された
ことの検出に基づき、入力画像を複数の帯状画像に分割
する分割手段と、前記分割手段により分割された帯状画
像単位で、輪郭点を輪郭ベクトルの端点とする輪郭ベク
トルデータを抽出する抽出手段と該抽出手段で抽出した
前記帯状画像毎の輪郭ベクトルデータを、輪郭点の接続
順になるように整列する整列手段とを有する。
【0021】また、本発明の画像処理方法は以下の工程
を備える。
【0022】入力画像を記憶するメモリに入力画像が所
定量記憶されたことを検出する検出ステップと、前記検
出ステップによる所定量記憶されたことの検出に基づ
き、入力画像を複数の帯状画像に分割する分割ステップ
と、前記分割ステップにより分割された帯状画像単位
で、輪郭点を輪郭ベクトルの端点とする輪郭ベクトルデ
ータを抽出する抽出ステップと該抽出ステップで抽出し
た前記帯状画像毎の輪郭ベクトルデータを、輪郭点の接
続順になるように整列する整列ステップとを有する。
【0023】また、他の発明は、分割した入力画像から
輪郭ベクトルを抽出することでメモリ使用量を少なくす
ると共に、隣接する分割画像の近傍にある有意な輪郭ベ
クトルについては平滑化対象としないことで、良好な再
生画像を得ることを可能ならしめる画像処理装置及び方
法を提供しようとするものである。
【0024】この課題を解決するため、例えば本発明の
画像処理装置は以下の構成を備える。すなわち、入力画
像を複数の帯状画像に分割する分割手段と、前記分割手
段により分割された帯状画像単位で輪郭ベクトルを抽出
する抽出手段と、前記抽出手段により抽出された輪郭ベ
クトルに基づき平滑化を行う平滑化手段とを有し、前記
平滑化手段は、連続する2つの帯状画像それぞれの輪郭
ベクトルのうち、前記2つの帯状画像間の境界近傍にあ
る有意な座標位置の輪郭ベクトルを対象外とし、平滑化
を行うことを特徴とする。
【0025】また、本発明の画像処理方法は以下の工程
を備える。
【0026】入力画像を複数の帯状画像に分割する分割
ステップと、前記分割ステップにより分割された帯状画
像単位で輪郭ベクトルを抽出する抽出ステップと、前記
抽出ステップにより抽出された輪郭ベクトルに基づき平
滑化を行う平滑化ステップとを有し、前記平滑化ステッ
プは、連続する2つの帯状画像それぞれの輪郭ベクトル
のうち、前記2つの帯状画像間の境界近傍にある有意な
座標位置の輪郭ベクトルを対象外とし、平滑化を行うこ
とを特徴とする。
【0027】
【作用】かかる本発明の構成において、例えば画像全体
を白ラインを検出することで帯状画像として分割し、そ
の帯状画像単位に輪郭ベクトルを抽出する。
【0028】
【実施例】以下、添付図面を参照して本発明に係る実施
例を詳細に説明する。
【0029】<第1実施例>本実施例は、図1に示すよ
うに、入力画像をストライプ状に分割し、各ストライプ
毎に注目画素(101)と、その近傍の8個の画素の状
態を見て処理を進めるもので、注目画素をラスタ走査
し、1画素ごとにその位置をずらしながら画像全体の処
理を逐次行ってゆく。
【0030】図1において、101は注目画素であ
り、”0”及び”2”で示された位置は、主走査方向に
対し注目画素101と同じ位置にあり、副走査方向のそ
れぞれ1ラスタ前の画素(0)及び1ラスタ先の画素
(2)を示す。”1”及び”3”で示された位置は、注
目画素101と同一のラスタ上にあり、それぞれ1画素
前の画素(3)及び1画素先の画素(1)を示してい
る。さらに、”A”及び”B”は、主走査方向に1画素
先の位置にあり、それぞれ1ラスタ前及び1ラスタ先の
位置にある画素を示し、”C”及び”D”は主走査方向
の1画素前の位置にある画素で、それぞれ1ラスタ先及
び1ラスタ前の位置にある画素を示す。
【0031】図5は、本実施例の輪郭検出を行うハード
ウエア構成例を示すブロック図である。
【0032】501は信号線500を介して入力される
画像データをやりとりするための入力制御(インタ−フ
ェース)部であり、この信号線500よりラスタ走査形
式で順次2値画像データが入力されてくる。502はラ
ッチで、501より入力された画像データを、図示しな
い画素同期クロックに同期して1画素づつ順次更新しな
がら保持する。次の画素同期クロックにて、ラッチ50
2は次の画素データを入力制御回路501より入力す
る。この時、既に保持していた画素データは、その画素
クロックに同期してラッチ503にラッチされ、保持さ
れることになる。同様にラッチ503は保持されていた
画素データは、次の画素同期クロックにて、ラッチ50
4に保持される。
【0033】505及び503はそれぞれ1ラスタ分の
画素データを保持するFIFO(ファーストイン・ファ
ーストアウト・メモリ)である。FIFO505は、ラ
ッチ504の出力を順次、画素同期クロックに同期して
取り込み、1ラスタ前のデータをラッチ507へ出力す
る。同様に、FIFO506も、ラッチ509の出力を
取り込み、ラッチ510に1ラスタ前の画素データを出
力する。ラッチ507、508、509及びラッチ51
0、511、512は共に前記ラッチ502、503、
504と全く同様に動作する。
【0034】上記構成によれば、ラッチ502、50
3、504、507、508、509、510、511
及び512には、常に3×3画素のデータ、換言すれば
ある領域の画素データが記憶されることになる。ここで
ラッチ508に保持された画素データを注目画素位置
(図1の符号101)として見ると、その回りの各ラッ
チには図1における画素位置”B”、”2”、”
C”、”1”、”3”、”A”、”0”、”D”のデー
タが保持されることになる。
【0035】513、514は共に入力ポートで、入力
ポート513は、ラッチ510、502、504、51
2のデータ、即ち、それぞれ図1における”A”、”
B”、”C”、”D”の位置のデータをCPU519に
供給する。同様に、入力ポート514はラッチ511、
507、503、509、508のデータ、即ち、”
0”、”1”、”2”、”3”及び注目画素位置のデー
タをCPU519に供給する。
【0036】515は主走査方向の画素位置を示す主走
査カウンタであり、図示しない副走査同期信号によりリ
セットされ、画素同期信号によりカウントアップする。
516は副走査方向の画素位置を示す副走査カウンタ
で、図示しないページ同期信号によりリセットされ、副
走査同期信号によりカウントアップされる。517は入
出力制御用の入出力ポートであり、入出力制御回路50
1に対し、画素データ入力の実行及び保留を指示する信
号、及び入出力制御回路501よりCPU519への画
素データ更新を知らせる信号等を保持する。521はハ
ードディスク522の入出力制御装置である。
【0037】これら入出力制御ポート517、主走査カ
ウンタ515、副走査カウンタ516、入力ポート51
3、514、メモリ520、ディスクI/O521はバ
ス518を介してCPU519に接続されている。
【0038】こうして、CPU519は入出力制御ポー
ト517を介して、画素データの更新を行い、主走査カ
ウンタ515及び副走査カウンタ516を介して、注目
画素の画素位置(i,j)を知ることができる。また、
入力ポート513及び514を介して、注目画素及びそ
の近傍の8方向の画素の状態を知ることができる。
【0039】このようにして注目画素の処理が終了する
と、CPU519は入出力制御ポート517を介して9
個のラッチに記憶される画素データの更新を指示し、同
時に画素データの更新指示の信号をクリアするととも
に、後段のラッチにラッチされる画素データを更新し、
この更新が終了すると入出力制御ポート517に、更新
完了の信号を出力する。
【0040】CPU519は、更新指示の出力後、入出
力制御ポート517より更新完了の信号が入力されるの
を監視している。この更新完了の信号が入力されると、
新たに9個のラッチに記憶された画素データに関する処
理を実行し、以下同様にこれを繰り返すものである。
【0041】尚、説明が前後するが、CPU519は、
CPU519の動作処理手順(詳細は後述する)を記憶
しているROM及びワークエリアとして使用されるRA
Mを内蔵している。
【0042】また、入力制御回路501は、画像領域の
最終画素を注目画素として処理し終った際に、入出力制
御ポート517に終了信号を出力する。
【0043】次に注目画素及びその近傍の8画素の状態
に応じた、それぞれの場合の処理を説明する。
【0044】注目画素が白画素である場合、その画素は
輪郭の一部ではないので、その処理を終了してラスタ走
査を1画素分進め、注目画素位置を更新する。
【0045】注目画素が黒画素の場合は、近傍の画素の
状態によって以下の処理を行う。図6〜図21に各状態
における処理内容を示してある。
【0046】ここで図8の画素マトリクス61におい
て、”d”は”do not care”、即ち、”
d”で示される位置の画素は白画素でも黒画素でも構わ
ないことを意味している。これは以下の図でも同様とす
る。また図6の画素マトリクス62において、○印は横
方向(水平)ベクトルの始点及び縦(垂直)方向ベクト
ルの終点を表わしており、△印は縦方向ベクトルの始点
及び横方向ベクトルの終点を表わしている。また図6の
62における実線矢印は、始点及び終点共に定まった、
矢印の向く方向の輪郭ベクトルを表わし、図7に示すよ
うな点線矢印は、始点もしくは終点のいずれか一方のみ
が定まった(一方が定まっていない)、矢印の向く方向
の輪郭ベクトルを表わしている。これら、○、△、実線
矢印及び点線矢印の持つ意味も、以降の図においても同
様である。また●は黒画素を示し、白画素はその位置を
明示したいときのみ点線の○印で表記し、それ以外の時
は表記していない。
【0047】これら輪郭ベクトルの始点・終点位置は、
主走査方向及び副走査方向共に、画素と画素の中間の位
置にあるものとする。また、主走査方向及び副走査方向
共に、画素のある位置は正整数で示され、画素位置を2
次元の座標で表現をする。例えば、図6の注目画素63
の位置が[(3,7):第7ラスタの第3画素位置の
意]であれば、図6の62で示された4本のベクトルは
それぞれ点64(2.5,6.5)、点65(3.5,
6.5)、点66(3.5,7.5)、点67(2.
5,7.5)の4点を始点、終点とする互いに連続する
4本のベクトルとして表現される。
【0048】これらベクトルを(始点の座標、終点の座
標)で表現するものとすると、図6の4本のベクトルそ
れぞれ [(2.5,6.5),(3.5,6.5)] [(3.5,6.5),(3.5,7.5)] [(3.5,7.5),(2.5,7.5)] [(2.5,7.5),(2.5,6.5)] で表現される。
【0049】従って、ここでは少数の表現を避けるため
に便宜上、以降の画素位置を偶数のみで表現することに
し、始点、終点の位置を奇数の整数で表現することにす
る。即ち、m画素×n画素の画像は、2m×2nの正の
偶数(整数)の座標表現で表わすものとする。これによ
り、上述の図6の例は、注目画素位置を(6,14)で
あると表現し、それぞれ4つの終点、始点は(5,1
3)、(7,13)、(7,15)、(5,15)とな
る。これにより、図6の4本のベクトルは、 [(5,13),(7,13)] [(7,13),(7,15)] [(7,15),(5,15)] [(5,15),(5,13)] で表現される。
【0050】これ以降2値画像は、それぞれがm画素よ
りなるnラスタで構成されるm×n画素(m、nは正の
整数)でなるものとし、第j番目のラスタの第i番目の
画素位置を(2i,2j)(i,jは正の整数で、i≦
m、j≦n)で表現するものとする。
【0051】<輪郭抽出処理の説明>図22は実施例の
装置のCPU519による輪郭抽出処理の全体の流れを
示すフローチャートである。
【0052】先ず、ステップS1にて、処理の初期設
定、即ち、図1のように入力画像をストライプ状に分割
し、注目ストライプを画像の先頭ストライプにセットす
る。入力画像を分割する際の各々のストライプのライン
数は同じであっても、異なっていてもよい。また各々の
ストライプのライン数は予め決められた数に設定して
も、外部からの設定手段により任意に設定しても良い。
【0053】ステップS2では、注目ストライプ中の2
値画像データからベクトル列を抽出し、各ベクトルの始
点の座標及びこのベクトルに流入してくる(注目ベクト
ルの始点の座標が終点となっている)ベクトル、流出し
ていく(注目ベクトルの終点の座標が始点となってい
る)ベクトルを、図23及び図24に示すテーブル(こ
れらを接続情報テーブルと定義する)形式で出力する。
図23は水平方向のベクトルを示す図、図24は垂直方
向のベクトルを示す図である。尚、上記の如く実施例で
は、2値画像の輪郭を垂直及び水平方向のベクトルに分
解して輪郭(第1段階の輪郭)を抽出する。ここで注意
すべき点は、全ての2値画像の輪郭は、ベクトル長さは
不定であるが、水平ベクトル→垂直ベクトル→水平ベク
トル→垂直ベクトル→…という具合に、これら水平/垂
直の繰り返しで表現される。
【0054】さて、ステップS3では、図23及び図2
4に示すテーブルから流入及び流出ベクトルの項目番号
を辿ることにより、図25に示すような画像中の総輪郭
線数、各輪郭線毎の輪郭線の総点数、輪郭線中の各点の
x座標、y座標を記憶したテーブルを作成する。
【0055】次にステップS4に進み、ディスクI/O
521を介して、このテーブル情報をファイル形式でデ
ィスク522に記憶し、図23及び図24のテーブルの
内容をクリアする。
【0056】その後、ステップS5に進み、注目ストラ
イプが入力画像の最終ストライプかどうかが判定され、
最終ストライプでなければS6に移り、最終ストライプ
ならば処理を終了する。ステップS6では注目ストライ
プを次のストライプに移動してステップS2に戻る。
【0057】以上のように入力画像を1個以上のストラ
イプに分割し、ストライプ毎にアウトラインの抽出・整
列・ファイル出力処理を行うことで、図23及び図24
で示されるテーブルの容量を小さくすることができる。
【0058】ここで、上記ステップS22のベクトル列
抽出処理の内容を図26のフローチャートを用いて説明
する。
【0059】まずステップS11では、入力ポート51
4のビット4(注目画素)を見ることにより、注目画素
が白画素か黒画素かを判定する。白画素の場合はステッ
プS13へ進み、黒画素の場合はステップS12へ進
む。ステップS12では、注目画素の周囲8画素の状態
を見て、その状態に応じた適当な処理ルーチンをコール
する。
【0060】ステップS13では、前述の如く入出力制
御ポート517を介して画素位置の更新を指示する。そ
して、入出力制御ポート517より更新完了の信号を入
力するとステップS14に進み、入出力制御ポート51
7を介して、最終画素の処理が終了したか否かを判断
し、終了していなければステップS11へ戻り、次の注
目画素も同様に処理を行い、終了していれば、元のルー
チンにリターンする。
【0061】図27は図26のステップS12に示され
た周囲画素の状態により実行される処理を示すフローチ
ャートである。
【0062】ステップS21において、CPU519の
レジスタを“0”で初期化する。次にステップS22に
進み、図1の“0”で示された位置の画素の状態(以
降、f(0)で表現する)が黒画素(以降、“1”で表
わす)であればステップS23へ進み、白画素(以降、
“0”で表わす)であればステップS23をスキップ
し、ステップS4へ進む。ステップS23では前記レジ
スタの内容に“1”を加える。すなわち、そのレジスタ
のビット0を“1”にセットする。
【0063】次にステップS24に進み、図1の“1”
の位置の画素の状態が黒画素であれば(f(1)=1)
ステップS25へ進み、前記レジスタの内容に2を加え
る(ビット1を“1”にセットする)。また、f(1)
=0であればステップS25をスキップする。
【0064】ステップS26に処理が進むと、今度は同
様に図1の“2”の位置の画素が黒画素かどうかを調べ
る。f(2)=1(黒画素)であればステップS27へ
進み、前記レジスタの内容に4を加える(ビット2を
“1”でセットする)。また、f(2)=0の場合に
は、ステップS27をスキップする。
【0065】ステップS28では、図1の“3”の位置
の画素に注目し、f(3)=1ならステップS29へ進
んで前記レジスタの内容に8を加える(ビット3を
“1”にセットする)。また、そうでなければステップ
S29の処理をスキップし、ステップS30へ進む。
【0066】以上の結果、図1に示した“0”、
“1”、“2”、“3”の画素位置の各画素の状態に応
じて、レジスタには0〜15のいずれかの値が保持され
ることになる。ステップS30では、このレジスタの保
持する値の処理番号のルーチンをコールする。
【0067】以下、レジスタに保持された値0〜15に
対応する処理(ケース0〜15)を説明するが、それら
ケース0〜15と注目画素及びその周辺画素の関係は、
次の様になっているのは理解できよう。すなわち、ケー
ス0は図6に対応し、ケース1は図7、ケース2は図
8、ケース3は図9、ケース4は図10、ケース5は図
11、ケース6は図12、ケース7は図13、ケース8
は図14、ケース9は図15、ケース10は図16、ケ
ース11は図17、ケース12は図18、ケース13は
図19、ケース14は図20、ケース15は図21に対
応する。
【0068】以下、各状態それぞれの処理内容に関し詳
述する。
【0069】図27のステップS30において、レジス
タの値が“0”の場合は、図28に示す処理がコールさ
れる。図28は先に指摘した様に図6に示す状態(ケー
ス0)を処理するルーチンである。以降、注目画素63
の座標が(2i,2j)として説明する。
【0070】<ケース0の場合の処理説明(図6、図2
3、図24、図28)>図28のステップS31では
(2i−1,2j−1)を水平ベクトルの始点として登
録する。即ち、図23に示す水平ベクトルカウンタ23
0の指し示す水平ベクトル始点(図6の64)のx座標
テーブルの欄(図23の231)に(2i−1)を格納
し、同じく水平ベクトル始点y座標テーブルの欄(図2
3の232)に(2j−1)を格納する。そして、この
水平ベクトルに流入してくる元の垂直ベクトルは、図2
4の垂直ベクトルカウンタ240が、この時点で指して
いる垂直ベクトルの始点座標テーブル内の位置の次の位
置に格納されるベクトルであり、また、この水平ベクト
ルが流出していく先の垂直ベクトルは、この時点で垂直
ベクトルカウンタ240が指している垂直ベクトルの始
点座標テーブルの位置にある。
【0071】即ち、図23に示す水平ベクトルの流入ベ
クトル項目番号の欄において、水平ベクトルカウンタ2
30が指し示す位置(図23の例では233)に、垂直
ベクトルカウンタ240の値に1加えた値を格納する。
また、水平ベクトルの流出ベクトル項目番号の欄には、
水平ベクトルカウンタ230が指し示す位置(図23の
例では234)に、垂直ベクトルカウンタ240の値を
格納する。
【0072】次にステップS32では、同様に(2i+
1,2j−1)を垂直ベクトルの始点(図6の65)と
して登録する。この垂直ベクトルに流入する水平ベクト
ルはステップS31で登録した水平ベクトルであり、こ
の垂直ベクトルが流出する水平ベクトルは、水平ベクト
ル始点座標テーブルのステップ31で登録された水平ベ
クトルの次の位置に格納される水平ベクトルであると登
録する。
【0073】即ち、図24を参照して説明すると、欄2
41には(2i+1)が、欄242には(2j−1)
が、更に欄243には、この時の水平ベクトルカウンタ
230の値が、欄244にはこの時の水平ベクトルカウ
ンタ230の値に+1した値が格納される。
【0074】次にステップS33に進み、水平ベクトル
カウンタ230の内容を+1する。ステップS24で
は、(2i+1,2j+1)を水平ベクトルの始点(図
6の67)座標として登録し、この水平ベクトルに流入
する垂直ベクトルは、ステップS32で登録したベクト
ルであると登録すると共に、この水平ベクトルが流出す
る垂直ベクトルは、ステップS32で登録された垂直ベ
クトルの垂直ベクトル始点座標テーブル内における次の
位置に格納さる垂直ベクトル(図6の点66と点64と
を結ぶベクトル)であるとして登録する。
【0075】ステップS35では、垂直ベクトルカウン
タ240の内容を+1し、ステップS36では、(2i
−1,2j+1)を垂直ベクトルの始点座標として登録
し、この垂直ベクトルに流入する水平ベクトルはステッ
プS34で登録された水平ベクトルであるとして登録す
る。そして、この垂直ベクトルが流出する水平ベクトル
は、ステップS31で登録した水平ベクトルであるとし
て登録する。こうして最後に、ステップS37で、水平
ベクトルカウンタ230及び垂直ベクトルカウンタ24
0を共に+1して処理を終了する。
【0076】この処理結果は、図6の62で示すごと
く、点64と点65とを結ぶ水平ベクトルと、点67と
点66とを結ぶ2つの水平ベクトルと、点65と点6
7、及び点66と点64とを結ぶ2つの垂直ベクトルを
合せた、4つのベクトルが巡回した1つのループを作っ
ている状態として抽出する。
【0077】ケース0の説明は上記の通りであるが、簡
単に説明すると、1本の水平ベクトルが発見されると、
その水平ベクトルの始点を終点とする垂直ベクトルが必
ずあることになるから、その垂直ベクトルを特定する番
号(図24の垂直ベクトルテーブルから見つける)を流
入ベクトル項目番号の欄に書き込む。また、注目してい
る水平ベクトルの終点位置には垂直ベクトルがかならず
接続されることになるから、その垂直ベクトルを特定す
る番号(図24の垂直ベクトルテーブルから見つける)
を流出ベクトル項目番号の欄に書き込む。同様の原理
で、垂直ベクトルテーブルについても同様の処理を行う
ことになる。これは、以下に示すケース1〜15につい
ても全く同じである。
【0078】<ケース1の説明(図7、図23、図2
4、図29)>図29は図27のステップS30で、レ
ジスタの保持する値が1の場合にコールされるケース1
の処理を示すフローチャートである。
【0079】まずステップS41では(2i+1,2j
+1)を水平ベクトルの始点として、図23に示すテー
ブルの始点座標のx、y座標に登録する。また、この水
平ベクトルが流出する垂直ベクトルの番号(欄234)
は、後述するステップS43で登録される垂直ベクトル
カウンタ240の値とする。次にステップS42に進
み、ステップS41で登録した水平ベクトルに流入する
垂直ベクトルを図34に示す流出先が未定な垂直ベクト
ルテーブル341から捜し出して登録する。このステッ
プS42の処理の内容は、図30のフローチャートで示
している。
【0080】ステップS51では、テーブル341に登
録されている流出先が未定の垂直ベクトルの数を保持す
る流出ベクトル未定垂直ベクトルカウンタ340の値を
変数kにセットする。ステップS52では垂直ベクトル
流出ベクトル未決定項目番号テーブル341に登録され
ている項目番号(k−1)の値が指し示す垂直ベクトル
の始点のx座標の欄が(2i+1)であるか否かを判定
する。(2i+1)でなければ変数kの値(k)を1だ
け減じて、再びステップS52を実行する。ステップS
52で始点のx座標が(2i+1)であればステップS
54へ進む。
【0081】ステップS54ではテーブル341の項目
番号が(k−1)である垂直ベクトルが、前述したステ
ップS41で登録した水平ベクトルの流入元ベクトルで
あり、更にステップS41で登録した水平ベクトルが、
この垂直ベクトルの流出先ベクトルであることになる。
従って、図23の水平ベクトルカウンタ230で指示さ
れる水平ベクトルの流入ベクトル項目番号欄に、テーブ
ル341の項目番号が(k−1)である垂直ベクトル番
号を、及び図24の垂直ベクトルの流出項目番号欄に、
ステップS41における水平ベクトルカウンタ230の
値を格納する。
【0082】ステップS55では、ステップS53、ス
テップS54において、流出先が決定したベクトルを流
出先未定ベクトルテーブル341から消去し、そのテー
ブルの空いた部分を詰める。次に、ステップS56で、
流出ベクトル未定垂直ベクトルカウンタ340の値を1
減じ、垂直ベクトル流出テーブル未決定項目番号テーブ
ル341に登録されている流出先が未定の垂直ベクトル
が1つ減った旨更新して、元のルーチンに戻る。。この
ようにして、図29のステップS42の処理が終了して
ステップS43へ進む。ステップS43では(2i−
1,2j+1)を垂直ベクトルの始点として登録し、こ
の垂直ベクトルに流入してくる水平ベクトルは、ステッ
プS41で登録した水平ベクトルとする。次に、ステッ
プS44ではステップS43で登録した垂直ベクトルが
流出する先の水平ベクトルを図31に示す流入元ベクト
ル未定テーブル311より捜し出して登録する。このス
テップS44の処理内容を図35のフローチャートで示
す。
【0083】これは前述した図30に示した処理と全く
同様にして実行される。即ち、ステップS43で登録し
た垂直ベクトルが流出する先のベクトルを図24の流出
ベクトル項目欄に登録し、この垂直ベクトルへ流出する
水平ベクトルの流入先ベクトル項目番号欄に、垂直ベク
トルカウンタ240の値をセットして、この垂直ベクト
ルであるとして登録する。これにより、図31に示すテ
ーブル311を更新する。
【0084】次にステップS45では、水平ベクトルカ
ウンタ230を+1し、ステップS46で、垂直ベクト
ルカウンタ240を+1して、元の処理に戻る。
【0085】<ケース2の処理説明(図8、図23、図
24、図33、図36)>図27のステップS30にお
いて、レジスタの保持する値が“2”の場合は、図36
に示す処理が実行される。図36に示す処理は、図8に
示す状態を処理するルーチンである。
【0086】まず、ステップS71で、図24の垂直ベ
クトルカウンタ240が示す垂直ベクトルの始点を(2
i−1,2j+1)として登録し、この垂直ベクトルが
流出する水平ベクトルを、ステップS73で登録される
水平ベクトルとする。ステップS72では、ステップS
71で登録した垂直ベクトルが、それに流入してくる水
平ベクトルが未定であるベクトルとして、図33に示す
流入ベクトル未定垂直ベクトルテーブル331の既使用
領域のすぐ隣の未使用領域に登録し、流入元ベクトル未
定垂直ベクトルカウンタ330を+1する。次にステッ
プS73に進み、図23に示すテーブルのカウンタ23
0で示される欄の水平ベクトルの始点を(2i−1,2
j−1)として登録し、このテーブルの流入元垂直ベク
トルを、ステップS71で登録した垂直ベクトルとして
登録する。
【0087】ステップS74では、ステップS73で登
録した水平ベクトルが流入して行く先の垂直ベクトルが
未定であるベクトルとして、図32に示す流出ベクトル
未定水平ベクトルテーブル321の既使用領域のすぐ隣
の未使用領域に登録し、流出先ベクトル未定水平ベクト
ルカウンタ320を+1する。ステップS75では、水
平ベクトルカウンタ230及び垂直ベクトルカウンタ2
40を共に+1して元の処理に戻る。
【0088】<ケース3の説明(図9、図23、図2
4、図37) 図27のステップS30において、レジスタの値が
“3”の場合は、図37に示す処理が実行される。同図
に示す処理は、図9に示す状態を処理するルーチンであ
る。
【0089】ステップS81では(2i−1,2j+
1)を垂直ベクトル91(図9)の始点として登録す
る。次にステップS82に進み、前述のステップS44
と同様にして、ステップS81で登録した垂直ベクトル
が流出する先の水平ベクトルを求める。次にステップS
83で、カウンタ330が指示するテーブル331に垂
直ベクトルカウンタ240の値をセットして、カウンタ
330の値を+1する。次にステップS85で垂直ベク
トルカウンタ240の内容を+1し、ステップS85で
ケースAの処理を行う。この処理は図38のフローチャ
ートで示されている。
【0090】図38のフローチャートを説明すると、ス
テップS91で図9の画素Aが白“0”かどうかを調
べ、白でなければ何もせずに処理を終了する。これは図
9の93で示されている。
【0091】画素Aが白であればステップS92に進
み、水平ベクトル94(図9)の始点を(2i+1,2
j−1)とする。次にステップS93で、この水平ベク
トルに流入する垂直ベクトルをサーチする。次にステッ
プS94に進み、この水平ベクトルの流出ベクトルが未
定であるとして、この水平ベクトルの番号をテーブル3
21にセットする。そして、ステップS95で水平ベク
トルカウンタ230を+1して、処理を終了する。
【0092】<ケース4の説明(図10、図23、図2
4、図31〜図34、図39)>図27のステップS3
0において、レジスタの値が“4”の場合は、図39に
示したルーチンがコールされる。このルーチンは図10
に示したケース4を処理するルーチンである。
【0093】ステップS101では(2i−1,2j−
1)を水平ベクトル102の始点として登録し、このベ
クトルが流出する先のベクトルは、ステップS103で
登録する垂直ベクトルであるとして、この時の垂直ベク
トルカウンタ240の値を図23の流出ベクトル項目番
号欄にセットする。ステップS102では、ステップS
101で登録したベクトルへ流入してくるベクトルが未
定であるとして、図31に示したテーブル311にカウ
ンタ230の値を登録して、このテーブル311を更新
する。ステップS103では(2i+1,2j−1)を
垂直ベクトル103(図10)の始点として定義し、こ
のベクトルに流入してくるベクトルはステップS101
で登録した水平ベクトル102であるとして、図24に
示すテーブルの流入ベクトル項目番号欄に水平ベクトル
カウンタ230の値をセットする。ステップS104で
は、ステップS103で登録した垂直ベクトル103が
流出するベクトルが未定であるとして図34のカウンタ
340で指示されたテーブル341の欄に垂直ベクトル
カウンタ240の値をセットする。次に、ステップS1
05で、水平ベクトルカウンタ230及び垂直ベクトル
カウンタ240をそれぞれ+1して、元の処理に戻る。
【0094】<ケース5の説明>図27のステップS3
0において、レジスタが“5”の場合は、図40で示さ
れたルーチンをコールする。この図40で示されたルー
チンは、図11で示す状態の場合にコールされ、何もせ
ずにそのままリターンする。
【0095】<ケース6の説明(図12、図23、図2
4、図31〜図34、図41、図42)>図27のステ
ップS30において、レジスタの値が“6”の場合は、
図41のフローチャートで示されたルーチンをコールす
る。これは、図12で示すケース6の処理である。
【0096】先ず、ステップS111で、図23のカウ
ンタ230で指示された水平ベクトル122(図12)
の始点を(2i−1,2j−1)として登録する。次に
ステップS112で、S111で登録した水平ベクトル
122は、その流出先ベクトルが未定であるとして、図
32に示す流出先ベクトル未定水平ベクトルテーブル3
21に、図38のステップS94と同様にして登録す
る。ステップS113では、ステップS111で登録し
た水平ベクトル122に流入してくる元のベクトルが未
定であるとして、図39のステップS102と同様に、
図31に示す流入元ベクトル未定水平ベクトルテーブル
311に登録する。次にステップS114では、水平ベ
クトルカウンタ230を+1する。ステップS115で
は(B)の位置の画素が白画素か黒画素かを判断し、白
画素である場合は、図12の120に示す如く、(2i
+1,2j+1)を垂直ベクトル124の始点として登
録し、黒画素の場合は図12の121に示すごとく、そ
のまま処理を終える。
【0097】このステップS115の処理の詳細は図4
2に示す通りである。
【0098】ステップS121では画素B(図示参照)
が白画素か黒画素かを判断し、黒画素ならそのままリタ
ーンする。白画素の場合はステップS122へ進む。ス
テップS122では(2i+1,2j+1)を垂直ベク
トル124の始点として登録する。ステップS123で
は、図39のステップS104と同様に、この垂直ベク
トル124が流出する先のベクトルが未定の垂直ベクト
ルであるとして、図34のテーブル341に登録する。
更にステップS124では、前述した図36のステップ
S72と同様に、ステップS122で登録した垂直ベク
トル124に流入してくる元のベクトルが未定であると
して、図33のテーブル331にセットする。ステップ
S125では、垂直ベクトルカウンタ240を+1して
元のルーチンに戻る。
【0099】<ケース7の説明(図13、図38、図4
2、図43)>図27のステップS30において、レジ
スタの値が“7”の場合、図43のフローチャートで示
すルーチンが実行される。このルーチンは、図13で示
されるケース7の処理を行う。
【0100】ステップS131では、図38のステップ
S85と同様に、画素Aの状態に応じた処理を行う。次
に、ステップS132では、図40のステップS115
と同様に、画素Bの状態に応じた処理を行って元のルー
チンにリターンする。
【0101】尚、図13において、130は(A)の位
置の画素及び(B)の位置の画素が共に白画素の場合、
131は(A)のみ黒画素、132は(B)のみ黒画
素、そして133は共に黒画素である場合を示してい
る。
【0102】<ケース8の説明(図14、図44〜図4
6)>図27のステップS30において、レジスタの値
が“8”の場合は図44で示す処理ルーチンをコールす
る。このルーチンは、図14で示されるケース8の処理
を行う。
【0103】ステップS133では、垂直ベクトルカウ
ンタ240で指示された垂直ベクトル141(図14)
の始点を(2i+1,2j−1)として図24のテーブ
ルに登録し、このベクトルが流出する先の水平ベクトル
は、後続のS135で登録するベクトルであるとして、
カウンタ230の値を流出ベクトル項目番号欄に登録す
る。ステップS134では、ステップS133で登録し
た垂直ベクトル141に流入してくる元の水平ベクトル
を図45に示す手順で、図32に示すテーブル321を
用いて求める。
【0104】図45の処理は、先に説明した図30及び
図35に示した処理と全く同様な手順で、ステップS1
33で登録した垂直ベクトル141に流入してくる元の
水平ベクトルを登録し、この水平ベクトルが流出する先
の垂直ベクトルをステップS133で登録した垂直ベク
トル141であるとして登録する(S145)。そし
て、ステップS146でテーブル321の隙間を埋め、
ステップS147でカウンタ320を−1して、図32
に示すテーブル321を更新する。
【0105】図44のステップS135では、水平ベク
トルカウンタ230で指示される水平ベクトル142
(図14)の始点を(2i+1,2j+1)として登録
し、かつ、このベクトル142に流入する元の垂直ベク
トルは、ステップS133で登録した垂直ベクトル14
1であると登録する。ステップS136では、ステップ
S135で登録した水平ベクトル142が流出する先の
垂直ベクトルを図46に示す手順にしたがって、図33
に示すテーブル331を用いて求める。
【0106】図46の処理は、先に説明した図30、図
35及び図45に示した処理と全く同様な手順で、図4
4のステップS135で登録した水平ベクトル142が
流出する先の垂直ベクトルを登録し、この垂直ベクトル
に流入する元のベクトルはステップS135で登録した
水平ベクトル142であると登録して(図46のステッ
プS154)、ステップS155、S156で図33に
示すテーブル331を更新するものである。
【0107】再び図44に戻り、ステップS137で水
平ベクトルベクトルカウンタ230及び垂直ベクトルカ
ウンタ240を共に+1してリターンする。
【0108】<ケース9の説明(図15、図47)>図
14のステップS30において、レジスタの値が“9”
の場合は図47に示すルーチンがコールされる。このル
ーチンは図15に示すケース9を処理するものである。
【0109】まずステップS161では、(2i+1,
2j+1)を水平ベクトル151(図15)の始点とし
て登録する。次にステップS162では、先に説明した
図30に示した手順と同様にして、この水平ベクトル1
51に流入する垂直ベクトルを図34のテーブル341
を用いてサーチして登録する。また、このサーチされた
垂直ベクトルが流出する水平ベクトルが、ステップS1
61で登録した水平ベクトルであると図24に示すテー
ブルに登録する。こうして図34のテーブル341を更
新する。
【0110】ステップS163では、先に説明した図4
6に示した手順と同様にして、ステップS161で登録
した水平ベクトル151が流出する先の垂直ベクトルを
図33に示すテーブルを用いて捜し出して登録し、この
垂直ベクトルに流入する元のベクトルがステップS16
1で登録した水平ベクトル151であると登録して、図
33に示すテーブル331を更新する。
【0111】ステップS164では、水平ベクトルカウ
ンタ230を+1し、ステップS165では、(D)の
位置の画素が白画素か黒画素かを判断し、白画素である
場合は、図15の152で示すように、(2i−1,2
j−1)を垂直ベクトル154の始点として登録し、黒
画素の場合はそのまま処理を終える(図15の15
3)。
【0112】ステップS165の処理(ケースD)の内
容を図48に示す。
【0113】ステップS171では、(D)の位置が白
画素か黒画素かを判断し、黒画素ならそのままリターン
する。白画素の場合はステップS172に進み、(2i
−1,2j−1)を垂直ベクトル154の始点として登
録する。次にステップS173に進み、前述した図45
の処理を行う。即ち、ステップS172で登録した垂直
ベクトル154に流入してくる元の水平ベクトルを登録
し、この水平ベクトルが流入する先の垂直ベクトルがス
テップS172で登録した垂直ベクトル154であると
登録して、図32に示すテーブル321を更新するもの
である。
【0114】次にステップS174では、先に説明した
図35に示す処理を行う。即ち、ステップS172で登
録した垂直ベクトル154が流出する先の水平ベクトル
を登録し、この水平ベクトルに流入してくる元のベクト
ルは、ステップS172で登録した垂直ベクトル154
であると登録して、図31に示すテーブル311を更新
する。ステップS175では、垂直ベクトルカウンタ2
40を+1してリターンする。
【0115】<ケース10の処理>図27のステップS
30において、レジスタの値が“10”の場合は図49
に示すルーチンがコールされる。このルーチンは図16
に示すケース10を処理するものである。図49のルー
チンはコールされるとそのままリターンする。
【0116】<ケース11の説明>図27のステップS
30において、レジスタの値が“11”の場合は、図5
0に示すルーチンがコールされる。このルーチンは、図
17に示すケース11を処理するものである。
【0117】まずステップS176では、ステップS1
65と同様に(D)の位置の画素の状態に応じて、先に
説明した図48のフローチャートで示される処理を行
う。次にステップS177では、ステップS85及びS
131と同様に、(A)の位置の画素の状態に応じて、
先に説明した図38で示される処理を行う。
【0118】尚、図17の(D)の位置の画素及び
(A)の位置の画素が共に白画素の場合を170で示
し、(A)のみが黒画素の場合を171で、(D)のみ
が黒画素の場合を172、(A)(D)が共に黒画素の
場合の処理結果を173で示す。
【0119】<ケース12の説明(図18、図23、図
24、図51、図52)>図27のステップS30にお
いて、レジスタの値が“12”の場合は、図51に示す
ルーチンがコールされる。このルーチンは、図18に示
すケース12の状態を処理するものである。
【0120】ステップS181では、図24に示すテー
ブルに(2i+1,2j−1)を垂直ベクトル181
(図18)の始点として登録する。ステップS182で
は、先に説明した図44のステップS134と同様に、
図45に示す手順でステップS181で登録した垂直ベ
クトル181に流入してくる元の水平ベクトル182を
サーチして登録する。また、この水平ベクトル182で
登録した垂直ベクトル181であると登録して、図32
に示すテーブル321を更新する。
【0121】次に、ステップS183では、ステップS
181で登録した垂直ベクトル181の流出先のベクト
ルが未定である旨を図34で示すテーブル341に登録
し、カウンタ340の更新を行う。次にステップS18
4では、垂直ベクトルカウンタ240を+1する。そし
てステップS185ではCの位置の画素が白画素か黒画
素かを判断し、白画素である場合は、図18の183で
示すごとく(2i−1,2j+1)を水平ベクトル18
5の始点として登録し、黒画素である場合は図18の1
84に示すごとくそのまま処理を終える。
【0122】このステップS185の処理の内容を図5
2のフローチャートで示す。
【0123】ステップS191では、Cの位置が白画素
か黒画素かを判断し、黒画素ならそのままリターンす
る。白画素の場合はステップS192へ進み、ステップ
S192では、(2i−1,2j+1)を水平ベクトル
185の始点として登録する。次にステップS193で
は、先に説明した図46のフローチャートで示された処
理を行って、ステップS192で登録した水平ベクトル
185が流出する先の垂直ベクトルを登録する。そし
て、この垂直ベクトルに流入してくる元のベクトルが、
ステップS192で登録した水平ベクトル185である
と、図24のテーブルに登録して、図33に示すテーブ
ル331を更新する。
【0124】ステップS194では、ステップS192
で登録した水平ベクトル185は、これに流入する元の
垂直ベクトル186が未定なベクトルである旨を図31
に示す流入元ベクトル未定水平ベクトルテーブル311
に登録し、カウンタ310を+1する。次にステップS
195に進み、水平ベクトルカウンタ230を+1して
元の処理に戻る。
【0125】<ケース13の説明(図19、図53)>
図27のステップS30において、レジスタの値が“1
3”の場合は、図53に示すルーチンがコールされる。
このルーチンは図19のケース13を処理したものであ
る。
【0126】ステップS196では、図47のステップ
S165及び図50のステップS176同様にDの位置
の画素の状態に応じて、先に説明した図48のフローチ
ャートで示される処理を行う。
【0127】ステップS197では、図51のステップ
S185と同様に、Cの位置の画素の状態に応じて、先
に説明した図52のフローチャートで示される処理を行
う。190はDの位置の画素及びCの位置の画素が共に
白画素の場合、191はCのみ黒画素、192はDのみ
黒画素、そして193はCとDが共に黒画素だった場合
の処理結果をそれぞれ示す。
【0128】<ケース14の説明>図27のステップS
30において、レジスタの値が“14”の場合は、図5
4に示すルーチンがコールされる。このルーチンは図2
0で示すケース14の状態を処理するものである。
【0129】図54のステップS201では、図51の
ステップS185及び図53のステップS197と同様
に、Cの位置の画素の状態に応じて、先に説明した図5
2で示されるケースCの処理を行う。次にステップS2
02では、図41のステップS115及び図43のステ
ップS132と同様にBの位置の画素の状態に応じて、
先に説明した図42で示されるケースBの処理を行う。
【0130】201はCの位置の画素及びBの位置の画
素が共に白画素の場合、202はBのみ黒画素、203
はCのみ黒画素、204は共に黒画素の場合の処理結果
をそれぞれ示している。
【0131】<ケース15の説明>図27のステップS
30において、レジスタの値が“15”の場合は、図5
5に示すルーチンがコールされる。このルーチンは図2
1で示すケース15の状態を処理するものである。
【0132】ステップS203では、前述のステップS
165などと同様にDの位置の画素の状態に応じて、先
に説明した図48のフローチャートで示されるケースD
の処理を行う。次にステップS204では、前述のステ
ップS85、S131などと同様にAの位置の画素の状
態に応じて、先に説明した図38で示されるケースAの
処理を行う。ステップS205では前述のステップS1
85などと同様に、Cの位置の画素の状態に応じて、先
に説明した図52で示されるケースCの処理を行う。更
に、ステップS206では図41のステップS115な
どと同様に、Bの位置の画素の状態に応じて先に説明し
た図42で示されるケースBの処理を行う。
【0133】これにより、図21の210は、Dの位置
の画素、Aの位置の画素、Cの位置の画素及びBの位置
の画素が全て白画素だった場合の処理結果を示し、21
1はAのみ黒画素だった場合を、212はBのみが黒画
素だった場合を、213はCのみ黒画素だった場合を、
214はDのみ黒画素だった場合を、215はA及びB
のみ黒画素だった場合を、216はB及びCのみが黒画
素だった場合を、217はC及びDのみが黒画素だった
場合を、218はD及びAのみ黒画素だった場合を、2
20はA及びCのみ黒画素だった場合を、221はDの
み白画素だった場合を、222はCのみ白画素だった場
合を、223はBのみ白画素だった場合を、224はA
のみ白画素だった場合を、そして225は全てが黒画素
だった場合の処理結果を示している。
【0134】以上説明した手順により、図22のステッ
プS2におけるベクトル列抽出の一連の処理が実行され
る。
【0135】<アウトラインベクトル列の整列処理>図
56及び図57は図22のステップS3のアウトライン
ベクトル列整列の処理の内容を示している。図56及び
図57のフローチャートは、図22のステップS2で作
成された水平ベクトルに関するテーブル群(図23)、
垂直ベクトルに関するテーブル群(図24)及び後述す
る図58のテーブル群を用いて動作する。
【0136】先ず、ステップS211で、図58に示す
テーブル群の中で必要となる項目の初期化を行う。この
ステップS211の処理内容は、図59のフローチャー
トで詳しく示されている。
【0137】ステップS231では、一時的に開始点の
項目番号を保持する変数t(開始点項目番号)を0にす
る。次にステップS232に進み、変数iを“0”に
し、ステップS233では開始点候補テーブル571の
第i番目の項目を“1”にセットする。ステップS23
4では変数iを+1し、ステップS235で変数iが水
平ベクトルカウンタ230の値より小さな値を持つか否
かを判定し、小さな値であればステップS233へ戻
る。
【0138】水平ベクトルカウンタ230の値より大き
な値であればステップS236へ進み、ループ数カウン
タ572を“0”にリセットする。次にステップS23
7で変数kを“0”にリセットして、元のルーチンに戻
る。これにより、開始点候補テーブル571の0番目の
より(水平ベクトルカウンタ230−1)番目の欄にす
べて“1”がセットされる。
【0139】こうしてステップS211を終了するとス
テップS212に進み、変数kが水平ベクトルカウンタ
230の値の2倍と等しいか否かを判断し、もし等しけ
ればそのままリターンするが、等しくなければステップ
S213へ進む。ステップS213では、ループ数カウ
ンタ572の保持する値のさす開始点項目番号テーブル
574の項目位置に変数tに保持されている値を格納す
る。S214では、開始点項目番号テーブル574のル
ープ数カウンタ572の値で指示される項目に格納され
ている値(即ち、ステップS213で格納した値)を変
数hにセットする。そして、ステップS215で変数j
を0にリセットする。
【0140】ここで、ループ数カウンタ572は現在整
理中の輪郭の番号を示し、開始点項目番号テーブル57
4のループカウンタ572で指示される項目番号欄に
は、現在整理中の輪郭の開始点のある項目番号が記憶さ
れている。また、変数kは現在までの処理済及び処理中
の輪郭内で、処理済及び処理中の点の総数を保持し、j
は現在整理中の輪郭内で、処理済の点の個数を保持して
いる。また、変数hは次に処理する水平ベクトルの項目
番号を示す。
【0141】次にステップS216に進み、開始点候補
テーブル571の、変数hの値により指示される項目番
号を“0”にリセットする。次にステップS217に進
み、変数hの値が指す水平ベクトル開始点のx座標(図
23)及び水平ベクトル開始点y座標(図23)の項目
位置に保持される値を、x座標テーブル575及びy座
標テーブル576内の変数kで指示される項目位置に格
納する。それとともに、変数hの値が指す水平ベクトル
流出先ベクトル項目番号(図23)の項目位置に保持さ
れている値を変数νにセットする。この変数νは、次に
処理する垂直ベクトルの項目番号を示している。ステッ
プS218では、変数k及び変数jの保持する値をそれ
ぞれ+1する。
【0142】次にステップS219に進み、変数νの値
が指す垂直ベクトル開始点のx座標(図24)及び垂直
ベクトル開始点のy座標(図24)の項目位置に保持さ
れる値をx座標テーブル575及びy座標テーブル57
6内の変数kの値が指す項目位置に格納する。それとと
もに、変数νの値が指す垂直ベクトル流出先ベクトル項
目番号(図24)の項目位置に保持されている値を変数
hにセットする。これにより変数hには、この垂直ベク
トルより流出する水平ベクトルの項目番号がセットされ
る。ステップS220では、変数k及びjの保持する値
をそれぞれ+1する。
【0143】次にステップS221で、変数hの値が現
在整理中の輪郭の開始点の項目番号を保持する573
(変数t)の値と等しいか否かを判断し、等しくなけれ
ばステップS216へ戻り、同一輪郭点の一点として次
の点の処理を続けるが、等しくなるとステップS222
へ進み、現在整理中の輪郭の処理を終了する。ステップ
S222では、変数jの保持する値を現在処理中の輪郭
の中に含まれる点の数として各輪郭内に含まれる点数を
保持する点数テーブル577の、ループ数カウンタ57
2で指示される項目位置に格納する。ステップS223
では、整理中の輪郭の番号を示すループ数カウンタ57
2を+1する。
【0144】次にステップS224では変数kが保持す
る既に処理した点の個数と、水平ベクトルカウンタ23
0に保持された水平ベクトルテーブル内に保持される点
の数の2倍とが等しいか否かを判断し、等しい場合は処
理を終えてリターンする。等しくない場合はステップS
225に進み、開始点項目番号573の値を+1する。
そして、ステップS226では、開始点項目番号573
の値で指示される開始点候補テーブル571の項目に保
持されている値が“1”か否かを判断し、“1”でなけ
ればステップS225へ戻り、再度開始点候補の探索を
続ける。一方、“1”であればステップS213に戻
り、次の輪郭内の点の整理を開始する。
【0145】以上、図22のステップS3の処理によ
り、図23〜図25に示したベクトルの開始点データ
は、図58に示すテーブルに各輪郭ループごとに順に並
んだ点の座標列として整列される。
【0146】<ベクトル列テーブルの出力>次に図60
のフローチャートを参照して、図22のステップS4の
ベクトル列テーブルファイルの出力処理を説明する。
【0147】ステップS241では、変数kを”0”に
リセットする。次にステップS242に進み、ディスク
522上に出力ファイルをオープンする。ステップS2
43では、ステップS242でオープンしたファイルに
ループ数カウンタ572に保持されている値を出力す
る。ステップS244では、変数kの値がループ数カウ
ンタ572に保持する値と等しいか否かを判断し、等し
い場合はステップS245へ進み、カウンタ230、2
40、310、320、330、340の値をリセット
し(値を0にする)、元の処理に戻る。
【0148】一方、ステップS244で等しくない場合
はステップS246に進み、輪郭ループ内点数テーブル
577の変数kの値の指す項目位置に格納されている値
をディスク522に出力する。ステップS247では開
始点項目番号テーブル574内の変数kの値の指す項目
位置に格納されている値を変数mにセットする。ここ
で、kは現在出力中の輪郭ループ番号を保持し、mは現
在出力中の輪郭ループ内の点列の開始点の格納される項
目番号を保持している。次にステップS248ではkの
値を+1し、ステップS249では変数lの値を”0”
にリセットする。このlは、現在出力中の輪郭ループ内
の出力済の点の数を保持する変数である。
【0149】ステップS250では、lの値が現在出力
中の輪郭ループ内の点の数と等しいか否かを判断し、等
しければステップS244へ戻り、等しくなければステ
ップS251へ進む。ステップS251では、変数mの
値が指すx座標テーブル575及びy座標テーブル57
6内の項目位置に格納されている値を出力ファイルに出
力する。次にステップS252ではmの値を+1し、ス
テップS253では、lの値を+1してステップS25
0に戻る。
【0150】ステップS4の処理を終えると、次にステ
ップS5において今迄処理していた注目ストライプが画
像中の最終ストライプか否かが判断され、最終ストライ
プならば図22の処理を全て終了する。そうでなければ
ステップS6に進んで、注目ストライプを次のストライ
プに移し、ステップS2に戻る。
【0151】ここで説明した手順によれば、いわゆる4
方向に連結した輪郭線が抽出される。しかし、本発明は
これに限定されるものでなく、8方向に連結する輪郭線
を抽出する場合にも適用できる。
【0152】以上述べたように、これまで図23及び図
24で示されるテーブル(接続情報テーブル)の容量は
1ページ分必要であったが、本発明においては入力画像
をストライプ状に分割し、各ストライプ毎に独立にアウ
トラインベクトル列の抽出を行い、アウトラインベクト
ル列の整列行い、アウトラインベクトル列テーブルをフ
ァイルへ出力するようにしたので、図23及び図24で
示されるテーブル(接続情報テーブル)の容量を小さく
することができ、メモリの節約になる。また、図23及
び図24で示されるテーブル(接続情報テーブル)の容
量が小さくなる分、ベクトル列整列時の検索範囲が狭く
なり、処理の高速化を図ることができる。
【0153】<第2の実施例>図61は実施例における
画像の変倍を行う装置のブロック図である。同図におい
て、401は輪郭抽出・変倍処理を施すデジタル2値画
像を獲得し、ラスター走査形式の2値画像を出力する2
値画像獲得手段であり、例えば、イメージリーダーで画
像を読み取り、2値化して、ラスター走査形式で出力す
る公知のラスター走査型2値画像出力装置で構成され
る。
【0154】402は獲得された2値画像を1つ以上の
ストライプに分割する画像分割手段であり、各ストライ
プ中のライン数を外部から任意に設定できるようになっ
ている。
【0155】403は分割されたストライプ単位に粗輪
郭ベクトル(平滑化、変倍処理を施す前のアウトライン
ベクトル)を抽出するアウトライン抽出手段であり、本
発明の第1実施例で述べたアウトライン抽出手段であ
る。
【0156】404は分割されたストライプ単位に粗輪
郭ベクトルデータをベクトルデータ形態で平滑化及び変
倍処理を行うアウトライン平滑・変倍手段である。アウ
トラインの平滑化及び変倍手段そのもには本出願人によ
り先に出願された特願平3−345062号(1991
年12月26日出願)に記載の装置等で構成される。簡
単に説明すると、例えば先に示した処理で得られた垂直
ベクトルが2本で、水平ベクトルが2本で、尚且つ、そ
れらのベクトル長が“1”の場合には当該ループを形成
しているベクトル群(4本のベクトル)を除去したり、
1ドットのみの突出した画素があったらその部分を除去
する処理、及び、2値画像の角と認識された点を固定点
(角点)とし、その角点以外の点を浮動点としてそれぞ
れの点を定義し、注目している浮動点においては前後す
る複数の角点或いは浮動点との重み付け計算して、その
座標位置を補正する処理である。また、水平ベクトルと
垂直ベクトルが所定の傾きに沿って連続する場合に、そ
の中の拡大や縮小等で影響されない点をいくつか除去す
る等の処理が含まれる。
【0157】405は平滑化及び変倍処理を行ったアウ
トラインベクトルデータからそのデータの表現する2値
画像を、分割されたストライプ単位にラスター走査形式
の2値画像データとして再生する2値画像再生手段であ
り、例えば、本出願人により先に出願された特願平3−
172098号(平成3年7月12日出願)に記載の装
置等で構成できる。簡単に説明すると、平滑処理して得
られたベクトルデータに基づいて描画した輪郭(拡大処
理して描画された輪郭を含む)の内部を黒画素で埋める
処理である。
【0158】406はラスター走査型の2値画像データ
を表示したり、ハードコピーをとったり、或は、通信路
などへ出力したりする2値画像出力手段である。
【0159】図62は、第2実施例の処理の流れを示す
フローチャートである。
【0160】まず、ステップS301において、入力画
像をストライプ状に分割し、注目ストライプを先頭のス
トライプにセットする。入力画像の分割に際しては、各
ストライプ中のライン数を外部から任意に設定できるよ
うにしても、或は外部から設定するのではなく、予め決
められたライン数で入力画像を分割するようにしてもよ
い。また予め決められたライン数で入力画像を分割する
が、白ラインがその途中で現われた場合は、この位置で
一旦分割するようにしてもよい。例えば、入力画像を5
ラインづつのストライプに分割する場合に白ラインが8
ライン目に現われたとする。この時、第1ストライプは
5ラインで構成されるが、第2ストライプは3ラインで
構成される。第3ストライプは、途中で白ラインが現わ
れなければ9ライン目から再び5ラインで構成される。
但し、白ラインが2ライン以上連続する場合は、連続す
る白ライン全体を1ラインと便宜上見なし、処理をす
る。即ち、先の例で8ライン目からnライン(8ライン
目を含めて)白ラインが続いている場合は、第2ストラ
イプは(2+n)ラインで構成されることになる。これ
は、白ラインのみから成るストライプが存在する(図形
が存在しないので無意味)というような余分な入力画像
の分割するのを防ぐためである。ここで、白ラインとは
全てが白画素で構成されているラインのことをいう。
【0161】予め決められたライン数でストライプ分割
することと白ライン出現時にストライプ分割することを
組み合わせることの利点を述べると次の様になる。
【0162】白ラインの出現時点でそれまでに抽出され
ていた輪郭ベクトル群はすべて閉ループをなすので、こ
こまでに抽出されたベクトル群を整列させ、ディスクに
アウトラインベクトルとしてファイル形式で出力し、以
降の処理に移ることが可能である。しかしながら、入力
画像中に白ラインが存在しない場合は、全ての輪郭ベク
トルをワーキングメモリに保持しておかねばならず、膨
大なワーキングメモリを必要とする。従って、上記のよ
うに予め決められたライン数でストライプ分割すること
と白ライン出現時にストライプ分割することを組み合わ
せることはワーキングメモリ削減に多大な効果がある。
【0163】次にステップS302において、注目スト
ライプ中のアウトラインベクトルの抽出と整列を行う。
これは、上記第1実施例に記載した通りである。注目ス
トライプ中のアウトラインベクトルの抽出と整列が終る
と、ステップS303に移り、ここで注目ストライプ中
のアウトラインベクトルの平滑化及び変倍が行われる。
ここでの処理は、注目ストライプを入力画像であると見
なして、先に指摘した如く、特願平3−345062号
に記載の平滑化及び変倍の処理を行う。注目ストライプ
の平滑・変倍処理が終るとステップS304に移り、変
倍された注目ストライプのアウトラインベクトルから2
値画像を再生し、出力する。2値画像の再生・出力処理
は、本出願人により先に提案している特願平3−172
098号に記載の方法・構成でもって処理できる。2値
画像の再生・出力処理が終ると、ステップS305に移
り、ここで注目ストライプが入力画像の最終ストライプ
か否かが判定され、最終ストライプならば処理を終了
し、そうでなければ、ステップS306に移り、注目ス
トライプを次のストライプに移動してステップS302
に戻る。
【0164】以上のような構成で、入力画像からストラ
イプ単位にアウトラインベクトルを抽出し、平滑化及び
変倍を行い、2値画像を再生・出力することにより、 1)アウトラインベクトル抽出の為のディスク容量、或
はワーキングメモリ容量 2)整列済アウトラインベクトルデータを格納するため
のディスク容量、或はワーキングメモリ容量、 3)アウトラインベクトルの平滑化や変倍を行うための
ディスク容量、或はワーキングメモリ容量、 4)アウトラインベクトルから2値画像を再生・出力す
るためのディスク容量、或はワーキングメモリ容量、 等が少なくて済む。
【0165】<第3の実施例>上記第2の実施例では、
ストライプ単位に抽出・整列されたアウトラインベクト
ルを平滑化・変倍する際に、分割されたストライプ自体
を独立した入力画像であると考えて処理を行った。この
ように処理を行うと、余計な処理を付加せずに全てのス
トライプを並列に処理できるという利点が或る反面、例
えば、図63(a)のような例では平滑化により再生画
像が劣化することが判明した。即ち、図63(a)を入
力画像とし、第2の実施例のストライプ分割法(5ライ
ンづつに分割)を用いれば、図63(b)のように最初
のストライプは5ライン、第2ストライプは、白ライン
が4ライン目で出現しているのでここで分割され4ライ
ン、入力画像の残りのライン数は5ライン以下なので残
り全て(4ライン)を第3ストライプに分割する。この
場合、特願平3−345062号に記載の手法及び装置
を用いれば、411、412、413の凹部(白画素)
は平滑化により削除されてしまい、変倍後の再生画像か
ら411、412、413に相当する部分が欠落してし
まうことになる。
【0166】これを改善するために、以下の処理を第2
実施例の平滑化の部分に加える。
【0167】即ち、もともと1つの図形であったものが
ストライプ分割により2つ以上のストライプにまたがる
場合、分割により境界となる線(図63(b)上では、
a、Lbが境界となる線であるが、1つの図形が分割に
より2つ以上のストライプにまたがるという条件を満た
すのはLaのみである。)上から流出するベクトル及び
分割により境界となる線上に流入するベクトルの始点と
終点を『角点』(角点は先に説明したように、平滑化処
理でその座標位置が補正されることのない点で、文字通
り角に位置する点と解釈して良い)に指定する。図63
(b)でいえば、10個の△と10個の○が角点に指定
される。角点に指定されると、平滑化から除外されるの
で411、412、413の白画素を保存することがで
き、再生画像の劣化を低減することが可能である。
【0168】<第4の実施例>上記第2、第3の実施例
では、ストライプ単位に平滑・変倍・再生・出力を行う
ため、少ないメモリ量で処理を行えるというメリットが
ある。しかしながら、入力画像ではもともと1つのアウ
トラインベクトルであったものが複数に分割されて、そ
れぞれ独立に平滑化されるため、平滑化後に得られるア
ウトラインベクトルがもともと1つであったときのアウ
トラインベクトルを平滑化したときと多少異なってくる
という問題点も発生する。これを解決するための手法を
次に示す。この手法では、アウトラインベクトルの抽出
と整列は、ストライプ分割した状態で行い、全ての抽出
・整列が終ると、これらからもともと1つであるべきア
ウトラインベクトルを検出し、統合するというもので、
これは分割境界線上から流出するベクトル及び分割境界
線上へ流入するベクトルをチェックし、並べ換えること
により達成できる。
【0169】図64は、第2実施例の処理手順の一部を
変更した場合のフローチャートである。
【0170】まず、ステップS311において入力画像
をストライプ状に分割し、注目ストライプを先頭のスト
ライプにセットする。この動作は図62中のステップS
301と同じである。次にステップS312に移り、注
目ストライプ中のアウトラインベクトルの抽出と整列を
行う。これも図61中のS302と同じ動作である。ス
テップS313では、注目ストライプが入力画像の最終
ストライプか否かの判定が行われ、最終ストライプでな
ければステップS314に移り、注目ストライプを次の
ストライプに移動してS312に戻る。もし、最終スト
ライプならばステップS315に移る。
【0171】ステップS315では、各ストライプ毎に
整列されたアウトラインベクトルから、複数の輪郭ベク
トルに分割されたもともと1つであったアウトラインベ
クトル(このアウトラインベクトルを入力画像の正式な
アウトラインベクトルと定義する)の抽出及び整列を行
う。ステップS315の処理を図65の例で示す。
【0172】尚、ここでは説明を簡単にするため入力画
像のストライプ分割のライン数を3ラインとしている。
図25の形式でアウトラインベクトルを抽出すると図6
7のようになる(第1実施例と同様に座標を整数表現し
ている)。この時、ストライプ分割の境界線のY座標は
7である。図65の例では、アウトラインベクトルは4
つの輪郭ベクトルとして抽出されるが、これはもともと
1つのアウトラインベクトルであるので統合を行う。こ
の処理を以下に示す。
【0173】まず、Y座標が7(実際には7の倍数)で
ある点を図67から求め、図66のようなパケット形式
で表現する。即ち、図67の如くディスク或はメモリ上
に記憶されているデータを走査する。このとき、第1ス
トライプの第1番目の輪郭の第3点目が最初の点として
求まる。得られた点を図66の様に表現する。ここで図
66中のアドレスはY座標が7である点に付けたシリア
ル番号を表わす。X座標はディスク或はメモリ上に記憶
されているデータを走査して得られたY座標が7である
点のX座標を表わす。始点/終点は、得られた点が水平
ベクトルに関して負の方向の始点(負始)となるか或は
負の方向の終点(負終)となるか或は正の方向の始点
(正始)となるか或は正の方向の終点(正終)となるか
を表わす。ストライプ番号は得られた点のストライプ番
号を示し、輪郭番号は得られた点がストライプ中の何番
目の輪郭であるかを示し、座標番号は得られた点が何番
目の点であるかを示している。図67から求められるY
座標が7である点を図66の形式で示すと図68とな
る。これをX座標値の小さい順に並べ換えると図69に
示す様になる。同じ値が存在する場合には、正始、負
始、負終、正終の順番になるように並べる。さらに並べ
変えたパケットを先頭から2個づつペアにし、各々のペ
アにおいて、2つのパケットの順番が正始、負始、負
終、正終の順になるように並べ換える。図示では、アド
レスが5と6であるペアのみこの条件を満たしていない
ので並べ換える。このように処理を行うと輪郭ベクトル
は、各ペアにおいて最初のパケットから次のパケットへ
続くという接続関係になる。即ち、各々のペアにおい
て、最初のパケットの次の点のアドレスには次のパケッ
トのアドレスが記憶され、前の点のアドレスには何も記
憶されない。また、次のパケットの次の点のアドレスに
は何も記憶されず、前の点のアドレスには最初のパケッ
トのアドレスが記憶される。この様子を図70に示す。
最終的なアウトラインベクトルの統合は、図67と図7
0を用いて行われる。これを次に示す。
【0174】まず図67の第1ストライプの第1輪郭の
第1点目から走査を始める。記述を簡単にするために、
第θストライプの第ω輪郭の第ε点目を(θ−ω−ε)
とする。まず(1−1−1)を登録する。これは分割の
境界線上にないので次の(1−1−2)に移り、これを
登録する。(1−1−2)も分割の境界線上にないので
次の(1−1−3)に移り、これを登録する。(1−1
−3)は分割の境界線上にあるので図70を参照し、次
に移動すべき点を調べ、そこに移る。この場合、(1−
2−4)が次に移る点となる。(1−2−4)を登録
し、次の点に移る。(1−2−4)は分割の境界線上の
点ではあるが、図69を参照すると、次に移る先が未定
なので図67の順番に則って(1−2−1)に移り、
(1−2−1)を登録する。続けて(1−2−2)、
(1−2−3)と登録を行い、(1−2−3)は分割の
境界線上にあるので図69を参照し、次の移動先である
(2−2−2)に移る。この時(1−2−3)と(2−
2−2)は同一点を示しているが、このように同一点が
連続する場合は、共に登録を行わない。(1−2−3)
については既に登録されているのでこれを抹消する。
(2−2−2)は分割の境界線上にあるが、図70を参
照すると次の移動先が未定なので図67の順番に則って
(2−2−3)に移る。同様に(2−2−3)、(2−
2−4)、(2−2−1)と登録を続ける。(2−2−
1)は分割の境界線上にあるので図70を参照し、(2
−1−2)に移り、(2−1−2)の登録を行う。(2
−1−2)は分割の境界線上の点であるが、図70を参
照すると移動先が未定なので図67の順番に則り、(2
−1−3)、(2−1−4)、(2−1−1)を登録す
る。(2−1−1)は分割の境界線上の点なので図70
より(1−1−4)に移動し、(1−1−4)の登録を
行う。(1−1−4)の次は走査開始点(1−1−1)
なのでここで登録を終了し、登録した点の数を調べ、輪
郭の総点数を記憶し、入力画像中の総輪郭線数を記憶す
る。
【0175】以上の処理を行った結果を図71に示す。
もし未だ未処理のアウトラインベクトルが存在するなら
ば、同様な処理により正式なアウトラインベクトルにし
て、図25の形式になるように図71に続けて登録す
る。また、分割境界線上に座標点を持たないアウトライ
ンベクトルは、何も処理をせずに図25の形式になるよ
うに図71にそのまま続けて登録すればよい。この時、
入力画像中の総輪郭線数がそこに登録されたベクトルル
ープ数を表わすように書き換える必要がある。
【0176】以上の処理を全て終了すると、ステップS
316に移る。S316では正式なアウトラインベクト
ルを用いて、平滑化・変倍処理を行う。これは、第2実
施例でも示したとおりである。ステップS316が終了
するとステップS317に移り、変倍された入力画像の
アウトラインベクトルから2値画像を再生・出力する。
これも第2実施例中に述べたとおりである。
【0177】以上のように処理を行うことで、分割抽出
した輪郭ベクトルから入力画像の正式なアウトラインベ
クトルを求めることができ、これを平滑化・変倍するこ
とで高画質な再生画像を得ることが可能である。
【0178】<第5の実施例>ストライプ分割はアウト
ラインの抽出・平滑・変倍・再生・表示などに必要とな
るワーキングメモリ量が少なくて済むという利点がある
ことは上述した通りである。しかしながら、ストライプ
分割処理はアウトラインベクトルの平滑化に影響を及ぼ
し、再生画像の画質を少なからず左右する。従って、で
きる限り分割数を少なくしたい(ストライプの幅を大き
くしたい)。以下に分割を少なくする方法について述べ
る。
【0179】ストライプ分割処理の目的は、アウトライ
ン抽出処理等によってワーキングメモリがオーバーフロ
ーしないようにするためであり、ワーキングメモリがオ
ーバーフローしない限りストライプ分割は必要ない。言
換えれば、ワーキングメモリがオーバーフローする手前
でストライプ分割を行えばよいということになる。
【0180】即ち、図23及び図24に示される水平ベ
クトルカウンタ230あるいは垂直ベクトルカウンタ2
40の指し示すアドレスを図5のCPU519で監視
し、この値がある一定値以上(ワークキングメモリの容
量に依存する)になった場合に、現在処理中のラインで
ストライプ分割を行うといった方法をとればよい。この
場合、第3の実施例のように分割境界線上に流入するベ
クトル及び分割境界線上から流出するベクトルの始点と
終点を角点に指定して処理を行うことが可能である。ま
た第4の実施例中に示した手法も併用することが可能で
ある。
【0181】<第6の実施例>第1の実施例で用いた規
則に従って抽出したアウトラインベクトルを用いて変倍
画像を得ようとすると、1〜2倍程度の低倍率の変倍処
理を行った場合に、生成される出力画像の細線部の画素
巾が太り気味となる場合がある。これは、第1の実施例
で示される方法では、白画素と黒画素のちょうど中心と
なる画素位置に輪郭点を定義して輪郭ベクトルを抽出し
ていくのに対し、画像の再生成部では、得られた平滑・
変倍画像の輪郭座標値で示される画素そのものは黒画素
として処理することから、前記の如き低倍率時には、原
画の画素を取り巻くように定義された輪郭線上の画素を
黒画素として輪郭線に囲まれる領域内を黒画素とする
と、黒画素となる領域が白画素となる領域に比して、本
来の倍率で規定される面積よりも無視できない割合で広
くなりがちとなることに起因している。
【0182】これに対して、2値画像からアウトライン
ベクトルを抽出する際に、入力画像の白画素と黒画素の
間の黒画素寄りの位置に輪郭点を定義して、黒画素領域
を白画素領域に比して巾狭に抽出することによって、輪
郭線上の画素を黒画素として輪郭線に囲まれる領域内を
黒画素として画像を再生成しても、低倍率の変倍画像が
太り気味とならないようにしたものが本出願人により既
に特願平4−169581号として提案している。
【0183】アウトラインベクトル抽出手法として、こ
の特願平4−169581号で示される方法を用いても
第1実施例、第2実施例、第3実施例、及び第5実施例
と同様の議論が可能である。但し、特願平4−1695
81号の手法を特願平3−345062号のアウトライ
ン平滑化・変倍手法に適用する場合には、特願平3−3
45062で開示されている第1平滑化の着目輪郭辺ベ
クトルとその前後の辺ベクトル高々3本づつまでの互い
に合い連続する合計7本までの辺ベクトルの長さと向き
の組み合わせのパターンを、特願平4−169581号
の手法によって抽出される輪郭ベクトルに合わせて変更
すれば良い。即ち、特願平4−169581号では、抽
出される輪郭点は、入力画像の白画素と黒画素の間の黒
画素よりの位置に設定されるので、例えば、1画素巾の
黒線は、巾1/2の輪郭ループとして抽出され、黒領域
にある1画素巾の白線は、巾1+1/2の輪郭ループと
して抽出される。入力画像では同じ画素巾であっても、
黒画素領域のでっぱり(凸部)より、へっこみ(凹部)
の方が1だけ巾広に抽出される。第1実施例中に用いた
アウトライン抽出手法に比して、黒画素領域のでっぱり
(凸部)は1/2だけ狭く抽出され、へっこみ(凹部)
は1/2だけ広く抽出される。従って、この差異に対応
して、前記辺ベクトルの長さと向きの組み合わせを調整
して用いれば良い。それ以外の処理は、特願平3−34
5062号の実施例に従うことによって適用が可能であ
る。
【0184】<第7の実施例>本願出願人が先に提案し
ている特願平4−169581号の手法を適用して、ア
ウトラインベクトルの抽出と整列はストライプ単位で行
い、全ての抽出・整列が終ると、これらからもともと1
つであるべきアウトラインベクトルを検出し、統合する
場合ついて以下に述べる。
【0185】基本的な考え方は第4の実施例と同じなの
で、大きく異なるステップS315について記すことに
する。
【0186】第4実施例と同様に図65で示される画像
を入力画像とする。座標の小数表現を避けるために、各
画素の位置を(4m+2,4n+2)(但し、m=0,
1,・・・,10、 n=0,1,・・・,5)に変換
し、図72のように書き換え同図の画像を入力画像とす
る。ストライプ分割のライン数を12ライン(図65の
画像で考えれば3ラインに相当する)とし、図25の形
式でアウトラインベクトルを抽出すると図73のように
なる。この時ストライプ境界線のY座標は12である。
図72の例では、アウトラインベクトルは4つの輪郭ベ
クトルとして抽出されるが、これはもともと1つのアウ
トラインベクトルであるので統合を行う。この処理を以
下に示す。
【0187】まず、ストライプ分割により新たに発生す
るベクトルのY座標を求める。この場合、ストライプ分
割を12ラインで行っているため、ストライプ分割によ
り新たに発生するベクトルのY座標は11または13で
ある。一般的に記述すると、分割境界のY座標をλとし
た場合、ストライプ分割により新たに発生するベクトル
のy座標は(λ−1)と(λ+1)である。
【0188】Y座標が求まったら、図73の如くディス
ク或はメモリ上に記憶されているデータを走査し、図7
3のようなパケット形式で該当するベクトルの座標値を
表現する。この時第1ストライプの第1番目の輪郭の第
3点目が最初の点として求まる。得られた点を図73の
様に表現する。ここで図73中のアドレスはY座標が1
1または13である点に付けたシリアル番号を表わす。
変換後のX座標(XX)は、その点のX座標を以下の条
件式により求めた値を示している。
【0189】 (X座標値)%4=3ならばXX=(X座標値)+1 (X座標値)%4=1ならばXX=(X座標値)−1 但し、%は余りを求める演算を表わす。
【0190】これは第4の実施例中の手法を適用するた
めに、便宜的に、隣接する画素間に存在する点のX座標
が同じ値を示すようにしたものである。X座標、Y座標
はディスク或はメモリ上に記憶されているデータを走査
して得られたY座標が11または13である点のX座
標、Y座標を表わす。始点/終点は、得られた点が水平
ベクトルに関して負の方向の始点(負始)となるか或は
負の方向の終点(負終)となるか或は正の方向の始点
(正始)となるか或は正の方向の終点(正終)となるか
を表わす。ストライプ番号は得られた点のストライプ番
号を示し、輪郭番号は得られた点がストライプ中の何番
目の輪郭であるかを示し、座標番号は得られた点が何番
目の点であるかを示している。求められるY座標が11
または13である点を図73の形式で示すと図74とな
る。これをXX(x座標)の小さい順に並べ換える。但
し、同じ値が存在するときは、 正始 負始 負終 正終 −−− 条件1 の順に並べる。例えば今回の例では、XX=24とXX
=36のパケットが二つずつ存在する。条件1に従って
並べると図76のようになる。XX=24の場合、負終
と正終の二つなので、負終のほうを仮想的に番号が若い
と考えて並べる。この時、XXの値が同じでかつX座標
の値が異なる輪郭点には特殊処理を施すためのフラグを
たてる(Yがフラグのたった状態を示し、Nはフラグの
さがった状態を示す)。さらに、並べ変えたパケットを
先頭から2個づつペアにし、各々のペアにおいて、2つ
のパケットの順番が条件1の順になるように並べ換え
る。ここでは、アドレスが5と6であるペアのみこの条
件を満たしていないので並べ換える。このように処理を
行うと輪郭ベクトルは、各ペアにおいて最初のパケット
から次のパケットへ続くという接続関係になる。即ち、
各々のペアにおいて、最初のパケットの次の点のアドレ
スには次のパケットのアドレスが記憶され、前の点のア
ドレスには何も記憶されない。また、次のパケットの次
の点のアドレスには何も記憶されず、前の点のアドレス
には最初のパケットのアドレスが記憶される。この様子
を図77に示す。最終的なアウトラインベクトルの統合
は、図74と図77を用いて行われる。
【0191】第4の実施例では、画像間の中点を輪郭に
とっていたため図70のアドレス4からアドレス1へ接
続する場合でも水平ベクトルになっていたが、輪郭を黒
画素寄りにとる今回のような場合には斜め方向のベクト
ルとなってしまう。この弊害を避けるために、以下の規
則を用いて斜めベクトルを水平ベクトルと垂直ベクトル
に展開する。まず、接続方向が斜めになるベクトルに対
して場合分けを行う。ベクトルが[(p,q),(r,
s)](但し、(p,q)は始点の座標、(r,s)は
終点の座標を表わす)のとき、(p,q)と(r,s)
の間に以下の様に輪郭点を内挿する。
【0192】<規則1> A.(p,q)と(r,s)のどちらにも特殊処理フラ
グが立っていない場合 (A−1) r>p かつs>qならば、(p,q)→
(p,q+2)→(r,s) (A−2) r>pかつs<qならば、(p,q)→
(r,s+2)→(r,s) (A−3) r<p かつs>qならば(p,q)→
(r,s−2)→(r,s) (A−4) r<pかつs<qならば(p,q)→
(p,q−2)→(r,s) (A−5) s=qかつr>pならば(p,q)→
(p,q+2)→(r,s+2)→(r,s) (A−6) s=qかつr>pならば(p,q)→
(p,q−2)→(r,s−2)→(r,s) (A−7) p=rならば(p,q)→(r,s) B.(p,q)のみに特殊処理フラグが立っている場合 (B−1) r>p かつs>qならば、(p,q)→
(p+2,q)→(p+2,q+2)→(r,s) (B−2) r<pかつs<qならば(p,q)→(p
−2,q)→(p−2,q−2)→(r,s) (B−3) s=qかつr>pならば(p,q)→(p
+2,q)→(p+2,q+2)→(r,s+2)→
(r,s) (B−4) s=qかつr<pならば(p,q)→(p
−2,q)→(p−2,q−2)→(r,s−2)→
(r,s) C.(r,s)のみに特殊処理フラグが立っている場合 (C−1)r>pかつs<qならば、(p,q)→(r
−2,s+2)→(r−2,s)→(r,s) (C−2) r<p かつs>qならば(p,q)→
(r+2,s−2)→(r+2,s)→(r,s) (C−3) s=qかつr>pならば(p,q)→
(p,q+2)→(r−2,s+2)→(r−2,s)
→(r,s) (C−4) s=qかつr<pならば(p,q)→
(p,q−2)→(r+2,s−2)→(r+2,s)
→(r,s) D.(p,q)と(r,s)のどちらにも特殊処理フラ
グが立っている場合 (D−1) r>pならば(p,q)→(p+2,q)
→(p+2,q+2)→(r−2,s+2)→(r−
2,s)→(r,s) (D−2) r<pならば(p,q)→(p−2,q)
→(p−2,q−2)→(r+2,s−2)→(r+
2,s)→(r,s) <規則2>内挿した点も含めて輪郭を構成するベクトル
は、必ず水平ベクトルと垂直ベクトルが交互になるよう
にする。
【0193】2つ以上連続する水平ベクトル及び2つ以
上連続する垂直ベクトルは、それぞれ1つの水平ベクト
ル、1つの垂直ベクトルに統合する。規則1及び規則2
と図74、図77を用いてアウトラインベクトルの統合
を行う。まず図74の第1ストライプの第1輪郭の第1
点目から走査を始める。記述を簡単にするために、第θ
ストライプの第ω輪郭の第ε点目を(θ−ω−ε)と表
わし、分割境界に関係する点、つまりここではY座標値
が11かまたは13である点を境界点と呼ぶことにす
る。まず(1−1−1)を調べる。これは境界点ではな
いので登録し、次の(1−1−2)に移る。(1−1−
2)も境界点ではないので登録し、次の(1−1−3)
に移る。(1−1−3)は境界点なので図77を参照
し、次に移動すべき点を調べる。この場合、(1−2−
4)が次に移る点となる。(1−1−3)を始点とし
(1−2−4)を終点とするベクトルは規則1の(C−
3)に相当するので(15,11)→(15,13)→
(23,13)→(23,11)→(25,11)とい
うように輪郭点を内挿する。次に規則2を適用し、連続
する水平ベクトル、連続する垂直ベクトルを統合する。
(1−1−3)の一つ前の輪郭点である(1−1−2)
から考えれば、(15,5)→(15,11)→(1
5,13)→(23,13)→(23,11)→(2
5,11)となり、(15,5)→(15,11)と
(15,11)→(15,13)は共に垂直ベクトルな
ので統合し、(15,5)→(15,13)→(23,
13)→(23,11)→(25,11)とする。そし
て(15,13)、(23,13)、(23,11)を
登録し、次に移るべき点を図74から求める。(25,
11)は(1−2−4)で示される点なので次に移る点
は(1−2−1)となる。(23,11)→(25,1
1)は水平ベクトル、(25,11)→(25,5)は
垂直ベクトルであり、交互になっているので(25,1
1)を登録する。同様に(1−2−1)、(1−2−
2)を登録する。(1−2−3)は境界点なので次に移
る点を図74から求めると(2−2−2)となる。これ
は規則1の(A−7)に相当するので、(35,11)
→(35,13)となる。先ほどと同様に(35,1
1)の一つ前の点(35,5)から考えると(35,
5)→(35,11)→(35,13)となり、垂直ベ
クトルが2つ続くので統合し、(35,11)は登録し
ない。(35,13)の次の点は(2−2−3)とな
り、(35,5)→(35,13)→(35,15)と
いうように垂直ベクトルが2つ続くので(35,13)
も登録しない。このように常に移るべき点を監視し、2
つ以上連続する水平ベクトル及び2つ以上連続する垂直
ベクトルはそれぞれ1つの水平ベクトル、1つの垂直ベ
クトルに統合し、垂直ベクトルと水平ベクトルが交互に
出てきた時点で輪郭点を登録する。(2−2−3)の次
に移る点は(2−2−4)であり、(35,5)→(3
5,15)→(33,15)というように垂直ベクトル
と水平ベクトルが交互になるので(2−2−3)、つま
り(35,15)を登録する。以上のように規則1及び
規則2に従って処理を行っていくと最終的に図78のテ
ーブルが得られる。
【0194】以上がステップS315の処理内容である
が、この処理を全て終了すると、ステップS316に移
る。ステップS316では正式なアウトラインベクトル
を用いて、平滑化・変倍処理を行う。これは、第6実施
例でも示したとおりである。ステップS316が終了す
るとステップS317に移り、変倍された入力画像のア
ウトラインベクトルから2値画像を再生・出力する。
【0195】以上のように処理を行うことで、分割抽出
した輪郭ベクトルから入力画像の正式なアウトラインベ
クトルを求めることができ、これを平滑化・変倍するこ
とで高画質な再生画像を得ることが可能である。
【0196】<第8の実施例>本実施例をファクシミリ
に応用した場合の構成図を図79、図80、図81に示
す。
【0197】図79は本実施例を受信側のファクシミリ
に応用した構成図であり、MH符号などで送信された符
号を復号して入力2値画像データを作成し、上記アウト
ライン処理を行う。アウトライン処理部で再生成された
2値画像は記録装置によって紙などに出力されたり、図
示しない表示装置によってディスプレイなどに表示され
たりする。
【0198】図80は本実施例を送信側のファクシミリ
に応用した構成図である。スキャナなどで入力された画
像信号を2値化し、入力画像データを作成し、アウトラ
イン処理を行う。アウトライン処理部で再生成された2
値画像は画像メモリに蓄えられ符号器によってMH符号
などの符号に変換され送信される。
【0199】図81は、本実施例を送信/受信両用のフ
ァクシミリに対して応用した場合の構成図である。前記
の2例を組み合わせたものであるが、送信受信制御回路
によってセレクタが制御され、送信受信によってアウト
ライン処理部の入出力を決定する。ここで特に、2値画
像獲得手段として、読取り部を選択し、2値画像出力手
段を記録装置として構成(或は、選択)することも可能
であるが、この場合は、変倍機能を有するデジタル複写
機(あるいはコピーモード)の実現が可能である。
【0200】
【発明の効果】以上説明したように本発明によれば、入
力画像をストライプ分割処理することで、ワーキングメ
モリやディスクの容量を小さくすることができ、メモリ
の節約になる。また、ワーキングメモリやディスクの容
量が小さくなる分、アウトライン整列処理のときの検索
範囲が狭くなり、処理の高速化を図ることができる。
【0201】
【図面の簡単な説明】
【図1】図1は本実施例における注目画素とその近傍画
素を示す図、
【図2】図2はこれまでの2値画像からの輪郭抽出の原
理を説明するための図である。
【図3】輪郭抽出における追跡処理の方向を示す図であ
る。
【図4】輪郭抽出における追跡処理の方向を示す図であ
る。
【図5】実施例における輪郭抽出装置の概略構成を示す
図である。
【図6】実施例の輪郭ベクトル抽出におけるケース0の
画素状態を示す図である。
【図7】実施例の輪郭ベクトル抽出におけるケース1の
画素状態を示す図である。
【図8】実施例の輪郭ベクトル抽出におけるケース2の
画素状態を示す図である。
【図9】実施例の輪郭ベクトル抽出におけるケース3の
画素状態を示す図である。
【図10】実施例の輪郭ベクトル抽出におけるケース4
の画素状態を示す図である。
【図11】実施例の輪郭ベクトル抽出におけるケース5
の画素状態を示す図である。
【図12】実施例の輪郭ベクトル抽出におけるケース6
の画素状態を示す図である。
【図13】実施例の輪郭ベクトル抽出におけるケース7
の画素状態を示す図である。
【図14】実施例の輪郭ベクトル抽出におけるケース8
の画素状態を示す図である。
【図15】実施例の輪郭ベクトル抽出におけるケース9
の画素状態を示す図である。
【図16】実施例の輪郭ベクトル抽出におけるケース1
0の画素状態を示す図である。
【図17】実施例の輪郭ベクトル抽出におけるケース1
1の画素状態を示す図である。
【図18】実施例の輪郭ベクトル抽出におけるケース1
2の画素状態を示す図である。
【図19】実施例の輪郭ベクトル抽出におけるケース1
3の画素状態を示す図である。
【図20】実施例の輪郭ベクトル抽出におけるケース1
4の画素状態を示す図である。
【図21】実施例の輪郭ベクトル抽出におけるケース1
5の画素状態を示す図である。
【図22】実施例における輪郭抽出処理の全体を示すフ
ローチャートである。
【図23】実施例における水平ベクトルの登録テーブル
を示す図である。
【図24】実施例における垂直ベクトルの登録テーブル
を示す図である。
【図25】実施例における輪郭線のデータ形式を示した
図である。
【図26】実施例におけるベクトル列抽出処理の全体処
理を示すフローチャートである。
【図27】図26における注目画素が黒である場合の処
理の内容を更に詳しく説明したフローチャートである。
【図28】図27における注目画素が黒画素でケース0
に対応する場合の処理内容を示すフローチャートであ
る。
【図29】実施例におけるケース1の処理内容を示すフ
ローチャートである。
【図30】水平ベクトルに流入する垂直ベクトル検索す
る処理を示すフローチャートである。
【図31】流入ベクトルが未定の水平ベクトルの登録テ
ーブルを示す図である。
【図32】流出ベクトルが未定の水平ベクトルの登録テ
ーブルを示す図である。
【図33】流入ベクトルが未定の垂直ベクトルの登録テ
ーブルを示す図である。
【図34】抽出ベクトルが未定の垂直ベクトルの登録テ
ーブルを示す図である。
【図35】垂直ベクトルに流出する水平ベクトル検索す
る処理を示すフローチャートである。
【図36】実施例におけるケース2の処理内容を示すフ
ローチャートである。
【図37】実施例におけるケース3の処理内容を示すフ
ローチャートである。
【図38】図37等におけるケースAの処理を示すフロ
ーチャートである。
【図39】実施例におけるケース4の処理内容を示すフ
ローチャートである。
【図40】実施例におけるケース5の処理内容を示すフ
ローチャートである。
【図41】実施例におけるケース6の処理内容を示すフ
ローチャートである。
【図42】図41等におけるケースBの処理を示すフロ
ーチャートである。
【図43】実施例におけるケース7の処理内容を示すフ
ローチャートである。
【図44】実施例におけるケース8の処理内容を示すフ
ローチャートである。
【図45】図44等における垂直ベクトルに流入する水
平ベクトルを検索する処理のフローチャートである。
【図46】図44等における水平ベクトルが流出する垂
直ベクトルを検索する処理のフローチャートである。
【図47】実施例におけるケース9の処理内容を示すフ
ローチャートである。
【図48】図47等におけるケースDの処理を示すフロ
ーチャートである。
【図49】実施例におけるケース10の処理内容を示す
フローチャートである。
【図50】実施例におけるケース11の処理内容を示す
フローチャートである。
【図51】実施例におけるケース12の処理内容を示す
フローチャートである。
【図52】図51等におけるケースCの処理を示すフロ
ーチャートである。
【図53】実施例におけるケース13の処理内容を示す
フローチャートである。
【図54】実施例におけるケース14の処理内容を示す
フローチャートである。
【図55】実施例におけるケース15の処理内容を示す
フローチャートである。
【図56】実施例におけるアウトラインベクトル列整列
処理を示すフローチャートである。
【図57】実施例におけるアウトラインベクトル列整列
処理を示すフローチャートである。
【図58】実施例におけるアウトラインベクトル列整列
処理における開始点候補テーブルを説明するための図で
ある。
【図59】図56におけるテーブル・変数初期化処理の
内容を示すフローチャートである。
【図60】ベクトル列テーブルをファイルに出力する処
理を示すフローチャートである。
【図61】第2の実施例のブロック構成図の概略を示す
図である。
【図62】第2の実施例の処理の流れを示すフローチャ
ートである。
【図63】第3の実施例を説明するための図である。
【図64】第4の実施例の処理の流れを示すフローチャ
ートである。
【図65】第4の実施例の説明のための入力画像を示す
図である。
【図66】ストライプ分割境界線上に存在する水平ベク
トルの始点、終点を記述するための図である。
【図67】ストライプ分割処理により得られたアウトラ
インベクトルの座標テーブルを示す図である。
【図68】図67のテーブルを走査して得られる分割境
界線上の座標を示す図である。
【図69】図68のパケットをX座標により並べ換えた
図である。
【図70】図69のパケットのペアを条件に従って並べ
換えた図である。
【図71】分割処理されたアウトラインベクトルを統合
・整列した結果を示す図である。
【図72】第7の実施例の説明のための入力画像を示す
図である。
【図73】ストライプ分割境界線上に存在する水平ベク
トルの始点、終点を記述するための図である。
【図74】ストライプ分割処理により得られたアウトラ
インベクトルの座標テーブルを示す図である。
【図75】図74のテーブルを走査して得られる分割境
界線上の座標を示す図である。
【図76】図75のパケットをX座標により並べ換えた
図である。
【図77】図76のパケットのペアを条件に従って並べ
換えた図である。
【図78】分割処理されたアウトラインベクトルを統合
・整列した結果を示す図である。
【図79】本実施例を受信側のファクシミリに応用した
構成図である。
【図80】本実施例を送信側のファクシミリに応用した
構成図である。
【図81】本実施例を送信/受信両用のファクシミリに
応用した構成図である。
【符号の説明】
501 入力制御回路 502〜504、507〜512 ラッチ 505及び506 FIFO 513及び514 入力ポート 515 主走査カウンタ 516 副走査カウンタ 517 入出力制御ポート 519 CPU 520 メモリ 521 ディスクI/O 522 ディスク
フロントページの続き (56)参考文献 特開 平4−157578(JP,A) 特開 平3−195922(JP,A) 特開 昭59−22175(JP,A) 特開 平4−42194(JP,A) 特開 平1−307879(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06T 9/20 G09G 5/24

Claims (26)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力画像から1ライン以上の白ラインを
    検出する検出手段と、 前記検出手段による1ライン以上の白ラインが検出され
    た場合、入力画像を、検出された白ライン位置に基づい
    て帯状画像に分割する分割手段と、 前記分割手段により分割された帯状画像単位で輪郭ベク
    トルを抽出する抽出手段とを有することを特徴とする画
    像処理装置。
  2. 【請求項2】 前記抽出手段により抽出された輪郭ベク
    トルを変倍する変倍手段と、 前記変倍手段により変倍された輪郭ベクトルに基づき画
    像を再生する再生手段と、 前記再生手段により再生された画像を出力する出力手段
    とを有することを特徴とする請求項1記載の画像処理装
    置。
  3. 【請求項3】 前記抽出手段は、黒画素の中心ではなく
    黒画素と白画素との境界位置に輪郭ベクトルを抽出する
    ことを特徴とする請求項1記載の画像処理装置。
  4. 【請求項4】 前記入力画像を入力するモデムを有する
    ことを特徴とする請求項1記載の画像処理装置。
  5. 【請求項5】 前記分割手段は、さらに所定ライン数画
    像を入力した時点で入力画像を複数の帯状画像に分割す
    ることを特徴とする請求項1記載の画像処理装置。
  6. 【請求項6】 入力画像を記憶するメモリに入力画像が
    所定量記憶されたことを検出する検出手段と、 前記検出手段による所定量記憶されたことの検出に基づ
    き、入力画像を複数の帯状画像に分割する分割手段と、 前記分割手段により分割された帯状画像単位で、輪郭点
    を輪郭ベクトルの端点とする輪郭ベクトルデータを抽出
    する抽出手段と該抽出手段で抽出した前記帯状画像毎の
    輪郭ベクトルデータを、輪郭点の接続順になるように整
    列する整列手段とを有することを特徴とする画像処理装
    置。
  7. 【請求項7】 前記整列手段でにより整列された輪郭ベ
    クトルデータを変倍する変倍手段と、 前記変倍手段により変倍された輪郭ベクトルデータに基
    づき画像を再生する再生手段と、 前記再生手段により再生された画像を出力する出力手段
    とを有することを特徴とする請求項6記載の画像処理装
    置。
  8. 【請求項8】 前記抽出手段は、黒画素の中心ではなく
    黒画素と白画素との境界位置に輪郭ベクトルを抽出する
    ことを特徴とする請求項6記載の画像処理装置。
  9. 【請求項9】 前記入力画像を入力するモデムを有する
    ことを特徴とする請求項6記載の画像処理装置。
  10. 【請求項10】 入力画像を複数の帯状画像に分割する
    分割手段と、 前記分割手段により分割された帯状画像単位で輪郭ベク
    トルを抽出する抽出手段と、 前記抽出手段により抽出された輪郭ベクトルに基づき平
    滑化を行う平滑化手段とを有し、 前記平滑化手段は、連続する2つの帯状画像それぞれの
    輪郭ベクトルのうち、前記2つの帯状画像間の境界近傍
    にある有意な座標位置の輪郭ベクトルを対象外とし、平
    滑化を行うことを特徴とする画像処理装置。
  11. 【請求項11】 前記平滑化手段により平滑化された輪
    郭ベクトルに基づき画像を再生する再生手段と、 前記再生手段により再生された画像を出力する出力手段
    とを有することを特徴とする請求項10記載の画像処理
    装置。
  12. 【請求項12】 前記抽出手段は、黒画素の中心ではな
    く黒画素と白画素との境界位置に輪郭ベクトルを抽出す
    ることを特徴とする請求項10記載の画像処理装置。
  13. 【請求項13】 画像を入力するモデムを有することを
    特徴とする請求項10記載の画像処理装置。
  14. 【請求項14】 入力画像から1ライン以上の白ライン
    を検出する検出ステップと、 前記検出ステップによる1ライン以上の白ラインが検出
    された場合、入力画像を、検出された白ライン位置に基
    づいて帯状画像に分割する分割ステップと、 前記分割ステップにより分割された帯状画像単位で輪郭
    ベクトルを抽出する抽出ステップとを有することを特徴
    とする画像処理方法。
  15. 【請求項15】 前記抽出ステップにより抽出された輪
    郭ベクトルを変倍する変倍ステップと、 前記変倍ステップにより変倍された輪郭ベクトルに基づ
    き画像を再生する再生ステップと、 前記再生ステップにより再生された画像を出力する出力
    ステップとを有することを特徴とする請求項14記載の
    画像処理方法。
  16. 【請求項16】 前記抽出ステップは、黒画素の中心で
    はなく黒画素と白画素との境界位置に輪郭ベクトルを抽
    出することを特徴とする請求項14記載の画像処理方
    法。
  17. 【請求項17】 前記入力画像をモデムより入力するス
    テップを有することを特徴とする請求項1記載の画像処
    理方法。
  18. 【請求項18】 前記分割ステップは、さらに所定ライ
    ン数画像を入力した時点で入力画像を複数の帯状画像に
    分割することを特徴とする請求項14記載の画像処理方
    法。
  19. 【請求項19】 入力画像を記憶するメモリに入力画像
    が所定量記憶されたことを検出する検出ステップと、 前記検出ステップによる所定量記憶されたことの検出に
    基づき、入力画像を複数の帯状画像に分割する分割ステ
    ップと、 前記分割ステップにより分割された帯状画像単位で、輪
    郭点を輪郭ベクトルの端点とする輪郭ベクトルデータを
    抽出する抽出ステップと該抽出ステップで抽出した前記
    帯状画像毎の輪郭ベクトルデータを、輪郭点の接続順に
    なるように整列する整列ステップとを有することを特徴
    とする画像処理方法。
  20. 【請求項20】 前記整列ステップにより整列された輪
    郭ベクトルデータを変倍する変倍ステップと、 前記変倍ステップにより変倍された輪郭ベクトルデータ
    に基づき画像を再生する再生ステップと、 前記再生ステップにより再生された画像を出力する出力
    ステップとを有することを特徴とする請求項19記載の
    画像処理方法。
  21. 【請求項21】 前記抽出ステップは、黒画素の中心で
    はなく黒画素と白画素との境界位置に輪郭ベクトルを抽
    出することを特徴とする請求項19記載の画像処理方
    法。
  22. 【請求項22】 前記入力画像をモデムより入力するス
    テップを有することを特徴とする請求項19記載の画像
    処理方法。
  23. 【請求項23】 入力画像を複数の帯状画像に分割する
    分割ステップと、 前記分割ステップにより分割された帯状画像単位で輪郭
    ベクトルを抽出する抽出ステップと、 前記抽出ステップにより抽出された輪郭ベクトルに基づ
    き平滑化を行う平滑化ステップとを有し、 前記平滑化ステップは、連続する2つの帯状画像それぞ
    れの輪郭ベクトルのうち、前記2つの帯状画像間の境界
    近傍にある有意な座標位置の輪郭ベクトルを対象外と
    し、平滑化を行うことを特徴とする画像処理方法。
  24. 【請求項24】 前記平滑化ステップにより平滑化され
    た輪郭ベクトルに基づき画像を再生する再生ステップ
    と、 前記再生ステップにより再生された画像を出力する出力
    ステップとを有することを特徴とする請求項23記載の
    画像処理方法。
  25. 【請求項25】 前記抽出ステップは、黒画素の中心で
    はなく黒画素と白画素との境界位置に輪郭ベクトルを抽
    出することを特徴とする請求項23記載の画像処理方
    法。
  26. 【請求項26】 前記入力画像をモデムより入力するス
    テップを有することを特徴とする請求項23記載の画像
    処理方法。
JP4254989A 1992-09-24 1992-09-24 画像処理方法及びその装置 Expired - Fee Related JP2954434B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP4254989A JP2954434B2 (ja) 1992-09-24 1992-09-24 画像処理方法及びその装置
EP93307549A EP0589702B1 (en) 1992-09-24 1993-09-23 Image processing method and apparatus
DE69324874T DE69324874T2 (de) 1992-09-24 1993-09-23 Bildverarbeitungsverfahren und -gerät
US08/636,629 US5828794A (en) 1992-09-24 1996-04-23 Image processing method and apparatus for enlarging and reducing image data
US09/038,477 US6111994A (en) 1992-09-24 1997-12-12 Outline extraction using partial image processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4254989A JP2954434B2 (ja) 1992-09-24 1992-09-24 画像処理方法及びその装置

Publications (2)

Publication Number Publication Date
JPH06103379A JPH06103379A (ja) 1994-04-15
JP2954434B2 true JP2954434B2 (ja) 1999-09-27

Family

ID=17272665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4254989A Expired - Fee Related JP2954434B2 (ja) 1992-09-24 1992-09-24 画像処理方法及びその装置

Country Status (1)

Country Link
JP (1) JP2954434B2 (ja)

Also Published As

Publication number Publication date
JPH06103379A (ja) 1994-04-15

Similar Documents

Publication Publication Date Title
JP2690110B2 (ja) 走査変換方法
US6404921B1 (en) Contour extracting method and apparatus
EP0431961B1 (en) Image reduction/enlargement technique
KR950005231B1 (ko) 도형 처리장치
US8249394B2 (en) Method and system for shift-map image editing
EP0589702B1 (en) Image processing method and apparatus
JP3327621B2 (ja) オブジェクトソートとエッジ計算を行うグラフィックシステム及びその方法
KR0129505B1 (ko) 문자 데이터, 로고·삽화 데이터 입력출력장치와 입력출력방법
US5426727A (en) High-quality character generating system and method for use therein
US5388166A (en) Image drawing apparatus
JP2954434B2 (ja) 画像処理方法及びその装置
JPH0322186A (ja) 画像出力方法
JPH0464182A (ja) 塗り潰しパターン発生装置および該装置を用いたパターン塗り潰し方法
JPH0652304A (ja) 画像処理装置及びその方法
JPH03177982A (ja) 画像処理方法
JP2646476B2 (ja) ロゴ・イラストデ−タ入力出力装置と入力出力方法
JP3133807B2 (ja) 輪郭抽出方法及びその装置
JP2806679B2 (ja) 文字発生装置
US6356656B1 (en) Contour-information extraction apparatus and method
JP3093906B2 (ja) 画像処理装置及び方法
JP2885996B2 (ja) 画像処理方法及び装置
JP2782904B2 (ja) 多角形塗りつぶし方式
JP3037504B2 (ja) 画像処理方法及びその装置
JPH08287221A (ja) 画像処理装置及び画像処理方法
JP3517982B2 (ja) 図形描画装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990607

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070716

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080716

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080716

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090716

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090716

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100716

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100716

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110716

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120716

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees