(57)【要約】【課題】  紙指紋情報情報を取り扱うことができる画像処理装置において、同じ原本を読み込んだ場合は同じ場所の紙指紋を取得することを可能とし、マークなどの特別な画像を余計に印刷する必要をなくなる。又、悪意をもって塗りつぶしや切除などの加工をすることを行いずらくする。【解決手段】  紙指紋の取得座標を原本に印刷されている画像データの特徴から求めることにする。【選択図】  図１
2010068198.tif 000002
【特許請求の範囲】
【請求項１】
原稿を光学的に読み取る読み取り手段と、前記読み取り手段から読み取った画像データに対して画像処理を行うことが可能な画像形成装置であって、
原稿に印刷されている画像データを記憶する記憶手段と、
前記記憶手段に記憶された画像をブロックに分類し、ブロックの領域情報を抽出するための抽出手段と、
前記抽出手段によって抽出されたブロックの情報を元に原稿内の座標を求めるための座標決定手段と、
前記座標決定手段によって求められた座標の紙指紋情報を取得するための紙指紋取得することを特徴とする画像形成装置。
【請求項２】
さらに前記記憶手段に記憶された画像を種々の属性に分類し、属性分類情報及び領域情報を抽出するための抽出手段と、
前記抽出手段によって抽出された属性分類情報及び領域情報を元に原稿内の座標を求めるための座標決定手段と、
前記座標決定手段によって求められた座標の紙指紋情報を取得するための紙指紋取得する請求項１に記載の画像形成装置。
【請求項３】
原稿のサイズを検出するサイズ検出手段を有し、前記座標決定手段は前記サイズ検出手段によって検出された原稿のサイズに含まれる座標とすることを特徴とする請求項１に記載の画像形成装置。
【請求項４】
抽出手段によって抽出された属性分類情報及び領域情報から、前記座標決定手段は、画像が含まれない領域を紙指紋の読み取り座標とすることを特徴とする請求項１に記載の画像形成装置。
【請求項５】
前記座標決定手段は、原稿上の複数の座標をもとめ、原稿上の複数の箇所の紙指紋を取得することを特徴とする請求項１に記載の画像形成装置。
【請求項６】
前記座標決定手段により決定された原稿上の座標から紙指紋を取得し、紙指紋情報を登録することを特徴とする請求項１に記載の画像形成装置。
【請求項７】
前記座標決定手段により決定された原稿上の座標から紙指紋を取得し、取得された紙指紋データを照合することを特徴とする請求項１に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、紙指紋情報（以下では、紙指紋情報のことを紙紋とも称する）情報を取り扱うことができる画像形成装置及び画像形成装置の制御方法及びプログラム及び記憶媒体に関する。
【背景技術】
【０００２】
紙は、太さ20〜30ミクロン程度の植物繊維がからまってできている。そのからまりにより、ランダムなパターンを作り出されている。このランダムなパターンは、指紋と同じように、紙一枚一枚で異なる。このような紙上のランダムなパターンを紙指紋情報と呼ぶ。
【０００３】
紙指紋情報は紙一枚一枚で違っているため、「私の発行した原本は、この紙指紋情報を有する紙だ」と登録しておくと、後で紙が「原本」なのか「偽物」なのかを区別する時に便利である。なお、「偽物」には、「原本の複写物」も当然含まれることになる。
【０００４】
特許文献１は、原本を作成する際に、原本となる用紙に付されたマークを基準位置として、その基準位置から所定距離離れた領域を紙指紋情報取得領域として設定する技術を開示している。また、この文献は、設定された紙指紋情報取得領域から紙指紋情報を取得することも開示している。さらに、当該取得した紙指紋情報を符号化して符号画像を生成し、当該生成された符号画像を上記原本となる用紙に印刷する技術も開示している。
【０００５】
また、特許文献２では、その段落５８に以下の記載がある。即ち、印刷データに基づいて記録用紙２２のうちトナー等が付着されない範囲を判断し、当該判断した範囲内に紙指紋情報取得領域を設定することが望ましいという記載がある。
【特許文献１】特開2004-112644号公報
【特許文献２】特開2005-038389号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術を用いて、原本となる用紙に付されたマークを基準位置として、その基準位置から所定距離離れた領域を紙指紋情報取得領域として設定する場合、基準位置を示すマークが必要になり、原本にはユーザが印刷した画像データ以外の情報が印刷されていることが必要になる。画像データ以外のマークが印刷されていなければならないという限定があることが課題となっている。
【０００７】
また、マークを印刷する代わりに、紙の固定位置の紙指紋を取得する方法もあるが、悪意のある第三者に固定位置の紙指紋に対して、塗りつぶしや切除などの加工を行いやすくしてしまうという課題がある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明に係る画像形成装置は、画像読取装置によって読み取られた原本の画像データから、文字や背景、ラインアートや表などのブロックにわける。また画像の属性と、それぞれの属性の画像の領域を求める。求められた各々のブロックの特徴属性の画像領域の特徴を示す情報を、予め定めれた原本上の座標を求めるための計算式に当てはめ、求められた原本上の座標から紙指紋データを取得することを特徴とする。
【発明の効果】
【０００９】
本発明により、紙指紋の取得座標を原本に印刷されている画像データの特徴から求めることにより、同じ原本を読み込んだ場合は同じ場所の紙指紋を取得することが可能となり、マークなどの特別な画像を余計に印刷する必要がなくなる。またユーザは原本上のどの領域の紙指紋を使用しているかがわからないため、悪意をもって塗りつぶしや切除などの加工を行いずらくすることが可能である。
【発明を実施するための最良の形態】
【００１０】
次に、本発明の詳細を実施例の記述に従って説明する。
【００１１】
以下では、図面を参照して本発明を実施するための最良の形態について説明する。
【実施例１】
【００１２】
＜印刷システム（図１）＞
続いて、実施例１について図面を参照して詳細に説明する。図１は本発明の実施形態に係る印刷システムの構成を示すブロック図である。このシステムではホストコンピュータ４０及び３台の画像形成装置（１０，２０，３０）がＬＡＮ５０に接続されているが、本発明における印刷システムにおいては、これらの接続数に限られることはない。また、本実施例では接続方法としてＬＡＮを適用しているが、これに限られることはない。例えば、ＷＡＮ（公衆回線）などの任意のネットワーク、ＵＳＢなどのシリアル伝送方式、セントロニクスやＳＣＳＩなどのパラレル伝送方式なども適用可能である。
【００１３】
ホストコンピュータ（以下、ＰＣと称する）４０はパーソナルコンピュータの機能を有している。このＰＣ４０はＬＡＮ５０やＷＡＮを介してＦＴＰやＳＭＢプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。またＰＣ４０から画像形成装置１０、２０、３０に対して、プリンタドライバを介した印字命令を行うことが可能となっている。
【００１４】
画像形成装置１０と２０は同じ構成を有する装置である。画像形成装置３０はプリント機能のみの画像形成装置であり、画像形成装置１０や２０が有するスキャナ部を有していない。以下では、説明の簡単のために、画像形成装置１０、２０のうちの画像形成装置１０に注目して、その構成を詳細に説明する。
【００１５】
画像形成装置１０は、画像入力デバイスであるスキャナ部１３、画像出力デバイスであるプリンタ部１４、画像形成装置１０全体の動作制御を司るコントローラ１１、ユーザインターフェース（ＵＩ）である操作部１２から構成される。
【００１６】
＜画像形成装置１０（図２）＞
画像形成装置１０の外観を図２に示す。スキャナ部１３は、複数のＣＣＤを有している。この各ＣＣＤの感度が夫々異なっていると、たとえ原稿上の各画素の濃度が同じであったとしても、各画素が夫々違う濃度であると認識されてしまう。そのため、スキャナ部では、最初に白板（一様に白い板）を露光走査し、露光走査して得られた反射光の量を電気信号に変換してコントローラ１１に出力している。なお、後述するように、コントローラ１１内のシェーディング補正部５００は、各ＣＣＤから得られた電気信号を元に、各ＣＣＤの感度の違いを認識している。そして、この認識された感度の違いを利用して、原稿上の画像をスキャンして得られた電気信号の値を補正している。さらに、シェーディング補正部５００は、後述するコントローラ１１内のＣＰＵ３０１からゲイン調整の情報を受取ると、当該情報に応じたゲイン調整を行う。ゲイン調整は、原稿を露光走査して得られた電気信号の値を、どのように０〜２５５の輝度信号値に割り付けるかを調整するために用いられる。このゲイン調整により、原稿を露光走査して得られた電気信号の値を高い輝度信号値に変換したり、低い輝度信号値に変換したりすることができるようになっている。続いて、この原稿上の画像をスキャンする構成について説明する。
【００１７】
スキャナ部は、原稿上の画像を露光走査して得られた反射光をＣＣＤに入力することで画像の情報を電気信号に変換する。さらに電気信号をＲ，Ｇ，Ｂ各色からなる輝度信号に変換し、当該輝度信号を画像データとしてコントローラ１１に対して出力する。
【００１８】
なお、原稿は原稿フィーダ２０１のトレイ２０２にセットされる。ユーザが操作部１２から読み取り開始を指示すると、コントローラ１１からスキャナ部１３に原稿読み取り指示が与えられる。スキャナ部１３は、この指示を受けると原稿フィーダ２０１のトレイ２０２から原稿を１枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は原稿フィーダ２０１による自動送り方式ではなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であってもよい。
【００１９】
プリンタ部１４は、コントローラ１１から受取った画像データを用紙上に形成する画像形成デバイスである。なお、本実施例において画像形成方式は感光体ドラムや感光体ベルトを用いた電子写真方式となっているが、本発明はこれに限られることはない。例えば、微少ノズルアレイからインクを吐出して用紙上に印字するインクジェット方式などでも適用可能である。また、プリンタ部１４には、異なる用紙サイズ又は異なる用紙向きを選択可能とする複数の用紙カセット２０３、２０４、２０５が設けられている。排紙トレイ２０６には印字後の用紙が排出される。
【００２０】
＜コントローラ１１の詳細説明（図３）＞
図３は、画像形成装置１０のコントローラ１１の構成をより詳細に説明するためのブロック図である。
【００２１】
コントローラ１１はスキャナ部１３やプリンタ部１４と電気的に接続されており、一方ではＬＡＮ５０やＷＡＮ３３１を介してＰＣ４０や外部の装置などと接続されている。これにより画像データやデバイス情報の入出力が可能となっている。
【００２２】
ＣＰＵ３０１は、ＲＯＭ３０３に記憶された制御プログラム等に基づいて接続中の各種デバイスとのアクセスを統括的に制御すると共に、コントローラ内部で行われる各種処理についても統括的に制御する。ＲＡＭ３０２は、ＣＰＵ３０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するためのメモリでもある。このＲＡＭ３０２は、記憶した内容を電源ｏｆｆ後も保持しておくＳＲＡＭ及び電源ｏｆｆ後には記憶した内容が消去されてしまうＤＲＡＭにより構成されている。ＲＯＭ３０３には装置のブートプログラムなどが格納されている。ＨＤＤ３０４はハードディスクドライブであり、システムソフトウェアや画像データを格納することが可能となっている。
【００２３】
操作部Ｉ／Ｆ３０５は、システムバス３１０と操作部１２とを接続するためのインターフェース部である。この操作部Ｉ／Ｆ３０５は、操作部１２に表示するための画像データをシステムバス３１０から受取り操作部１２に出力すると共に、操作部１２から入力された情報をシステムバス３１０へと出力する。
【００２４】
ＮｅｔｗｏｒｋＩ／Ｆ３０６はＬＡＮ５０及びシステムバス３１０に接続し、情報の入出力を行う。Ｍｏｄｅｍ３０７はＷＡＮ３３１及びシステムバス３１０に接続しており、情報の入出力を行う。２値画像回転部３０８は送信前の画像データの方向を変換する。２値画像圧縮・伸張部３０９は、送信前の画像データの解像度を所定の解像度や相手能力に合わせた解像度に変換する。なお圧縮及び伸張にあたってはＪＢＩＧ、ＭＭＲ、ＭＲ、ＭＨなどの方式が用いられる。画像バス３３０は画像データをやり取りするための伝送路であり、ＰＣＩバス又はＩＥＥＥ１３９４で構成されている。
【００２５】
スキャナ画像処理部３１２は、スキャナ部１３からスキャナＩ／Ｆ３１１を介して受取った画像データに対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部３１２は、受取った画像データがカラー原稿か白黒原稿かや、文字原稿か写真原稿かなどを判定する。そして、その判定結果を画像データに付随させる。こうした付随情報を属性データと称する。このスキャナ画像処理部３１２で行われる処理の詳細については後述する。
【００２６】
圧縮部３１３は画像データを受取り、この画像データを３２画素ｘ３２画素のブロック単位に分割する。なお、この３２×３２画素の画像データをタイルデータと称する。図４は、このタイルデータを概念的に表している。原稿（読み取り前の紙媒体）において、このタイルデータに対応する領域をタイル画像と称する。なおタイルデータには、その３２×３２画素のブロックにおける平均輝度情報やタイル画像の原稿上の座標位置がヘッダ情報として付加されている。さらに圧縮部３１３は、複数のタイルデータからなる画像データを圧縮する。伸張部３１６は、複数のタイルデータからなる画像データを伸張した後にラスタ展開してプリンタ画像処理部３１５に送る。
【００２７】
プリンタ画像処理部３１５は、伸張部３１６から送られた画像データを受取り、この画像データに付随させられている属性データを参照しながら画像データに画像処理を施す。画像処理後の画像データは、プリンタＩ／Ｆ３１４を介してプリンタ部１４に出力される。このプリンタ画像処理部３１５で行われる処理の詳細については後述する。
【００２８】
画像変換部３１７は、画像データに対して所定の変換処理を施す。この処理部は以下に示すような処理部により構成される。
【００２９】
伸張部３１８は受取った画像データを伸張する。圧縮部３１９は受取った画像データを圧縮する。回転部３２０は受取った画像データを回転する。変倍部３２１は受取った画像データに対し解像度変換処理（例えば６００ｄｐｉから２００ｄｐｉ）を行う。色空間変換部３２２は受取った画像データの色空間を変換する。この色空間変換部３２２は、マトリクス又はテーブルを用いて公知の下地飛ばし処理を行ったり、公知のＬＯＧ変換処理（ＲＧＢ→ＣＭＹ）を行ったり、公知の出力色補正処理（ＣＭＹ→ＣＭＹＫ）を行ったりすることができる。２値多値変換部３２３は受取った２階調の画像データを２５６階調の画像データに変換する。逆に多値２値変換部３２４は受取った２５６階調の画像データを誤差拡散処理などの手法により２階調の画像データに変換する。
【００３０】
合成部３２７は受取った２つの画像データを合成し１枚の画像データを生成する。なお、２つの画像データを合成する際には、合成対象の画素同士が持つ輝度値の平均値を合成輝度値とする方法や、輝度レベルで明るい方の画素の輝度値を合成後の画素の輝度値とする方法が適用される。また、暗い方を合成後の画素とする方法の利用も可能である。さらに合成対象の画素同士の論理和演算、論理積演算、排他的論理和演算などで合成後の輝度値を決定する方法なども適用可能である。これらの合成方法はいずれも周知の手法である。間引き部３２６は受取った画像データの画素を間引くことで解像度変換を行い、１／２，１／４，１／８などの画像データを生成する。移動部３２５は受取った画像データに余白部分をつけたり余白部分を削除したりする。
【００３１】
ＲＩＰ３２８は、ＰＣ４０などから送信されたＰＤＬコードデータを元に生成された中間データを受取り、ビットマップデータ（多値）を生成する。
【００３２】
＜スキャナ画像処理部３１２の詳細説明（図５）＞
図５にスキャナ画像処理部３１２の内部構成を示す。
【００３３】
スキャナ画像処理部３１２はＲＧＢ各８ｂｉｔの輝度信号からなる画像データを受取る。
【００３４】
シェーディング補正部５００は、この輝度信号に対してシェーディング補正する。シェーディング補正とは、上述したように、ＣＣＤの感度のばらつきによって原稿の明るさが誤認識されてしまうことを防止するための処理である。さらに、上述したように、このシェーディング補正部５００は、ＣＰＵ３０１からの指示によりゲイン調整を行うことができるようになっている。
【００３５】
続いて、この輝度信号は、マスキング処理部５０１によりＣＣＤのフィルタ色に依存しない標準的な輝度信号に変換される。
【００３６】
フィルタ処理部５０２は、受取った画像データの空間周波数を任意に補正する。この処理部は、受取った画像データに対して、例えば７×７のマトリクスを用いた演算処理を行う。ところで、複写機や複合機では、図７における７０４タブの押し下げによりコピーモードとして文字モードや写真モードや文字／写真モードを選択することができる。ここでユーザにより文字モードが選択された場合には、フィルタ処理部５０２は文字用のフィルタを画像データ全体にかける。また、写真モードが選択された場合には、写真用のフィルタを画像データ全体にかける。また、文字／写真モードが選択された場合には、後述の文字写真判定信号（属性データの一部）に応じて画素ごとに適応的にフィルタを切り替える。つまり、画素ごとに写真用のフィルタをかけるか文字用のフィルタをかけるかが決定される。なお、写真用のフィルタには高周波成分のみ平滑化が行われるような係数が設定されている。これは、画像のざらつきを目立たせないためである。また、文字用のフィルタには強めのエッジ強調を行うような係数が設定されている。これは、文字のシャープさを出すためである。
【００３７】
ヒストグラム生成部５０３は、受取った画像データを構成する各画素の輝度データをサンプリングする。より詳細に説明すると、主走査方向、副走査方向にそれぞれ指定した開始点から終了点で囲まれた矩形領域内の輝度データを、主走査方向、副走査方向に一定のピッチでサンプリングする。そして、サンプリング結果を元にヒストグラムデータを生成する。生成されたヒストグラムデータは、下地飛ばし処理を行う際に下地レベルを推測するために用いられる。入力側ガンマ補正部５０４は、テーブル等を利用して非線形特性を持つ輝度データに変換する。
【００３８】
カラーモノクロ判定部５０５は、受取った画像データを構成する各画素が有彩色であるか無彩色であるかを判定し、その判定結果をカラーモノクロ判定信号（属性データの一部）として画像データに付随させる。
【００３９】
文字写真判定部５０６は、画像データを構成する各画素が文字を構成する画素なのか、網点を構成する画素なのか、網点中の文字を構成する画素なのか、ベタ画像を構成する画素なのかを各画素の画素値と各画素の周辺画素の画素値とに基づいて判定する。なお、どれにもあてはまらない画素は、白領域を構成している画素である。そして、その判定結果を文字写真判定信号（属性データの一部）として画像データに付随させる。
【００４０】
紙指紋情報取得部５０７は、シェーディング補正部５００から入力されたＲＧＢの画像データのうち紙指紋情報取得領域としてＣＰＵ３０１が指定した原稿の座標から領域を決定し、当該決定された紙指紋情報取得領域の画像データを取得する。なお、紙指紋情報取得領域として適切な領域を決定する方法については、図１５を用いて後述する。
【００４１】
図８は、この紙指紋情報取得部５０７が行う紙指紋情報取得処理を示すフローチャートである。
【００４２】
ステップ801では紙指紋情報取得部５０７において取得した画像データをグレイスケールの画像データに変換する。ステップ802では、ステップ801においてグレイスケールの画像データへ変換された画像において、印刷や手書きの文字といった誤判定の要因となりうるものを取り除いて照合を行うためのマスクデータを作成する。マスクデータは" 0 "or" 1 "の２値データである。グレイスケールの画像データにおいて、輝度信号値が第１の閾値（つまり、明るい）以上である画素については、マスクデータの値を" 1 "に設定する。また、輝度信号値が第１の閾値未満である画素についてはマスクデータの値を" 0 "に設定する。以上の処理を、グレイスケールの画像データに含まれる各画素に対して行う。ステップ803では、ステップ801においてグレイスケールに変換された画像データ及び、ステップ802において作成されたマスクデータの２つのデータを紙指紋情報として取得する。なお、ステップ801においてグレイスケールに変換された画像データ自体のことを紙指紋情報と称することもあるが、本実施例では、上記二つのデータを紙指紋情報と称することにする。
【００４３】
紙指紋情報取得部５０７は、上記紙指紋情報取得領域の紙指紋情報を不図示のデータバスを用いてＲＡＭ３０２に送る。
【００４４】
＜プリンタ画像処理部３１５の詳細説明（図６）＞
図６にプリンタ画像処理３１５においてなされる処理の流れを示す。
【００４５】
下地飛ばし処理部６０１は、スキャナ画像処理部３１２で生成されたヒストグラムを用いて画像データの下地色を飛ばす（除去する）。モノクロ生成部６０２はカラーデータをモノクロデータに変換する。Ｌｏｇ変換部６０３は輝度濃度変換を行う。このＬｏｇ変換部６０３は、例えば、ＲＧＢ入力された画像データを、ＣＭＹの画像データに変換する。出力色補正部６０４は出力色補正を行う。例えばＣＭＹ入力された画像データを、テーブルやマトリックスを用いてＣＭＹＫの画像データに変換する。出力側ガンマ補正部６０５は、この出力側ガンマ補正部６０５に入力される信号値と、複写出力後の反射濃度値とが比例するように補正を行う。中間調補正部６０６は、出力するプリンタ部の階調数に合わせて中間調処理を行う。例えば、受取った高階調の画像データに対し２値化や３２値化などを行う。
【００４６】
なお、スキャナ画像処理部３１２やプリンタ画像処理部３１５における各処理部では、受取った画像データに各処理を施さずに出力させることも可能となっている。このような、ある処理部において処理を施さずにデータを通過させることを、以下では「処理部をスルーさせる」と表現することにする。
【００４７】
＜紙指紋情報登録処理＞
ＣＰＵ３０１は、紙指紋情報取得部５０７からＲＡＭ３０２に送られてきた所定領域の紙指紋情報を読出し、当該読出された紙指紋情報を不図示のサーバに登録することが可能となっている。この登録は、ＲＡＭ３０２内に格納されたプログラムを実行することによって行われる。
【００４８】
＜紙指紋情報照合処理＞
ＣＰＵ３０１は、紙指紋情報取得部５０７からＲＡＭ３０２に送られてきた紙指紋情報を読出し、当該読出された紙指紋情報と他の紙指紋情報とを照合すべく制御することが可能となっている。なお、他の紙指紋情報は、本実施例においてサーバに登録されている紙指紋情報のことを意味する。
【００４９】
図９は、この紙指紋情報照合処理を示すフローチャートである。本フローチャートの各ステップは、ＣＰＵ３０１により統括的に制御される。
【００５０】
ステップ901では、サーバに登録されている紙指紋情報を取得し、ＲＡＭ３０２へ保存する。
【００５１】
ステップ902では、紙指紋情報取得部５０７から送られてきた（登録されていた）紙指紋情報と、ステップ901において取出された（今、取出されたばかりの）紙指紋情報との照合をする。照合にあたっては、まず、登録されていた紙指紋情報と取出された紙指紋情報とが夫々異なった位置から取得された可能性があることを懸念して、位置ずれ補正を行う。この位置ずれ補正は以下のような手法となっている。
【００５２】
＜位置ずれ補正＞
まず、式（１）を用いて２つの紙指紋情報の誤差値Ｅ(i,j) (２つの紙指紋情報の位置を(i,j)ずらしたときの)を（２ｎ−１）×（２ｍ−１）個求める。
【００５３】
【数１】
2010068198.tif 000003
式（１）においてα1はステップ901で取出された（登録されていた）紙指紋情報中のマスクデータである。ｆ1はステップ901で取出された（登録されていた）紙指紋情報中のグレイスケール画像データである。α2はステップ902で紙指紋情報取得部５０７から送られてきた（今、取出されたばかりの）紙指紋情報中のマスクデータである。ｆ2はステップ902で紙指紋情報取得部５０７から送られてきた（今、取出されたばかりの）紙指紋情報中のグレイスケール画像データである。
【００５４】
前記誤差イメージから紙指紋情報照合の結果を数値化するために、以下の処理を行う。式（１）の関数により求まった誤差イメージの画素の各輝度信号値を反転させ負の値にする。さらに、各負の値の平均を求め、当該平均値と上記各負の値との差分値を求める。続いて、当該求められた各差分値から標準偏差を求め、上記各負の値を標準偏差で割り商を求める。最後に、求められた商のうちの最大値を２つの紙指紋情報のマッチング度合いとする。その結果、この紙指紋情報のマッチグ度合いは０以上の値で表され、このマッチング度合いが大きければ大きいほど、上記二つの紙指紋情報の一致度は高い。
【００５５】
ステップ903では、ステップ902において求められた２つの紙指紋情報のマッチング度合いと所定の閾値との比較を行って、「有効」「無効」を決定する。
【００５６】
コントローラ１１の説明は以上である。
【００５７】
＜操作画面の説明＞
図７は画像形成装置１０における初期画面である。領域７０１は、画像形成装置１０がコピーできる状態にあるか否かを示し、かつ設定したコピー部数を示す。原稿選択タブ７０４は原稿のタイプを選択するためのタブであり、このタブが押し下げられると文字、写真、文字／写真モードの３種類の選択メニューをポップアップ表示される。フィニッシングタブ７０６は各種フィニッシングに関わる設定を行うためのタブである。両面設定タブ７０７は両面読込み及び両面印刷に関する設定を行うためのタブである。読み取りモードタブ７０２は原稿の読み取りモードを選択するためのタブである。このタブが押し下げられるとカラー／ブラック／自動（ＡＣＳ）の３種類の選択メニューがポップアップ表示される。なお、カラーが選択された場合にはカラーコピーが、ブラックが選択された場合にはモノクロコピーが行われる。また、ＡＣＳが選択された場合には、上述したモノクロカラー判定信号によりコピーモードが決定される。
【００５８】
領域７０８は、紙指紋情報登録処理を選択するためのタブである。紙指紋情報登録処理については、後述する。領域７０９は、紙指紋情報照合処理を選択するためのタブである。この紙指紋情報照合処理については、後述する。
【００５９】
領域７１０はシステムの状況を示すためのタブである。このタブが押し下げられると、画像形成装置１０内のＨＤＤ３０４に保存されている画像データの一覧が表示画面に表示されるようになっている。
【００６０】
＜紙指紋情報登録処理のタブが押下された際の動作＞
続いて、図７に示す紙指紋情報登録タブ７０８がユーザにより押下された後にスタートキーが押下された際に、実行される紙指紋情報登録処理について図１０を用いて説明する。
【００６１】
ステップ１００１では、スキャナ部１３で読み取られた原稿を、画像データとしてスキャナＩ／Ｆ３１１を介してスキャナ画像処理部３１２に送るように制御する。スキャナ画像処理部３１２で画像処理が行われた画像データは、圧縮部３１３で圧縮された後、ＲＡＭ３０２へ転送される。ステップ１００２でＣＰＵ３０１はＲＡＭ３０２に転送された画像データに対して、紙指紋を取得すべき座標を求めるための座標算出を行う。この座標算出の詳細は後述する。
【００６２】
ステップ１００３では、ＣＰＵ３０１は紙指紋情報取得部５０７へ紙指紋を取得する座標を通知する。
【００６３】
ステップ１００４では、スキャナ画像処理部３１２は、一般的なゲイン調整値よりも小さいゲイン調整値を、シェーディング補正部５００に設定する。そして、画像データに対して上記小さいゲイン調整値を適用することで得られた各輝度信号値を紙指紋情報取得部５０７に対して出力する。その後、出力データに基づいて、紙指紋情報取得部５０７は、ＣＰＵ３０１から通知された座標から紙指紋情報を取得する。そして、当該取得された紙指紋情報を不図示のデータバスを用いてＲＡＭ３０２に送る。
【００６４】
紙指紋取得技術では、白い領域から繊維のパターンを取得する以上、暗めの画像データを得ることは必須である。そのため、本実施例では、スキャナ画像処理部３１２が一般的なゲイン調整値よりも小さいゲイン調整値を設定することで、紙指紋情報取得用の暗い画像データを得た。しかしながら、暗い画像データを得る方法としてはこれに限られない。例えば、光量を落としてスキャンするような方法も考えられる。
【００６５】
ステップ１００５では、ＣＰＵ３０１は、サーバから管理番号を発行してもらい、当該管理番号と紙指紋情報とを夫々関連付けてサーバに登録する。
【００６６】
ステップ１００６では、管理番号を表示画面に表示するようにＣＰＵ３０１は制御する。
【００６７】
＜紙指紋情報照合処理のタブが押下された際の動作＞
続いて、図７に示す紙指紋情報照合タブ７０９がユーザにより押下され、その後、管理番号が入力された後にスタートキーが押下された際の動作について図１１を用いて説明する。
【００６８】
ステップ１１０１では、ＣＰＵ３０１は、スキャナ部１３で読み取られた原稿を、画像データとしてスキャナＩ／Ｆ３１１を介してスキャナ画像処理部３１２に送るように制御する。
【００６９】
ステップ１１０２では、スキャナ画像処理部３１２は、この画像データに対して図６に示す処理を行う。
【００７０】
さらに、このステップ１１０２では、スキャナ部１３で読み取られた原稿を、画像データとしてスキャナＩ／Ｆ３１１を介してスキャナ画像処理部３１２に送るように制御する。スキャナ画像処理部３１２で画像処理が行われた画像データは、圧縮部３１３で圧縮された後、ＲＡＭ３０２へ転送される。ステップ１１０３でＣＰＵ３０１はＲＡＭ３０２に転送された画像データに対して、紙指紋を取得すべき座標を求めるための座標算出を行う。この座標算出の詳細は後述する。
【００７１】
ステップ１１０４では、ＣＰＵ３０１は紙指紋情報取得部５０７へ紙指紋を取得する座標を通知する。
【００７２】
ステップ１１０５では、スキャナ画像処理部３１２は、一般的なゲイン調整値よりも小さいゲイン調整値を、シェーディング補正部５００に設定する。そして、画像データに対して上記小さいゲイン調整値を適用することで得られた各輝度信号値を紙指紋情報取得部５０７に対して出力する。その後、出力データに基づいて、紙指紋情報取得部５０７は、ＣＰＵ３０１から通知された座標から紙指紋情報を取得する。そして、当該取得された紙指紋情報を不図示のデータバスを用いてＲＡＭ３０２に送る。
【００７３】
さらに、このステップ１１０６では、入力された管理番号と関連付けられた状態でサーバに登録されている紙指紋情報を取得する。そして、当該取得された情報を不図示のデータバスを用いてＲＡＭ３０２に送る。
【００７４】
ステップ１１０７では、ＣＰＵ３０１は、サーバに登録されていた紙指紋情報と、紙指紋情報取得部５０７を通じて取得した紙指紋情報とを照合する。この照合処理については、＜紙指紋情報照合処理＞で図９を用いて説明した通りである。
【００７５】
ステップ１１０８では、ＣＰＵ３０１は、＜紙指紋情報照合処理＞により得られた結果（有効か無効か）を操作部１２の表示画面上に表示するように制御する。
【００７６】
＜紙指紋情報取得領域の決定方法＞
紙指紋情報取得領域の決定方法に関して詳細に説明を行う。図１２は紙指紋情報取得領域の決定方法を行うためのフローチャートである。
【００７７】
まず、紙指紋の登録処理または紙指紋の照合処理実行時に、Ｓ１２０１においてＣＰＵ３０１の指示によりスキャナから画像データがＲＡＭ３０２へ転送され、ＲＡＭ３０２へ転送された画像データに対して、画像中の部分領域の属性を分類するための処理（以下ではこれをブロックセレクション処理と呼ぶことにする）を行う。
【００７８】
次にＳ１２０２において、ＲＡＭ３０２へ転送された画像データは多値画像データであるため、ＣＰＵ３０１は伸張部３１８および多値２値部３２４を使用し、ＲＡＭ３０２に記憶されている多値の圧縮された画像データを伸張部３１８によって伸張した後、多値２値部３２４によって２値データへ変換して、再びＲＡＭ３０２に２値化された画像データを転送する。
【００７９】
次にＳ１２０３の処理において、ブロックセレクションの処理を行う。ブロックセレクションの詳細は図１３のフローチャートを使用して説明を行う。
【００８０】
ステップＳ１３０１において、ブロックセレクションの処理速度を速くしたい場合には、イメージデータの間引きを行う。ここでイメージデータの間引きが行われた場合には、ブロックセレクション処理はその間引かれたイメージに対して行われる。
【００８１】
具体的なイメージデータの間引きは、画素のｍ×ｍブロックにおける黒画素の連結性を調べることにより行われる。例えば、３×３の画素ブロックにおいて、連結した黒画素が２つ存在する場合は、その３×３の画素ブロックは１つの黒画素に間引かれる。逆に、そのブロックにおいて、連結して白画素が２つ存在する場合は、そのブロックは１つの白画素に間引かれる。
【００８２】
次に、ステップＳ１３０２において、画素のイメージを解析し、連結性が探索されると共に、その大きさや他の連結成分に対する相対的な位置に応じて分類される。１つの連結成分というのは、白画素によって完全に囲まれた黒画素の集合である。従って、１つの黒画素連結成分は、他の黒画素連結成分から少なくとも１つの白画素により完全に分離される。
【００８３】
次に、ステップＳ１３０２において、近接した連結成分は、ギャップラインを挟まない限りグループ化される。ここでのグループ化は、垂直方向に行う場合と水平方向に行う場合とがある。これはグループ化しようとするテキストユニットが縦書きであるか横書きであるかということに対応しており、両方向に近接した連結成分間の距離を予め水平及び垂直それぞれの方向について調べておき、水平方向の距離が小さい場合には水平方向に、垂直方向の距離が小さい場合には垂直方向にグループ化を行うこととする。
【００８４】
更に、ステップＳ１３０３では、行間で垂直若しくは水平方向に延長したギャップと、非テキストユニットの垂直方向に延長した境界とを検出することにより、テキストユニットが行にグループ化されるかどうかを決定する。
【００８５】
次に、ステップＳ１３０４において、上述のステップＳ１３０３でグループ化された行が、先にグループ化された方向とは逆方向についてスペースが狭ければ、その方向に再度グループ化されブロック化される。一方、非テキストユニットはそのイメージページに対する境界として用いられる。２つの非テキストユニットの間にあるテキストユニットは、他のテキストラインユニットとは分けられて処理される。
【００８６】
以上説明したように、スキャンした画像を図１３のフローに従ってブロック化し、図１４に示されるようなブロックを生成する。ブロックが生成されたのち、Ｓ１２０４の処理において、これらのブロックの位置情報や、ブロックの大きさをもとに紙指紋情報取得領域を算出する。そしてＳ１２０５の処理において、ＣＰＵ３０１は、Ｓ１２０４で算出した紙指紋情報取得領域の座標情報を、紙指紋情報取得部５０７へ設定し紙指紋情報を取得させる。
【００８７】
紙指紋情報取得領域を決定の方法は、ブロックの位置情報やブロックの大きさの情報を予め定められた計算式に当てはめ、原稿上の座標を計算し、この座標から紙指紋情報を取得する。図１４に示すように紙指紋の領域の先頭座標（α、Β）を求め、座標（α、Β）からＸ方向、Ｙ方向の紙指紋の取得領域の長さは、予め定められている固定値となる。
【００８８】
次に紙指紋を取得する領域を求める一例を図１５のフローチャートを用いて説明を行う。
【００８９】
Ｓ１５０１の処理において、ブロック化処理の後、ブロック領域以外のなにも印字がない空白の領域を求める。この処理によって、例えば図１６に示すようなＡからＦまでの空白ブロックを求めることができる。次にＳ１５０２の処理において、Ｓ１５０１で求めた空白ブロックの中で、紙指紋取得のためＸ、Ｙ方向に連続して予め定められたレングス、例えば１２８画素分の空白が連続する空白ブロックを選択する。図１６の例では、連続して１２８画素分の領域がとれる空白ブロックがＡ、Ｃ、Ｆ、の３つだとすると、これら３つの空白ブロックが紙指紋取得領域の候補として選択される。次にＳ１５０３の処理において、Ｓ１５０２の処理で候補として選択されたブロックの１つをさらに選択する。選択の方法としての例としては、図１３のフローで求められた印字がされているブロックの数を利用して、その印字されているブロックの数が例えば３であった場合には、空白ブロックの３番目、つまり空白ブロックのＦの領域を選択するなどの方法が考えられる。空白ブロックの数が、図１３で求められた印字されているブロックの数よりも小さい場合は、もう一度空白ブロックの１つめにもどって選択することなどが考えられる。
【００９０】
次のＳ１５０４の処理において、Ｓ１５０３で選択された空白ブロック先頭座標からＸ方向、Ｙ方向に連続して１２８画素分の領域を紙指紋として取得する。
【００９１】
以上説明したように、印字されている原稿から印字されている領域をブロック化し、次に印字されているブロックから、空白のブロックを検出して、印字されているブロックの情報を利用して、空白ブロックの中から紙指紋を取得する領域を選択することにより、原稿ごとに紙指紋を取得する領域を変更可能とすることで、同じ原本を読み込んだ場合は同じ場所の紙指紋を取得することが可能となり、マークなどの特別な画像を余計に印刷する必要がなくなる。またユーザは原本上のどの領域の紙指紋を使用しているかがわからないため、悪意をもって塗りつぶしや切除などの加工を行いずらくすることが可能となる。また、図１５のフローにおいて、空白ブロックの選択方法をさらに複雑な計算式に変更することや、選択された空白ブロックの先頭座標から紙指紋情報を取得するのではなく、空白ブロックの内部のなかからさらに印字されているブロックの数や、座標、面積の大きさなどの情報を利用して、紙指紋領域を取得する座標を算出するようにすることで、紙指紋取得の座標を悪意をもって加工することを、さらに抑止できるようになる。
【実施例２】
【００９２】
次に本発明に関わる第二の実施例の説明を行う。第二の実施例が第一の実施例と異なるところは、第一実施例の図１３のフローチャートでもとめた印字がされている領域を単にブロック化するだけでなく、ブロック化されたあと、そのブロックの属性情報を詳細に求め、その詳細な属性情報も利用して、紙指紋取得の領域を決定する点である。
【００９３】
次に図１３のＳ１３０２のステップにおいて、さらに詳細な属性情報を求める方法について説明を行う。
【００９４】
図１７、図１８、図１９は、上述したステップＳ１３０２の処理を詳細に示すフローチャートであり、どのように画素イメージデータの連結画素を検出し、それらの連結画素を分類しているかを示すものである。
【００９５】
ステップＳ１７０１において、輪郭線追跡により画素イメージデータの探索を行う。輪郭線追跡は、図２０に示されるように、イメージをスキャンすることにより行われる。スキャンは、矢印Ａで示す右下から始まり、図形の右端に出会うまで上方に行われていく。尚、このスキャンは、他の方向、例えば左上から右下に向けて行ってもよい。黒画素にぶつかると、隣接した画素が、黒画素かどうかを図２０の３１に示すパターンの方向の順に調べる。この探索は、中心から見て８方向のベクトルで表されるので８方向探索と呼ばれる。隣接した黒画素が存在すると、このプロセスにより、図形の外部輪郭が得られる。具体的には、図２１に示すように、矢印Ａ方向のスキャンが文字“Ｑ”３２の端に対応するポイントにぶつかる。そこで、隣接画素の調査を上述のパターン３１によって行い、文字“Ｑ”の外輪郭を追跡する。尚、閉じた輪郭の内側の部分の追跡は行わない。
【００９６】
次に、８方向探索により得られた輪郭線、即ち１つの連結成分が取り出されると、次の黒画素に出会うまでスキャンを続行する。そして、例えば完全な黒領域を表していると思われるオブジェクト３４が８方向探索される。同様に、手書き文字“non-text”である非テキストのオブジェクト３５が追跡され、更に、単語“text”を形成するこの文字の集合オブジェクト３６が追跡される。尚、図２０で示されるスキャンは、全ての連結成分が検出されるまで、続けられる。
【００９７】
そして、ステップＳ１７０２において、すべての連結成分を矩形で切り出す。この場合、個々の連結成分を覆う可能な限り最小の矩形が描かれることになる。こうして、図２１におけるオブジェクト３２の回りに矩形３７が、オブジェクト３４の回りに矩形３９が、オブジェクト３５の回りに矩形４０が描かれる。また、テキストオブジェクト３６ａ，３６ｂ，３６ｃ，３６ｄに対する矩形４１ａ〜４１ｄも同様である。
【００９８】
次に、ステップＳ１７０３で、すべての矩形に対して木構造における位置付けを行う。殆どの場合、ステップＳ１７０３で得られた木構造は、各オブジェクトに対してルートから直接生じる。これは、連結成分の外部輪郭だけが追跡され、閉領域の内部は追跡されないからである。これにより、図２２のように連結成分３２に対応する矩形３７はページのルートから直接生じる。しかし、非テキストオブジェクト３５を囲む矩形４０やテキストオブジェクト３６ａ，３６ｂを囲む矩形４１ａ，４１ｂのように完全にその矩形が他の矩形に含まれてしまう場合は、これらの連結成分は包含される連結成分（この場合、成分３４）の子となる。更に、成分３４のような少なくとも１つの子を持つそれぞれの連結成分は、成分それ自身を“主要な子”とする。図２２の例では、成分３９は他の子成分４０，４１ａ，４１ｂと共に自分自身を主要な子として含んでいる。
【００９９】
次に、ステップＳ１７０４において、木における第一レベルのそれぞれの連結成分がテキストユニットか非テキストユニットに分類する。この分類過程は２つのステップから成り立つ。最初のステップでは、連結成分を囲む矩形を予め定めたサイズと比較する。ここで連結成分を囲む矩形の高さがフォントサイズの最大値に対応する予め定められた値を越える場合、或いは矩形の幅がページ幅を経験的に決められた一定の値（“５”で満足のいく結果が得られている）で割った値より大きい場合、その連結成分を非テキストユニットと分類し、“非テキスト”の属性をそのユニットに与える。
【０１００】
第２ステップでは、属性の与えられなかった残りのすべてのユニット、即ち非テキストとして分類されなかったユニットを残りすべての連結成分から得られる統計的なサイズに基づいて決められた値と比較する。特に、非テキストとみなされなかったすべての矩形の平均高を計算する。この平均高に、ある一定値（一般には“２”）をかけることによって適応的なしきい値が得られる。このしきい値より大きいすべてのユニットは非テキストに分類される。一方、このしきい値より小さいユニットはテキストとみなす。こうして、各ユニットを分類し、適切な属性を与える。そして、上述した２つの分類に続いて更にいくつかの処理を行う。これについては以下で詳しく述べる。
【０１０１】
上述したように、ツリーの第一レベルのすべてのユニットがテキストか非テキストかに分類された後、テキストユニットの子は、主要な子（即ち、自分自身）を含めてテキストとして分類される。非テキストの主要な子は非テキストとして残されるが、それ以外の子はテキストとして分類される。
【０１０２】
次に、ステップＳ１７０５で最初のユニットを選択し、ステップＳ１７０６でもしそのユニットがテキストであればステップＳ１７０７へ進み、次のユニットを選択する。そして、非テキストユニットが選択されるまでステップＳ１７０６〜Ｓ１７０７の処理を繰り返し、非テキストユニットが選択されるとステップＳ１７０８へ進む。
【０１０３】
このステップＳ１７０８では、非テキストユニットが子を持っているかどうかを調べる。例えば、図２２に示す例では、非テキストユニット３９が非テキストである主要な子３９とテキストである４０，４１ａ，４１ｂという子を持っている。ここで、そのユニットに子が存在する場合は、ステップＳ１７０９へ進み、そのユニットがハーフトーン（又はグレースケール）かどうかのフィルタリングを行う。このハーフトーンフィルタリングでは、その子を調べ“ノイズ”サイズより小さいものの数を計数する。ここで、“ノイズサイズ”のユニットというのはその高さが入力イメージデータにおける最小のフォントサイズより小さいものである。ノイズサイズより小さい子の数が子の総数の半分より大きい場合、そのユニットはハーフトーンイメージと判定する。その結果、ステップＳ１７１０からＳ１７１１へ進み、“ハーフトーン”という属性を与え、ステップＳ１７１２でハーフトーンイメージの中のテキストを調べる。即ち、ハーフトーンイメージの子の中でテキストサイズのものはハーフトーンイメージの子ではなく、ハーフトーンイメージと同レベルになるように、木構造を修正する。この処置が適切であれば、ハーフトーンイメージ中の文字認識も可能になる。そして、ステップＳ１７０７に戻り、次のユニットを選択し、上述の処理を繰り返す。
【０１０４】
また、ステップＳ１７０９におけるハーフトーンフィルタリングの結果、そのユニットがハーフトーンでない場合、ステップＳ１７１０からＳ１７１３へ進み、そのユニットの主要な子を更なる処理のために選択する。そして、ステップＳ１７１４に進む。
【０１０５】
一方、上述のステップＳ１７０８で非テキストユニットであって子をもたないと判定した場合、或いはステップＳ１７１３で主要な子が後の処理のために選択された場合は、ステップＳ１７１４でそのユニットのフレームフィルタリングを行う。このフレームフィルタリングは、そのユニットがフレーム（枠）であるかどうかを判定する処理である。ここでフレームであるとは、そのユニットを囲むような矩形を構成する殆ど同じ長さの幅や高さをもった平行な直線が存在するということである。特に、注目ユニットにおいて、図２３に示すような非テキストユニット４２が４４に示すような輪郭成分を持つ連結成分４３を含んでいる場合には、行ｉにおけるこの連結成分の線幅はｘ、即ち輪郭線の左端４５ａから右端４５ｂまでの距離になる。また、行ｊでは、連結成分の内部に２つの線幅が存在する。つまり、４６ａ−４６ｂ間と４７ａ−４７ｂ間である。そして、最も長い線幅である４７ａ−４７ｂ間が、距離ｘとして定義される。
【０１０６】
非テキストユニット４２におけるすべての行において距離ｘが計算され、その非テキストユニットがフレームかどうかを次の不等式によって調べる。
【０１０７】
Σ（Ｘｋ−Ｗ）＊＊２／Ｎ＜［しきい値］；ｋ＝１〜Ｎ
ここで、Ｘｋは上述したように、連結成分中の第ｋ行における最も長い線幅、Ｗは矩形４２の幅、Ｎは行の数であり、しきい値は枠が多少傾いていても枠として検知できるように予め計算された値である。また、１°の傾きを許容するためには、ｓｉｎ（１°）×Ｌ＋［一定値］のしきい値でよい。この一定値というのはステップＳ１７０４で計算した文字の平均高である。
【０１０８】
ここで、上記不等式を満たす場合、そのユニットをフレームデータと判定し、ステップＳ１７１５からＳ１７１６へ進め、“フレーム”という属性を付加する。これにより、例えば“フレームであり、表”或いは“フレームであり、ハーフトーン”のような判定がフレームに対して可能になる。
【０１０９】
ステップＳ１７１６の処理を終了すると、そのフレームデータに表或いは表形式のものが含まれているか否かを調べる。即ち、ステップＳ１７１７で連結成分内の白輪郭を得るために検査を行う。白輪郭というのは、ステップＳ１７０１で得られた（黒）輪郭と基本的には同じであるが、ただ黒画素の代わりに白画素を調べて得られるものである。図２４に示すように、非テキストユニットの内部が右下から左上に向かって矢印Ｂの方向に探索される。初めて白画素に出会うと、その点から近傍の白画素に対して５１のような外向き探索が行われる。この時、５１の外向き探索において１から４までの方向しか必要ないことに注意すべきである。即ち、ここでの白輪郭追跡の処理は４方向探索ということになる。すべての白輪郭が取り出されるまで、この処理は続けられる。例えば、白輪郭追跡は、黒線分５２，５３，５４，５５で囲まれる輪郭部を取り出すことであり、同様の処理は５６のような黒画素の内部に対しても行われる。非テキストオブジェクト中のすべての閉じた白輪郭が追跡されるまで、上述した矢印Ｂ方向へのスキャンが続けられる。
【０１１０】
次に、ステップＳ１７１８において、非テキストユニットの密度を計算する。この密度は連結成分内の黒画素の数をカウントし、矩形で囲まれた画素の総数により黒画素の数を割ることによって算出される。そして、ステップＳ１７１９において、探索された非テキストユニット内の白輪郭の数を判定する。その結果、白輪郭の数が４以上であれば、その非テキストイメージはテーブルか、テキストブロックがテーブル状に並んだものであると判断し、ステップＳ１７２０で白輪郭の充填率を計算する。この白輪郭の充填率というのは、非テキストイメージ中の白輪郭で囲まれる面積の割合を示すものである。図２４に示す例では、５７，５９のように完全に白画素だけで構成される白輪郭もあれば、また６０，６１のように内部に黒画素領域を含む白輪郭も存在する。ここで、充填率が高ければ、おそらく、その非テキストイメージはテーブルか、テキストブロックがテーブル状に並んだものである。この推定をより確実にするために、注目白輪郭に対して水平垂直方向に格子状の内部構造を持っているか否かを調べる。特に、ステップＳ１７２２で水平又は垂直方向に少なくとも２つの輪郭線を横断していないような境界線を持つ白輪郭は、格子状になっていないとみなして再結合する。例えば、図２４に示す例では、白輪郭５９の左境界６２と右境界６３は別の白画素６０の左境界６４と右境界６５と一致するように垂直方向に伸びている。そのため、これらの白輪郭は格子状に並んでいると判断され再結合されることはない。また同様に、白輪郭６３の上境界６６と下境界６７は別の白画素７０の上境界６８と下境界６９と一致するように水平方向に伸びている。その結果、これらの白輪郭も格子状に並んでいると判定され、再結合されない。
【０１１１】
図２５乃至図２７は、白輪郭が結合される場合を説明する図である。図２５は、例えば非テキストユニット７１がハーフトーンイメージからバイナリイメージまでのユニットを含む非テキストユニットの例を表している。図中、非テキストイメージ７１は、黒画素領域７２と白画素領域７４〜７９を含んでいる。つまり、図２５の例では、この白画素領域の充填率は十分高いのでステップＳ１７２１で再結合Ｓ１７２２へ進む。まず、白輪郭７４の上端と下端を白輪郭７７の上端・下端と比較する。この例では、これらの上端及び下端は一致しないので７５と７６は結合され、図２６に示すように、新たな白輪郭７６′が作り出される。
【０１１２】
次に、白輪郭７７の左右の境界を白輪郭７８の左右の境界と比較する。これらの境界は一致しないので７７と７９は再結合され、図２７に示すように、新たな白輪郭７７′となる。そして、この処理は、再結合が起らなくなるまで水平及び垂直方向に繰り返される。
【０１１３】
上述したように、テーブルの白輪郭は結合されにくく、テーブル以外、例えばハーフトーンイメージや線図形のようなものは結合され易い。次に、ステップＳ１７２３で再結合率を計算する。その結果、再結合率が高いか再結合処理の後に残った白輪郭の数が４未満であればステップＳ１７２８へ進み、その非テキストユニットをハーフトーンイメージか線図形と判定する。
【０１１４】
また、ステップＳ１７２３で再結合率が高くないか、又は４個以上の白輪郭が残った場合、ステップＳ１７２４へ進み、テーブルと判定する。次に、ステップＳ１７２５では、新たにテーブルと判定されたものの内部を調べ、含まれる連結成分の探索や分類を行う。そして、ステップＳ１７２６で新しい内部連結成分に従って木構造を更新する。次に、ステップＳ１７２７で内部連結成分をテキストか非テキストとして再び分類し、適切な属性を付加する。この処理は、既に説明したステップＳ１７０２〜Ｓ１７０４の処理と同じである。その後、ステップＳ１７０７へ戻り、次のテキストユニットを選択する。
【０１１５】
ここで、再びステップＳ１７２１とＳ１７２３に戻り、もし充填率が高くないか、再結合率が高くない場合、その非テキストユニット（ここでは、枠図形）はハーフトーンイメージか線図形の可能性が高い。そこで、ステップＳ１７２８において、そのユニットがハーフトーンイメージか線図形かをそのユニット中の黒画素の水平方向のランレングスの平均、白画素と黒画素の割合及び密度によって決定する。一般的に、非常に暗いイメージはハーフトーンイメージとみなされ、白く明るいイメージは線図形と判定される。特に、白画素の平均ランレングスが殆ど“０”の場合（殆ど真黒か、斑模様のイメージである）で、更にステップＳ１７１８で求めた密度が白より黒の方が大きい場合（即ち、密度がしきい値の約０．５（これを１番目のしきい値とする）よりも大きいとき）は、そのフレームユニットをハーフトーンと判定する。もし、密度が１番目のしきい値よりも大きくない場合には、そのユニットを線図形と判定する。
【０１１６】
また、もし白画素の平均ランレングスが殆ど“０”でなく、かつ白画素の平均ランレングスが黒画素の平均ランレングスよりも大きい場合には、そのフレームユニットを線図形と判定する。しかし、白画素の平均ランレングスが黒画素の平均ランレングスよりも大きい場合は、そのフレームユニットを線図形と判定する。また、白画素の平均ランレングスが黒画素の平均ランレングスより大きくない場合は（即ち、これも黒が支配的なイメージである）、更に詳細なテストが必要である。
【０１１７】
特に、黒画素の数が白画素の数よりはるかに少ないとき（即ち、黒画素の数が白画素の２倍（これを２番目のしきい値としよう）より小さい）、このフレームユニットをハーフトーンと判定する。一方、黒画素の数を白画素の数で割った値が２番目のしきい値より大きくないが、ステップＳ１７１８で計算した密度が１番目のしきい値より大きい場合は、そのフレームユニットをハーフトーンイメージと判定する。そうでなければ、線図形と判定する。
【０１１８】
上述のように、ステップＳ１７２８でフレームユニットが線図形と判定されるとステップＳ１７２９へ進み、“線図形”という属性を付加し、更にステップＳ１７３０ですべての子を除去する。特に、あるユニットをひとたび線図形と判定すると、そのユニットに対しては再度文字認識処理を行わない。その後、上述のステップＳ１７０７に処理を戻し、次のテキストユニットを選択する。
【０１１９】
一方、ステップＳ１７２８で、フレームユニットが線図形と判定されなければステップＳ１７３１へ進み、ここで“ハーフトーン”という属性を付加し、続くステップＳ１７３２でそのユニットの子のうち、テキストサイズの子を除去する。尚、テキストサイズより大きいすべての子はフレームハーフトーンイメージの子として残ることが許される。そして、上述のステップＳ１７０７に処理を戻し、次のテキストユニットを選択する。
【０１２０】
ここで、ステップＳ１７１９へ戻り、もし白輪郭成分の数が４より大きくない場合は、そのフレームユニットはテーブルでないと判断する。そして、ステップ１７３３へ進み、ステップＳ１７１８で求めた密度をあるしきい値（約０．５）と比較する。このしきい値はフレーム内のテキストユニットや線図形が全画素の半分より小さいはずだということで選ばれた値である。もし密度がこのしきい値より小さければステップＳ１７３４へ進み、ここでフレームユニットの内部構造を調べる。この処理は、既に述べたステップＳ１７０１でのフレームユニットの内部構造に対する処理と同様である。
【０１２１】
また、ステップＳ１７３３で、もし密度が予め定めたしきい値より小さくない場合はステップＳ１７４２へ進み、そのフレームユニットが線図形かハーフトーンイメージのどちらに分類されるか、或いはそのフレームが分類不可能（即ち、そのフレームは“未知”）という判定が行われる。
【０１２２】
ステップＳ１７１５へ戻り、ステップＳ１７１４でのフレームフィルタリングによって非テキストユニット内にフレームが検知されなかった場合、ステップＳ１７３５へ進み、その非テキストユニットに“線”が含まれているか否かを判定する。“線”はテキストの境界を表すのに有用な非テキストユニットといえる。しかし、そのような線によって区切られる（囲まれる）テキストは、その線に非常に近い場合が多く、接触が起きている可能性がある。そこで、線の検出処理としてはテキストが接触している場合と接触していない場合の両方を考慮する必要がある。
【０１２３】
まず、接触が起きていない場合の線を探索するために、非テキストユニットの縦方向のヒストグラムを求める。図２８に示す（Ａ）の場合、線のヒストグラム４８はその高さがほぼ線幅に等しい均一の値になるはずである。線幅というのは近似的にテキストユニットの幅（“Ｗ”）に等しいが、もし違いが生じるとすれば、それは傾きθｓのせいである。傾きは原稿が入力された時点でおきている。そこで、非テキストユニットが線を含んでいるか否かを判定するために、ヒストグラム中の各cell（セル）ｋの高さ４９を幅Ｗと比較する。具体的には、次式のように、これらの値の差の２乗平均をしきい値と比較する処理である。
【０１２４】
Σ（cellｋ−Ｗ）＊＊２／Ｎ＜［しきい値］；ｋ＝１〜Ｎ
このしきい値は非テキスト内の線のねじれ、又は、傾きθｓを許容するように計算される。１°のねじれや傾きに対しては、
Σ[ｋ・ｓｉｎ（１°）／Ｎ]＊＊２
というしきい値が満足な結果を生じることがわかっている。
【０１２５】
上述の不等式によって非接触の線が検出できなかった場合、接触が起きている線が含まれていないか否かの探索を行う。注目している非テキストユニット中に接触している線が含まれているか否かを調べるためには、線状のものがユニットの境界線近くに存在するか否かを調べればよい。例えば、図２８に示す（Ｂ）の場合、ユニットを囲む矩形の境界線近くに線が存在する。この場合、境界線からの距離の２乗和を計算することによって調べることができる。即ち、このケースでは、次式の不等式が計算される。
【０１２６】
Σ（Ｘｋ）＊＊２／Ｎ＜［しきい値］；ｋ＝１〜Ｎ
ここで、左辺が予め定めたしきい値より小さければ接触している線が存在していることがわかる。このしきい値は、接触をおこしていない線の場合と同じ値を使えばよい。
【０１２７】
ステップＳ１７３５で線が検出されれば、ステップＳ１７３６からＳ１７４９へ進み、“線”という属性をその非テキストユニットに付加する。そして、上述のステップＳ１７０７に戻り、次のユニットを選択する。また、もしステップＳ１７３５で線が検出されなかった場合は、ステップＳ１７３６からＳ１７３７へ進み、その非テキストユニットのサイズを調べる。ここで、サイズがあるしきい値より小さければ、その非テキストユニットの分類を決定することができないため、ステップＳ１７３８へ進み、“未知”の属性を付加する。尚、このしきい値は最大のフォントサイズから決定される。具体的には、最大フォントサイズの半分の値にすると良い結果が得られる。その後、ステップＳ１７０７に戻り、次のユニットを選択する。
【０１２８】
また、ステップＳ１７３７において、もしサイズが予め決められたしきい値より大きければ、ステップＳ１７３９へ進み、非テキストユニットの内部領域で白輪郭の探索が行われ、ステップＳ１７１７〜Ｓ１７１９で説明したように白輪郭の数を計算する。
【０１２９】
そして、ステップＳ１７４１において、白輪郭の数が４以上でなければ、ステップＳ１７４２へ進み、線図形或いはハーフトーンイメージとして十分な大きさをもっているかどうかを確かめるためにサイズを計算する。サイズの決定には、そのテキストのユニットの高さ、幅、及び黒画素のランレングスの最大長に基づいて行われる。特に、その非テキストユニットの高さと幅が最大フォントサイズより小さい場合は、そのユニットは線図形やハーフトーンイメージを構成するに十分な大きさをもってないとみなされ、ステップＳ１７４３へ進み、“未知”の属性を付加する。また同様に、ユニットの幅は最大フォントサイズより大きいが、黒画素のランレングスの最大長が最大フォントサイズより大きくないときは、やはりステップＳ１７４３へ進み、“未知”の属性を付加する。そして、ステップＳ１７０７に戻り、新しいユニットを選択する。
【０１３０】
ステップＳ１７４２において、その非テキストユニットが線図形或いはハーフトーンイメージを構成するのに十分な大きさをもっている場合は、ステップＳ１７４４へ進み、線図形又はハーフトーンイメージという属性を付加する。そして、ステップＳ１７４４からＳ１７４８では、ステップＳ１７２８からＳ１７３２と同様の処理であり、説明は省略する。
【０１３１】
以上説明した流れ（図１３のステップＳ１３０２の処理）に従って、入力画像中のすべての連結成分を調べ、分類が終了すると図２９で示されるようなツリー構造が得られる。図示するように、ルートは入力画像のページにあたる。ルートの子はテキストブロック又は未知・フレーム・写真（図）・線からなる非テキストブロックである。フレームの子はテキストブロック、“未知”の非テキストデータ、テキストブロックを含む表、写真（図）、線である。
【０１３２】
前記したようにもとめられたブロックの属性情報を用いて、図１５のフローチャートの処理を行うことによって、紙指紋を取得する領域を求める。図１５のＳ１５０３のステップにおいて、Ｓ１５０２の処理で候補として選択されたブロックの１つをさらに選択する。選択の方法としての例としては、前記したように求められた属性を利用して、例えばテキストの属性のブロックの数が例えば２であった場合には、空白ブロックの２番目、つまり空白ブロックのＣの領域を選択するなどの方法が考えられる。空白ブロックの数が、テキスト属性のブロックの数よりも小さい場合は、もう一度空白ブロックの１つめにもどって選択することなどが考えられる。そして次のＳ１５０４のステップにおいて、Ｓ１５０３で選択された空白ブロック先頭座標からＸ方向、Ｙ方向に連続して１２８画素分の領域を紙指紋として取得する。
【０１３３】
以上説明したように、印字されている原稿から印字されている領域をブロック化し、さらにそのブロックの属性情報を取得し、属性情報を利用して、空白ブロックの中から紙指紋を取得する領域を選択することにより、原稿ごとに紙指紋を取得する領域を変更可能とすることで、同じ原本を読み込んだ場合は同じ場所の紙指紋を取得することが可能となり、マークなどの特別な画像を余計に印刷する必要がなくなる。またユーザは原本上のどの領域の紙指紋を使用しているかがわからないため、悪意をもって塗りつぶしや切除などの加工を行いずらくすることが可能となる。また、図１５のフローにおいて、空白ブロックの選択方法を属性情報を元にさらに複雑な計算式に変更することや、選択された空白ブロックの先頭座標から紙指紋情報を取得するのではなく、空白ブロックの内部のなかからさらにブロックの属性情報の種類の数や、座標、面積の大きさなどの情報を利用して、紙指紋領域を取得する座標を算出するようにすることで、紙指紋取得の座標を悪意をもって加工することを、さらに抑止できるようになる。
【実施例３】
【０１３４】
次に本発明に関わる第三の実施例の説明を行う。第三の実施例が第一の実施例と異なるところは、第一実施例の図１５のフローチャートの、Ｓ１５０４のステップにおいて、複数の紙指紋領域を取得することである。紙指紋領域の取得数および、取得する座標を図１４のフローチャートで求めた印字がされているブロックの数や座標情報から計算により求めることを特徴としている。
【０１３５】
複数の紙指紋の領域を取得し、複数の紙指紋情報を登録、照合させることにより、紙指紋取得の座標を悪意をもって加工することを、さらに抑止できるようになる。
【０１３６】
（その他の実施例）
さらに本発明は、複数の機器（例えばコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用することも、一つの機器からなる装置（複合機、プリンタ、ファクシミリ装置など）に適用することも可能である。
【０１３７】
また本発明の目的は、上述した実施例で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、コンピュータがプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記憶した記憶媒体も本発明の一つを構成することになる。
【０１３８】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【図面の簡単な説明】
【０１３９】
【図１】画像形成システムの全体構成を示す図。
【図２】画像形成装置の入出力デバイス外観図。
【図３】画像形成装置の全体構成を示す図。
【図４】タイルデータを概念的に示す図。
【図５】スキャナの画像処理部の構成を示す図。
【図６】スキャナでの画像処理フローを示す図。
【図７】操作部のコピー画面の説明図。
【図８】紙指紋取得時のフロー示す図。
【図９】紙指紋照合時のフロー示す図。
【図１０】紙指紋情報を取得する際のフローを示す図。
【図１１】紙指紋情報を照合する際のフローを示す図。
【図１２】紙指紋を取得する座標を求める際のフローを示す図。
【図１３】ブロックセレクションを行う際のフロー示す図。
【図１４】ブロックセレクションでブロックに分類された原稿の概略図。
【図１５】紙指紋情報取得領域を求めるためのフローを示す図。
【図１６】ブロックセレクションでブロックに分類された後、空白領域のブロックを検出した際の原稿の概略図。
【図１７】ブロックセレクションで属性情報を検出するための第一のフロー図。
【図１８】ブロックセレクションで属性情報を検出するための第二のフロー図。
【図１９】ブロックセレクションで属性情報を検出するための第三のフロー図。
【図２０】ブロックセレクションの処理を説明する第一の図。
【図２１】ブロックセレクションの処理を説明する第二の図。
【図２２】ブロックセレクションの処理を説明する第三の図。
【図２３】ブロックセレクションの処理を説明する第四の図。
【図２４】ブロックセレクションの処理を説明する第五の図。
【図２５】ブロックセレクションの処理を説明する第六の図。
【図２６】ブロックセレクションの処理を説明する第七の図。
【図２７】ブロックセレクションの処理を説明する第八の図。
【図２８】ブロックセレクションの処理を説明する第九の図。
【図２９】ブロックセレクションの処理を説明する第十の図。
【図１】
2010068198.tif 000004
【図２】
2010068198.tif 000005
【図３】
2010068198.tif 000006
【図４】
2010068198.tif 000007
【図５】
2010068198.tif 000008
【図６】
2010068198.tif 000009
【図７】
2010068198.tif 000010
【図８】
2010068198.tif 000011
【図９】
2010068198.tif 000012
【図１０】
2010068198.tif 000013
【図１１】
2010068198.tif 000014
【図１２】
2010068198.tif 000015
【図１３】
2010068198.tif 000016
【図１４】
2010068198.tif 000017
【図１５】
2010068198.tif 000018
【図１６】
2010068198.tif 000019
【図１７】
2010068198.tif 000020
【図１８】
2010068198.tif 000021
【図１９】
2010068198.tif 000022
【図２０】
2010068198.tif 000023
【図２１】
2010068198.tif 000024
【図２２】
2010068198.tif 000025
【図２３】
2010068198.tif 000026
【図２４】
2010068198.tif 000027
【図２５】
2010068198.tif 000028
【図２６】
2010068198.tif 000029
【図２７】
2010068198.tif 000030
【図２８】
2010068198.tif 000031
【図２９】
2010068198.tif 000032