〔実施形態1〕
本発明の一実施形態について説明する。なお、本実施形態では、本発明をデジタルカラー複合機(MFP:Multi-Function Printer)に適用する場合の一例について説明する。
(1−1. デジタルカラー複合機1の構成)
図2は、本実施形態にかかるデジタルカラー複合機(画像処理装置、画像形成装置、画像読取装置)1の概略構成を示すブロック図である。このデジタルカラー複合機1は、コピー機能、プリンタ機能、ファクシミリ送信機能、スキャナ機能、scan to e-mail機能等を有している。
図2に示すように、デジタルカラー複合機1は、カラー画像入力装置2、カラー画像処理装置3、カラー画像出力装置4、通信装置5、操作パネル6を備えている。
カラー画像入力装置(画像読取装置)2は、例えばCCD(Charge Coupled Device )などの光学情報を電気信号に変換するデバイスを備えたスキャナ部(図示せず)より構成され、原稿からの反射光像を、RGB(R:赤・G:緑・B:青)のアナログ信号としてカラー画像処理装置3に出力する。
カラー画像処理装置3は、A/D変換部11、シェーディング補正部12、文書照合処理部13、入力階調補正部14、領域分離処理部15、色補正部16、黒生成下色除去部17、空間フィルタ処理部18、出力階調補正部19、および階調再現処理部20を備えている。カラー画像入力装置2からカラー画像処理装置3に出力されたアナログ信号は、カラー画像処理装置3内を、A/D変換部11、シェーディング補正部12、文書照合処理部13、入力階調補正部14、領域分離処理部15、色補正部16、黒生成下色除去部17、空間フィルタ処理部18、出力階調補正部19、階調再現処理部20の順で送られ、CMYKのデジタルカラー信号としてカラー画像出力装置4に出力される。
A/D(アナログ/デジタル)変換部11は、RGBのアナログ信号をデジタル信号に変換するものである。
シェーディング補正部12は、A/D変換部11より送られてきたデジタルのRGB信号に対して、カラー画像入力装置2の照明系、結像系、撮像系で生じる各種の歪みを取り除く処理を施すものである。また、シェーディング補正部12は、カラーバランスの調整、および濃度信号などカラー画像処理装置3に採用されている画像処理システムの扱い易い信号に変換する処理を施す。
文書照合処理部13は、入力された画像データから特徴点を抽出し、抽出した特徴点に基づいて特徴量を算出する。また、文書照合処理部13は、上記のように算出した特徴量を画像データと対応付けて後述するハッシュテーブルに記憶(登録)させる。また、文書照合処理部13は、入力画像データから上記のように算出した特徴量をハッシュテーブルに記憶されている登録画像の特徴量と比較することで入力画像と登録画像との類似性を判定する。また、文書照合処理部13は入力されたRGB信号をそのまま後段の入力階調補正部14へ出力する。なお、文書照合処理部13の詳細については後述する。
入力階調補正部14は、シェーディング補正部にて各種の歪みが取り除かれたRGB信号に対して、下地色(下地色の濃度成分:下地濃度)の除去やコントラストなどの画質調整処理を施す。
領域分離処理部15は、RGB信号より、入力画像中の各画素を文字領域、網点領域、写真領域のいずれかに分離するものである。領域分離処理部15は、分離結果に基づき、画素がどの領域に属しているかを示す領域識別信号を、色補正部16、黒生成下色除去部17、空間フィルタ処理部18、および階調再現処理部20へと出力するとともに、入力階調補正部14より出力された入力信号をそのまま後段の色補正部16に出力する。
色補正部16は、色再現の忠実化実現のために、不要吸収成分を含むCMY(C:シアン・M:マゼンタ・Y:イエロー)色材の分光特性に基づいた色濁りを取り除く処理を行うものである。
黒生成下色除去部17は、色補正後のCMYの3色信号から黒(K)信号を生成する黒生成、元のCMY信号から黒生成で得たK信号を差し引いて新たなCMY信号を生成する処理を行うものである。これにより、CMYの3色信号はCMYKの4色信号に変換される。
空間フィルタ処理部18は、黒生成下色除去部17より入力されるCMYK信号の画像データに対して、領域識別信号を基にデジタルフィルタによる空間フィルタ処理を行い、空間周波数特性を補正する。これにより、出力画像のぼやけや粒状性劣化を軽減することができる。階調再現処理部20も、空間フィルタ処理部18と同様、CMYK信号の画像データに対して領域識別信号を基に所定の処理を施すものである。
例えば、領域分離処理部15にて文字に分離された領域は、特に黒文字あるいは色文字の再現性を高めるために、空間フィルタ処理部18による空間フィルタ処理における鮮鋭強調処理で高周波数の強調量が大きくされる。同時に、階調再現処理部20においては、高域周波数の再現に適した高解像度のスクリーンでの2値化または多値化処理が選択される。
また、領域分離処理部15にて網点領域に分離された領域に関しては、空間フィルタ処理部18において、入力網点成分を除去するためのローパス・フィルタ処理が施される。そして、出力階調補正部19では、濃度信号などの信号をカラー画像出力装置4の特性値である網点面積率に変換する出力階調補正処理を行った後、階調再現処理部20で、最終的に画像を画素に分離してそれぞれの階調を再現できるように処理する階調再現処理(中間調生成)が施される。領域分離処理部15にて写真に分離された領域に関しては、階調再現性を重視したスクリーンでの2値化または多値化処理が行われる。
上述した各処理が施された画像データは、いったん記憶装置(図示せず)に記憶され、所定のタイミングで読み出されてカラー画像出力装置4に入力される。
カラー画像出力装置4は、カラー画像処理装置3から入力された画像データを記録材(例えば紙等)上に出力するものである。カラー画像出力装置4の構成は特に限定されるものではなく、例えば、電子写真方式やインクジェット方式を用いたカラー画像出力装置を用いることができる。
通信装置5は、例えばモデムやネットワークカードより構成される。通信装置5は、ネットワークカード、LANケーブル等を介して、ネットワークに接続された他の装置(例えば、パーソナルコンピュータ、サーバー装置、他のデジタルカラー複合機、ファクシミリ装置等)とデータ通信を行う。
なお、通信装置5は、画像データを送信する場合、相手先との送信手続きを行って送信可能な状態が確保されると、所定の形式で圧縮された画像データ(スキャナで読み込まれた画像データ)をメモリから読み出し、圧縮形式の変更など必要な処理を施して、通信回線を介して相手先に順次送信する。
また、通信装置5は、画像データを受信する場合、通信手続きを行うとともに、相手先から送信されてくる画像データを受信してカラー画像処理装置3に入力する。受信した画像データは、カラー画像処理装置3で伸張処理、回転処理、解像度変換処理、出力階調補正、階調再現処理などの所定の処理が施され、カラー画像出力装置4によって出力される。なお、受信した画像データを記憶装置(図示せず)に保存し、カラー画像処理装置3が必要に応じて読み出して上記所定の処理を施すようにしてもよい。
操作パネル6は、例えば、液晶ディスプレイなどの表示部と設定ボタンなどより構成され(いずれも図示せず)、デジタルカラー複合機1の主制御部(図示せず)の指示に応じた情報を上記表示部に表示するとともに、上記設定ボタンを介してユーザから入力される情報を上記主制御部に伝達する。ユーザは、操作パネル6を介して入力画像データに対する各種の処理要求(例えば、処理モード(複写、印刷、送信、編集、交点算出部45における特徴点算出方法(斜め方向のライン画像を抽出することの要否)など)、処理枚数(複写枚数、印刷枚数)、入力画像データの送信先など)を入力することができる。上記主制御部は、例えばCPU(Central Processing Unit)等からなり、図示しないROM等に格納されたプログラムや各種データ、操作パネル6から入力される情報等に基づいて、デジタルカラー複合機1の各部の動作を制御する。
(1−2. 文書照合処理部13の構成)
次に、文書照合処理部13の詳細について説明する。本実施形態にかかる文書照合処理部13は、入力画像データから複数の特徴点を抽出し、抽出した各特徴点に対して局所的な特徴点の集合を決定し、決定した各集合から特徴点の部分集合を選択し、選択した各部分集合を特徴付ける量として、部分集合中の特徴点に関する複数の組み合わせに基づいて、幾何学的変換に対する不変量をそれぞれ求め、求めた各不変量を組み合わせてハッシュ値(特徴量)を算出する。また、計算したハッシュ値に対応する登録画像に投票することにより、入力画像データに類似する登録画像の検索、当該登録画像に対する類似性の判定処理(類似あり/類似なしの判定)を行う。また、計算したハッシュ値と、このハッシュ値を抽出した画像とを対応付けてハッシュテーブルに記憶(登録)させる処理を行うこともできる。
図1は、文書照合処理部13の概略構成を示すブロック図である。この図に示すように、文書照合処理部13は、特徴点算出部31、特徴量算出部32、投票処理部33、類似度判定処理部34、登録処理部37、制御部7、メモリ8を備えている。
制御部7は、文書照合処理部13の各部の動作を制御する。なお、制御部7は、デジタルカラー複合機1の各部の動作を制御するための主制御部に備えられていてもよく、主制御部とは別に備えられ、主制御部と協働して文書照合処理部13の動作を制御するものであってもよい。
メモリ8には、登録画像を特定するためのインデックスと、登録画像から抽出した特徴量とを互いに対応付けて記憶するハッシュテーブル103が備えられている。また、メモリ8には、ハッシュテーブル103の他、文書照合処理部13の各部の処理に用いられる各種データ、処理結果等を記憶する記憶部(図示せず)を備えている。なお、ハッシュテーブル103の詳細については後述する。
特徴点算出部31は、入力画像データに含まれる文字や罫線などの画像からライン画像を抽出し、ライン画像同士の交点を特徴点として算出する。
図3は、特徴点算出部31の概略構成を示すブロック図である。この図に示すように、特徴点算出部31は、信号変換処理部(無彩化処理部)41、解像度変換部42、MTF処理部43、2値化処理部44、交点算出部45を備えている。
信号変換処理部(無彩化処理部)41は、シェーディング補正部12から入力された画像データ(RGB信号)がカラー画像であった場合にこの画像データを無彩化して、明度信号もしくは輝度信号に変換するものである。
例えば、信号変換処理部(無彩化処理部)41は、下記式によりRGB信号を輝度信号Yに変換する。
Yi=0.30Ri+0.59Gi+0.11Bi
ここで、Yは各画素の輝度信号であり、R,G,Bは各画素のRGB信号における各色成分であり、添え字のiは画素毎に付与された値(iは1以上の整数)である。
あるいは、RGB信号をCIE1976L*a*b*信号(CIE:Commission International de l'Eclairage、L*:明度、a*,b*:色度)に変換してもよい。
解像度変換部42は、入力画像データを変倍処理する。例えば、解像度変換部42は、入力画像データがカラー画像入力装置2で光学的に変倍されている場合に、所定の解像度になるように入力画像データを再度変倍する。また、解像度変換部42が、後段の各処理部における処理量を軽減するために、カラー画像入力装置2で等倍時に読み込まれる解像度よりも解像度を落とすための解像度変換を行うようにしてもよい(例えば、600dpi(dot per inch)で読み込まれた画像データを300dpiに変換するなど)。
MTF(modulation transfer function)処理部43は、カラー画像入力装置2の空間周波数特性が機種ごとに異なることを吸収(調整)するために用いられる。CCDの出力する画像信号には、レンズやミラー等の光学部品、CCDの受光面のアパーチャ開口度、転送効率や残像、物理的な走査による積分効果及び走査むら等に起因しMTFの劣化が生じている。このMTFの劣化により、読み込まれた画像がぼやけたものとなっている。MTF処理部43は、適切なフィルタ処理(強調処理)を施すことにより、MTFの劣化により生じるぼやけを修復する処理を行う。また、後述する特徴点抽出処理に不要な高周波成分を抑制するためにも用いる。すなわち、混合フィルタ(図示せず)を用いて強調および平滑化処理を行う。なお、図4は、この混合フィルタにおけるフィルタ係数の一例を示している。
2値化処理部44は、無彩化された画像データ(輝度値(輝度信号)または明度値(明度信号))と、予め設定された閾値とを比較することにより画像データを2値化する。
交点算出部45は、2値化された画像データからライン画像を抽出し、抽出したライン画像同士の交点を特徴点として特徴量算出部32に出力する。なお、交点算出部45における処理の詳細については後述する。
特徴量算出部32は、特徴点抽出部32a、不変量算出部32b、ハッシュ値算出部32cを備えており、特徴点算出部31で算出された特徴点を用いて、原稿画像の回転、平行移動、拡大、縮小、平行移動等の幾何学的変形に対して不変な量である特徴量(ハッシュ値および/または不変量)を算出する。
特徴点抽出部32aは、図5に示すように、1つの特徴点を注目特徴点とし、この注目特徴点の周辺の特徴点を、注目特徴点からの距離が近いものから順に所定数(ここでは4点)だけ周辺特徴点として抽出する。図5の例では、特徴点aを注目特徴点とした場合には特徴点b,c,d,eの4点が周辺特徴点として抽出され、特徴点bを注目特徴点とした場合には特徴点a,c,e,fの4点が周辺特徴点として抽出される。
また、特徴点抽出部32aは、上記のように抽出した周辺特徴点4点の中から選択しうる3点の組み合わせを抽出する。例えば、図6(a)〜図6(c)に示すように、図5に示した特徴点aを注目特徴点とした場合、周辺特徴点b,c,d,eのうちの3点の組み合わせ、すなわち、周辺特徴点b,c,d、周辺特徴点b,c,e、周辺特徴点c,d,eの各組み合わせが抽出される。
次に、不変量算出部32bは、抽出した各組み合わせについて、幾何学的変形に対する不変量(特徴量の1つ)Hijを算出する。ここで、iは注目特徴点を示す数(iは1以上の整数)であり、jは周辺特徴点3点の組み合わせを示す数(jは1以上の整数)である。本実施形態では、周辺特徴点同士を結ぶ線分の長さのうちの2つの比を不変量Hijとする。なお、上記線分の長さは、各周辺特徴点の座標値に基づいて算出すればよい。例えば、図6(a)の例では、特徴点cと特徴点dとを結ぶ線分の長さをA11、特徴点cと特徴点bとを結ぶ線分の長さをB11とすると、不変量H11はH11=A11/B11である。また、図6(b)の例では、特徴点cと特徴点bとを結ぶ線分の長さをA12、特徴点bと特徴点eとを結ぶ線分の長さをB12とすると、不変量H12はH12=A12/B12である。また、図6(c)の例では、特徴点dと特徴点bとを結ぶ線分の長さをA13、特徴点bと特徴点eとを結ぶ線分の長さをB13とすると、不変量H13はH13=A13/B13である。このようにして、図6(a)〜図6(c)の例では、不変量H11,H12,H13が算出される。
次に、ハッシュ値算出部32cは、(Hi1×102+Hi2×101+Hi3×100)/Dの余りの値をハッシュ値(特徴量の1つ)Hiとして算出し、メモリ8に記憶させる。なお、上記Dは余りが取り得る値の範囲をどの程度に設定するかに応じて予め設定される定数である。
なお、不変量Hijの算出方法は特に限定されるものではなく、例えば、注目特徴点の近傍5点の複比、近傍n点(nはn≧5の整数)から抽出した5点の複比、近傍n点から抽出したm点(mはm<nかるm≧5の整数)の配置およびm点から抽出した5点の複比に基づいて算出される値などを注目特徴点についての上記不変量Hijとしてもよい。なお、複比とは、直線上の4点または平面上の5点から求められる値であり、幾何学的変換の一種である射影変形に対する不変量として知られている。
また、ハッシュ値Hiの算出するための式についても上記式(2)に限るものではなく、他のハッシュ関数(例えば特許文献4に記載されているハッシュ関数のうちのいずれか)を用いてもよい。
また、特徴量算出部32の各部は、1つの注目特徴点に対する周辺特徴点の抽出およびハッシュ値Hiの算出が終わると、注目特徴点を他の特徴点に変更して周辺特徴点の抽出およびハッシュ値の算出を行い、全ての特徴点についてのハッシュ値を算出する。
図5の例では、特徴点aを注目特徴点とした場合の周辺特徴点およびハッシュ値の抽出が終わると、次に特徴点bを注目特徴点とした場合の周辺特徴点およびハッシュ値の抽出を行う。図5の例では、特徴点bを注目特徴点とした場合、特徴点a,c,e,fの4点が周辺特徴点として抽出される。そして、図7(a)〜図7(c)に示すように、これら周辺特徴点a,c,e,fの中から選択される3点の組み合わせ(周辺特徴点a,e,f、周辺特徴点c,e,f、周辺特徴点a,c,f)を抽出し、各組み合わせについてハッシュ値Hiを算出し、メモリ8に記憶させる。そして、この処理を各特徴点について繰り返し、各特徴点を注目特徴点とした場合のハッシュ値をそれぞれ求めてメモリ8に記憶させる。
なお、特徴点aを注目特徴点としたときの不変量の算出方法は上記の方法に限るものではない。例えば、図30(a)〜図30(d)に示すように、図5に示した特徴点aを注目特徴点とした場合、特徴点aから最も近い4つの周辺特徴点b,c,d,eを選択し、さらに選択した4つの周辺特徴点のうちの3点の組み合わせ、すなわち、周辺特徴点b,c,d、周辺特徴点b,c,e、周辺特徴点b,d,e、周辺特徴点c,d,eの各組み合わせを抽出し、抽出した各組み合わせについて、幾何学的変形に対する不変量(特徴量の1つ)Hijを算出するようにしてもよい。この場合、不変量の算出方法としては上記した方法と同様の方法を用いることができる。
例えば、注目特徴点に最も近い周辺特徴点と2番目に近い周辺特徴点とを結ぶ線分をAij、注目特徴点に最も近い周辺特徴点と3番目に近い周辺特徴点とを結ぶ線分をBijとし、不変量Hij=Aij/Bijとしてもよい。この場合、図30(a)の例では、特徴点bと特徴点cとを結ぶ線分の長さをA11、特徴点bと特徴点dとを結ぶ線分の長さをB11とすると、不変量H11はH11=A11/B11となる。また、図30(b)の例では、特徴点bと特徴点cとを結ぶ線分の長さをA12、特徴点bと特徴点eとを結ぶ線分の長さをB12とすると、不変量H12はH12=A12/B12となる。また、図30(c)の例では、特徴点bと特徴点dとを結ぶ線分の長さをA13、特徴点bと特徴点eとを結ぶ線分の長さをB13とすると、不変量H13はH13=A13/B13となる。また、図30(d)の例では、特徴点cと特徴点dとを結ぶ線分の長さをA14、特徴点cと特徴点eとを結ぶ線分の長さをB14とすると、不変量H14はH14=A14/B14となる。
また、図5に示した特徴点bを注目特徴点とした場合、図31(a)〜図31(d)に示すように、特徴点bから最も近い4つの特徴点a,c,e,fを選択し、この4点の周辺特徴点の中から、ある3点の組み合わせ(周辺特徴点a,e,f、周辺特徴点a,c,e、周辺特徴点a,f,c、周辺特徴点e,f,c)を抽出し、各組み合わせについて幾何学的変形に対する不変量Hijを算出するようにしてもよい。
不変量に基づいてハッシュ値を算出する方法は、上記した方法と同様の方法を用いることができる。すなわち、(Hi1×103+Hi2×102+Hi3×101+Hi4×100)/Dの余りの値をハッシュ値として算出し、メモリ8に記憶させればよい。
上記の例では、注目特徴点に最も近い周辺特徴点と2番目に近い周辺特徴点とを結ぶ線分をAij、注目特徴点に最も近い周辺特徴点と3番目に近い周辺特徴点とを結ぶ線分をBijとしたが、これに限らず、例えば周辺特徴点間を結ぶ線分の長さを基準にして選定する等、不変量Hijの算出に用いる線分は任意の方法で選定すればよい。
なお、特徴量算出部32は、入力画像データを登録画像として登録する登録処理を行う場合には、上記のように算出した入力画像データの各特徴点についてのハッシュ値(特徴量)を登録処理部37に送る。また、特徴量算出部32は、入力画像データが既に登録されている登録画像の画像データであるかどうかの判定処理(類似性判定処理)を行う場合には、上記のように算出した入力画像データの各特徴点についてのハッシュ値を投票処理部33に送る。
登録処理部37は、特徴量算出部32が算出した各特徴点についてのハッシュ値と、原稿(入力画像データ)を表すインデックス(原稿ID)とを互いに対応付けてメモリ8に設けられたハッシュテーブル103に順次登録していく(図8(a)参照)。ハッシュ値がすでに登録されている場合は、当該ハッシュ値に対応付けて原稿IDを登録する。原稿IDは重複することなく順次番号が割り当てられる。なお、ハッシュテーブル103に登録されている原稿の数が所定値(例えば、登録可能な原稿の数の80%)より多くなった場合、古い原稿IDを検索して順次消去するようにしてもよい。また、消去された原稿IDは、新たな入力画像データの原稿IDとして再度使用できるようにしてもよい。また、算出されたハッシュ値が同値である場合(図8(b)の例ではH1=H5)、これらを1つにまとめてハッシュテーブル103に登録してもよい。
投票処理部33は、入力画像データから算出した各特徴点のハッシュ値をハッシュテーブル103に登録されているハッシュ値と比較し、同じハッシュ値を有する登録画像に投票する。言い換えれば、登録画像毎に、登録画像が有するハッシュ値と同じハッシュ値が入力画像データから算出された回数をカウントし、カウント値をメモリ8に記憶させる。図9は、登録画像ID1,ID2,ID3に対する投票数の一例を示すグラフである。
類似度判定処理部34は、メモリ8から投票処理部33の投票処理結果(各登録画像のインデックスおよび各登録画像に対する投票数;類似度)を読み出し、最大得票数および最大得票数を得た登録画像のインデックスを抽出する。そして、抽出された最大得票数を予め定められている閾値THaと比較して類似性(入力画像データが登録画像の画像データであるかどうか)を判定し、判定結果を示す判定信号を制御部7に送る。つまり、最大得票数が予め定められた閾値THa以上である場合には「類似性あり(入力画像データは登録画像の画像データである)」と判定し、閾値THa未満である場合には「類似性なし(入力画像データは登録画像の画像データではない)」と判定する。
あるいは、類似度判定処理部34が、各登録画像に対する得票数を投票総数(入力画像データから抽出された特徴点の総数)で除算して正規化することで類似度を算出し、この類似度と予め定められている閾値THa(例えば投票総数の80%)との比較を行うことによって類似度を判定してもよい。
また、類似度判定処理部34が、各登録画像に対する得票数を、ハッシュ値の登録数が最も多い登録画像についてのハッシュ値の登録数(最大登録数)で除算して正規化することで類似度を算出し、この類似度と予め定められている閾値THa(例えば投票総数の80%)との比較を行うことによって類似性を判定してもよい。つまり、算出した類似度が閾値THa以上である場合には「類似性あり」と判定し、閾値THa未満である場合には「類似性なし」と判定すればよい。なお、この場合、入力画像データから抽出されるハッシュ値の総数は上記最大登録数よりも大きくなる場合があるため(特に原稿および/または登録画像の少なくとも一部に手書き部分がある場合など)、類似度の算出値は100%を超える場合も有り得る。
また、類似性を判定する際の閾値THaは、各登録画像について一定であってもよく、あるいは各登録画像の重要度等に応じて登録画像毎に設定されてもよい。登録画像の重要度は、例えば、紙幣、有価証券、極秘書類、社外秘の書類等については重要度を最大にし、秘密書類については重要度を紙幣等よりも低くするといったように、登録画像に応じて段階的に設定してもよい。この場合、メモリ8に、登録画像の重要度に応じた重み付け係数を当該登録画像のインデックスと関連付けて記憶させておき、類似度判定処理部34が、最大得票数を得た登録画像に対応する閾値THaを用いて類似性を判定するようにすればよい。
また、類似性を判定する際、閾値THaは一定にする一方、各登録画像に対する投票数(各登録画像の得票数)に各登録画像の重み係数を掛けて類似性を判定するようにしてもよい。この場合、メモリ8に、各登録画像の重要度に応じた重み付け係数を各登録画像のインデックスと関連付けて記憶させておき、類似度判定処理部34が、各登録画像の得票数に当該登録画像の重み付け係数を掛けた補正得票数を算出し、この補正得票数に基づいて類似性を判定するようにすればよい。例えば、最大補正得票数と閾値THaとを比較してもよく、最大補正得票数を投票総数で正規化したものを閾値THaと比較してもよく、最大補正得票数を最大登録数で正規化したものを閾値THaと比較してもよい。また、この場合、重み係数は、例えば、1より大きい値であって、かつ登録画像の重要度が高くなるにつれて大きい値になるように設定すればよい。
また、本実施形態では、1つの特徴点(注目特徴点)に対して1つのハッシュ値を算出するものとしているが、これに限らず、1つの特徴点(注目特徴点)に対して複数のハッシュ値を算出するようにしてもよい。例えば、注目特徴点の周辺特徴点として6点を抽出し、この6点から5点を抽出した6通りの組み合わせそれぞれについて、5点から3点を抽出して不変量を求めてハッシュ値を算出する方法を用いてもよい。この場合には、1つの特徴点に対して6個のハッシュ値が算出されることになる。
(1−3. 文章照合処理部13における処理)
次に、文書照合処理部13における処理について、図10に示すフロー図を参照しながら説明する。
まず、制御部7は、入力画像データ、および、操作パネル6あるいは通信装置5を介してユーザから入力される処理要求(指示入力)を取得する(S1、S2)。なお、入力画像データは、カラー画像入力装置2で原稿画像を読み取ることによって取得してもよく、通信装置5によって外部の装置から送信される入力画像データを取得してもよく、デジタルカラー複合機1に備えられるカードリーダー(図示せず)等を介して各種記録媒体から入力画像データを読み出して取得してもよい。
次に、制御部7は、特徴点算出部31に特徴点算出処理を実行させ(S3)、特徴量算出部32に特徴量を算出させる(S4)。
次に、制御部7は、上記処理要求によって要求されている処理が登録処理であるか否かを判断する(S5)。そして、登録処理であると判断した場合、制御部7は、特徴量算出部32が算出した特徴量と原稿ID(登録画像のID)とを対応付けてハッシュテーブル103に登録させ(S6)、処理を終了する。
一方、登録処理ではないと判断した場合(類似性の判定処理であると判断した場合)、制御部7は、投票処理部33に投票処理を実行させ(S7)、類似度判定処理部34に類似性の判定処理を実行させる(S8)。
そして、類似ありと判定した場合には、入力画像データに対する画像処理(例えば、複写、印刷、電子配信、ファクシミリ送信、ファイリング、画像データの補正,編集等の処理)の実行を禁止し(S11)、処理を終了する。また、類似なしと判定した場合には、入力画像データに対する画像処理の実行を許可し(S12)、処理を終了する。なお、本実施形態では、類似ありの場合に画像処理の実行を許可し、類似なしの場合に画像処理の実行を禁止する例について説明しているが、これに限るものではない。例えば、類似性の判定結果を所定の通知先への通知するようにしてもよい。また、類似性の判定結果に応じて入力画像データの記録の要否、入力画像データに対応する出力画像に所定の記号等を重畳させることの要否、ユーザ認証を行うことの要否、類似性判定結果の表示の要否などを判断するようにしてもよい。
(1−4. 交点算出部45の構成および処理)
次に、交点算出部45の構成および交点算出部45における処理の詳細について説明する。まず、交点算出部45における処理の概要について、図11に示すフロー図を参照しながら説明する。この図に示すように、制御部7は、交点算出部45に、2値化された画像データ(例えば、「1」(黒画素)、「0」(白画素)で表される)に基づいて、水平方向に伸びるライン画像および垂直方向に伸びるライン画像を抽出させ(S21)、これら両方向に伸びるライン画像の交点を抽出させる(S22)。なお、水平方向に伸びるライン画像および垂直方向に伸びるライン画像の抽出処理および交点の抽出処理については後述する。
次に、制御部7は、斜め方向に伸びるライン画像同士の交点を特徴点として抽出するか否かを判断する(S23)。この判断は、例えば、S22で抽出された特徴点の数が所定値未満である場合に斜め方向に伸びるライン画像同士の交点を特徴点として抽出するようにしてもよく、操作パネル6あるいは通信可能に接続された外部装置から入力されるユーザのモード選択指示に応じて判断してもよい。例えば、ユーザは、斜め方向のライン検出にかかる処理時間や処理にかかる負荷を軽減したい場合には斜め方向のライン検出を行わないモードを選択することができ、類似性判定処理の精度をより向上させたい場合には斜め方向のライン検出を行うモードを選択することができる。また、例えば、入力画像に罫線が含まれており、罫線の交点が多数あって、入力画像にスキューがない場合などには、水平方向および垂直方向のライン画像の交点を特徴点とすることにより十分な類似性判定精度を確保できるので、斜め方向のライン画像の検出を行わないようにしてもよい。
そして、斜め方向に伸びるライン画像同士の交点を特徴点として抽出しないと判断した場合、制御部7は、S22で抽出した交点を特徴点として特徴量算出部32に出力し(S24)、交点算出処理を終了する。
一方、S23において斜め方向に伸びるライン画像同士の交点を特徴点として抽出しないと判断した場合、制御部7は、交点算出部45に斜め2方向(左上から右下へ向かう方向(右下がりの方向);第1斜め方向、および右上から左下へ向かう方向(左下がりの方向);第2斜め方向)に伸びるライン画像を抽出させ(S25,S26)、これら両方向に伸びるライン画像の交点を抽出させる(S27)。なお、S25の処理とS26の処理とは並行して行ってもよく、いずれか一方を先に行ってもよい。斜め方向に伸びるライン画像の抽出処理および斜め方向に伸びるライン画像同士の交点の抽出処理については後述する。
そして、制御部7は、交点算出部45に、S22で抽出した交点とS27で抽出した交点とを特徴点として特徴量算出部32に出力させ(S28)、交点算出処理を終了する。
なお、上記の説明では、S23において制御部7が斜め方向に伸びるライン画像同士の交点を特徴点として抽出するか否かを判断するものとしたが、これに限らず、例えば、水平方向および垂直方向に伸びるライン画像同士の交点の算出と、斜め2方向に伸びるライン画像同士の交点の算出とを必ず行うようにしてもよく、予め設定されたいずれか一方の交点のみを算出するようにしてもよい。また、斜め方向に伸びるライン画像同士の交点の算出を先に行い、その算出結果等に応じて制御部7が水平方向に伸びるライン画像と垂直方向に伸びるライン画像との交点の算出の要否を判断するようにしてもよい。ただし、水平方向および垂直方向のライン画像の検出処理よりも、斜め方向のライン画像の検出処理の方が処理のアルゴリズムが複雑であり、処理時間を要することから、水平方向および垂直方向のライン画像の検出および交点の算出を先に行い、斜め方向のライン画像の検出および交点の算出については必要に応じて行う構成とすることが好ましい。
次に、ライン画像の抽出処理および交点の抽出処理ついてより詳細に説明する。図12は交点算出部45の構成を示すブロック図である。この図に示すように、交点算出部45は、水平カウンタ61、垂直カウンタ62、第1ラベリング部63、第1斜めカウンタ64、第2ラベリング部67、および第2斜めカウンタ68を備えた計数部60と、ライン判定部71と、交点抽出部72とを備えている。
まず、水平方向および垂直方向のライン画像の抽出処理および交点の抽出処理について説明する。
水平カウンタ61は、2値化された画像データに対する水平方向のランレングスカウントのカウント値を記憶する。ここで、ランレングスカウントとは、画素値「1」の画素が所定方向に連続する数をカウントする処理である。
より具体的には、制御部7は、2値化された画像データを左から右(あるいは右から左)へ水平方向に走査して各画素が黒画素(「1」)であるか否かを判断し、黒画素である場合には水平カウンタ61のカウンタ値をインクリメントさせる。また、黒画素でない場合には水平カウンタ61のカウンタ値をリセットさせる。また、上記走査が水平方向の端部に達した場合、水平カウンタ61のカウンタ値をリセットさせるとともに、垂直方向に隣接する次のラインについてランレングスカウント処理を行う。また、制御部7は、水平カウンタ61のカウンタ値をリセットさせる場合、リセット直前のカウンタ値とこのリセットを行うときに走査した画素の座標(あるいはリセットの直前に走査した画素の画像)とを水平カウンタ61からライン判定部71に出力させる。
垂直カウンタ62は、2値化された画像データに対する垂直方向のランレングスカウントのカウンタ値を記憶する。
なお、本実施形態では、垂直カウンタ62は、水平方向の画素数iと同数の列カウンタ62_1〜62_iを備えている。そして、制御部7は、2値化された画像データを左から右(あるいは右から左)へ水平方向に走査して各画素が黒画素(「1」)であるか否かを判断し、黒画素である場合には当該画素の水平方向(x方向)の位置に応じた列カウンタのカウンタ値をインクリメントさせる。つまり、2値化された画像データに対する垂直方向のランレングスカウントのカウンタ値を各列カウンタによって列毎(x座標毎)に記憶する。また、黒画素でない場合には当該画素の水平方向の位置に応じた列カウンタのカウンタ値をリセットさせる。また、上記走査が水平方向の端部に達した場合、垂直方向に隣接する次のラインについてランレングスカウント処理を行う。また、制御部7は、列カウンタのカウンタ値をリセットさせる場合、リセット直前のカウンタ値とこのリセットを行うときに走査した画素の座標(あるいはリセットの直前に走査した画素の画像)とを垂直カウンタ62からライン判定部71に出力させる。
ライン判定部71は、水平カウンタ61から入力されたカウンタ値が閾値(例えば5)以上の数mである場合、このカウンタ値mをリセットするときに走査した画素の座標に基づいてカウンタ値1〜mに対応する各画素を求め、これら各画素からなる画像をライン画像と判定する。また、ライン判定部71は、垂直カウンタ62から入力されたカウンタ値が閾値(例えば5)以上の数nである場合、このカウンタ値nをリセットするときに走査した画素の座標に基づいて、カウンタ値1〜nに対応する各画素を求め、これら各画素に対応する各画素からなる画像をライン画像と判定する。また、ライン判定部71は、ライン画像であると判定した場合、このライン画像に含まれる各画素の座標(あるいは画素値「1」の開始画素および終了画素の座標)を交点抽出部72に出力する。
交点抽出部72は、ライン判定部71からの入力に基づいて、水平方向のライン画像と垂直方向のライン画像との交点を抽出し、抽出した交点を特徴点として特徴量算出部32に出力する。なお、互いに隣接する複数の画素が交点として抽出された場合、交点抽出部72は、これら複数画素の中心座標、重心座標、あるいは複数画素からなる領域に含まれる所定の位置(例えば左上)の座標を特徴点とする。
図13は、交点算出部45に入力される画像データの一例を示す説明図である。また、図14は、図13に示した画像データに対してライン判定処理を行った場合の、水平カウンタ61および垂直カウンタ62のカウンタ値の推移を示す説明図である。
まず、ライン判定処理の開始時には水平カウンタ61および垂直カウンタ62に備えられる列カウンタ62_1〜62_iを「0」に初期化する。
その後、左上の画素から右下方向の画素へ(座標(0,0)→(1,0)→(2,0)→・・・→(8,0)→(0,1)→(1,1)→・・・の順に)各画素を走査し、黒画素であるか否かの判定を行う。なお、走査方向はこれに限るものではなく、例えば右上から左下へ走査してもよい。
図13の例では、座標(3,1)までは黒画素が存在しないため水平カウンタ61・垂直カウンタ62の各列カウンタはいずれも初期値「0」のままである。座標(4,1)では黒画素が存在するため、水平カウンタ61と垂直カウンタ62_4(x座標4に対応する列カウンタ)をインクリメントする。そして、次の座標である座標(5,1)では黒画素が存在しないため、水平カウンタ61を「0」にリセットし、リセット直前のカウンタ値「1」とリセットを行うときに走査した画素の座標(4,1)とを水平カウンタ61からライン判定部71に出力させる。この場合、リセット直前の水平カウンタは「1」であり、ライン判定閾値(5)より小さいため、ライン判定部71はライン画像ではないと判定する。なお、この時点ではx座標が5であるため垂直カウンタ62_4はリセットされない。また、垂直カウンタ62_5は黒画素ではないので「0」のままである。
同様の手順で処理を進めていくと、座標(2,3)〜(6,3)では水平方向に連続して黒画素が存在するため座標(6,3)になったときには水平カウンタ61は「5」までインクリメントされている。そして、次の座標の座標(7,3)になると黒画素が存在しないので水平カウンタ61は「0」にリセットされる。このリセット直前の水平カウンタは「5」でありライン判定閾値(5)以上であるため、ライン判定部71は、リセットしたカウンタ値カウント値「1」〜「5」に対応する画素(座標(2,3)〜(6,3)の各画素)からなる画像を水平方向に伸びるライン画像であると判定する。
また、座標(2,3)〜(6,3)には黒画素が存在するので、列カウンタ62_2〜62_6がインクリメントされる。ただし、座標(2,4),(3,4),(5,4),(6,4)では黒画素が存在しないため、列カウンタ62_2、62_3、62_5、62_6は「0」にリセットされる。ライン判定部71は、これら各列カウンタにおけるリセット直前のカウンタ値は「1」でありライン判定閾値(5)より小さいため、上記のカウンタ値「1」に対応する各画素についてはライン画像ではないと判定する。
その後、同様の手順で各画素を走査していくと、座標(8,6)ではリセット前の水平カウンタ値は「7」でありライン判定閾値(5)以上であるため、リセットしたカウンタ値カウント値「1」〜「7」に対応する各画素(座標1,6)〜(7,6))が水平方向のライン画像と判定される。
また、座標(4,7)ではリセット直前の列カウンタ62_4のカウンタ値は「6」でありライン判定閾値(5)以上であるため、リセットしたカウンタ値カウント値「1」〜「6」に対応する各画素(座標(4,1)〜(4,6))が垂直方向のライン画像と判定される。
その後、交点抽出部72では、水平方向および垂直方向の両方においてライン画像の一部であると判定された画素を交点として抽出し、抽出した交点を特徴点として特徴量算出部32に出力する。なお、互いに隣接する複数の画素が交点として抽出された場合、交点抽出部72は、これら複数の画素の中心座標、重心座標、あるいは複数画素からなる領域に含まれる所定の位置(例えば左上)の座標を算出し、算出結果を特徴点として特徴量算出部32に出力する。
図15は、図13に示した画像データについての水平方向および垂直方向のライン画像の抽出結果、および交点の抽出結果を示す説明図である。この図に示すように、図13の画像データの場合、座標(4,3),(4,6)が水平方向および垂直方向の両方向においてライン画像と判定されており、これら両座標が交点として抽出される。
次に、図12に示した交点算出部45において行われる斜め2方向のライン画像の抽出処理および交点の抽出処理について説明する。
第1ラベリング部63は、2値化された画像データにおける黒画素に対して左上から右下に向かって各画素を走査したときに、各画素が黒画素であるか否かと、隣接する画素(左隣の画素および上隣の画素)に割り付けているラベルとに応じて当該各画素のラベル付けを行い、ラベルの割り付け結果を第1ラベル履歴テーブル66に記憶させる。なお、上記のラベル付けを行う際、第1ラベリング部63は、隣接する画素に割り付けているラベルを第1ラベル履歴テーブル66に記憶させておいた情報に基づいて判断する。また、第1ラベリング部63は、ラベル付けを行った各画素(ラベルが「0」以外である各画素)について、各画素の座標と各画素に割り付けたラベルとを対応付けて図示しない記憶部に記憶させる。ラベル付け方法の詳細については後述する。
第1斜めカウンタ64は、第1ラベルカウンタ65と第1ラベル履歴テーブル66とを備えている。
第1ラベル履歴テーブル66は、第1ラベリング部63によって各画素に割り付けられたラベルを列毎(x座標毎)に記憶する。なお、本実施形態では、各画素にラベルを割り付ける毎に、当該画素に対応する列のラベルを更新するようになっている。つまり、第1ラベル履歴テーブル66には注目画素の上隣のラインにおける注目画素の上隣の画素から右側の各画素、および注目画素を含むラインにおける左端の画素から注目画素の左隣の画素までの合計1水平ライン分のラベルが格納されている。そして、注目画素を含む列に割り付けていたラベル(注目画素の上隣の画素に割り付けていたラベル)を注目画素に対して割り付けたラベルに更新するようになっている。これにより、全画素に割り付けたラベルを記憶する場合に比べて、ライン判定の精度を低下させることなく、第1ラベル履歴テーブル66に要求される記憶容量を低減できるようになっている。また、注目画素の左隣および上隣の画素のラベルを容易かつ迅速に抽出できる。
第1ラベルカウンタ65は、各ラベルが割り付けられた回数をラベル毎にカウントする。そして、制御部7は、全画素に対する走査が完了したときに、各ラベルと各ラベルのカウント値とを第1ラベルカウンタ65からライン判定部71に出力させる。
第2ラベリング部67は、2値化された画像データにおける黒画素に対して右上から左下に向かって各画素を走査したときに、各画素が黒画素であるか否か、および隣接する画素(右隣の画素および上隣の画素)に割り付けているラベルに応じて当該各画素のラベル付けを行い、ラベルの割り付け結果を第2ラベル履歴テーブル70に記憶させる。なお、上記のラベル付けを行う際、第2ラベリング部67は、隣接する画素に割り付けているラベルを第2ラベル履歴テーブル70に記憶させておいた情報に基づいて判断する。また、第2ラベリング部67は、ラベル付けを行った各画素(ラベルが「0」以外である各画素)について、各画素の座標と各画素に割り付けたラベルとを対応付けて図示しない記憶部に記憶させる。ラベル付け方法の詳細については後述する。
第2斜めカウンタ68は、第2ラベルカウンタ69と第2ラベル履歴テーブル70とを備えている。
第2ラベル履歴テーブル70は、第2ラベリング部67によって各画素に割り付けられたラベルを列毎(x座標毎)に記憶する。なお、本実施形態では、各画素にラベルを割り付ける毎に、当該画素に対応する列のラベルを更新するようになっている。これにより、全画素に割り付けたラベルを記憶する場合に比べて、ライン判定の精度を低下させることなく、第2ラベル履歴テーブル70に要求される記憶容量を低減できるようになっている。また、注目画素の右隣および上隣の画素のラベルを容易かつ迅速に抽出できる。
第2ラベルカウンタ69は、各ラベルが割り付けられた回数をラベル毎にカウントする。そして、制御部7は、全画素に対する走査が完了したときに、各ラベルと各ラベルのカウント値とを第2ラベルカウンタ69からライン判定部71に出力させる。
ライン判定部71は、第1斜めカウンタ64から入力されたカウンタ値が閾値(例えば5)以上である場合に、このカウンタ値に対応するラベルに対応する各画素からなる画像をライン画像と判定する。また、これと同様に、第2斜めカウンタ68から入力されたカウンタ値が閾値(例えば5)以上である場合に、このカウンタ値に対応するラベルに対応する各画素からなる画像をライン画像と判定する。また、ライン判定部71は、ライン画像であると判定した場合、当該ライン画像を構成する各画素の座標を上記記憶部から読み出して交点抽出部72に出力する。
交点抽出部72は、ライン判定部71からの入力に基づいて、上記した斜め2方向のライン画像同士の交点を抽出し、抽出した交点を特徴点として特徴量算出部32に出力する。なお、互いに隣接する複数の画素が交点として抽出された場合、交点抽出部72は、これら複数画素の中心座標、重心座標、あるいは複数画素からなる領域に含まれる所定の位置(例えば左上)の座標を特徴点とする。
次に、第1ラベリング部63におけるラベル付け方法について説明する。第1ラベリング部63は、以下のルールに基づいて各画素のラベル付けを行う。
(1)注目画素が黒画素であって、注目画素の左隣の画素に対してラベル付けされている場合(左隣の画素のラベルが「0」ではない場合)、この左隣の画素と同じラベルを割り付ける。例えば、図16(a)に示すように注目画素の左隣の画素のラベルが「1」、注目画素の上隣の画素のラベルが「2」であった場合、注目画素のラベルは「1」となる。
(2)注目画素が黒画素であって、注目画素の左隣の画素に対してラベル付けされておらず(左隣の画素のラベルが「0」であり)、注目画素の上隣の画素に対してラベル付けされている場合、この上隣の画素と同じラベルを割り付ける。例えば、図16(b)に示すように注目画素の左隣の画素のラベルが「0」、注目画素の上隣の画素のラベルが「2」であった場合、注目画素のラベルは「2」となる。
(3)注目画素が黒画素であって、注目画素の左隣の画素および上隣の画素がいずれもラベル付けされていない場合、当該注目画素に対して新規のラベルを割り付ける。したがって、図16(c)に示すように注目画素の左隣の画素および上隣の画素のラベルがいずれも「0」であった場合、注目画素にはそれまでの走査(左上から右下に向かう走査)において他の画素に割り付けられていない新たなラベルが割り付けられる。
(4)注目画素が黒画素ではない場合、当該注目画素のラベルを「0」とする。
なお、第2ラベリング部67におけるラベル付け方法は、右上から左下に向かって各画素を走査する点、および上記(1)〜(4)における「左隣」を「右隣」に変更する点以外は第1ラベリング部63におけるラベル付け方法と同様である。
したがって、右上から左下への走査時には、例えば図17(a)に示すように注目画素の右隣の画素のラベルが「1」、注目画素の上隣の画素のラベルが「2」であった場合、注目画素のラベルは「1」となる。また、例えば、図17(b)に示すように注目画素の右隣の画素のラベルが「0」、注目画素の上隣の画素のラベルが「2」であった場合、注目画素のラベルは「2」となる。また、図17(c)に示すように注目画素の左隣の画素および上隣の画素のラベルがいずれも「0」であった場合、注目画素にはそれまでの走査(右上から左下に向かう走査)において他の画素に割り付けられていない新たなラベルが割り付けられる。
次に、斜め方向についてのライン画像の抽出処理および交点の抽出処理について、図18に示す画像データに対する処理を例としてより詳細に説明する。
まず、左上から右下に向かって走査するときのラベル付け方法について、図19を参照しながら説明する。図19は、左上から右下に向かって走査するときのラベル付けの手順を示す説明図である。
まず、走査開始時には第1ラベルカウンタ65および第1ラベル履歴テーブル66を「0」に初期化する。その後、左上から右下方向へ(座標(0,0)→(1,0)→(2,0)→・・・→(8,0)→(0,1)→(1,1)→・・・の順に)走査していく。
座標(6,1)となるまでは黒画素が存在しないため第1ラベルカウンタ65および第1ラベル履歴テーブル66に格納されている情報は全て初期値「0」のままである。
座標(6,1)では黒画素が存在するためラベル付けを行う。ここでは、左隣の画素のラベル(第1ラベル履歴テーブル66におけるx=5の値)と上隣の画素のラベル(第1ラベル履歴テーブル66におけるx=6の更新前の値)が共に「0」であり、それまでのいずれの画素にもラベルが割り付けられていないので、第1ラベリング部63は、座標(6,1)の画素に対して新規ラベル(ラベル「1」)を割り付ける。また、座標(6,1)と座標(6,1)の画素に割り付けたラベル「1」とを対応付けて図示しない記憶部に記憶させる。また、ラベル「1」のラベルカウンタを「1」にインクリメントする。また、第1ラベル履歴テーブル66におけるx=6のラベルを「1」に更新する。
次の座標(7,1)においても黒画素が存在するためラベル付けを行う。ここでは、左隣の画素のラベル(第1ラベル履歴テーブル66におけるx=6の値)が「0」でないため、第1ラベリング部63は、座標(7,1)の画素に対して左隣の画素のラベルと同じラベル(ラベル「1」)を割り付ける。また、座標(7,1)と座標(7,1)の画素に割り付けたラベル「1」とを対応付けて図示しない記憶部に記憶させる。また、ラベル「1」のラベルカウンタを「2」にインクリメントする。また、第1ラベル履歴テーブル66におけるx=7のラベルを「1」に更新する。
同様の手順で走査を続けると、座標(2,2)で新規ラベル(ラベル「2」)が割り付けられ、座標(2,2)と座標(2,2)の画素に割り付けたラベル「2」とが対応付けられて図示しない記憶部に記憶され、ラベル「2」のラベルカウンタが「1」にインクリメントされ、第1ラベル履歴テーブル66におけるx=2のラベルが「1」に更新される。また、座標(3,2)では、ラベル「2」が割り付けられ、座標(3,2)と座標(3,2)の画素に割り付けたラベル「2」とが対応付けられて図示しない記憶部に記憶され、ラベル「2」のラベルカウンタが「2」にインクリメントされ、第1ラベル履歴テーブル66におけるx=3のラベルが「2」に更新される。
また、座標(5,2)では新規ラベル(ラベル「3」)が割り付けられ、座標(5,2)と座標(5,2)の画素に割り付けたラベル「3」とが対応付けられて図示しない記憶部に記憶され、ラベル「3」のラベルカウンタが「1」にインクリメントされ、第1ラベル履歴テーブル66におけるx=5のラベルが「1」に更新される。また、座標(6,2)では、ラベル「3」が割り付けられ、座標(6,2)と座標(6,2)の画素に割り付けたラベル「3」とが対応付けられて図示しない記憶部に記憶され、ラベル「3」のラベルカウンタが「2」にインクリメントされ、第1ラベル履歴テーブル66におけるx=6のラベルが「3」に更新される。
また、座標(3,3)では、黒画素であり、左隣の画素のラベル(第1ラベル履歴テーブル66におけるx=2の値)が「0」であり、上隣の画素のラベル(第1ラベル履歴テーブル66におけるx=3の更新前の値)が「2」なので、ラベル「2」が割り付けられ、座標(3,3)と座標(3,3)の画素に割り付けたラベル「2」とが対応付けられて図示しない記憶部に記憶され、ラベル「2」のラベルカウンタが「3」にインクリメントされ、第1ラベル履歴テーブル66におけるx=3のラベルが「2」に更新される。
以下、右下の画素(座標(8,6))まで同様に走査およびラベル付けを行う。そして、右下の画素(座標(8,6))まで走査およびラベル付けが完了すると、制御部7は、第1斜めカウンタ64からライン判定部71に各ラベルと各ラベルのカウント値とを出力させる。
次に、右上から左下に向かって走査するときのラベル付け方法について、図20を参照しながら説明する。図20は、右上から左下に向かって走査するときのラベル付けの手順を示す説明図である。
まず、走査開始時には第2ラベルカウンタ69および第2ラベル履歴テーブル70を「0」に初期化する。その後、右上から左下方向へ(座標(8,0)→(7,0)→(6,0)→・・・→(0,0)→(8,1)→(7,1)→・・・の順に)走査していく。
座標(7,1)となるまでは黒画素が存在しないため第1ラベルカウンタ65および第1ラベル履歴テーブル66に格納されている情報は全て初期値「0」のままである。
座標(7,1)では黒画素が存在するためラベル付けを行う。ここでは、右隣の画素のラベル(第2ラベル履歴テーブル70におけるx=8の値)と上隣の画素のラベル(第2ラベル履歴テーブル70におけるx=7の更新前の値)が共に「0」であり、それまでのいずれの画素にもラベルが割り付けられていないので、第2ラベリング部76は、座標(7
,1)の画素に対して新規ラベル(ラベル「1」)を割り付ける。また、制御部7は、座標(7,1)と座標(7,1)の画素に割り付けたラベル「1」とを対応付けて図示しない記憶部に記憶させる。また、ラベル「1」のラベルカウンタを「1」にインクリメントする。また、第2ラベル履歴テーブル70におけるx=7のラベルを「1」に更新する。
以下、同様にして、黒画素に対して、右隣の画素のラベル、上隣の画素のラベル、それまでに割り付けたラベルに応じて各画素にラベルを割り付けるとともに、第2ラベル履歴テーブル70における当該各画素を含む列のラベルを更新していく。また、各ラベルを割り付ける毎に当該ラベルのラベルカウンタ値をインクリメントしていく。また、ラベル付けを行った各画素(ラベルが「0」以外である各画素)について、各画素の座標と各画素に割り付けたラベルとを対応付けて図示しない記憶部に記憶させていく。
そして、左下の画素(座標(0,6))まで走査およびラベル付けが完了すると、制御部7は、第2斜めカウンタ68からライン判定部71に各ラベルと各ラベルのカウント値とを出力させる。
図21は、図18に示した画像データについての斜め2方向のライン画像の抽出結果、および交点の抽出結果を示す説明図である。この図に示すように、図18の画像データの場合、左上から右下への走査では、5種類のラベル(ラベル「1」〜「5」)が割り付けられる。また、各ラベルのカウント値は、ラベル「1」,「3」,「4」,「5」が「2」、ラベル「2」が「7」となる。したがって、この場合、ライン判定部71は、カウント値が閾値「5」以上であるラベル「2」に対応する画素からなる画像をライン画像と判定する。そして、ライン判定部71は、ライン画像であると判定した場合、当該ライン画像を構成する各画素の座標を上記記憶部から読み出して交点抽出部72に出力する。
右上から左下への走査では、図21に示すように、3種類のラベル(ラベル「1」〜「3」)が割り付けられる。また、各ラベルのカウント値は、ラベル「2」,「3」が「2」、ラベル「1」が「11」となる。したがって、この場合、ライン判定部71は、カウント値が閾値「5」以上であるラベル「1」に対応する画素からなる画像をライン画像と判定する。そして、ライン判定部71は、ライン画像であると判定した場合、当該ライン画像を構成する各画素の座標を上記記憶部から読み出して交点抽出部72に出力する。
そして、交点抽出部72は、左上から右下への走査および右上から左下への走査の両方においてライン画像であると判定された画素の座標(3,3),(4,3),(5,3)の中心座標である座標(4,3)を交点として算出する。また、交点抽出部72は、算出した交点を特徴点として特徴量算出部32に出力する。
以上のように、本実施形態にかかるデジタルカラー複合機1の文書照合処理部13では、交点算出部45が、入力画像データからライン画像(例えば文字や罫線におけるライン部分)を抽出し、ライン画像同士の交点を抽出して特徴点とする。
このように、ライン画像同士の交点を特徴点とすることで、例えば文字が少ない原稿から読み取った入力画像データの場合であっても多数の特徴点を抽出することができるので、入力画像データを適切に特定することができ、類似性判定処理(照合処理)の精度を向上させることができる。
また、ライン画像の抽出とライン画像同士の交点の算出とを行うだけで特徴点を算出できるので、入力画像データから文字,文字列枠,枠,枠を示す直線などを抽出し、抽出した複数種類の要素について類似性判定処理を行う構成に比べて、特徴点算出処理にかかるアルゴリズムを簡略化するとともに、処理時間を短縮できる。
なお、本実施形態では、図12に示した交点算出部45において、左上から右下、および右上から左下への走査を行って各画素にラベル付けを行い、同一ラベルを付された画素の数に応じてライン画像を判定する構成について説明したが、ライン画像の検出方法はこれに限るものではない。
例えば、左上から右下、および右上から左下への走査を行う際、各画素のラベル付けを上述した方法で行うとともに、ラベルの種類ごとにその開始座標と終了座標を記憶しておき、各ラベルについての開始座標と終了座標とを用いてライン画像の検出を行うようにしてもよい。図22は、この場合の交点算出部45の構成を示すブロック図であり、図12に示した交点算出部45に代えて文書照合処理部13に備えられる。
図22に示す交点算出部45は、図12に示した交点算出部45における第1斜めカウンタ64に代えて第1ラベル付け情報記憶部64bを備えており、第2斜めカウンタ68に代えて第2ラベル付け情報記憶部68bを備えている。
第1ラベル付け情報記憶部64bは、第1ラベル開始終了座標格納部65bと第1ラベル履歴テーブル66とを備えている。第1ラベル開始終了座標格納部65bは、第1ラベリング部63による各画素へのラベル割り付け結果に基づいて、ラベルの種類毎にその開始座標と終了座標とを記憶するものである。第1ラベル履歴テーブル66は図12で説明した機能と略同様の機能を有する。
第2ラベル付け情報記憶部68bは、第2ラベル開始終了座標格納部69bと第2ラベル履歴テーブル70とを備えている。第2ラベル開始終了座標格納部69bは、第2ラベリング部67による各画素へのラベル割り付け結果に基づいて、ラベルの種類毎にその開始座標と終了座標とを記憶するものである。第2ラベル履歴テーブル70は図12で説明した機能と略同様の機能を有する。
次に、図22に示した交点算出部45によるライン画像の抽出処理および交点の抽出処理について説明する。
第1ラベリング部63は、上述したラベル付け方法でラベル付け処理を行っていく。その際、各画素にラベルを付す毎に、ラベルの割り付け結果を第1ラベル履歴テーブル66に記憶させるとともに、第1ラベル開始終了座標格納部65bに記憶させている当該ラベルの開始座標および終了座標を更新していく。同様に、第2ラベリング部67は、各画素にラベルを付す毎に、ラベルの割り付け結果を第2ラベル履歴テーブル70に記憶させるとともに、第2ラベル開始終了座標格納部69bに記憶させている当該ラベルの開始座標および終了座標を更新していく。
なお、ラベリング時には、x座標およびy座標のそれぞれについて各ラベルの最小座標と最大座標を求める。これにより、そのラベルの外接矩形の4点の座標を求めることができる。左上から右下に向かって走査するときは同一ラベルを付された画素からなる画像の外接矩形左上を開始座標、外接矩形右下を終了座標とし、右上から左下に向かって走査するときは同一ラベルを付された画素からなる画像の外接矩形右上を開始座標、外接矩形左下を終了座標とする。
開始座標および終了座標の更新手順は以下の通りである。
(1)新規ラベル割り付け時は開始座標(xst,yst)、終了座標(xend,yend)共に現在の座標(xcrt,ycrt)とする。(2)既存ラベルの更新時には以下の条件(a)〜(d)および(e)〜(h)に基づいてxst,yst,xend,yendをそれぞれ更新する。
左上から右下に向かって走査する場合、
(a)xcrt<xstであればxstを更新する。
(b)ycrt<ystであればystを更新する。
(c)xcrt>xendであればxendを更新する。
(d)ycrt>yendであればyendを更新する。
右上から左下に向かって走査する場合、
(e)xcrt>xstであればxstを更新する。
(f)ycrt<ystであればystを更新する。
(g)xcrt<xendであればxendを更新する。
(h)ycrt>yendであればyendを更新する。
次に、図22に示した交点算出部45による斜め方向についてのライン画像の抽出処理および交点の抽出処理について、図23に示す画像データに対する処理を例としてより詳細に説明する。
図24は、図23に示した画像に対して左上から右下に向かって走査するときのラベル付けの手順を示す説明図である。この図を参照しながら、まず左上から右下への走査時の処理について説明する。
まず、走査開始時には第1ラベル履歴テーブル66を「0」に初期化する。その後、左上から右下方向へ(座標(0,0)→(1,0)→(2,0)→・・・→(11,0)→(0,1)→(1,1)→・・・の順に)走査していく。
座標(7,1)となるまでは黒画素が存在しないため第1ラベル履歴テーブル66に格納されている情報は全て初期値「0」のままである。
座標(7,1)では黒画素が存在するためラベル付けを行う。ここでは、左隣の画素のラベル(第1ラベル履歴テーブル66におけるx=6の値)と上隣の画素のラベル(第1ラベル履歴テーブル66におけるx=7の更新前の値)が共に「0」であり、それまでのいずれの画素にもラベルが割り付けられていないので、第1ラベリング部63は、座標(7,1)の画素に対して新規ラベル(ラベル「1」)を割り付ける。また、座標(7,1)と座標(7,1)の画素に割り付けたラベル「1」とを対応付けて図示しない記憶部に記憶させる。また、ラベル「1」の開始座標を(7,1)、終了座標を(7,1)にする。すなわち、xst=7,yst=1,xend=7,yend=1に設定する。また、第1ラベル履歴テーブル66におけるx=7のラベルを「1」に更新する。
次の座標(8,1)においても黒画素が存在するためラベル付けを行う。ここでは、左隣の画素のラベル(第1ラベル履歴テーブル66におけるx=7の値)が「0」でないため、第1ラベリング部63は、座標(8,1)の画素に対して左隣の画素のラベルと同じラベル(ラベル「1」)を割り付ける。また、座標(8,1)と座標(8,1)の画素に割り付けたラベル「1」とを対応付けて図示しない記憶部に記憶させる。また、上記式(c)を満たすため、ラベル「1」の終了座標を(8,1)に更新する。すなわち、xendの値を8に更新する。また、第1ラベル履歴テーブル66におけるx=8のラベルを「1」に更新する。
座標(9,1),(10,1)についても同様の処理を行うことにより、これら各座標にラベル「1」が割り付けられ、座標(9,1)(10,1)の画素に割り付けたラベル「1」とを対応付けて図示しない記憶部に記憶させる。また、座標(10,1)のラベル付け時には、上記式(c)を満たすためラベル「1」の終了座標が(10,1)に更新される(座標(9,1)の時点でも更新されているが座標(10,1)の情報で上書きされている)。また、第1ラベル履歴テーブル66におけるx=9、10のラベルを「1」に更新する。
同様の手順で走査を続けると、座標(2,2)で新規ラベル(ラベル「2」)が割り付けられ、座標(2,2)と座標(2,2)の画素に割り付けたラベル「2」とが対応付けられて図示しない記憶部に記憶され、ラベル「2」の開始座標が(2,2)、終了座標が(2,2)にされ、第1ラベル履歴テーブル66におけるx=2のラベルが「2」に更新される。
また、座標(3,2)ではラベル「2」が割り付けられ、座標(3,2)と座標(3,2)の画素に割り付けたラベル「2」とが対応付けられて図示しない記憶部に記憶され、上記式(c)を満たすためラベル「2」の終了座標が(3,2)に更新され、第1ラベル履歴テーブル66におけるx=3のラベルが「2」に更新される。
同様に、座標(4,2)にはラベル「2」が割り付けられ、座標(4,2)と座標(4,2)の画素に割り付けたラベル「2」とが対応付けられて図示しない記憶部に記憶される。また、上記式(c)を満たすためラベル「2」の終了座標が(4,2)に更新される。また、第1ラベル履歴テーブル66におけるx=4のラベルが「2」に更新される。
また、座標(6,2)では新規ラベル(ラベル「3」)が割り付けられ、座標(6,2)と座標(6,2)の画素に割り付けたラベル「3」とが対応付けられて図示しない記憶部に記憶され、ラベル「3」の開始座標が(6,2)、終了座標が(6,2)にされ、第1ラベル履歴テーブル66におけるx=6のラベルが「3」に更新される。
座標(7,2)〜(10,2)についても同様の処理が実行され、これら各座標にはラベル「3」が割り付けられ、座標(7,2)〜(10,2)の画素に割り付けたラベル「3」とを対応付けて図示しない記憶部に記憶させる。また、ラベル「3」の終了座標は座標(10,2)に対する処理時に(10,2)に更新される(座標(7,2)〜(9,2)の時点でも更新されているが座標(10,2)の情報で上書きされる)。また、第1ラベル履歴テーブル66におけるx=7〜10のラベルが「3」に更新される。
また、座標(3,3)では、黒画素であり、左隣の画素のラベル(第1ラベル履歴テーブル66におけるx=2の値)が「0」であり、上隣の画素のラベル(第1ラベル履歴テーブル66におけるx=3の更新前の値)が「2」なので、ラベル「2」が割り付けられ、座標(3,3)と座標(3,3)の画素に割り付けたラベル「2」とが対応付けられて図示しない記憶部に記憶され、上記式(d)を満たすためラベル「2」の終了座標が(4,3)に更新される。また、第1ラベル履歴テーブル66におけるx=3のラベルが「2」に更新される。
座標(4,3)〜(8,3)についても同様の処理が実行され、これら各座標にはラベル「2」が割り付けられ、座標(4,3)〜(8,3)と座標(4,3)〜(8,3)の画素に割り付けたラベル「2」とが対応付けられて図示しない記憶部に記憶される。また、上記式(c)を満たすためラベル「2」の終了座標が(8,3)に更新される(座標(5,3)〜(7,3)の時点でも更新されているが座標(8,3)の情報で上書きされる)。また、第1ラベル履歴テーブル66におけるx=4〜8のラベルが「2」に更新される。
以下、右下の画素(座標(11,8))まで同様に走査およびラベル付けを行う。そして、右下の画素(座標(11,8))まで走査およびラベル付けが完了すると、制御部7は、各ラベルと各ラベルの開始座標および終了座標とを第1ラベル付け情報記憶部64bからライン判定部71に出力させる。
次に、右上から左下への走査時のラベル付け処理について図25を参照しながら説明する。図25は、図23に示した画像に対して右上から左下に向かって走査するときのラベル付けの手順を示す説明図である。
まず、走査開始時には第2ラベル履歴テーブル70を「0」に初期化する。その後、右上から左下方向へ(座標(11,0)→(10,0)→(9,0)→・・・→(0,0)→(11,1)→(10,1)→・・・の順に)走査していく。
座標(10,1)となるまでは黒画素が存在しないため第2ラベル履歴テーブル70に格納されている情報は全て初期値「0」のままである。
座標(10,1)では黒画素が存在するためラベル付けを行う。ここでは、右隣の画素のラベル(第2ラベル履歴テーブル70におけるx=11の値)と上隣の画素のラベル(第2ラベル履歴テーブル70におけるx=10の更新前の値)が共に「0」であり、それまでのいずれの画素にもラベルが割り付けられていないので、第2ラベリング部76は、座標(10,1)の画素に対して新規ラベル(ラベル「1」)を割り付ける。また、制御部7は、座標(10,1)と座標(10,1)の画素に割り付けたラベル「1」とを対応付けて図示しない記憶部に記憶させる。また、ラベル「1」の開始座標を(10,1)、終了座標を(10,1)にする。また、第2ラベル履歴テーブル70におけるx=10のラベルを「1」に更新する。
以下、同様にして、黒画素に対して、右隣の画素のラベル、上隣の画素のラベル、それまでに割り付けたラベルに応じて各画素にラベルを割り付けるとともに、第2ラベル履歴テーブル70における当該各画素を含む列のラベルを更新していく。また、各ラベルを割り付ける毎に当該ラベルの開始座標および終了座標を更新していく。また、ラベル付けを行った各画素(ラベルが「0」以外である各画素)について、各画素の座標と各画素に割り付けたラベルとを対応付けて図示しない記憶部に記憶させていく。
そして、左下の画素(座標(0,8))まで走査およびラベル付けが完了すると、制御部7は、各ラベルと各ラベルの開始/終了座標とを第2ラベル付け情報記憶部68bからライン判定部71に出力させる。
次に、ライン判定部71におけるライン判定処理および交点抽出部72における交点抽出処理について図46を参照しながら説明する。図46は、図23に示した画像データ、この画像データに対するラベル付け結果、ライン判定結果、および交点抽出結果を示す説明図である。
図46に示すように、図23の画像データの場合、左上から右下への走査では、5種類のラベル(ラベル「1」〜「5」)が割り付けられる。
ライン判定部71は、各ラベルの開始座標(xst,yst)と終了座標(xend,yend)の距離dをd=√((xst−xend)2+(yst−yend)2)に基づいて算出する。図46の例では、各ラベルについての距離dは、ラベル「1」が「3」,ラベル「2」が「8.94」,「3」が「4」,「4」が「2」,「5」が「3.16」となる。
また、ライン判定部71は、上記のように算出した各ラベルについての距離dと予め設定された閾値(本実施形態では「8」)とを比較し、距離dが閾値以上であるラベルに対応する各画素からなる画像をライン画像であると判定する。図46の例ではラベル「2」に対応する画素からなる画像がライン画像と判定される。
そして、ライン判定部71は、ライン画像であると判定した場合、当該ライン画像を構成する各画素の座標を上記記憶部から読み出して交点抽出部72に出力する。
右上から左下への走査では、図46に示すように、4種類のラベル(ラベル「1」〜「4」)が割り付けられる。また、各ラベルについての距離dは、ラベル「1」が「10.82」,ラベル「2」が「2」,「3」が「2」,「4」が「2」となる。したがって、この場合、ライン判定部71は、距離dが閾値「8」以上であるラベル「1」に対応する画素からなる画像をライン画像と判定する。そして、ライン判定部71は、ライン画像であると判定した場合、当該ライン画像を構成する各画素の座標を上記記憶部から読み出して交点抽出部72に出力する。
交点抽出部72は、左上から右下への走査および右上から左下への走査の両方においてライン画像であると判定された画素の中心座標をライン画像同士の交点として算出する。なお、中心座標の算出は、例えばx座標およびy座標の平均値をそれぞれ算出し、小数点以下を四捨五入することによって算出すればよい。これにより、図46の例では、左上から右下への走査および右上から左下への走査の両方においてライン画像であると判定された画素として座標(3,3)〜(8,3)、(4,4)〜(8,4)が抽出され、これら各画素の中心座標である座標(6,3)がライン画像同士の交点として算出される。
図47は、斜め方向のライン画像の検出処理に関し、ラベルカウント値を用いてライン画像を検出する場合と、ライン画像の開始座標から終了座標までの距離を用いてライン画像を検出する場合との検出結果の違いを示す説明図である。
図47の上段は、図23と同じ画像について、ラベルカウント値を用いてライン画像を検出した結果、およびライン画像の開始座標から終了座標までの距離を用いてライン画像を検出した結果を示している。図47の上段右側に示したように、この場合、ラベル1のラベルカウント値は30、開始座標から終了座標までの距離は10.82となる。
一方、図47の下段は、図23の画像におけるライン画像部分を全体的に細くした画像について、ラベルカウント値を用いてライン画像を検出した結果、およびライン画像の開始座標から終了座標までの距離を用いてライン画像を検出した結果を示している。図47の下段右側に示したように、この場合、ラベル1のラベルカウント値は20、開始座標から終了座標までの距離は10.82となる。
このようにラベルカウント値を用いてライン画像の検出を行う場合、ラインの太さが太いほどラベルカウント値が増加するため、ライン画像の長さが同じ場合であっても太さによってラベルカウント値が増減する。このため、例えば図47に示した例の場合、ラベルカウント値の閾値が20と30の間(例えば25)であれば、線の太さによってライン検出結果が変わることになる。
一方、ライン画像の開始座標から終了座標までの距離を用いてライン画像の検出を行う場合、ライン画像の太さが異なっていてもライン画像の長さが同じであれば開始座標から終了座標までの距離は略一定になる。
したがって、ライン画像の太さに依存せずにライン画像の判定を行いたい場合には、ライン画像の開始座標から終了座標までの距離を用いてライン画像の検出を行うことが好ましい。
なお、上述の例では、交点抽出部72が、左上から右下への走査および右上から左下への走査の両方においてライン画像であると判定された画素の中心座標をライン画像同士の交点とするものとしたが、交点の抽出方法はこれにかぎるものではない。
例えば、図51に示すように、左上から右下への走査において検出されたライン画像の開始座標および終了画像からこのライン画像の直線(線分)の式を算出し、右上から左下への走査において検出されたライン画像についても同様に開始座標および終了画像からこのライン画像の直線(線分)の式を算出し、これら2つの直線(線分)の式に基づいて交点の座標を算出するようにしてもよい。
具体的には、図51に示すように、図23の画像の場合、左上から右下への走査時においてラインと判定されたラベル「2」の開始座標は(2,2)、終了座標は(10,6)であるから、この2点間の直線(線分)の式は以下のようになる。
y=x/2+1(ただし、2≦x≦10,2≦y≦6)
また、右上から左下への走査時においてラインと判定されたラベル「1」の開始座標は(10,1)、終了座標は(1,7)であることから、この2点間の直線(線分)の式は以下のようになる。
y=−2x/3+23/3(ただし、1≦x≦10,1≦y≦7)
これら2つの直線(線分)の式から交点を求めると、(40/7,27/7)≒(5.71,3.86)となり、小数点以下を四捨五入すると交点座標は(6,4)となる。
なお、水平方向のライン画像と垂直方向のライン画像との交点を算出する場合にも、斜め方向のライン画像同士の交点を算出する場合と同様、両ライン画像の直線の式を算出し、これら2つの直線の式に基づいて両直線の交点を算出し、算出した交点に対応する座標を両ライン画像の交点とするようにしてもよい。
また、本実施形態では、2値化処理部44によって2値化された全ての画素について交点の算出処理を行っているが、これに限るものではない。
例えば、黒画素の連結領域の面積が所定値以上である場合、あるいは黒画素の連結領域の垂直方向の幅および水平方向の幅が所定値以上の場合などには、この連結領域については交点算出処理を行わないようにしてもよい。これにより、例えば、所定範囲以上の領域が黒く塗りつぶされている場合などに、この領域を、例えば局所的な背景(サイズが大きい場合)、あるいは孤立点(サイズが小さい場合)として検出し、交点算出処理から除外できる。
また、交点算出処理よりも前に入力画像データに対してエッジ検出処理を施すエッジ検出手段を設け、エッジとして検出された画素に対して交点算出処理を行うようにしてもよい。この場合、例えば所定範囲以上の領域が黒く塗りつぶされている場合などであっても、この領域における周縁部から数画素程度の部分をエッジとして検出し、この部分に対してライン検出処理および交点算出処理を施すことができる。エッジ検出手段としては、例えば、注目画素と注目画素に隣接する画素との画素値の絶対値を算出し、算出した絶対値が予め定められている閾値以上の場合にエッジと判定する方法や、ゾーベルフィルタやラプラシアンフィルタの処理結果に閾値処理を施してエッジを抽出する方法等を用いることができる。
また、本実施形態では、本発明をデジタルカラー複合機1に適用する場合について説明したが、本発明の適用対象はこれに限るものではない。例えば、モノクロの複合機に適用してもよい。また、複合機に限らず、例えば単体のファクシミリ通信装置、複写機、画像読取装置などの画像処理装置に適用してもよい。
図26は、本発明をフラットベッドスキャナ(画像読取装置、画像処理装置)1’に適用した場合の構成例を示すブロック図である。
この図に示すように、フラットベッドスキャナ1’は、カラー画像入力装置2とカラー画像処理装置3’とを備えている。カラー画像処理装置3’は、A/D変換部11、シェーディング補正部12、文書照合処理部13、制御部7(図26では図示せず)、メモリ8(図26では図示せず)から構成されており、これに、カラー画像入力装置2が接続され、全体として画像読取装置1’を構成している。なお、カラー画像入力装置(画像読取手段)2におけるA/D変換部11、シェーディング補正部12、文書照合処理部13、制御部7、メモリ8の機能は、上述したデジタルカラー複合機1と略同様であるのでここでは説明を省略する。
また、文書照合処理部13の機能を、画像処理装置と、この画像処理装置に通信可能に接続されたサーバー装置とからなる画像処理システムによって実現してもよい。図27は、画像処理装置(複合機(MFP)A,B,・・・、プリンタA,B,・・・、ファクシミリA,B,・・・、コンピュータA,B,・・・、デジタルカメラA,B,・・・、スキャナA,B,・・・)と、サーバー装置50とが通信可能に接続されてなる画像処理システム100の構成を示す説明図である。なお、画像処理システム100の構成はこれに限るものではなく、例えば、サーバー装置50と、複合機、プリンタ(画像形成装置)、ファクシミリ、コンピュータ、デジタルカメラ(画像読取装置)、スキャナ(画像読取装置)のうちのいずれか1つ以上とからなるものであってもよい。
上記スキャナは、原稿台、光走査部、CCD(charge coupled device)等を備えており、原稿台に載置された原稿画像を光走査部によって走査することで原稿画像を読み込んで画像データを生成する。また、上記デジタルカメラは、撮像レンズ、CCD等(画像入力装置)を備えており、原稿画像、人物や風景等を撮影して画像データを生成する。なお、上記スキャナおよびデジタルカメラは、画像を適切に再現するために所定の画像処理(例えば各種補正処理等)を施す機能を有していてもよい。上記プリンタは、コンピュータ、スキャナ、デジタルカメラによって生成された画像データに基づく画像をシート(記録用紙)に印刷する。また、上記ファクシミリは、画像入力装置より読み込まれた画像データに対して、2値化処理、解像度変換処理、回転等の処理を行って所定の形式に圧縮した画像データを相手先に送信したり、相手先から送信されてきた画像データを伸張して画像出力装置の性能に応じて回転処理や解像度変換処理、中間調処理を施し、ページ単位の画像として出力したりする。また、上記複合機は、スキャナ機能、ファクシミリ送信機能、印刷機能(複写機能、プリンタ機能)のうちの少なくとも2つ以上を有するものである。また、上記コンピュータは、スキャナやデジタルカメラにより読み込まれた画像データに対して編集を行ったり、アプリケーションソフトウェアを用いて文書の作成を行ったりする。
画像処理システム100では、上述した文書照合処理部13の各部が、サーバー装置50と、サーバー装置50にネットワークを介して接続される画像処理装置とに分散して備えられている。そして、画像処理装置とサーバー装置50とが協働して文書照合処理部13の機能を実現するようになっている。
図28は、文書照合処理部13が有する機能が、サーバー装置50とデジタルカラー複合機1とに分散して備えられている場合の一構成例を示すブロック図である。
図28に示すように、デジタルカラー複合機1のカラー画像処理装置3は、特徴点算出部31および特徴量算出部32を備えた文書照合処理部13aと、文書照合処理部13aの動作を制御する制御部7aと、文書照合処理部13aの処理に必要な情報を記憶するメモリ8aと、外部の装置との通信を行う通信装置5とを備えている。また、サーバー装置50は、外部の装置との通信を行う通信装置51、投票処理部33、類似度判定処理部34、および登録処理部37を備えた文書照合処理部13bと、文書照合処理部13bを制御する制御部7bと、文書照合処理部13bの処理に必要な情報を記憶するメモリ8bとを備えている。なお、デジタルカラー複合機1に備えられる各機能ブロックとサーバー装置50に備えられる各機能ブロックとの間でデータの送受信が必要な場合には、制御部7aおよび制御部7bが通信装置5および51を制御して適宜データの送受信を行う。その他の機能については上述した構成と同様である。
また、図28の例では、特徴量算出部32の全部(特徴点抽出部32a、不変量算出部32b、ハッシュ値算出部32c)がデジタルカラー複合機1に備えられているが、これに限らず、例えば図29に示すように、特徴点抽出部32aおよび不変量算出部32bをデジタルカラー複合機1に備える一方、ハッシュ値算出部32cをサーバー装置50に備えた構成としてもよい。
また、特徴量算出部32の各部をサーバー装置50に備えておき、特徴点算出部31の算出した特徴点に関するデータをデジタルカラー複合機1からサーバー装置50に送信し、サーバー装置50に備えられる特徴量算出部32がメモリ8bに格納されているハッシュテーブル103と受信した特徴点のデータとに基づいてハッシュ値を算出するようにしてもよい。また、特徴点算出部31および特徴量算出部32の各部をサーバー装置50に備えておき、デジタルカラー複合機1からサーバー装置50に入力画像データを送信し、サーバー装置50に備えられる特徴点算出部31および特徴量算出部32がサーバー装置50から受信した入力画像データとメモリ8bに格納されているハッシュテーブル103とに基づいてハッシュ値を算出するようにしてもよい。
また、上記の説明では、類似性の判定処理を行う場合の例について説明したが、登録処理を行う場合には、サーバー装置50に備えられる登録処理部37が、デジタルカラー複合機1から受信した原稿IDとハッシュ値(あるいはサーバー装置50に備えられるハッシュ値算出部32cが算出したハッシュ値)とをメモリ8bに設けられたハッシュテーブル103に登録すればよい。なお、類似性判定処理を行うか登録処理を行うかは、デジタルカラー複合機1のユーザが操作パネル6を介して指定し、何れの処理を行うのかを示す信号をサーバー装置50に送信するようにしてもよく、サーバー装置50が類似性判定処理の結果、類似なしと判定した入力画像について登録処理を行うようにしてもよい。
なお、ハッシュ値算出部32cをサーバー装置50に備える場合、ハッシュテーブル103に格納されているハッシュ値の算出方法とは異なる方法で(別のハッシュ関数を用いて)ハッシュ値を算出し、算出したハッシュ値を採用してハッシュテーブル103を更新してもよい。これにより、例えば原稿画像の種類等に応じて特徴量(不変量)を参照した適切なハッシュ値をハッシュテーブル103に登録(更新)することができ、それを用いて投票処理を行えるので、照合精度(類似性の判定精度)を向上させることができる。
〔実施形態2〕
本発明の他の実施形態について説明する。なお、説明の便宜上、実施形態1と同様の機能を有する部材について実施形態1と同じ符号を付し、その説明を省略する。
図32は、本実施形態にかかるデジタルカラー複合機1に備えられる特徴点算出部31bの概略構成を示すブロック図である。この特徴点算出部31bは、実施形態1における特徴点算出部31に代えてデジタルカラー複合機1に備えられる。なお、本実施形態にかかるデジタルカラー複合機1の構成は、特徴点算出部の構成が異なる以外は実施形態1におけるデジタルカラー複合機1と略同様である。
図32に示すように、特徴点算出部31bは、実施形態1における特徴点算出部31の構成に加えて、信号変換処理部(無彩化処理部)41の前段に傾き検知部47および傾き補正処理部48を備えている。
傾き検知部47は、入力画像の傾き(入力画像データの縦方向・横方向に対する、この入力画像データ中の原稿画像の縦方向・横方向の傾き)を検知する処理を行う。傾きの検知方法は特に限定されるものではなく、従来から公知の種々の方法を用いることができる。
例えば、図33に示すように、入力画像データにおけるx方向の中心(スキャナで読み取られる領域におけるx方向の中心)からx方向両側にw/2だけ離れた2点で原稿の端部(エッジ)e1,e2、および入力画像データの端部E1,E2を検出する。そして、原稿の端部e1から入力画像データのE1までのy方向に沿った距離d1、原稿の端部e2から入力画像データのE2までのy方向に沿った距離d2、および原稿の端部e1からe2までのx方向に沿った距離wとに基づいてtanθ=(d2−d1)/wを算出し、傾き角度θを算出する。傾き角度θの算出方法は特に限定されるものではないが、例えば図34に示すような正接−角度テーブルを用いることによって容易に算出できる。
なお、原稿のエッジを抽出する方法としては、例えば、図33に示すようにエッジ計測ウィンド内の輝度値を投影して求める方法を用いることができる。具体的には、図35に示すように、所定の大きさ(ここではx方向20画素×y方向150画素)のエッジ計測ウィンド内の入力画像データに対してエッジ強調フィルタ処理(エッジ強調処理)を施してエッジ強調画像を得る。図36はエッジ検知用フィルタの一例である。そして、エッジ強調画像に対して、縦方向(y方向)のエッジを検出するために、横方向(x方向)の画素値の合計を求める投影処理を行い、縦方向のピークをとる位置(例えば最小値)を求める。投影処理(ウィンド内におけるx方向に並ぶ各画像の輝度値を合計する処理)を行うのは、ノイズの影響を抑えるためである。図37は投影結果を示すグラフである。
傾き補正処理部48は、傾き検知部47の検出した傾き角度θに基づいて入力画像データにおける原稿の傾きを補正する。傾き補正処理の方法は特に限定されるものではないが、例えば回転行列を用いたアフィン変換処理などを用いることができる。
一般に、座標(x,y)をθ回転させた座標(x’,y’)は、下記の回転行列式で表すことができる。
画像の画素値として出力する場合には、整数値(x’,y’)に対応する小数値(xs,ys)を算出し、これをバイリニア等で補間演算すればよい。小数値(xs,ys)は、上記の回転行列式の逆変換式である下記の行列式によって算出される。
x−y座標系において、(xs,ys)を取り囲む4点の画素の座標は、図38に示すように、(xi,yi)、(xi+1,yi)、(xi,yi+1)、(xi+1,yi+1)で表される(i,jは1以上の整数)。ここで、xi≦xs<xi+1、yj≦ys<yj+1である。そして、上記4つの画素の値をそれぞれ(xi,yi):Z1、(xi+1,yi):Z2、(xi,yi+1):Z3、(xi+1,yi+1):Z4とし、xiとxsとのx方向についての距離と、xsとxi+1とのx方向についての距離との比をu:1−u、yiとysとのy方向についての距離と、ysとyi+1とのy方向についての距離との比をv:1−vすると、バイリニアによる補間後の座標値Zは、Z(x’,y’)=Z(xs,ys)=(1−v){(1−u)Z1+u・Z2}+v{(i−u)Z3+u・Z4}で表される。なお、三角比の演算方法については特に限定されるものではないが、例えば上述した図34の例と同様、テーブルを用いて行ってもよい。
図39は、本実施形態にかかるデジタルカラー複合機1における特徴点算出処理の流れを示すフロー図である。
この図に示すように、シェーディング補正部12から特徴点算出部31bに画像データが入力されると、傾き検知部47が入力画像の傾き(傾き角度)検知処理を行い(S20a)、傾き検知部47の検出結果に基づいて傾き補正処理部が傾き(傾き角度)補正処理を行う(S20b)。その後、信号変換処理部(無彩化処理部)41による無彩化処理、解像度変換部42による解像度変換処理、MTF処理部43によるMTF処理、2値化処理部44による2値化処理を行った後(いずれも図示せず)、交点算出部45が図11と同様の方法によって交点(特徴点)の検出処理を行う(S21〜S28)。
以上のように、本実施形態では、傾き検知部47および傾き補正処理部48を備えており、入力画像の傾き補正を行った後に交点(特徴点)の抽出を行う。これにより、例えば、入力画像データ中における原稿画像が傾斜している場合(例えば、画像読取装置の読取位置における所定の配置角度に対して原稿が傾斜して配置された状態で読み取られた場合など)でも、傾斜がない場合と同様、特徴点を精度よく抽出することが可能となる。したがって、このように抽出した特徴点に基づいて算出される特徴量に基づいて画像の類似度を算出することにより、入力画像と登録画像との類似性を精度よく判定できる。
〔実施形態3〕
本発明のさらに他の実施形態について説明する。なお、説明の便宜上、実施形態1,2と同様の機能を有する部材については実施形態1,2と同じ符号を付し、その説明を省略する。
図40は、本実施形態にかかるデジタルカラー複合機1に備えられる特徴点算出部31cの概略構成を示すブロック図である。この特徴点算出部31cは、実施形態1における特徴点算出部31に代えてデジタルカラー複合機1に備えられる。なお、本実施形態にかかるデジタルカラー複合機1の構成は、特徴点算出部の構成が異なる以外は実施形態1におけるデジタルカラー複合機1と略同様である。
図40に示すように、特徴点算出部31cは、実施形態1における特徴点算出部31の構成に加えて、2値化処理部44の後段に、膨張処理部52と縮退処理部53とからなる欠落補正部54を備えている。
膨張処理部52は、注目画素および当該注目画素の周辺画素に含まれる黒画素の数をカウントし、カウント値が閾値(第1閾値)以上である注目画素を黒画素とし、カウント値が閾値未満である注目画素を白画素とする(以下、膨張処理と称する)。上記閾値は特に限定されるものではないが、本実施形態では上記閾値を1とする。
図41(a)は膨張処理を行う前の画像データの一例を示す説明図であり、図41(b)は図41(a)の画像データに対して上記閾値を1として膨張処理を施した画像データを示す説明図である。
縮退処理部53は、膨張処理後の画像データにおける注目画素および注目画素の周辺画素に含まれる白画素の数をカウントし、カウント値が閾値(第2閾値)以上である注目画素を白画素とし、カウント値が閾値未満である画素を黒画素とする(以下、縮退処理と称する)。上記閾値は特に限定されるものではないが、本実施形態では上記閾値を1とする。
図42(a)は縮退処理を行う前の画像データの一例(図41(b)の画像データと同じ)を示す説明図であり、図42(b)は図41(a)の画像データに対して上記閾値を1として縮退処理を施した画像データを示す説明図である。
図43は、本実施形態にかかるデジタルカラー複合機1における特徴点算出処理の流れを示すフロー図である。
この図に示すように、シェーディング補正部12から特徴点算出部31cに画像データが入力されると、信号変換処理部(無彩化処理部)41による無彩化処理、解像度変換部42による解像度変換処理、MTF処理部43によるMTF処理、2値化処理部44による2値化処理を行った後(いずれも図示せず)、膨張処理部52が入力画像データに対して上記した膨張処理を施し(S20c)、縮退処理部53が膨張処理後の画像データに対して縮退処理を施す(S20d)。その後、交点算出部45が図11と同様の方法によって交点(特徴点)の検出処理を行う(S21〜S28)。
以上のように、本実施形態では、膨張処理部52が、注目画素および当該注目画素の周辺画素に含まれる黒画素の数をカウントし、カウント値が閾値以上である注目画素を黒画素とする。さらに、縮退処理部53が、膨張処理後の画像データにおける注目画素および注目画素の周辺画素に含まれる白画素の数をカウントし、カウント値が閾値以上である注目画素を白画素とする。
これにより、入力画像データにおけるライン部分にギャップ(画像データの欠落)が生じている場合であっても、このギャップを補正してからラインの検出処理を行うことができる。したがって、ギャップ(画像データの欠落)によってラインが本来よりも短く切断されて検出されることを防止し、入力画像データの特徴点を精度よく検出できる。
なお、本実施形態では、実施形態1における特徴点算出部31の各構成に加えて膨張処理部52と縮退処理部53とを備える構成について説明したが、これに限るものではない。例えば、図44に示すように、実施形態2に示した特徴点算出部31bに膨張処理部52と縮退処理部53とを設けた特徴点算出部31dを用いてもよい。この場合、図45に示すように、シェーディング補正部12から特徴点算出部31dに画像データが入力されると、傾き検知部47が入力画像の傾き(傾き角度)検知処理を行い(S20a)、傾き検知部47の検出結果に基づいて傾き補正処理部が傾き(傾き角度)補正処理を行う(S20b)。その後、信号変換処理部(無彩化処理部)41による無彩化処理、解像度変換部42による解像度変換処理、MTF処理部43によるMTF処理、2値化処理部44による2値化処理を行った後(いずれも図示せず)、膨張処理部52が入力画像データに対して上記した膨張処理を施し(S20c)、縮退処理部53が膨張処理後の画像データに対して縮退処理を施す(S20d)。その後、交点算出部45が図11と同様の方法によって交点(特徴点)の検出処理を行う(S21〜S28)。
〔実施形態4〕
本発明のさらに他の実施形態について説明する。なお、説明の便宜上、上記各実施形態と同様の機能を有する部材については上記各実施形態と同じ符号を付し、その説明を省略する。
なお、本実施形態にかかるデジタルカラー複合機1は、第1ラベリング部63および第2ラベリング部67によるラベリング(ラベル付け)方法が異なっている以外は実施形態1におけるデジタルカラー複合機1と略同様の構成である。
実施形態1では、第1ラベリング部63は、左上から右下に向かって各画素を走査していき、注目画素が黒画素であるか否かと、注目画素の左隣および上隣の画素に対するラベル付け結果とに基づいて注目画素のラベル付けを行っていた。また、第2ラベリング部67は、右上から左下に向かって各画素を走査していき、注目画素が黒画素であるか否かと、注目画素の右隣および上隣の画素に対するラベル付け結果とに応じて注目画素のラベル付けを行っていた。
これに対して、本実施形態では、第1ラベリング部63が、左上から右下に向かって各画素を走査していき、注目画素が黒画素であるか否かと、注目画素の左隣と上隣と左上隣の画素に対するラベル付け結果とに基づいて注目画素のラベル付けを行う。また、第2ラベリング部67が、右上から左下に向かって各画素を走査していき、注目画素が黒画素であるか否かと、注目画素の右隣と上隣と右上隣の画素に対するラベル付け結果とに基づいて注目画素のラベル付けを行う。
また、第1ラベル履歴テーブル66には、注目画素の上隣のラインにおける注目画素の左上隣の画素から右側の各画素、および注目画素を含むラインにおける左端の画素から注目画素の左隣の画素までの合計1水平ライン+1画素分のラベルが格納される。そして、第1ラベル履歴テーブル66は、注目画素に対するラベル付けが完了する毎に、当該注目画素の左上隣の画素に対するラベル付け結果を削除し、当該注目画素に対するラベル付け結果を記憶する。これにより、全画素に割り付けたラベルを記憶する場合に比べて、ライン判定の精度を低下させることなく、第1ラベル履歴テーブル66に要求される記憶容量を低減できるようになっている。また、注目画素の左隣、上隣、および左上隣の画素のラベルを容易かつ迅速に抽出できるようになっている。
同様に、第2ラベル履歴テーブル70には、注目画素の上隣のラインにおける注目画素の右上隣の画素から左側の各画素、および注目画素を含むラインにおける右端の画素から注目画素の右隣の画素までの合計1水平ライン+1画素分のラベルが格納される。そして、第2ラベル履歴テーブル70は、注目画素に対するラベル付けが完了する毎に、当該注目画素の右上隣の画素に対するラベル付け結果を削除し、当該注目画素に対するラベル付け結果を記憶する。これにより、全画素に割り付けたラベルを記憶する場合に比べて、ライン判定の精度を低下させることなく、第2ラベル履歴テーブル70に要求される記憶容量を低減できるようになっている。また、注目画素の右隣、上隣、および右上隣の画素のラベルを容易かつ迅速に抽出できるようになっている。
次に、第1ラベリング部63によるラベル付け方法について、図を参照しながらより詳細に説明する。図48は、第1ラベリング部63が注目画素に対するラベル付けを行う際の、隣接画素の参照順序を示す説明図である。
この図に示すように、第1ラベリング部63は、画像データを左上から右下に向かって走査していき(各ラインを左端から右端へ向かって走査していく処理を上端のラインから下端のラインへ向かって順次行っていき)、以下の(a)〜(e)のルールに基づいてラベル付けを行う。
(a)注目画素が黒画素であって、注目画素の左隣の画素に対してラベル付けされている場合(左隣の画素のラベルが「0」ではない場合)、この左隣の画素と同じラベルを割り付ける。
(b)注目画素が黒画素であって、注目画素の左隣の画素に対してラベル付けされておらず(左隣の画素のラベルが「0」であり)、注目画素の上隣の画素に対してラベル付けされている場合、この上隣の画素と同じラベルを割り付ける。
(c)注目画素が黒画素であって、注目画素の左隣および上隣の画素に対してラベル付けされておらず(左隣の画素および上隣の画素のラベルが「0」であり)、注目画素の左上隣の画素に対してラベル付けされている場合、この左上隣の画素と同じラベルを割り付ける。
(d)注目画素が黒画素であって、注目画素の左隣、上隣、および左上隣の画素のいずれにもラベル付けされていない場合、当該注目画素に対して新規のラベルを割り付ける。
(e)注目画素が黒画素ではない場合、当該注目画素のラベルを「0」とする。
なお、第2ラベリング部67におけるラベル付け方法は、右上から左下に向かって各画素を走査する点、および上記(a)〜(e)における「左隣」を「右隣」に変更し、「左上隣」を「右上隣」に変更する点以外は第1ラベリング部63におけるラベル付け方法と同様である。図49は、第2ラベリング部76が、注目画素に対するラベル付けを行う際の、隣接画素の参照順序を示す説明図である。
以上のように、本実施形態では、第1ラベリング部63によるラベル付けを行う際、注目画素の左隣および上隣の画素に対するラベル付け結果に加えて、左上隣の画素に対するラベル付け結果を考慮して注目画素に対するラベル付けを行う。また、第2ラベリング部67によるラベル付けを行う際、注目画素の右隣および上隣の画素に対するラベル付け結果に加えて、右上隣の画素に対するラベル付け結果を考慮して注目画素に対するラベル付けを行う。
これにより、画像読取時の誤差等によって生じたばらつきによって斜め方向のラインの位置にずれが生じている場合であっても、本来は同一であるラインに対して別々のラベルが付され、ラインとして検出されなくなることを防止し、ラインの検出精度を向上させることができる。
この点について、図50(a)〜図50(c)を参照しながらより詳細に説明する。図50(a)は、図18に示した画像がカラー画像入力装置2によって適切に読み取られた場合に、この画像を実施形態1に示したラベル付け方法でラベル付けした結果を示す説明図である。図50(b)は、図18に示した画像をカラー画像入力装置2によって読み取る際に読み取り誤差が生じた場合に、この読み取り誤差が生じた画像を実施形態1に示したラベル付け方法でラベル付けした結果を示す説明図である。図50(c)は、図18に示した画像をカラー画像入力装置2によって読み取る際に読み取り誤差が生じた場合に、この読み取り誤差が生じた画像を本実施形態に示したラベル付け方法でラベル付けした結果を示す説明図である。
図50(b)に示した例では、左上から右下に向かうライン画像に読み取り誤差による位置ずれが生じている。そして、このような位置ずれが生じた画像に対して実施形態1に示したラベル付け方法を適用すると、本来は同一のラインであるにもかかわらず、位置によって異なるラベルが付されてしまい、ラインとして検出されなくなる。
これに対して、図50(c)に示すように、本実施形態のラベル付け方法によれば、読み取り誤差に起因する位置ずれが生じていても、左上隣の画素に対するラベル付け結果を考慮することにより、本来同一のラインである画素に対して同じラベルが付され、ラインとして検出することができる。したがって、読み取り誤差が生じている場合であっても、ラインを精度よく検出することができる。
なお、本実施形態にかかるラベル付け方法(ライン検出方法)は、上記した各実施形態のいずれの構成にも適用できる。
また、上記各実施形態において、デジタルカラー複合機1および/またはサーバー装置50に備えられる文書照合処理部および制御部を構成する各部(各ブロック)は、CPU等のプロセッサを用いてソフトウェアによって実現される。すなわち、デジタルカラー複合機1および/またはサーバー装置50は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるデジタルカラー複合機1および/またはサーバー装置50の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、デジタルカラー複合機1および/またはサーバー装置50に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによって達成される。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、デジタルカラー複合機1および/またはサーバー装置50を通信ネットワークと接続可能に構成し、通信ネットワークを介して上記プログラムコードを供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
また、デジタルカラー複合機1および/またはサーバー装置50の各ブロックは、ソフトウェアを用いて実現されるものに限らず、ハードウェアロジックによって構成されるものであってもよく、処理の一部を行うハードウェアと当該ハードウェアの制御や残余の処理を行うソフトウェアを実行する演算手段とを組み合わせたものであってもよい。
本発明のコンピュータシステムは、フラットベッドスキャナ・フィルムスキャナ・デジタルカメラなどの画像入力装置、所定のプログラムがロードされることにより上記類似度算出処理や類似性判定処理など様々な処理が行われるコンピュータ、コンピュータの処理結果を表示するCRTディスプレイ・液晶ディスプレイなどの画像表示装置、およびコンピュータの処理結果を紙などに出力するプリンタ等の画像形成装置により構成されてもよい。さらには、ネットワークを介してサーバーなどに接続するための通信手段としてのネットワークカードやモデムなどが備えられていてもよい。
また、上記の実施形態では、2値化処理部44によって2値化処理を施した入力画像データに基づいて各画素が白画素であるか黒画素であるかを判定することでライン画像の検出処理を行う場合について説明したが、これに限らず、多値画像データにおける各画素の画素値が所定値以上であるか否かを判定することでライン画像の検出処理を行ってもよい。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態、および請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。