JP2633552B2 - 画像処理方法 - Google Patents
画像処理方法Info
- Publication number
- JP2633552B2 JP2633552B2 JP62064368A JP6436887A JP2633552B2 JP 2633552 B2 JP2633552 B2 JP 2633552B2 JP 62064368 A JP62064368 A JP 62064368A JP 6436887 A JP6436887 A JP 6436887A JP 2633552 B2 JP2633552 B2 JP 2633552B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- line
- point
- image
- frame
- 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 - Lifetime
Links
Landscapes
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明は画像処理方法、例えば原子画像を加工して直
線からなる表枠線を生成するための画像処理方法に関す
るものである。
線からなる表枠線を生成するための画像処理方法に関す
るものである。
[従来の技術] 第4図に示されるような、水平線,垂直線及び斜め線
から構成される枠線画像を認識する方法としては、原画
像をデジタル入力し線画素を追跡してベクトル化を行う
が、従来、ベクトル化によつて得られた各線が、水平
線,垂直線及び斜め線のどれであるかを認識区別するた
めには、各線の傾きθを求め所定のしきい値θthに基づ
いて区別した。例えば、次のような判別式を用いた。
から構成される枠線画像を認識する方法としては、原画
像をデジタル入力し線画素を追跡してベクトル化を行う
が、従来、ベクトル化によつて得られた各線が、水平
線,垂直線及び斜め線のどれであるかを認識区別するた
めには、各線の傾きθを求め所定のしきい値θthに基づ
いて区別した。例えば、次のような判別式を用いた。
|θ|≧90゜−θthならば、垂直線 θth≦|θ|<90゜−θthならば、斜め線0≦|θ|<
θthならば、水平線 ……(1) しかしながら、上記従来例ではしきい値θthを決定す
るのが非常に困難であった。各ベクトルの傾きθを−90
゜から90゜の範囲で分類する場合に、例えば(1)式で
θth=30゜の場合には、60゜≦|θ|≦90゜ならば垂直
線、30゜≦|θ|<60゜ならば斜め線、0゜≦|θ|<
30゜ならば水平線という具合に決定すると、第4図の62
の様な角度θの小さい斜め線も水平線に分類されてしま
う。
θthならば、水平線 ……(1) しかしながら、上記従来例ではしきい値θthを決定す
るのが非常に困難であった。各ベクトルの傾きθを−90
゜から90゜の範囲で分類する場合に、例えば(1)式で
θth=30゜の場合には、60゜≦|θ|≦90゜ならば垂直
線、30゜≦|θ|<60゜ならば斜め線、0゜≦|θ|<
30゜ならば水平線という具合に決定すると、第4図の62
の様な角度θの小さい斜め線も水平線に分類されてしま
う。
また、角度θの小さい斜め線を認識するために、例え
ばθth=10゜として、80゜≦|θ|≦90゜ならば垂直
線、10゜|θ|<80゜ならば斜め線、0゜≦θ<10゜ま
でが水平線であるという具合にしきい値θthを定める
と、読み取り時に原稿が回転したり、また第5図のよう
にもともと原画像が傾いて描かれている場合には、例え
ばθ61′=12゜,θ62′=−6゜の場合には、|θ61′
|≧θth(10゜) |θ62′|≧θth(10゜) を満たすので、斜め線62′が水平線に含まれ、水平線6
1′が斜め線であると誤判別してしまうという問題が発
生し、しきい値θthの値をどのように決定しても誤判別
する枠線が存在していた。
ばθth=10゜として、80゜≦|θ|≦90゜ならば垂直
線、10゜|θ|<80゜ならば斜め線、0゜≦θ<10゜ま
でが水平線であるという具合にしきい値θthを定める
と、読み取り時に原稿が回転したり、また第5図のよう
にもともと原画像が傾いて描かれている場合には、例え
ばθ61′=12゜,θ62′=−6゜の場合には、|θ61′
|≧θth(10゜) |θ62′|≧θth(10゜) を満たすので、斜め線62′が水平線に含まれ、水平線6
1′が斜め線であると誤判別してしまうという問題が発
生し、しきい値θthの値をどのように決定しても誤判別
する枠線が存在していた。
[発明が解決しようとする課題] 本発明は、画像に含まれる枠線が全体的に傾斜してい
る場合でも、枠線全体の構成を認識することができる画
像処理方法を提供する。
る場合でも、枠線全体の構成を認識することができる画
像処理方法を提供する。
[問題点を解決するための手段] この課題を解決するために、本発明の画像処理方法
は、入力画像より、折れ点、交差点、分岐点の少なくと
もいずれか1つからなる特徴点で区切られる線分を抽出
し、前記抽出された線分から、1つの特徴点に接する複
数の線分を選択し、前記選択された複数の線分の相対的
長さに基づいて、各線分を枠の構成成分に分類すること
を特徴とする。
は、入力画像より、折れ点、交差点、分岐点の少なくと
もいずれか1つからなる特徴点で区切られる線分を抽出
し、前記抽出された線分から、1つの特徴点に接する複
数の線分を選択し、前記選択された複数の線分の相対的
長さに基づいて、各線分を枠の構成成分に分類すること
を特徴とする。
[実施例] 以下、添付図面に従つて本発明の実施例を詳細に説明
する。
する。
第2図は実施例の枠線構成装置を構成するグラフイツ
クシステムの外観図で、1は制御部、2はCRTデイスプ
レイ、3はキーボード、4はマウスである。これらで、
いわゆるワークステーシヨンを構成している。又、5は
文書を走査して画像を入力するイメージスキヤナ、6は
ワークステーシヨンで処理された画像を用紙にハードコ
ピーするプリンタ部である。本枠線構成装置への入力
は、原稿用紙等に書かれた原始画像をイメージスキヤナ
5で読み取つても、又はマウス4によりCRTデイスプレ
イ2上に手書きの原始画像を形成してもよく、原子画像
を何等かの形で後述のイメージメモリ部10へ格納されれ
ばよい。
クシステムの外観図で、1は制御部、2はCRTデイスプ
レイ、3はキーボード、4はマウスである。これらで、
いわゆるワークステーシヨンを構成している。又、5は
文書を走査して画像を入力するイメージスキヤナ、6は
ワークステーシヨンで処理された画像を用紙にハードコ
ピーするプリンタ部である。本枠線構成装置への入力
は、原稿用紙等に書かれた原始画像をイメージスキヤナ
5で読み取つても、又はマウス4によりCRTデイスプレ
イ2上に手書きの原始画像を形成してもよく、原子画像
を何等かの形で後述のイメージメモリ部10へ格納されれ
ばよい。
第1図は、第2図の枠線構成装置のブロツク構成図で
ある。ワークステーシヨンの制御部1は、全体を制御す
るCPU回路8、枠線構成をするプログラムを格納した例
えばRAM等から成るプログラムメモリ部9と、デジタル
画像を格納するイメージメモリ部10から構成される。
ある。ワークステーシヨンの制御部1は、全体を制御す
るCPU回路8、枠線構成をするプログラムを格納した例
えばRAM等から成るプログラムメモリ部9と、デジタル
画像を格納するイメージメモリ部10から構成される。
第3図は枠線構成処理の流れを示すフローチヤートで
ある。このフローチヤートに従って、その細部を順に説
明する。
ある。このフローチヤートに従って、その細部を順に説
明する。
<イメージ入力>…ステツプS31 まず、使用者がノートあるいはシート紙等の用紙上
に、所望の枠線をラフスケツチする。第4図に枠線が描
かれたシートの一例を示す。この原稿をイメージスキヤ
ナ5に乗せ、キーボード3あるいはマウス4からイメー
ジ入力命令を制御部1に与える。すると、CPU回路8は
プログラムメモリ部9に格納されたプログラムに従い、
イメージスキヤナ5に画像スキヤナ命令を送る。イメー
ジスキヤナ5は原稿上の画像情報をCCD等のセンサから
読み取り、イメージメモリ部10に画像を格納する。
に、所望の枠線をラフスケツチする。第4図に枠線が描
かれたシートの一例を示す。この原稿をイメージスキヤ
ナ5に乗せ、キーボード3あるいはマウス4からイメー
ジ入力命令を制御部1に与える。すると、CPU回路8は
プログラムメモリ部9に格納されたプログラムに従い、
イメージスキヤナ5に画像スキヤナ命令を送る。イメー
ジスキヤナ5は原稿上の画像情報をCCD等のセンサから
読み取り、イメージメモリ部10に画像を格納する。
<前処理>…ステツプS32 イメージスキヤナ5より入力されたデジタル画像、イ
メージメモリ部10上では第6図に示すマトリクス構造を
持つ。画像は、原稿の横方向(以後これをx方向とす
る)に最大m個、原稿の縦方向(以後これをy方向とす
る)に最大n個の画素から構成されており、原稿の白、
黒に対応して各画素はそれぞれ“0"、“1"の値を持つ。
即ち、画素の座標値を、横方向にx=1,2,…,m、縦方向
にy=1,2,…,nとした時、位置(x,y)の画素の値P
(x,y)は次の式で表すことができる。
メージメモリ部10上では第6図に示すマトリクス構造を
持つ。画像は、原稿の横方向(以後これをx方向とす
る)に最大m個、原稿の縦方向(以後これをy方向とす
る)に最大n個の画素から構成されており、原稿の白、
黒に対応して各画素はそれぞれ“0"、“1"の値を持つ。
即ち、画素の座標値を、横方向にx=1,2,…,m、縦方向
にy=1,2,…,nとした時、位置(x,y)の画素の値P
(x,y)は次の式で表すことができる。
P(x,y)=“0"(白の場合) “1"(黒の場合) 表枠は、P(x,y)=1である画素の集合として表現
されるのであるが、P(x,y)=1である画素の列を追
跡するための前処理として、ノイズ除去及び細線化を行
う。ノイズ除去は例えば周知の平滑化で可能である。
又、細線化は例えば位数,連結度等を考慮して黒画素の
縮退を行う等の周知の技術を用いる事ができる。このノ
イズ除去及び細線化が終了すると、表枠は幅1の連続点
の集合となる。
されるのであるが、P(x,y)=1である画素の列を追
跡するための前処理として、ノイズ除去及び細線化を行
う。ノイズ除去は例えば周知の平滑化で可能である。
又、細線化は例えば位数,連結度等を考慮して黒画素の
縮退を行う等の周知の技術を用いる事ができる。このノ
イズ除去及び細線化が終了すると、表枠は幅1の連続点
の集合となる。
例えば第4図の枠線のうち、枠線部分61の近傍の線及
びその周辺の白部分60を第7図(a)に示す。第7図
(a)で、論理値“0"の画素が白部で、“1"の画像が黒
部である。
びその周辺の白部分60を第7図(a)に示す。第7図
(a)で、論理値“0"の画素が白部で、“1"の画像が黒
部である。
<ベクトル化>…ステツプS33 こうして得られたデジタル画像のP(1,2)…,P(x,
y),…P(m,n)なる各画素について、枠線を追跡しベ
クトル化する。本実施例の線追跡/ベクトル化のアルゴ
リズムを第8図に示す。線追跡とは黒画素を順次追跡す
るものであるが、その追跡は白画素が現われるか、若し
くは一度辿つた黒画素に出会うまで続ける。又、ベクト
ル化とは連続する黒画素を折れ点,交差点,分岐点等の
特徴点で切り、その支点と終点の座標で線分とし、その
線分でその間の黒画素の集合を代表されるものである。
そして、求められた特徴点とベクトルを、第9図,第10
図に示す特徴点テーブル,ベクトルテーブルに書き込
む。
y),…P(m,n)なる各画素について、枠線を追跡しベ
クトル化する。本実施例の線追跡/ベクトル化のアルゴ
リズムを第8図に示す。線追跡とは黒画素を順次追跡す
るものであるが、その追跡は白画素が現われるか、若し
くは一度辿つた黒画素に出会うまで続ける。又、ベクト
ル化とは連続する黒画素を折れ点,交差点,分岐点等の
特徴点で切り、その支点と終点の座標で線分とし、その
線分でその間の黒画素の集合を代表されるものである。
そして、求められた特徴点とベクトルを、第9図,第10
図に示す特徴点テーブル,ベクトルテーブルに書き込
む。
第8図のフローチヤートに従つて説明するとステツS1
00で最初の黒画素を捜す。これはラスタスキヤン方式で
左上端の画素P(1,1)から順に捜して行けばよい。そ
のような画素が見付かると、ステツプS104でその点を始
点座標(xs,ys)として、第9図のベクトルテーブルに
格納する。ステツプS105で第7図(b)の追跡マツプを
「追跡済み」(例えば、“2")とマークする。この追跡
マツプはイメージメモリ部10の各画素に対応して1つづ
つあるもので、追跡の結果白画素であれば“1"とマーク
し、黒画素であれば“2"とマークする。追跡マツプは例
えばRAMで構成されたプログラムメモリ部9内の一部に
設ける事ができる。
00で最初の黒画素を捜す。これはラスタスキヤン方式で
左上端の画素P(1,1)から順に捜して行けばよい。そ
のような画素が見付かると、ステツプS104でその点を始
点座標(xs,ys)として、第9図のベクトルテーブルに
格納する。ステツプS105で第7図(b)の追跡マツプを
「追跡済み」(例えば、“2")とマークする。この追跡
マツプはイメージメモリ部10の各画素に対応して1つづ
つあるもので、追跡の結果白画素であれば“1"とマーク
し、黒画素であれば“2"とマークする。追跡マツプは例
えばRAMで構成されたプログラムメモリ部9内の一部に
設ける事ができる。
ステツプS106の黒点追跡は、画素P(x,y)の隣接点
を追跡するものである。画素P(x,y)の8個の隣接点
について、P(x+1,y−1),P(x+1,y+1),P(x,
y+1),P(x−1,y+1),P(x−1,y),P(x−1,y−
1),P(x,y−1)の順に、黒点の存在を調べる。も
し、8つの隣接点中のいずれかに黒点が存在すれば、ス
テツプS107からステツプS108へ進み、当該画素に対応す
る追跡マツプ上の点を、追跡済みの黒点とマーク
(“2")する。この黒点追跡を10画素分のベクトルを切
り取るまで、ステツプS106〜S109のループ繰返す。
を追跡するものである。画素P(x,y)の8個の隣接点
について、P(x+1,y−1),P(x+1,y+1),P(x,
y+1),P(x−1,y+1),P(x−1,y),P(x−1,y−
1),P(x,y−1)の順に、黒点の存在を調べる。も
し、8つの隣接点中のいずれかに黒点が存在すれば、ス
テツプS107からステツプS108へ進み、当該画素に対応す
る追跡マツプ上の点を、追跡済みの黒点とマーク
(“2")する。この黒点追跡を10画素分のベクトルを切
り取るまで、ステツプS106〜S109のループ繰返す。
1つのベクトルを切出すと、ステツプS110へ進み、当
該黒点の座標を、ステツプS104(又は、ステツプS111)
で始点を格納したベクトルの対応する終点(xe,ye)と
してベクトルテーブルに格納する。更に、当該黒点の座
標をステツプS111で、次のベクトルの始点座標(xs,
ys)として格納する。
該黒点の座標を、ステツプS104(又は、ステツプS111)
で始点を格納したベクトルの対応する終点(xe,ye)と
してベクトルテーブルに格納する。更に、当該黒点の座
標をステツプS111で、次のベクトルの始点座標(xs,
ys)として格納する。
やがて、ステツプS107で、周囲の領域に黒点がなく、
又はあつても追跡済みの点(第7図(b)のマツプで
“2"とマークされている画素)のみであるならば、追跡
してきた線は現在の画素で終わると考えられるので、ス
テツプS112でベクトルテーブルの終点座標(xe,ye)を
格納する。そして、ステツプS113でその点が白点ならば
白(“1")とマークし、追跡済みの黒点ならばその旨マ
ークする。こうして1つのベクトルの追跡が完了した。
又はあつても追跡済みの点(第7図(b)のマツプで
“2"とマークされている画素)のみであるならば、追跡
してきた線は現在の画素で終わると考えられるので、ス
テツプS112でベクトルテーブルの終点座標(xe,ye)を
格納する。そして、ステツプS113でその点が白点ならば
白(“1")とマークし、追跡済みの黒点ならばその旨マ
ークする。こうして1つのベクトルの追跡が完了した。
そこで次に、ステツプS114で未だ未追跡の画素を探
し、ステツプS101に戻り、その点が黒点か白点かを判断
し、黒点なら、ステツプS104へ進み、前述のステツプを
繰返す。もしステツプS101で白点をみつけたら、ステツ
プS102で、追跡マツプを“1"とマークする。
し、ステツプS101に戻り、その点が黒点か白点かを判断
し、黒点なら、ステツプS104へ進み、前述のステツプを
繰返す。もしステツプS101で白点をみつけたら、ステツ
プS102で、追跡マツプを“1"とマークする。
ステツプS103では、全ての画素を追跡したかを判断す
る。これは、追跡マツプに“0"の点が残つているか否か
で判断できる。こうして、ベクトルテーブルには、水平
線,垂直線,ななめ線を構成する全てのベクトルが追跡
された順で混在して格納される。
る。これは、追跡マツプに“0"の点が残つているか否か
で判断できる。こうして、ベクトルテーブルには、水平
線,垂直線,ななめ線を構成する全てのベクトルが追跡
された順で混在して格納される。
第4図及び第5図に示した枠線は、水平方向のベクト
ルが3×11=33(本)、垂直方向のベクトルが10×4=
40(本)、斜め方向のベクトルが1本の計33+40+1=
74(本)のベクトルから構成されているので、ベクトル
テーブルの大きさN(第10図のvNの添字N)はN=74と
なる。この74本のベクトルは、水平方向,垂直方向,斜
め方向の分類が、まだ成されておらず、順不同にベクト
ルテーブルに格納されている。
ルが3×11=33(本)、垂直方向のベクトルが10×4=
40(本)、斜め方向のベクトルが1本の計33+40+1=
74(本)のベクトルから構成されているので、ベクトル
テーブルの大きさN(第10図のvNの添字N)はN=74と
なる。この74本のベクトルは、水平方向,垂直方向,斜
め方向の分類が、まだ成されておらず、順不同にベクト
ルテーブルに格納されている。
また、特徴点は4×11=44(点)あり、特徴点テーブ
ルの大きさMはM=44となる。
ルの大きさMはM=44となる。
第10図に示す様に、ベクトルv1は特徴点P1を終点とし
ているといつた具合に表に記入されている。
ているといつた具合に表に記入されている。
<ベクトル分類>…ステツプS34 (第1の実施例) 第10図に示したベクトルテーブルに格納されたデータ
から斜め方向のベクトルを抽出し、ベクトル番号vjの分
類kjに斜め方向のベクトルならばkj=1を代入する。
から斜め方向のベクトルを抽出し、ベクトル番号vjの分
類kjに斜め方向のベクトルならばkj=1を代入する。
ベクトル分類アルゴリズムの第1の実施例を第12図〜
第16図のフローチヤートに従つて説明する。図中、i,j,
k,l,mは制御変数で、所定の回数だけ手順を繰返すため
に使用している。
第16図のフローチヤートに従つて説明する。図中、i,j,
k,l,mは制御変数で、所定の回数だけ手順を繰返すため
に使用している。
まず、ステツプS301で最初に縦・横方向の線間隔が等
しいかどうかでモード選択を行う。もし等しければmode
=1で、等しくなければmode=0である。第13図にモー
ド選択サブルーチンのフローチヤートを示すが、フロー
チヤート中のステツプS351,S354のサブルーチンは後述
のステツプS303,S304において説明するので省略する。
第13図にモード選択サブルーチンでは、まずステツプS3
50で、制御変数iを1とし、ステツプS351〜S353で1つ
の特徴点に接する縦・横方向の2本の線分がある場合
(k=2)を探す。
しいかどうかでモード選択を行う。もし等しければmode
=1で、等しくなければmode=0である。第13図にモー
ド選択サブルーチンのフローチヤートを示すが、フロー
チヤート中のステツプS351,S354のサブルーチンは後述
のステツプS303,S304において説明するので省略する。
第13図にモード選択サブルーチンでは、まずステツプS3
50で、制御変数iを1とし、ステツプS351〜S353で1つ
の特徴点に接する縦・横方向の2本の線分がある場合
(k=2)を探す。
1つの特徴点に接する縦・横方向の2本の線分がある
場合(k=2)は、ステツプS353でその2本の線分の長
さがほぼ等しい場合(L=2)にはステツプS356でmode
=1にし、他の場合(L≠2)はステツプS357でmode=
0にする。
場合(k=2)は、ステツプS353でその2本の線分の長
さがほぼ等しい場合(L=2)にはステツプS356でmode
=1にし、他の場合(L≠2)はステツプS357でmode=
0にする。
次に、ステツプS302で制御変数iを1に初期化し、サ
ブルーチン群を特徴点の個数Mだけループする。
ブルーチン群を特徴点の個数Mだけループする。
最初のサブルーチンは、ステツプS303のベクトル抽出
サブルーチンである。これは点Piを始点または終点とす
るベクトルを集めて、第11図に示す作業ベクトルテーブ
ルに書き込む。第14図のベクトル抽出サブルーチンのフ
ローチヤートにより手順を説明する。
サブルーチンである。これは点Piを始点または終点とす
るベクトルを集めて、第11図に示す作業ベクトルテーブ
ルに書き込む。第14図のベクトル抽出サブルーチンのフ
ローチヤートにより手順を説明する。
ステツプS401で、ベクトルvjに関する制御変数jを1
に初期化し、ステツプS402で点Piを始点または終点とす
るベクトルの数を計数するための変数kを0に初期化す
る。ステツプS403でベクトルテーブルよりベクトルvjの
始点Psの値を読み込み、ステツプS404でPsとPiとを比較
する。PsとPiとが等しければ、ステツプS409でkを1増
加させ、作業ベクトルテーブルのベクトル番号vkにベク
トル番号vjを入れる。ステツプS407でjをカウントアツ
プして、次のベクトルについて調べる。
に初期化し、ステツプS402で点Piを始点または終点とす
るベクトルの数を計数するための変数kを0に初期化す
る。ステツプS403でベクトルテーブルよりベクトルvjの
始点Psの値を読み込み、ステツプS404でPsとPiとを比較
する。PsとPiとが等しければ、ステツプS409でkを1増
加させ、作業ベクトルテーブルのベクトル番号vkにベク
トル番号vjを入れる。ステツプS407でjをカウントアツ
プして、次のベクトルについて調べる。
もしステツプS404でPsとPiとが等しくなければ、ステ
ツプS405でベクトルテーブルよりベクトルvjの終点Peを
読み込み、ステツプS406でPiとPeとを比較する。等しけ
ればステツプS408に進み、ステツプS409でkを1増加さ
せ、作業ベクトルテーブルのベクトル番号vkにベクトル
番号vjを入れる。等しくなければ何もせずステツプS407
でjをカウントアツプして、次のベクトルについて調べ
る。
ツプS405でベクトルテーブルよりベクトルvjの終点Peを
読み込み、ステツプS406でPiとPeとを比較する。等しけ
ればステツプS408に進み、ステツプS409でkを1増加さ
せ、作業ベクトルテーブルのベクトル番号vkにベクトル
番号vjを入れる。等しくなければ何もせずステツプS407
でjをカウントアツプして、次のベクトルについて調べ
る。
以上のステツプS403〜S410の処理を全てのベクトルvj
(j=1,2,…,N)について行うと、ステツプS410からサ
ブルーチンを抜ける。終了時のkの値が点Piを始点また
は終点とするベクトルの数である。ここで、第5図
(b)のP1について本サブルーチンを実行すると、k=
3となる。
(j=1,2,…,N)について行うと、ステツプS410からサ
ブルーチンを抜ける。終了時のkの値が点Piを始点また
は終点とするベクトルの数である。ここで、第5図
(b)のP1について本サブルーチンを実行すると、k=
3となる。
次に、ステツプS304の等長ベクトル係数サブルーチン
を実行する。これは点Piを始点または終点とするベクト
ル群の中で、自分自身と長さのほぼ等しいベクトルが何
本あるかという数を計数するサブルーチンである。
を実行する。これは点Piを始点または終点とするベクト
ル群の中で、自分自身と長さのほぼ等しいベクトルが何
本あるかという数を計数するサブルーチンである。
以下、第15図のフローチヤートに従つて処理手順を説
明する。ここでは、k=3として説明する。
明する。ここでは、k=3として説明する。
まず、ステツプS501で等長ベクトルの数Lを0に初期
化し、ステツプS502,S503で制御変数l1,l2を1に初期化
する。ステツプS504で、ベクトル自分自身と長さを比較
しないように、l1とl2を比較し、等しければステツプS5
07に飛ぶ。今、l1=l2=1なので、ステツプS507に行
き、ステツプS507でl2を1増してl2=2となる。ステツ
プS508でl2≦kをチェックする。本例では、k=3でl2
<kなので、ステツプS504に戻り、今度はl1≠l2なの
で、ステツプS505でベクトルの大きさを比較する。ここ
で、ベクトルの大きさの差分|vl1|−|vl2|の絶対値||vl
1|−|vl2||が、所定のしきい値εより小さければ、ステ
ツプS506で等長ベクトルの数Lを1増加させる。
化し、ステツプS502,S503で制御変数l1,l2を1に初期化
する。ステツプS504で、ベクトル自分自身と長さを比較
しないように、l1とl2を比較し、等しければステツプS5
07に飛ぶ。今、l1=l2=1なので、ステツプS507に行
き、ステツプS507でl2を1増してl2=2となる。ステツ
プS508でl2≦kをチェックする。本例では、k=3でl2
<kなので、ステツプS504に戻り、今度はl1≠l2なの
で、ステツプS505でベクトルの大きさを比較する。ここ
で、ベクトルの大きさの差分|vl1|−|vl2|の絶対値||vl
1|−|vl2||が、所定のしきい値εより小さければ、ステ
ツプS506で等長ベクトルの数Lを1増加させる。
しきい値εは画素の大きさにより適当な正の数にすれ
ば良い。ベクトルの大きさ|vl1|はベクトルテーブルよ
りvl1の始点Psと終点Peを求め、さらに特徴点座標値よ
り距離計算すれば良い。例えば、Ps(x1,y1) Pe(x2,y2)とすれば、 を計算する。
ば良い。ベクトルの大きさ|vl1|はベクトルテーブルよ
りvl1の始点Psと終点Peを求め、さらに特徴点座標値よ
り距離計算すれば良い。例えば、Ps(x1,y1) Pe(x2,y2)とすれば、 を計算する。
もし上の条件を満たさなければ、ベクトルvl1とvl2は
長さが等しくないとみなし、次のベクトルと比較するた
め、ステツプS507に進む。
長さが等しくないとみなし、次のベクトルと比較するた
め、ステツプS507に進む。
以上の処理をk回繰り返したあと、基準のベクトルvl
1をステツプS509によつて変えて、これもk回繰り返
し、ステツプS510からサブルーチンを抜ける。
1をステツプS509によつて変えて、これもk回繰り返
し、ステツプS510からサブルーチンを抜ける。
このサブルーチンが終わると、変数Lにベクトル群中
の長さのほぼ等しいベクトルの数に対応する数が入る。
第17図にモードとLとKに対してどんなベクトル群が対
応するか示してある。
の長さのほぼ等しいベクトルの数に対応する数が入る。
第17図にモードとLとKに対してどんなベクトル群が対
応するか示してある。
次に、ステツプS305の斜めベクトル選択サブルーチン
に進む。このサブルーチンはmode,K,Lの値により斜め方
向のベクトルの持つているかどうか分類し、もし斜め方
向のベクトルを持つているならば、長さが最大のベクト
ルを斜め方向と判断するものである。判断アルゴリズム
のフローチヤートを第16図に示す。このフローでは、第
17図に対応して、斜め線のある条件にあてはまる場合
は、ステツプS600で長さの最大のベクトルを斜めのベク
トルとして選択し、斜めとみなされたベクトルのベクト
ルテーブルの分類k欄に1を記入して終了する。尚、第
16図の判断ステツプの説明は省略する。
に進む。このサブルーチンはmode,K,Lの値により斜め方
向のベクトルの持つているかどうか分類し、もし斜め方
向のベクトルを持つているならば、長さが最大のベクト
ルを斜め方向と判断するものである。判断アルゴリズム
のフローチヤートを第16図に示す。このフローでは、第
17図に対応して、斜め線のある条件にあてはまる場合
は、ステツプS600で長さの最大のベクトルを斜めのベク
トルとして選択し、斜めとみなされたベクトルのベクト
ルテーブルの分類k欄に1を記入して終了する。尚、第
16図の判断ステツプの説明は省略する。
前記実施例ではベクトルの大きさ|vl1|等を求める
際、ベクトルの始点、終点の座標値より距離の計算式を
用いて求めたが、ベクトル化のステツプS33の際に、ベ
クトルに含まれる画素をカウントして、ベクトルに含ま
れる総画素数を距離として使用しても良い。
際、ベクトルの始点、終点の座標値より距離の計算式を
用いて求めたが、ベクトル化のステツプS33の際に、ベ
クトルに含まれる画素をカウントして、ベクトルに含ま
れる総画素数を距離として使用しても良い。
以上述べた如く第1の実施例によれば、ベクトルの長
さによる分類により簡単に枠線内の斜め方向線分を識別
できるようになつた。
さによる分類により簡単に枠線内の斜め方向線分を識別
できるようになつた。
尚、本実施例では簡略化のため等間隔の枠線を例に説
明したが、等間隔でない場合も、フローチヤートは複雑
になるが容易に達成できる。
明したが、等間隔でない場合も、フローチヤートは複雑
になるが容易に達成できる。
ベクトル分類の第2の実施例を次に示す。
<ベクトル分類>…ステツプS34 (第2の実施例) 第10図に示したベクトルテーブルに格納されたベクト
ルデータを水平,垂直,斜め方向の3種類に分類する。
即ち、ベクトル番号vjの分類kjに水平ならばKj=1、垂
直方向ならばkj=2、斜め方向ならばkj=3を代入す
る。
ルデータを水平,垂直,斜め方向の3種類に分類する。
即ち、ベクトル番号vjの分類kjに水平ならばKj=1、垂
直方向ならばkj=2、斜め方向ならばkj=3を代入す
る。
本実施例のベクトル分類アルゴリズムを、第18図のフ
ローチヤートに従って説明する。前述同様、i,j,k,l,m
は制御変数で、所定の回数だけ手順を繰り返すために使
用している。1点を始点あるいは終点として持つベクト
ル群の中で、互いのベクトルのなす角によつて分類する
ことが本第2の実施例の基本アルゴリズムである。
ローチヤートに従って説明する。前述同様、i,j,k,l,m
は制御変数で、所定の回数だけ手順を繰り返すために使
用している。1点を始点あるいは終点として持つベクト
ル群の中で、互いのベクトルのなす角によつて分類する
ことが本第2の実施例の基本アルゴリズムである。
まず、ステツプ201では、制御変数iを1に初期化す
る。ステツプS202では第14図のベクトル抽出サブルーチ
ンにより点P1を始点あるいは終点に持つベクトルが作業
ベクトルテーブルに集められる。
る。ステツプS202では第14図のベクトル抽出サブルーチ
ンにより点P1を始点あるいは終点に持つベクトルが作業
ベクトルテーブルに集められる。
次は、作業ベクトルV1,V2,…,Vkの中で、互いのベク
トルVl1,Vmのなす各θl,mを求め、水平、垂直,斜め方
向のベクトル分類を行う。第5図(b)の場合には、V1
=v1,V2=v2,V3=v3である。まず、ステツプS209で制御
変数lを1に初期化し、ステツプS210でmを1に初期化
する。ステツプS211では、ベクトルVlとベクトルVmのな
す各θl,mを求める。θ1,2の場合には、ベクトルV1はベ
クトルV1であり、始点がP1,終点がP2である。また、ベ
クトルV2はベクトルv2であり、始点がP1,終点がP3であ
る。各点の座標は特徴点テーブルより求められるので、
内積の公式によりベクトルV1とV2のなす各θ1,2は より求められる。第5図の(b)の場合には、θ1,2=1
5゜である。|θ1,2<85゜なので、ステツプS213でベク
トルV1とベクトルV2は直交していないと判断され、ステ
ツプS214でmを1増加させる。
トルVl1,Vmのなす各θl,mを求め、水平、垂直,斜め方
向のベクトル分類を行う。第5図(b)の場合には、V1
=v1,V2=v2,V3=v3である。まず、ステツプS209で制御
変数lを1に初期化し、ステツプS210でmを1に初期化
する。ステツプS211では、ベクトルVlとベクトルVmのな
す各θl,mを求める。θ1,2の場合には、ベクトルV1はベ
クトルV1であり、始点がP1,終点がP2である。また、ベ
クトルV2はベクトルv2であり、始点がP1,終点がP3であ
る。各点の座標は特徴点テーブルより求められるので、
内積の公式によりベクトルV1とV2のなす各θ1,2は より求められる。第5図の(b)の場合には、θ1,2=1
5゜である。|θ1,2<85゜なので、ステツプS213でベク
トルV1とベクトルV2は直交していないと判断され、ステ
ツプS214でmを1増加させる。
今度はベクトルV1とベクトルV3に対して、θ1,3を計
算する。今度は、|θ1,3|>85゜なので、ステツプS21
8に進み、さらにベクトルV1即ち、ベクトルv1の角度θ
1の絶対値|θ1|が|θ1|<45なので、ステツプS218で
ベクトルθ1は水平ベクトルと判断され、ベクトルテー
ブルの分類K1に1が代入される。ベクトルV1、即ち、そ
れに対応するベクトルv1の分類が終了したので、次にベ
クトルV2について同様の処理を行う。θ2,1,θ2,3はい
ずれも|θ2,1|<85゜、|θ2,3|<85゜ずれも|θ
2,1|<85゜、|θ2,3|<85゜を満たすので、全ての他
のベクトルに対してステツプS213でNOと判断されるの
で、ステツプS221に進み、ベクトルV2、即ちそれに対応
するv2は斜めベクトルと判断される。従つて、ステツプ
S221でベクトルテーブルの分類K2に3が代入される。
算する。今度は、|θ1,3|>85゜なので、ステツプS21
8に進み、さらにベクトルV1即ち、ベクトルv1の角度θ
1の絶対値|θ1|が|θ1|<45なので、ステツプS218で
ベクトルθ1は水平ベクトルと判断され、ベクトルテー
ブルの分類K1に1が代入される。ベクトルV1、即ち、そ
れに対応するベクトルv1の分類が終了したので、次にベ
クトルV2について同様の処理を行う。θ2,1,θ2,3はい
ずれも|θ2,1|<85゜、|θ2,3|<85゜ずれも|θ
2,1|<85゜、|θ2,3|<85゜を満たすので、全ての他
のベクトルに対してステツプS213でNOと判断されるの
で、ステツプS221に進み、ベクトルV2、即ちそれに対応
するv2は斜めベクトルと判断される。従つて、ステツプ
S221でベクトルテーブルの分類K2に3が代入される。
ベクトルV3に対しては|θ1,3|>45で、かつ|θ3|
>85なので、V3に対応するベクトルにv3に垂直ベクトル
と判断され、ベクトルテーブルの分類K2には2が代入さ
れる。
>85なので、V3に対応するベクトルにv3に垂直ベクトル
と判断され、ベクトルテーブルの分類K2には2が代入さ
れる。
この処理を各点P1,P2,…,PMに対して行えば、全ての
ベクトルの分類が終了する。
ベクトルの分類が終了する。
以上述べた如く第2の実施例によれば、始点を供給す
るベクトル群の中から、ベクトル間の角度θを計算し、
θが最も90゜に近い2つのベクトルが水平線,垂直線で
あると判別するという簡便な手段で、正確に水平線,垂
直線,斜め線の3種類のベクトルに分類することが可能
になる。
るベクトル群の中から、ベクトル間の角度θを計算し、
θが最も90゜に近い2つのベクトルが水平線,垂直線で
あると判別するという簡便な手段で、正確に水平線,垂
直線,斜め線の3種類のベクトルに分類することが可能
になる。
<プリンタ出力>…ステツプS35 最後に、ベクトルの分類結果に従つて、枠線をベクト
ルに対応した直線で構成し、プリンタ部6に出力する。
ルに対応した直線で構成し、プリンタ部6に出力する。
尚、本実施例のステツプS34のベクトル分類は、第1
の実施例あるいは第2実施例のそれぞれ単独で行つても
よいが、その組み合わせによれば枠線間隔が色々と変化
する更に複雑な枠線をも分類できる。又、本実施例で
は、白地に黒の枠線の例を説明したが、黒字に白の枠線
の場合、更にカラーの枠線の場合にも容易に適用でき
る。
の実施例あるいは第2実施例のそれぞれ単独で行つても
よいが、その組み合わせによれば枠線間隔が色々と変化
する更に複雑な枠線をも分類できる。又、本実施例で
は、白地に黒の枠線の例を説明したが、黒字に白の枠線
の場合、更にカラーの枠線の場合にも容易に適用でき
る。
[発明の効果] 本発明によれば、1つの特徴点に接する複数の線分の
相対長さに基づいて、枠線を構成する各線分を分類する
ので、画像に含まれる枠線が全体的に傾斜している場合
でも、枠線全体の構成を認識することができる。
相対長さに基づいて、枠線を構成する各線分を分類する
ので、画像に含まれる枠線が全体的に傾斜している場合
でも、枠線全体の構成を認識することができる。
また、入力画像に含まれる枠線を忠実に清書すること
を可能とする。
を可能とする。
第1図は本実施例の枠線構成装置のブロツク構成図、 第2図は本実施例の枠線構成装置をグラフイツクシステ
ムとしたときの外観図、 第3図は本実施例における処理手順の概略を示すフロー
チヤート、 第4図は枠線画像の一例を示す図、 第5図(a)は回転の加えられた枠線画像の一例を示す
図、 第5図(b)はその拡大図、 第6図はイメージメモリ内の空間を示す図、 第7図(a)は第5図の入力の一部に対応するイメージ
メモリ内のデータを示す図、 第7図(b)はイメージメモリの各画素に対応した追跡
マツプの図、 第8図は本実施例のベクトル化処理の制御手順を示すフ
ローチヤート、 第9図は特徴点テーブルを示す図、 第10図はベクトルテーブルを示す図、 第11図は作業ベクトルテーブルを示す図、 第12図はベクトル分類サブルーチンの第1の実施例の手
順を示すフローチヤート、 第13図はモード選択サブルーチンの手順を示すフローチ
ヤート、 第14図はベクトル抽出サブルーチンの手順を示すフロー
チヤート、 第15図は等長ベクトル計数サブルーチンの手順を示すフ
ローチヤート、 第16図は斜め線分選択サブルーチンの手順を示すフロー
チヤート、 第17図は1点に集まるベクトルの分類を示す図、 第18図はベクトル分類サブルーチンの第2の実施例の手
順を示すフローチヤートである。 図中、1……制御部、2……CRTデイスプレイ、3……
キーボード、4……マウス、5……イメージスキヤナ、
6……プリンタ部、8……CPU回路、9……プログラム
メモリ部、10……イメージメモリ部である。
ムとしたときの外観図、 第3図は本実施例における処理手順の概略を示すフロー
チヤート、 第4図は枠線画像の一例を示す図、 第5図(a)は回転の加えられた枠線画像の一例を示す
図、 第5図(b)はその拡大図、 第6図はイメージメモリ内の空間を示す図、 第7図(a)は第5図の入力の一部に対応するイメージ
メモリ内のデータを示す図、 第7図(b)はイメージメモリの各画素に対応した追跡
マツプの図、 第8図は本実施例のベクトル化処理の制御手順を示すフ
ローチヤート、 第9図は特徴点テーブルを示す図、 第10図はベクトルテーブルを示す図、 第11図は作業ベクトルテーブルを示す図、 第12図はベクトル分類サブルーチンの第1の実施例の手
順を示すフローチヤート、 第13図はモード選択サブルーチンの手順を示すフローチ
ヤート、 第14図はベクトル抽出サブルーチンの手順を示すフロー
チヤート、 第15図は等長ベクトル計数サブルーチンの手順を示すフ
ローチヤート、 第16図は斜め線分選択サブルーチンの手順を示すフロー
チヤート、 第17図は1点に集まるベクトルの分類を示す図、 第18図はベクトル分類サブルーチンの第2の実施例の手
順を示すフローチヤートである。 図中、1……制御部、2……CRTデイスプレイ、3……
キーボード、4……マウス、5……イメージスキヤナ、
6……プリンタ部、8……CPU回路、9……プログラム
メモリ部、10……イメージメモリ部である。
Claims (4)
- 【請求項1】入力画像より、折れ点、交差点、分岐点の
少なくともいずれか1つからなる特徴点で区切られる線
分を抽出し、 前記抽出された線分から、1つの特徴点に接する複数の
線分を選択し、 前記選択された複数の線分の相対的長さに基づいて、各
線分を枠の構成成分に分類することを特徴とする画像処
理方法。 - 【請求項2】前記枠の構成成分は、少なくとも水平、垂
直、斜めの3方向の成分とすることを特徴とする特許請
求の範囲第1項に記載の画像処理方法。 する特許請求の範囲第1項に記載の画像処理方法。 - 【請求項3】前記分類された線分の情報に従って、枠線
を生成することを特徴とする特許請求の範囲第1項に記
載の画像処理方法。 - 【請求項4】前記入力画像は、光学的読取装置により読
み取られた画像であることを特徴とする特許請求の範囲
第1項に記載の画像処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62064368A JP2633552B2 (ja) | 1987-03-20 | 1987-03-20 | 画像処理方法 |
US08/047,354 US5347598A (en) | 1987-03-20 | 1993-04-19 | Image processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62064368A JP2633552B2 (ja) | 1987-03-20 | 1987-03-20 | 画像処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS63231581A JPS63231581A (ja) | 1988-09-27 |
JP2633552B2 true JP2633552B2 (ja) | 1997-07-23 |
Family
ID=13256263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62064368A Expired - Lifetime JP2633552B2 (ja) | 1987-03-20 | 1987-03-20 | 画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2633552B2 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5638683A (en) * | 1979-09-05 | 1981-04-13 | Hitachi Ltd | Discriminating method of type of line in pattern recognizer |
-
1987
- 1987-03-20 JP JP62064368A patent/JP2633552B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS63231581A (ja) | 1988-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3170299B2 (ja) | 画像読取処理装置 | |
EP0977151B1 (en) | Image processing apparatus, image processing method, and storage medium | |
JP6794766B2 (ja) | 指紋処理装置、指紋処理方法、プログラム、指紋処理回路 | |
US6898316B2 (en) | Multiple image area detection in a digital image | |
EP1017011A2 (en) | Block selection of table features | |
US6947596B2 (en) | Character recognition method, program and recording medium | |
JP2873883B2 (ja) | 線画像の線幅検出方法 | |
US6175664B1 (en) | Optical character reader with tangent detection for detecting tilt of image data | |
JP2633552B2 (ja) | 画像処理方法 | |
JP2633553B2 (ja) | 画像処理方法 | |
JP3149221B2 (ja) | 画像処理装置 | |
US5347598A (en) | Image processing apparatus | |
JP2872768B2 (ja) | 文字切出し装置 | |
JPH06282652A (ja) | 画像の輪郭抽出装置 | |
JP7031717B2 (ja) | 指紋処理装置、指紋処理方法、プログラム、指紋処理回路 | |
US20020159654A1 (en) | Method for processing an image of a concrete construction | |
JP2755299B2 (ja) | 画像処理方法 | |
EP0942388B1 (en) | Map co-ordinate extraction | |
JP3024234B2 (ja) | 文書画像の罫線抽出装置 | |
JP2587812B2 (ja) | 図形抽出方法 | |
JP4406974B2 (ja) | 画像検出装置、画像検出方法および記録媒体 | |
JPH01236384A (ja) | 線画像解析方法 | |
JPH09147125A (ja) | 輪郭線抽出方法と抽出装置 | |
JPS63316171A (ja) | 破線/鎖線抽出方式 | |
JPH07141467A (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |