以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<第1実施形態>
●システム概要
図1は、本実施形態に係る画像処理システムの構成例を示すブロック図である。同図においては、オフィス10とオフィス20がインターネット104で接続されている例を示している。オフィス10とオフィス20とでは、その内部の構成が実質的に同様であるため、以下ではオフィス10について説明する。
オフィス10内に構築されたLAN107には、ネットワークスキャナやネットワークプリンタとして機能する複写機であるMFP(Multi Function Peripheral)100が接続されている。LAN107にはさらに、MFP100を制御するマネージメントPC101、クライアントPC102、インターネット104への接続を管理するプロキシサーバ103が接続されている。そしてさらに、文書ファイルや画像ファイルを管理する文書管理サーバ(ファイルサーバ)106、文書ファイルや画像ファイルを属性情報等で検索できるように構成されたデータベース105が接続されている。なお、図1ではクライアントPC102が1台だけ接続された例を示しているが、これは複数存在し得るものである。
オフィス10におけるネットワーク107は、プロキシサーバ103を介してインターネット104に接続するようになっている。これはオフィス20においても同様である。従って、オフィス10とオフィス20のそれぞれのネットワークは、インターネット104を介して相互に情報通信が可能になっている。なお、周知のVPN等の技術を利用して、第3者によるオフィス10,20内のネットワークへの侵入を阻止することが望ましい。
本実施形態におけるMFP100は、紙文書の画像読み取り(スキャン)と、該読み取った画像信号に対する画像処理の一部(前処理等)を担当し、処理後の画像データはLAN109を介してマネージメントPC101に供給される。マネージメントPC101は、その内部に画像記憶部(ハードディスク)、画像処理部(画像処理用の回路もしくは画像処理用のプログラム)、表示部、入力部(キーボードやマウス等のポインティングデバイス)を有する。したがって、マネージメントPC101は例えば、通常のパーソナルコンピュータ(以下、PC)によって実現可能である。
図2は、MFP100の構成を示すブロック図である。同図において、オートドキュメントフィーダ(ADF)を含む画像読み取り部110である。画像読み取り部110は、束状、或いは1枚の原稿画像を不図示の光源で照射し、その原稿反射像をレンズで固体撮像素子上に結像することによって、ラスタ状の画像読み取り信号を例えば解像度600dpiの画像データとして得る。通常の複写を行なう際には、得られた画像データに対してデータ処理部115にて各種補正処理等を施すことにより記録信号へ変換し、ハードディスク等の記憶装置111に一旦記憶(格納)する。そして、該記憶した旨をネットワークIF117を介してマネージメントPC101に通知し、マネージメントPC101の制御の下で、例えばプリンタエンジン部である記録装置112に順次出力して、記録用紙上に画像を形成する。
なお、本実施形態におけるMFP100はネットワークプリンタとしても機能するため、ページ記述言語に基づいて印刷イメージデータを生成する機能を有する。ネットワークプリンタとして機能する場合には、クライアントPC102から出力されるプリントデータをLAN107からネットワークIF114を経て、データ処理装置115で記録可能なラスタデータに変換した後、やはり記録装置111に一旦記憶する。そして、該記憶した旨をマネージメントPC101に通知し、マネージメントPC101の制御の下で記録装置112に順次出力して、記録用紙上に画像を形成することになる。このように、MFP100において記録用紙上に画像形成するために生成されるイメージデータとしては、画像読み取り部110で読取られたものと、ネットワークプリンタとして機能した結果として生成されたものが考えられる。そこで本実施形態においては、MFP100におけるイメージデータがいずれの経路で生成されたかを示す情報を、マネージメントPC101へ通知する。
なお図2において、113は各種キーやスイッチ、液晶表示画面上に設けられたタッチパネルで構成される入力装置であり、116は液晶表示器等の表示装置である。
本実施形態において、マネージメントPC101とMFP100がネットワーク109を介して直接接続されていることにより、MFP100内の記憶装置111に対するマネージメントPC101からの高速なダイレクトアクセスが可能となる。これにより、マネージメントPC101とMFP100間において後述するようなデータ通信を行っても、ネットワーク107のトラフィックには影響を与えることがない。
図3は、マネージメントPC101の構成を示すブロック図である。上述したように、本実施形態におけるマネージメントPC101は、通常のPCによって実現される。図3において、30は装置全体の制御を司るCPU、31はブートプログラムやBIOSを記憶しているROM、32はCPU30のワークエリアとして使用されるRAMである。RAM32に、OSをはじめ本実施形態におけるMFP100を管理するプログラムがロードされ、実行されることになる。33は各種データを格納可能なハードディスクである。34は表示コントローラであり、ビデオRAMを内蔵している。35は表示装置であって、本実施形態では液晶表示装置を採用しているが、CRT等の他の表示装置でも構わない。36は表示装置35のスクリーンの前面に設けられたタッチパネルである。37はMFP100との通信を行うためのネットワークI/F、38はネットワーク107に接続するためのI/Fである。
通常のPCは、キーボードやマウス等のポインティングデバイスを入力装置として備えるが、本実施形態ではそれに代えて、タッチパネルが入力装置として機能する。もちろん、マネージメントPC101がキーボードやマウスを備えるものであっても構わないし、それらをタッチパネル36と併用しても良い。
図4は、MFP100にマネージメントPC101を収容した際の外観を示す図である。同図に示すように、マネージメントPC101の表示装置35、タッチパネル36が、あたかもMFP100の一部として見えるように収容されている。なお、マネージメントPC101のメンテナンスが容易に行えるようにするため、通常のPCが有するキーボードやマウス等のポインティングデバイスを、MFP100の筐体内に収容するように構成しても構わない。
また、以下の説明からも明らかになるが、本実施形態においてマネージメントPC101が有する表示装置35及びタッチパネル36は、実質的にMFP100のユーザインタフェース(UI)として機能する。したがって、MFP100内にマネージメントPC101の処理を行う機能を付加すば良いとも考えられる。しかしながら、マネージメントPC101による処理は多岐に渡り、その処理を実現するプログラムの開発、管理の容易性、バージョンアップの容易性の観点から、本実施形態では、複合機であるMFPとは独立した、汎用のPCを介在させている。
●全体処理概要
以下、本実施形態の画像処理システムにおける全体処理の概要を、図5のフローチャートを用いて説明する。なお、図5のフローチャートは、主にマネージメントPC101における処理を示すものである。
まずステップS501において、MFP100を使用するユーザに対するユーザ認証を行って、マネージメントPC101にログインする。ユーザ認証の方法としては、指紋認証などのバイオメトリクスやICカードを用いた方法等、様々な方法があるが、どのような方法を用いても良い。例えば、マネージメントPC101のタッチパネル36からユーザ名とパスワードを入力させ、図6に示すような内容で予め格納されているユーザアカウント情報と照合して、認証を行うようにすれば良い。なお、図6はマネージメントPC101に予め登録されているユーザ情報の構成例を示すものである。
続いてステップS502において、ユーザは、マネージメントPC101の表示装置35に表示されるメニューから、タッチパネル36を用いて機能を選択する。本実施形態では、「画像登録」、「文書登録」、「コピー」、「送信」、「保存」の5つの機能が選択可能である。そしてステップS503において、ユーザが選択した機能に応じて処理が分岐する。画像登録が選択された場合はステップS504へ、文書登録が選択された場合はステップS508へ、コピーが選択された場合はステップS511へ、送信が選択された場合はステップS512へ、保存が選択された場合はステップS513へ、それぞれ分岐する。
・画像登録処理
ステップS504〜S507は、ステップS502で「画像登録」が選択された場合の処理であり、コピー、送信、保存の各処理において検出対象となる画像、およびその処理情報を登録する。
すなわち、画像読み取り部110で読み取られた画像からの検出対象となる部分画像としての画像と、該画像が検出された場合の処理情報とを、文書管理サーバ106およびデータベース105へ登録する。
まずステップS504において、後述する文書登録処理による登録と区別するために、RAM32上に確保されたメモリ領域上に、登録モードとして「画像」を設定する。
続いてステップS505において、クライアントPC102のハードディスク33から、処理対象となる画像ファイルを選択する。画像の選択方法は限定しないが、例えば、Windows(登録商標) XPにおけるExplorer(登録商標)等に代表される、ファイルビューワを用いれば良い。なお、クライアントPC102においては予め、ファイルシステム上の特定のフォルダが、ステップS501で認証されたユーザに対してアクセス可能となるように設定されているものとする。また、選択可能な画像ファイルの形式としては、ビットマップやJPEG等のラスタ画像や、SVG(Scalable Vector Graphics)やWMF(Windows(登録商標) Meta File)等のベクトル画像が考えられる。ベクトル画像が選択された場合、後の処理を簡略化するために特定のフォーマット(SVG等)に変換しておく。このベクトル画像のフォーマット変換については、既に多数の変換プログラムが流通しており、周知であるため、ここでは詳細な説明は省略する。
続いてステップS506において、登録対象である画像に対する処理制御情報を設定する。この設定は例えば、マネージメントPC101の表示装置35に図7に示すような画面を表示し、タッチパネル36を用いて行われる。
図7に示されるように、処理制御情報の設定項目は、例えばラジオボタンを選択することによって設定がなされる。設定項目としては例えば、印刷(コピー)/送信/保存の各処理の実行の可否、該各処理における置換処理の可否、履歴保存と履歴通知の可否、ならびに、送信/保存時の画像のベクトル化処理の可否がある。また、コピー/送信/保存の実行に対するユーザの実行権限のレベルも、プルダウンメニューを用いて設定できる。ここで、実行権限のレベルとは0〜5までの数値で示され、値が低いほど実行権限レベルが低いことを意味する。また図6のユーザ情報に示されるように、実行権限はユーザアカウント毎に予め設定されている。さらに、保存処理時の保存先として、クライアントPC101のディレクトリを指定することが可能であるが、この保存先を設定しないでおくことも可能である。図7に示す画面上において必要な設定を終えると、ユーザがOKボタンを押下することにより、設定項目の内容がRAM32上に所定の形式で格納される。
続いてステップS507において、ステップS505で選択・変換された画像ファイルを文書管理サーバ106に登録し、さらに、画像に関する情報と、ステップS506で設定された処理制御情報を対応させ、画像情報としてデータベース105に登録する。登録された画像情報の構成例を図8、図9に示すが、その詳細については後述する。
・文書登録処理
ステップS508〜S510は、ステップS502で「文書登録」が選択された場合の処理である。この文書登録処理においては、コピー、送信、保存の各処理時に画像読み取り部110で読み込まれた画像について、そのオリジナルとしての検索対象となる文書を、文書管理サーバ106とデータベース105へ登録する。
まずステップS508において、上述した画像登録処理による登録と区別するために、RAM32上に確保されたメモリ領域上に、登録モードとして「文書」を設定する。
続いてステップS509において、クライアントPC102のハードディスク33から、処理対象となる文書ファイルを選択する。文書の選択方法は限定しないが、例えばステップS505と同様にファイルビューワを用いれば良い。また、クライアントPC102においては予め、ファイルシステム上の特定のフォルダが、ステップS501で認証されたユーザに対してアクセス可能となるように設定されているものとする。また、選択可能な文書ファイルの形式としては、一般的なWord(登録商標)やPower Point(登録商標)等の文書や、PDF(Portable Document Format)等、多様な形式を選択可能である。文書が選択されると、後の処理を簡略化するために、特定のベクトル画像形式のフォーマット(SVG等)に変換しておく。このベクトル画像形式へのフォーマット変換については、既に多数の変換プログラムが流通しており、周知であるため、ここでは詳細な説明は省略する。
続いてステップS510において、ステップS509で選択・変換された文書ファイルを文書管理サーバ106に登録する。このとき、文書のラスタイメージ画像に対する像域分離を行う。そして、各領域に細分化(ブロックセグメント化:BS化)して得られるブロック毎の情報を、登録文書ブロック情報およびブロック内のテキストの実データを示すテキスト情報として、データベース105に登録する。登録文書ブロック情報およびテキスト情報の構成例を図11、図12に示すが、その詳細については後述する。
なお、文書中の画像ブロックに関してはステップS507と同様に、該画像ブロック内の画像データを画像ファイルとして文書管理サーバ106に登録し、さらに、画像に関する情報をデータベース105に登録する。
・コピー処理
ステップS511は、ステップS502において「コピー」が選択された場合の処理であり、MFP100において原稿の高画質コピーを行う。すなわち、ADFにセットされた原稿を画像読取部110で読み取り、記憶装置111に1ページ分の画像データとして一旦保持する。そして、読み取った画像データの一部もしくは全てを、必要に応じて登録済みのオリジナルの画像データに置き換えて記録装置112に出力することにより、高画質のコピー処理を実現する。
本実施形態のコピー処理においては、読み取られた画像データ(以下、スキャン画像データ)に対して、マネージメントPC101によって像域分離が施され、各領域(ブロック)に細分化される(BS処理)。細分化された各ブロックの情報は、図13に示すようなスキャン文書ブロック情報としてRAM32上に抽出される。そして、スキャン画像内の画像ブロックに一致する画像情報がデータベース105に登録されていた場合、対応する実行権限レベルに従って当該ユーザの実行権限の有無を判定し、権限がある場合にのみ、コピーを実行する。
また、スキャン画像と一致する文書の情報がデータベース105に登録されていた場合には、対応するオリジナルの文書ファイルを文書管理サーバ106から読み取ってラスタライズし、読み取られた画像データに代えて記録装置112に出力する。一方、オリジナルの文書ファイルが登録されていない場合でも、スキャン画像における画像ブロックの画像データと一致する画像がデータベース105に格納されていれば、これを利用する。すなわち、スキャン画像内における画像ブロックを、文書管理サーバ106に格納されているオリジナルの画像データで置き換えた後、記録装置112に出力する。なお、本実施形態におけるコピー処理の詳細については、図19を用いて後述する。
・送信処理
ステップS512は、ステップS502において「送信」が選択された場合の処理であり、MFP100において読み取った画像データを指定された送信先へ送信する。すなわち、ADFにセットされた原稿を画像読取部110で読み取り、記憶装置111に1ページ分の画像データとして一旦保持する。そして、読み取った画像データをベクトル化し、ベクトル化された画像の一部もしくは全てを、必要に応じてオリジナルの画像データに置き換えて、指定された送信先に送信する。この送信処理においては、上述したステップS511のコピー処理と同様にBS処理を行ってユーザの実行権限の有無を判定し、権限がある場合のみ、送信を実行する。また、やはりステップS511と同様に、読み取られた画像データの全てもしくは一部を、オリジナルの画像データに置き換えてから送信を行う。なお、本実施形態における送信処理の詳細については、図24を用いて後述する。
・保存処理
ステップS513は、ステップS502において「保存」が選択された場合の処理であり、MFP100において読み取った画像データを指定された保存先へ保存する。すなわち、ADFにセットされた原稿を画像読取部110で読み取り、記憶装置111に1ページ分の画像データとして一旦保持する。そして、読み取ったイメージデータをベクトル化し、ベクトル化された画像の一部もしくは全てを、必要に応じてオリジナルの画像データに置き換えて、指定された保存先に保存する。この保存処理においては、上述したステップS511のコピー処理と同様にBS処理を行ってユーザの実行権限の有無を判定し、権限がある場合のみ、保存を実行する。また、やはりステップS511と同様に、読み取られた画像データの全てもしくは一部を、オリジナルの画像データに置き換えてから保存を行う。画像ブロックのオリジナルデータに対して保存先が設定されている場合は、ユーザが保存先を指定する必要は無く、設定された保存先に自動的に保存される。なお、本実施形態における保存処理の詳細については、図27を用いて後述する。
●画像登録処理(詳細)
以下、上述したステップS507における画像登録処理について、図14のフローチャートを用いてその詳細を説明する。なお、この画像登録処理は、ステップS510の文書登録処理において文書中の画像ブロックの画像を登録する際にも実行される。
まずステップS1401において、登録対象の画像がベクトル画像であるかラスタ画像であるかによって、処理が分岐する。ベクトル画像であればステップS1402へ進み、ラスタ画像であればステップS1404へ進む。
ステップS1402では、ベクトルデータの比較を容易にするために正規化を行う。例えば、ベクトル画像の外接矩形のサイズを正規化するために、登録対象のベクトル画像の外接矩形の長辺が所定の長さ(例えば、20000ピクセル)となるように、ベクトルデータ中の座標の値や、フォントのサイズなどを補正する。
続いてステップS1403において、正規化されたベクトル画像に対してラスタライズを行い、ラスタ画像に変換する。ラスタ画像のサイズとしては、正規化の際に用いたサイズをそのまま使用する必要は無く、後述する画像特徴の抽出が可能なレベルのサイズであればよい。
ステップS1404においては、登録対象の画像に対する画像特徴を抽出する。ここで本実施形態における画像特徴を特に限定する必要は無く、例えば、MPEG−7(ISO/IEC15938)のPart−3に記載されている、Color LayoutとEdge Histogramを使用するものとする。また、画像特徴の抽出方法としては、同じくMPEG−7のPart−8に記載されている方法を使用するものとする。
続いてステップS1405において、登録対象の画像と類似する画像が、データベース105に画像情報として既に登録されているか否かを検索する。ここで、画像情報の構成例を図8に示す。図8に示されるように画像情報としては、登録されている個々の画像に対して、画像ID毎に画像特徴およびサイズ情報(横方向と縦方向のピクセル数)等が格納されている。ここで画像特徴としては、ステップS1404でも登録対象画像から抽出される、Color LayoutとEdge Histogramが、個々の画像から抽出されて格納されている。
登録対象画像による検索方法としては、まず、登録対象画像のサイズによる絞込みを行う。すなわち、データベース105に画像情報として登録されている画像の中から、登録対象の画像とアスペクト比(縦方向と横方向のピクセル数の比率)がほぼ等しい画像を選び出して絞り込む。続いて、絞り込まれた画像の中から画像特徴が類似する画像を選ぶことにより、検索結果を得る。すなわち、ステップS1404で抽出した画像特徴の値と、データベース105に画像情報として格納されている画像特徴の値から、2つの画像の類似度(もしくは距離)を算出する。そして、所定の類似度以上(所定の距離以下)の画像特徴を持つ画像を、類似する画像として抽出し、これを検索結果とする。なお、類似度(もしくは距離)の算出方法は、MPEG−7のPart−8に記載されている方法を使用するものとする。
そしてステップS1406では、ステップS1405における検索結果として類似する画像が得られたか否かによって処理を分岐する。すなわち、類似する画像が存在すればステップS1407へ進み、存在しなければステップS1411へ進む。
ステップS1407では、ステップS1405における検索結果として得られた類似画像中に、登録対象画像に一致する画像が存在するか否かを判定するために、画像の詳細比較を行う。この画像詳細比較処理の詳細については、図15を用いて後述する。この詳細比較結果に基づき、ステップS1408において処理が分岐する。すなわち、登録対象画像と同じ画像が存在すると判定された場合はステップS1409へ進み、存在しないと判定された場合はステップS1411へ進む。
ステップS1409では、ステップS1407で登録対象画像と同じであると判定された登録済の画像について、登録対象の画像による置換え、すなわちオリジナルの更新が可能であるか否かの判定を行う。このオリジナル更新判定処理の詳細については、図16を用いて後述する。
そしてステップS1410では、ステップS1409での判定結果に基づいて処理を分岐する。すなわち、更新可能と判定された場合はステップS1412へ進み、更新不可と判定されれば、登録対象の画像を登録することなく、画像登録処理を終了する。
ステップS1411においては、登録対象の画像を文書管理サーバ106に画像ファイルとして新規登録し、さらにその画像情報をデータベース105に登録する。
ここでデータベース105に登録される画像情報としては、図8に示されるように、「画像ID」、「画像特徴」、「モード」、「種類」、「サイズ」、「処理フラグ」、「実行権限レベル」、「保存先」、「管理者」が格納される。登録対象の画像について、その画像情報を登録する際には、まず、登録対象の画像に対して「画像ID」が発行される。画像IDは、画像情報中に存在しない値が選ばれて発行される。そして、新たに発行された画像IDに対して、ステップS1404で抽出した「画像特徴」が格納される。同様に、「モード」として、ステップS504もしくはステップS508で設定された値、すなわち、「画像」または「文書」のいずれかが格納される。また、「種類」として、登録対象の画像の種類である、「ラスタ画像」または「ベクトル画像」のいずれかが判定されて格納される。「サイズ」としては、ラスタ画像であれば、その画像の縦横のピクセル数が格納され、ベクトル画像であれば、ステップS1402で正規化した画像の縦横のピクセル数が格納される。「処理フラグ」は、モードが「画像」である場合のみ有効であり、ステップS506において設定した、印刷、送信、保存、置換、ベクトル化、履歴保存、履歴通知の各処理の実行の可否を示すフラグが格納される。詳細には図9に示すように、各ビットにそれぞれのフラグを対応させて格納している。「実行権限レベル」および「保存先」にも、ステップS506で設定された値がそのまま格納される。また、「管理者」には、ステップS501でログインしたユーザのメールアドレスが格納される。
このように、オリジナル画像の登録時に、ベクトル化や置換え等についての可否情報等、画質制御条件を登録可能とすることによって、多様な画質制御の要求に柔軟に対応することができる。例えば、オリジナル画像の登録時にベクトル化の可否を設定することにより、スキャン画像をベクトル化する際に、オリジナル画像と一致する画像についてはベクトル化を行わないように制御することができ、著作権等の問題を回避することができる。
そして、文書管理サーバ106に対しては、そのハードディスク上の所定のディレクトリに、登録対象画像のファイルが格納される。このとき、ファイル名としては画像IDが使用され、画像の種類に応じた拡張子が付加される。登録対象画像がラスタ画像であれば、ステップS505で選択した画像ファイル、もしくはステップS510で文書ファイルから抽出されて一時的に保存された画像ブロックのファイルをコピーすることにより、格納する。また、登録対象画像がベクトル画像であれば、ステップS1402で正規化したデータをファイルとして格納する。このように、データベース105への画像情報の登録、および文書管理サーバ106への画像ファイルの登録が終了すると、ステップS1411における画像情報登録処理を終了する。
一方、ステップS1412においては、ステップS1407で登録対象画像に一致すると判定された登録済みのオリジナル画像を、登録対象画像で更新する。すなわち、データベース105内の画像情報と、文書管理サーバ106内の画像ファイルそのものが置き換えられる。このとき、登録対象画像に対して新たな画像IDの発行を行わず、更新される画像のIDがそのまま割り当てられる。したがって、更新される画像の画像情報については、その画像ID以外の項目の値が、登録対象画像の値に書き換えられる。ここで書き換える値は、ステップS1411における新規登録の場合と同様にして求められる。また、文書管理サーバ106においても画像ファイルが書き換えられるが、該ファイルの内容はステップS1411における新規登録の場合と同様である。このように、データベース105に対する画像情報の更新、および文書管理サーバ106に対する画像ファイルの更新が終了すると、ステップS1412における画像情報更新処理を終了する。
以上説明したように、データベース105に対する画像情報の登録または更新、および文書管理サーバ106に対する画像ファイルの登録または更新が終了すると、ステップS507における画像登録処理を終了する。
・画像詳細比較処理
ここで図15を用いて、上述したステップ1407における画像詳細比較処理について、詳細に説明する。
まず、ステップS1501において、ステップS1405で検索結果として得られた類似画像を、登録対象画像との類似度の高い順に、候補として取り出す。
そしてステップS1502において候補の取り出し結果を判定し、候補が取り出せればステップS1503へ進むが、全候補を取り出しを終えていれば、登録対象の画像に一致する画像は登録されていないものとして、画像詳細比較処理を終了する。
ステップS1503では、ステップS1501で取り出した候補の画像がベクトル画像であるか否かによって処理を分岐する。すなわち、候補画像がベクトル画像であればステップS1504へ進み、そうでなければステップS1506へ進む。
ステップS1504では、登録対象の画像がベクトル画像であるか否かによって処理を分岐する。すなわち、登録対象画像がベクトル画像であればステップS1505へ進み、そうでなければステップS1506へ進む。
ステップS1505では、比較する画像が両方ともベクトル画像であるので、そのベクトルデータを直接比較する。この比較は、ステップS1402において登録対象画像の正規化が行われたために可能となっている。ただし、正規化時の誤差が生じる可能性があるため、例えば、座標値を比較する場合は、その差分が所定値以下であれば同じとみなすようにする。
一方、ステップS1506では、比較する画像の両方もしくは一方がラスタ画像であるので、これらをラスタ画像として比較する。すなわち、いずれかがベクトル画像であれば、これをラスタライズした後に比較を行う。また、画像のサイズが異なる場合は、画像のサイズをそろえて比較を行う。画像のサイズをそろえる際の位置のずれなどを吸収するために、2つのラスタ画像の差分画像を作成した後、例えば、差分の画素値が0近傍の画素の占める面積の割合が所定の割合以上の場合に同じであるとみなすようにする。
ステップS1505におけるベクトル比較処理またはステップS1506におけるラスタ比較処理が終了すると、いずれもステップS1507に進み、その比較結果を検証する。すなわち、比較の結果、候補画像と登録対象画像が一致すると判定された場合には画像詳細比較処理を終了するが、一致しないと判定された場合にはステップS1501へ戻り、次候補となる類似画像との比較処理を実行する。
このように画像登録処理において、既に登録されている候補画像と、新たに登録しようとする登録対象画像とにおける等価性を判定する際には、まず画像特徴での比較(S1405)を行った後に、さらに画像データによる詳細な比較(S1407)を行う。このような段階的な比較を行うことによって、高速かつ高精度な判定を行うことができる。
・オリジナル更新判定処理
ここで図16を用いて、上述したステップ1409におけるオリジナル更新判定処理について、詳細に説明する。
まずステップS1601において、登録対象画像に対してステップS504またはS508で設定された登録モードを判定する。すなわち、文書モードであればステップS1602へ進み、画像モードであればステップS1603へ進む。
ステップS1602では、被更新候補である登録済み画像について、その画像情報における「モード」を判定する。すなわち、文書モードで登録された画像であればステップS1603へ進むが、画像モードで登録された画像であればステップS1607へ進み、この登録済み画像は更新不可であるものとして、この判定処理を終了する。これにより、一旦画像モードで登録された画像については、文書モードで登録しようとしている画像では置き換えられないことになり、すなわち本実施形態では画像モードでの登録が優先される。
ステップS1603では、被更新対象候補である登録済み画像がベクトル画像であるか否かを判定する。ベクトル画像でない、すなわちラスタ画像であればステップS1604へ進むが、ベクトル画像であればステップS1607へ進み、この登録済み画像は更新不可であるものとして、この判定処理を終了する。
次にステップS1604では、登録対象画像がベクトル画像であるか否かを判定する。ベクトル画像でなければステップS1605へ進むが、ベクトル画像であればステップS1606へ進み、更新可としてこの判定処理を終了する。
このステップS1603、S1604における判定処理により、登録済みのベクトル画像は更新されず、登録済みのラスタ画像については、ベクトル画像によって更新されることになり、すなわち本実施形態ではベクトル画像としての登録が優先される。
ステップS1605では、ラスタ画像をラスタ画像で更新するか否かの判定を行うが、ここでは、登録対象画像の方が登録済み画像よりも高画質であれば、更新可と判定する。例えば、登録対象画像の画素数の方が登録済み画像よりも多ければ、登録対象画像の方が高画質であると判断する。登録対象画像の方が高画質であると判定されるとステップS1606へ進んで更新可とし、高画質でないと判定されるとステップS1607へ進んで更新不可として、オリジナル更新判定処理を終了する。
本実施形態においては、詳しくは後述するが、スキャン画像から上述したように登録されたオリジナル画像と等価とみなせる部分画像を検出し、該部分画像を該オリジナル画像で置き換える処理を行う。したがって、上述したようにオリジナル画像としてラスタ画像よりもベクトル画像を優先して登録しておくことにより、スキャン画像をオリジナル画像への置き換えた結果として、よりコンパクトかつ高画質の画像を得ることができる。また同様に、文書中の画像よりも、画像として明示的にモード指定された画像のほうを優先して登録することにより、上記オリジナル画像への置き換えが発生した際に、より適切な画像への置き換えを行ってより高画質な画像を得ることができる。
●文書登録処理(詳細)
以下、上述したステップS510における文書登録処理について、図17のフローチャートを用いてその詳細を説明する。
まずステップS1701において、ステップS509で選択されたアプリケーション文書のデータを、PostScriptやSVG等のPDL(Page Description Language)形式に変換する。この変換処理は、PDLに対応した仮想プリンタドライバを用いてアプリケーションから印刷処理を実行させることにより、可能となる。
続いてステップS1702において、ステップS1701でPDL化した文書データを、600DPIでラスタライズしてラスタ画像を作成する。
続いてステップS1703において、ステップS1702で得られたラスタ画像を像域分離し、各領域に細分化する(BS処理)。ここでBS処理の例を図18に示す。図18は、BS処理によって、1枚のイメージデータの属性を判定して複数のブロックに分割した様子を示す図であり、同図左側が分割前のラスタ画像、右側がそのブロック分割後の様子を示す。このようにBS処理によって、同図左側に示す1頁のラスタ画像を、同図右側に示すように各オブジェクト毎の塊(矩形ブロック)として認識し、それぞれを属性毎のブロックに分割する。ブロック属性としては、文字(TEXT)/図画(PICTURE)/写真(PHOTO)/線(LINE)/表(TABLE)等に判定される。なお、BS処理の方法については特開2004−265384等で公開されており、周知であるため、ここでは詳細な説明を省略する。なお、図18に示すBS処理例では、同図左側において細分化された領域自体は任意形状であるが、同図右側においては該任意形状に外接する矩形領域を矩形ブロックとして表示している。
続いてステップS1704において、文書IDを新たに発行し、ステップS509で選択したアプリケーション文書のファイルを、該文書IDをファイル名としたファイルとして、文書管理サーバ106のハードディスク上の所定のディレクトリにコピーする。このとき、ファイル名の拡張子としては元のファイルと同じものを使用する。
続いてステップS1705において、ステップS1703で分割したブロックを順次取り出し、ステップS1706において、ブロックが取得できたか否かによって処理を分岐する。すなわち、ブロックを取り出せればステップS1707へ進み、全てのブロックを取り出し終えて、もう取り出すことができなければ文書登録処理を終了する。
ステップS1707では、ステップS1705で取り出したブロックに関する情報を、データベース105内に登録文書ブロック情報として登録する。ここで図11に、登録文書ブロック情報の構成例を示す。同図に示されるように登録文書ブロック情報は、各ブロックに対して、「文書ID」、「ブロックID」、「位置」、「サイズ」、「属性」、「画像/テキストID」を対応付けて格納したテーブルとして構成される。具体的には、「文書ID」として、ステップS1704で発行した文書IDを格納し、「ブロックID」として、ステップS1705で取り出したブロックの順番を示す番号を格納する。「位置」には、ステップS1702でラスタライズされた文書画像の座標系における、矩形ブロックの左上の座標値を格納する。「サイズ」としては、ブロックの縦横のピクセル数を格納する。「属性」には、対象となるブロックが画像(図画/写真など)であれば「画像」を格納し、テキスト(文字)であれば「テキスト」を格納する。なお、「画像/テキストID」については、画像/テキストの登録時にセットされるため、詳細は後述する。
続いてステップS1708では、ステップS1705で取り出した処理対象ブロックが、画像であるかテキストであるかを判定し、画像であればステップS1709へ進み、テキストであればステップS1711へ進む。
ステップS1709では、ステップS1701でPDL化された文書データから、処理対象のブロックに対応する部分の画像データを抽出する。詳細には、登録文書ブロック情報として格納したブロックの領域の座標(位置およびサイズ)をPDLデータにおける座標系に変換することによって、PDLデータにおける当該ブロックの領域にレンダリングされるデータを容易に抽出することができる。抽出される画像としてはベクトル画像とラスタ画像があるが、それぞれ、画像ファイルとして必要な情報を付加し、場合によっては必要な変換を施して、一時的なファイルとして格納しておく。
続いてステップS1710において、ステップS1709で抽出した画像データをデータベース105および文書管理サーバ106に登録する。この画像登録処理は、上述したステップS507の画像登録処理と同様であり、登録対象であるブロックの画像がそのまま新規登録される場合と、既に登録済みであるとして登録されない場合がある。新規登録された場合は、その際に得られる画像IDの値を登録文書ブロック情報の「画像/テキストID」に格納する。一方、登録されなかった場合には、既に登録済みである画像の画像IDが得られるので、その値を登録文書ブロック情報の「画像/テキストID」に格納する。そして画像登録処理を終えると、ステップS1705へ戻って次ブロックの処理を行う。
一方、ステップS1711においては、ステップS1701でPDL化した文書データから、処理対象のブロックに対応する部分のテキストデータを抽出する。詳細には、上述したステップS1709と同様の方法によって、PDLデータからテキストデータを抽出する。
続いてステップS1712において、ステップS1711で抽出したテキストの情報を、データベース105内にテキスト情報として登録する。ここで図12に、テキスト情報の構成例を示す。同図に示されるようにテキスト情報としては、各テキストブロックに対応して、「テキストID」と「テキストデータ」が格納される。具体的には、テキストブロックを登録する毎に、テキストIDが新たに発行され、そのテキストIDに対応させて、ステップS1711で抽出したテキストデータを格納する。さらにこのとき、このテキストIDを、図11に示した登録文書ブロック情報の「画像/テキストID」に格納する。そしてテキスト登録処理を終えると、ステップS1705へ戻って次ブロックの処理を行う。
以上説明した、ステップS507およびステップS510で登録された画像データおよび文書データが、後述する各処理(コピー、送信、保存)において、原本または特定画像のオリジナルデータとして扱われる。
●コピー処理(詳細)
以下、上述したステップS511におけるコピー処理について、図19のフローチャートを用いてその詳細を説明する。
まずステップS1901において、MFP100の画像読み取り部110から画像を読み取る。すなわち、MFP100の画像読み取り部110を動作させて、ADFから1枚の原稿をラスタ状に走査(スキャン)し、600DPIの画像信号を得る。以下、画像読み取り部110で原稿を読み取って得られる画像を、スキャン画像と称する。そして該画像信号に対し、データ処理部115で前処理(補正処理等の変換処理等)を施し、記憶装置111に1ページ分の画像データとして一時的に保存した後、その旨をマネージメントPC101に通知する。この通知を受けて、マネージメントPC101のCPU30は、MFP100の記憶装置111に格納された画像データを、LAN109を介してRAM32にロードする。なお、ステップS1901の画像読み込み処理においてはMFP100が介在したが、以降のステップでは、マネージメントPC101のCPU30によって実行される処理手順を示す。
ステップS1902では、RAM32上にロードされたスキャン画像データに対して、矩形領域単位に領域を分離して各領域(ブロック)毎に属性を判定し、その結果をスキャン文書ブロック情報としてRAM32に格納する。なお、属性としては文字/図画/写真/線/表等が判定される。また、ラスタ画像に対して矩形領域にブロック分割する方法としては、上述したステップS1703と同様のBS処理を行えば良い。
ここで図13に、スキャン文書ブロック情報の構成例を示す。同図に示されるようにスキャン文書ブロック情報は、領域分割された各ブロックに対して、「ブロックID」、「位置」、「サイズ」、「属性」、「画像特徴/テキスト情報」を対応付けて格納したテーブルとして構成される。具体的には、「ブロックID」、「位置」、「サイズ」、「属性」については、ステップS1707における登録文書ブロック情報の格納時と同様に格納される。また、「画像特徴/テキスト情報」については、属性が「画像」であれば、ステップS1404と同様にブロックの画像データから画像特徴を抽出して格納する。一方、属性が「テキスト」であれば、ブロックの画像に対して文字認識処理を施し、その結果として画像から抽出されたテキスト情報を格納する。
続いてステップS1903において、コピーが実行可能であるか否かを判定し、該判定結果に応じてステップS1904で処理を分岐する。すなわち、コピー可能であると判定された場合はステップS1905へ進み、コピー不可と判定された場合はコピー処理を終了する。この判定処理の詳細については図20を用いて後述するが、ここでその概要を説明する。基本的に、ステップS1902で領域分割された各ブロックの画像を、ステップS507で登録された画像から検索する。そして、登録された画像と一致するブロック画像があれば、その画像に対応付けられたデータベース105の画像情報中における、処理フラグの印刷可否の値と実行権限レベルに基づいて、コピーの可否を判定する。ここで例えば、図10Bに示すような、管理職以外のユーザによるコピーを禁止したい画像を登録する場合について考える。この場合、管理職以上の実行権限レベルを示す値が「3」以上であれば、ステップS507でこの画像を登録する際の画像情報として、印刷可否のフラグを「可」に設定し、実行権限レベルの値を「3」に設定しておく。これにより、ステップS501でログインしたユーザが実行権限レベル「2」以下の一般者である場合にはコピー不可となり、実行権限レベル「3」以上の管理職以上のユーザに対してのみ、コピー可と判定される。
ステップS1905では、ステップS1901で読み込んだスキャン画像の原本であるアプリケーション文書が、データベース105および文書管理サーバ106に登録されているか否かを、該スキャン画像のブロック単位での検索を行うことによって判定する。そして該判定結果に応じて、ステップS1906で処理を分岐する。すなわち、原本が存在しなければステップS1907に進み、原本が存在すればステップS1909へ進む。なお、ステップS1905における原本検索処理の詳細については、図22を用いて後述する。
ステップS1907では、原本そのものは登録されていないため、ステップS1902で分割された各ブロックに対するオリジナル画像が登録されていれば、ステップS1901で読み込んだスキャン画像に対して該オリジナル画像データによる部分置換を行う。この部分置換処理の詳細については、図23を用いて後述する。
続いてステップS1908において、ステップS1907で部分置換がなされた画像データを、MFP100の記録装置112より印刷出力する。すなわち、マネージメントPC101におけるRAM32上の画像データを、LAN109を介してMFP100の記憶装置111に転送し、該画像データを記録装置112より印刷出力させる。
一方、ステップS1909においては、ステップS1905で検索された原本であるアプリケーション文書を、MFP100の記録装置112より印刷出力する。すなわち、文書管理サーバ106に格納されている文書ファイルに対して、ステップS1701、S1702と同様にPDL化、ラスタライズを施し、該処理後の画像データをステップS1908と同様にMFP100に転送して印刷出力する。
ステップS1908における置換文書の印刷処理、またはステップS1909における原本印刷処理が終了すると、ステップS511のコピー処理を終了する。
このように本実施形態のコピー処理においては、図10Bに示されるような、ユーザにとって処理制御が明確に認識可能であるような画像をオリジナル画像としてその処理制御情報とともに登録しておくことにより、次のような効果が得られる。すなわち、図10Bの「管理職以外コピー禁止」を示す画像を含んで記録された紙文書であれば、管理職でないユーザは該紙文書のコピーが禁止されている旨を容易に認識することができ、無駄にコピーを試みてしまう可能性は減少する。もちろん、実際にコピーが試みられた場合でも、上述したように各フラグが設定されていれば、望まれないコピー処理は行われない。
・実行可否判定処理
ここで図20を用いて、上述したステップ1903におけるコピー処理の実行可否判定処理について、詳細に説明する。なお、この実行可否判定はコピー処理におけるステップS1903に限らず、後述する送信処理におけるステップS2404や、保存処理におけるステップ2703においても実行されるものである。したがって、以下ではこれら各処理に対する実行可否判定を行うものとして説明する。
まずステップS2001において、ステップS1902で矩形領域に分割されたブロックを順次取り出す。なおこのとき、画像ブロックとテキストブロックを区別せずに、両方を取り出す。
そしてステップS2002においてブロックの取り出し結果を判定し、ブロックが取り出せればステップS2003へ進むが、全ブロックの取り出しを終えていれば、ステップS2011へ進む。
ステップS2003では、ステップS2001で取り出した画像ブロックの画像特徴を抽出し、ステップS2004では該抽出した画像特徴と類似する画像特徴を有する画像を、データベース105の画像情報から検索する。なお、ステップS2003,S2004における画像特徴抽出処理,画像検索処理は、上述したステップS1404,S1405と同様であるため、ここでは詳細な説明を省略する。
そしてステップS2005において、ステップ2004の画像検索で候補が検出されたか否かに応じて処理を分岐する。すなわち、候補があればステップS2006へ進み、候補がなければステップS2001へ戻って次ブロックの処理を行う。このように、ステップS2001で取り出した、文字領域を含む全てのブロックに対して画像検索を行うことによって、以下のような効果が得られる。すなわち、例えば図10Cのような実質的には文字領域であるブロックについても、これをステップS507で画像モードで登録しておくことにより、該ブロックを実行可否判定に用いることができる。
ステップS2006では、ステップS2004で検出された候補を順次取り出し、ステップS2007で該取り出し結果に応じて処理を分岐する。すなわち、候補を取り出すことができればステップS2008へ進むが、全候補の取り出し終えていればステップS2001へ戻って次ブロックの処理を行う。
ステップ2008では、ステップS2001で取り出したブロックの画像と、ステップS2006で取り出した候補画像とをそれぞれラスタ画像として比較することによって、これらが同じ画像であるか否かを判定する。このラスタ比較処理は上述したステップS1506と同様であるため、ここでは詳細な説明は省略する。
ステップS2009では、ステップS2008におけるラスタ比較の判定結果に応じて処理を分岐する。すなわち、これらが同じ画像であると判定された場合はステップS2010へ進み、そうでなければステップS2006へ戻って次候補画像との比較を行う。
このように、スキャン画像とオリジナル画像とでその等価性を判定する際に、まず画像特徴での比較(S2004)を行った後にラスタ画像を比較(S2008)することによって、高速かつ高精度な判定を行うことができる。
ステップS2010では、ステップS2008で同じであると判定された候補画像について、その情報をオリジナル画像情報としてRAM32に格納する。ここで図21に、オリジナル画像情報の構成例を示す。図21に示されるように、オリジナル画像情報は、ステップS2008で同じと判定された個々のラスタ画像に対して、「ブロックID」、「画像ID」、および「確信度」を有する。具体的に、「ブロックID」はステップS2001で取り出した画像のブロックIDであり、「画像ID」はステップS2006で取り出した候補画像の画像情報における「画像ID」である。また「確信度」は、ステップS2008で同一性を判定した際に算出される。ここで確信度としては、例えば、ステップS1506におけるラスタ比較処理でも用いた、差分の画素値が0近傍の画素の占める面積の割合を用いる。なお、図21においてブロックID=3の例として示されるように、ステップS2001で取り出した1ブロックに対して、複数のオリジナル画像が候補として検出され、オリジナル画像情報に格納される場合もある。
オリジナル画像記録処理が終了すると、処理はステップS2006に戻って次候補の処理を行う。
ステップS2002において全てのブロックについての処理が終了すると、ステップ2011において、少なくとも1つのオリジナル画像情報が格納されているか否かを判定する。オリジナル画像情報が格納されていなければステップS2017へ進んで当該コピー処理が実行可能であると判定するが、格納されていればステップS2012へ進む。
ステップS2012では、ステップS2010でオリジナル画像情報に格納された全てのオリジナル画像について、データベース105内の画像情報中の処理フラグを集計する。すなわち、オリジナル画像情報に格納されている全ての画像IDによってデータベース105の画像情報を検索し、対応する処理フラグ(図9に例示)を全て抽出する。そして、該抽出された処理フラグのうち、印刷可否、送信可否、保存可否のそれぞれについて論理積をとり、履歴保存、履歴通知について論理和をとる。
続いてステップS2013では、ステップS2012で集計した処理フラグに基づき、履歴処理を実行するか否かを判定する。すなわち、履歴保存、履歴通知のいずれかのフラグが「1」であれば、履歴処理を実行するものとしてステップS2014へ進み、そうでなければステップS2015へ進む。
ステップS2014では、履歴処理を実行する。すなわち、集計結果としての履歴通知フラグが「1」であれば、オリジナル画像情報に格納されている全ての画像IDによって、データベース105の画像情報を検索する。そして、履歴通知フラグの値が「1」である画像について、対応する管理者のメールアドレスを取得し、該メールアドレス宛に、電子メールを送付する。この場合のメールの内容としては少なくとも、その時点の時刻と、ステップS501でログインしたユーザのユーザ名、およびステップS2006で読み込んだ候補画像データが含まれる。また同様にして、所定のディレクトリ(例えば、画像IDをディレクトリ名とするディレクトリ)に、ステップS1901で読み込んだブロックの画像データと、該読み込み時刻と、ステップS501でログインしたユーザのユーザ名、等の履歴情報を格納する。
ステップS2015では、ステップS2012で集計した処理フラグを用いて、現在の処理(コピー/送信/保存)が実行可能であるか否かを判定する。この判定は、実行中の処理がコピーであれば印刷可否フラグを、送信であれば送信フラグを、保存であれば保存フラグを、それぞれ用いて行われる。すなわち、集計したフラグの値が「0」であれば実行不可であると判定し、ステップS2016へ進んだ後、実行可否判定の処理を終了する。一方、集計したフラグの値が「1」であれば、オリジナル画像情報に格納されている全ての画像IDによってデータベース105の画像情報を検索して、対応する処理フラグ(印刷可否/送信可否/保存可否)の値が「1」である画像を抽出する。そして、該抽出された画像に対して、対応する実行権限レベルの値を求め、これをステップS501でログインしたユーザの実行権限レベルと比較する。該比較の結果、フラグの値が「1」である画像に対する実行権限レベルの要件を満たしていれば、ステップS2017へ進んで実行可と判定して、処理を終了する。なお、実行権限レベルの要件は、ユーザの実行権限レベルの値が、登録されている実行権限レベルよりも等しいまたは大きい場合に満たされる。一方、実行権限レベルが満たされない場合、ステップS2016へ進んで実行不可と判定すして、処理を終了する。
・原本検索処理
次に図22を用いて、上述したステップ1905における原本検索処理について、詳細に説明する。本実施形態の原本検索処理においては、処理対象のスキャン文書についてそのブロック単位に、まず画像属性ブロックと原本画像との類似性を判定し、次いでテキスト属性ブロックの類似性を判定することによって、文書全体としての類似性を判定する。
まずステップS2201において、ステップS1902で作成したスキャン文書ブロック情報中の属性が「画像」である全ブロックに対して、そのオリジナルとなる画像がデータベース105に画像情報として登録されているか否かを判定する。すなわち、スキャン文書ブロック中の属性が「画像」である画像IDの全てが、上述したステップS2010(S1903)で作成したオリジナル画像情報に格納されていれば、オリジナル画像が登録されていると判定する。オリジナル画像が登録されていれば、ステップS2202へ進むが、登録されていなければステップS2209へ進んで、原本がないものとして原本検索処理を終了する。
ステップS2202では、データーベース105の登録文書ブロック情報を検索して、ステップS2201でオリジナルとされた画像IDの全てを含む文書IDを検出する。そしてステップS2203で該検出結果に基づき、原本の画像IDの全てを含む文書IDが存在すればステップS2204へ進むが、そうでなければステップS2209へ進んで、原本がないものとして原本検索処理を終了する。
ステップS2204では、ステップS1902でBS化したブロックのレイアウトと、ステップS2202で検出された文書IDに対するブロックのレイアウトを比較し、これらが一致するか否かを判定する。すなわち、スキャン文書ブロック情報に格納されたブロックの位置とサイズ、および属性の各値が、ステップS2202で検出された文書IDに対する登録文書ブロック情報の値と一致していれば、レイアウトが一致するものとみなしてステップS2205へ進む。レイアウトが一致していなければステップS2209へ進み、原本がないものとして原本検索処理を終了する。
ステップS2205では、ステップS1902でBS化したテキストブロックと、ステップS2202で検出された文書のテキストブロックとの間において、テキストの類似性を判定する。一般に、テキストブロックを検出する際に実行されるOCR等の文字認識処理においては、誤認識が発生する可能性があるため、たとえ同一文書であっても、そのテキスト認識結果は常に一致するとは限らない。したがって本実施形態では、例えば以下のような方法により、テキストの類似性を判定する。すなわち、ステップS1902でBS化した全てのテキストブロックについて、そのテキスト情報に格納されている文字数のうちの所定の割合以上が、ステップS2202で検出された文書のテキストブロックに対するテキスト情報に存在しているかを判定する。存在していれば、これらのテキストは類似しているものと判定して、ステップS2206へ進むが、そうでなければステップS2209へ進んで、原本がないものとして原本検索処理を終了する。
ステップS2206では、ステップS1901で読み込んだラスタ画像と、ステップS2202で検出された文書のラスタ画像を比較する。ここで、ステップS2202で検出された文書のラスタ画像は、そのオリジナル文書に対して、ステップS1701、S1702と同様にPDL化、ラスタライズを施すことによって得られる。なお、該オリジナル文書は、上述したように、文書IDのファイル名で所定のディレクトリに格納されている。また、ラスタ画像の詳細比較は、ステップS1506と同様の手法で行う。すなわち、差分の画素値が0近傍の画素の占める面積の割合が所定の割合以上である場合に、ステップS2207で両画像が一致するとみなしてステップS2208に進み、原本が存在するものとして原本検索処理を終了する。そうでなければ、ステップS2207で両画像は一致しないとみなしてステップS2209へ進み、原本がないものとして原本検索処理を終了する。
このように、本実施形態の原本検索処理においては、原本となるオリジナル文書中の画像領域の画像と特定画像の情報とが共通の記憶装置(データベース105)に登録されているため、スキャン画像に対して原本を検索する際に、この記憶装置が検索される。このとき、該スキャン文書に対応するオリジナル画像も全て検出されるため、原本が存在しない場合であっても、再度オリジナル画像の検索を行う必要はなく、該検索に係る負荷が軽減される。
・部分置換処理
次に図23を用いて、上述したステップ1907における部分置換処理について、詳細に説明する。
まずステップS2301において、上述したステップS2010(S1903)で作成したオリジナル画像情報の中から、オリジナル画像を順次取り出す。そしてステップS2302においてオリジナル画像の取り出し結果を判定し、オリジナル画像が取り出せればステップS2303へ進むが、全画像の取り出しを終えていれば部分置換処理を終了する。
ステップS2303では、ステップS2301で取り出したオリジナル画像によって、対応するブロックの画像を置換することが可能であるか否かを判定する。すなわち、ステップS2301で取り出したオリジナル画像の画像IDによって、データベース501内の画像情報を検索し、対応する処理フラグの値を調べる。処理フラグにおける「置換可否」の値が「1」であれば。置換可能であるとしてステップS2304へ進むが、「置換可否」の値が「0」であれば置換不可であるとしてステップS2301へ戻り、次のオリジナル画像の処理に移行する。
ステップS2304では、ステップS2301で取り出したオリジナル画像がベクトル画像であるか否かを判定し、ベクトル画像であればステップS2305へ進み、そうでなければステップS2306へ進む。
ステップS2305では、ステップS2301で取り出したベクトル画像に対するラスタライズを行って、置き換え用のラスタ画像を生成する。詳細には、ステップS2301で取り出したオリジナル画像に対するブロックIDに基づき、スキャン文書ブロック情報に格納されている置換対象ブロックのサイズを求め、そのサイズに合わせたラスタライズを行う。
一方、ステップS2306では、ステップS2301で取り出したオリジナルのラスタ画像を、置換対象ブロックのサイズに合わせて縮小する。
ステップS2305またはS2306によって置き換え用のラスタ画像が生成されると、次にステップS2307において、部分画像の置換処理を行う。すなわち、ステップS1901で読み込んだスキャン画像内において、ステップS2301で取り出したオリジナル画像に対応するブロックの部分画像を、ステップS2305もしくはステップS2306で作成したラスタ画像で置き換える。そして、ステップS2301へ戻って次のオリジナル画像に対する処理を行う。
以上説明したように本実施形態におけるスキャン画像のコピー時には、オリジナルに置き換えた画像データを用いた印刷を行うことにより、オリジナルとして登録済みの特定画像部分については高画質を保ったコピーを行うことができる。
●送信処理(詳細)
以下、上述したステップS512における送信処理について、図24のフローチャートを用いてその詳細を説明する。
まずステップS2401において、送信先のe−mailアドレスを入力する。次にステップS2402において、MFP100の画像読み取り部110で原稿画像を読み取り、該読み取ったスキャン画像データをLAN109を介してRAM32にロードする。この画像読込み処理は、上述したステップS1901と同様であるため、ここでは詳細な説明を省略する。
続いてステップS2403において、RAM32上にロードされたスキャン画像データに対して、矩形領域単位に領域を分離し、各領域(ブロック)毎に属性を判定し、その結果を図13に示すスキャン文書ブロック情報としてRAM32に格納する。なお、属性としては文字/図画/写真/線/表等が判定される。このBS処理については上述したステップS1902と同様であるため、ここでは詳細な説明を省略する。
続いてステップS2404において、送信が実行可能であるか否かを判定し、該判定結果に応じてステップS2405で処理を分岐する。すなわち、送信が可能と判定された場合はステップS2406へ進み、送信不可と判定された場合は送信処理を終了する。このステップS2404における送信処理の実行可否判定処理については、上述したステップS1903の説明の際に、既に図20を用いて詳述したため、ここでは説明を省略する。 ステップS2406では、ステップS2402で読み込んだスキャン画像の原本であるアプリケーション文書が、データベース105および文書管理サーバ106に登録されているか否かを、これを検索することによって判定する。そして該判定結果に応じて、ステップS2407で処理を分岐する。すなわち、原本が存在しなければステップS2408に進み、原本が存在すればステップS2409へ進む。なお、ステップS2406における原本検索処理は上述したコピー処理におけるステップS1905と同様であるため、ここでは説明を省略する。
ステップS2408では、ステップS2406で検出された原本としてのアプリケーション文書を、ステップS2401で設定した送信先宛てに電子メールとして送信する。
一方、ステップS2409では、ステップS2402で読み込んだスキャン画像データに対してベクトル化を行う。このとき、スキャン画像内の画像ブロックを必要に応じてオリジナル画像に置き換える。このベクトル化処理の詳細については、図25を用いて詳述する。
そしてステップS2410において、ステップS2409でベクトル化した画像データを、ステップS2401で設定した送信先宛てに電子メールとして送信する。
以上のように、ステップS2408で原本画像を送信する、またはステップS2409でベクトル化したスキャン画像を送信することによって、送信処理を終了する。
・ベクトル化処理
次に図25を用いて、上述したステップ2409におけるベクトル化処理について、詳細に説明する。
まずステップS2501において、ステップ2402で読み込んだスキャン画像データの全体に対してベクトル化を行う。なお、ここでのベクトル化手法としては、ラスタ画像に対してBS化を行い、各ブロックの文字や線画などをベクトル化する方法があるが、このようなベクトル化方法は例えば特開2004−265384に開示されているため、詳細な説明は省略する。ベクトル化の結果として得られる画像データは、例えばSVGのような、ベクトル画像を格納可能な標準的なフォーマットに変換し、ハードディスク33上の所定のディレクトリに一時的に格納しておく。
続いてステップS2502において、ステップS2404の実行可否判定処理において作成されたオリジナル画像情報から、スキャン画像に含まれるオリジナル画像部分のブロックIDとそれに対応した画像IDを順次取り出す。そしてステップS2503において該取り出し結果を判定し、ブロックIDが取り出せればステップS2504へ進むが、全ブロックの取り出しを終えていればベクトル化処理を終了する。ここで図21に例示されているように、オリジナル画像情報には、ひとつのブロックに対して複数のオリジナル画像が格納されている場合がある。すなわち、ひとつのブロックに対するリジナル画像の候補が複数存在し、同じブロックIDが複数回登録されている場合がある。このような場合には、同じブロックIDに対応したオリジナル画像候補となる画像IDの全てを、一度の読み取りで取り出す。
ステップS2504では、ステップS2502で取り出した画像IDに基づくオリジナル画像がベクトル画像であるか否かを判定し、ベクトル画像であればステップS2505へ進み、ベクトル画像でなければステップS2507へ進む。この判定は、オリジナル画像の画像IDに基づいてデータベース105内の画像情報を検索し、対応する「種類」の情報を参照することによって行われる。なお、ステップS2502でひとつのブロックIDに対して複数の画像IDが取り出された場合には、その少なくとも1つがベクトル画像であれば、ステップS2505へ進む。
ステップS2505では、ステップS2502で取り出した画像IDに基づくオリジナル画像が、ベクトル化可能であるか否かを判定する。この判定は、ステップS2502で取り出したオリジナル画像の画像IDによってデータベース105内の画像情報を検索し、対応する処理フラグにおける「ベクトル化可否」の値を参照することによって行われる。すなわち、ベクトル化可否の値が「1」であれば、ベクトル化が可能なものとしてステップS2508へ進み、「0」であればベクトル化が不可であるとしてステップS2506へ進む。なお、ステップS2502でひとつのブロックIDに対して複数の画像IDが取り出された場合には、その少なくともひとつの画像に対するベクトル化可否の値が「0」であれば、ベクトル化不可であるとしてステップS2506へ進む。
ステップS2506では、ステップS2502で取り出した画像IDに基づくオリジナルのベクトル画像をラスタライズし、これをラスタ画像ファイルとして文書管理サーバ106の所定のディレクトリに格納する。このとき、画像IDをファイル名として、拡張子をJPGやBMP等のラスタ画像を格納する際のファイルフォーマットに合わせて格納する。
続いてステップS2507では、ステップS2502で取り出した画像IDに基づくオリジナル画像への置き換えが可能であるか否かを判定する。この判定は、ステップS2502で取り出したオリジナル画像の画像IDによってデータベース105内の画像情報を検索し、対応する処理フラグの「置換可否」の値を参照することによって行われる。すなわち、置換可否の値が「1」であれば、置換えが可能なものとしてステップS2508へ進むが、「0」であれば置換え不可としてステップS2502へ戻り、次ブロックの処理に移行する。なお、ステップS2502でひとつのブロックIDに対して複数の画像IDが取り出された場合には、少なくともひとつの画像に対する置換可否の値が「0」であれば、置換え不可としてステップS2502へ戻る。
ステップS2508では、ステップS2501でベクトル化した1頁分のスキャン画像データにおいて、ステップS2502で取得したブロックIDに対応する画像データを置き換える。すなわち、ステップS2502で取得したブロックIDに対応するスキャン画像の部分画像データが、ステップ2502で取り出した画像IDに基づくオリジナル画像、もしくはステップS2506でラスタライズしたオリジナル画像によって置き換えられる。なお、このブロック画像置換処理においては、ステップS2502で取り出した画像IDに対応するオリジナル画像の確信度に応じて置換方法を切り替えるが、この処理の詳細については図26を用いて後述する。
以上のように、送信処理時にベクトル化の可否を制御することによって、以下のような効果が得られる。
例えば、図10Aに示されるようなロゴマーク等の特定画像を送信する際に、著作権等の問題により該特定画像がベクトル化して再利用されることを回避したい場合が考えられる。このような場合、ステップS507で該特定画像を登録する際に、ベクトル化および置換を不可として登録しておけば良い。このように事前登録を行うことにより、ステップS2409でベクトル化処理を実行しても、実際にはベクトル化されることはなく、また、オリジナルのベクトル画像データをラスタライズした高画質な画像に置き換えられることもない。すなわち、ステップ2402で読み込んだスキャン画像がそのまま送信されるため、著作権等に関する問題を回避できる。
また同様に、特定画像をベクトル化することは回避したいものの、高画質な画像を送信したい場合には、ステップS507で該特定画像を登録する際に、ベクトル化を不可とし、置換を可として登録しておけばよい。このように事前登録を行うことにより、ステップS2409でベクトル化処理を実行しても、実際にはベクトル化されないものの、オリジナルの高画質画像への置き換えが行われる。
また、特定画像をベクトル化しても構わない場合には、ステップS507で該特定画像を登録する際に、ベクトル化を可として登録しておけばよい。このように事前登録を行うことにより、ステップS2409のベクトル化処理における置き換え用の特定画像として、スキャン画像をベクトル化したものでなく、予め登録しておいたオリジナル画像のベクトルデータが用いられる。したがって、オリジナル画像に対して印刷、スキャン、ベクトル化の各処理が施されることに起因する画質の劣化を避けることができる。
また、特定画像が自然画等のベクトル化が難しい画像である場合についても、該特定画像の使用頻度が高いものであれば、そのラスタ画像をステップS507で登録し、置換可を設定しておけばよい。このような事前登録を行うことにより、ステップS2409のベクトル化処理においては、該特定画像部分がオリジナルのラスタ画像に置き換えられる。したがって、オリジナル画像に対して印刷、スキャン、ベクトル化の各処理が施されることに起因する画質の劣化を避けることができる。
・ブロック画像置換処理
次に図26を用いて、上述したステップ2508におけるブロック画像置換処理について、詳細に説明する。
まずステップS2601において、ステップS2502で取り出したオリジナル画像の確信度に基づき、対応するスキャン画像内のブロック画像部分(以下、元画像と称する)が不要であるか否かを判定する。すなわち、ステップS2502でオリジナル画像情報から取り出した画像IDに対応する確信度が所定値(例えば99)以上であれば、元画像をオリジナル画像で置き換えてもなんら問題がないと判断し、元画像を不要とみなす。元画像が不要であると判定されるとステップS2603へ進み、そうでなければステップS2602へ進む。なお、ステップS2502でひとつのブロックIDに対して複数の画像IDが取り出された場合には、該複数の画像IDに対応する複数の確信度のうちの、最大の値によって上記判定を行う。
ステップS2602では、ステップS2502で取り出したオリジナル画像の確信度に基づき、該オリジナル画像による置き換えの必要性を判定する。すなわち、上述したステップS2601と同様にオリジナル画像の確信度の値が所定値(ステップS2601よりも小さい値、例えば95)以下であれば、該オリジナル画像による置き換えは不要と判定し、ステップS2606へ進む。一方、置き換えが必要であると判定された場合には、ステップS2604に進む。
すなわち、ステップS2601とS2602での判定によって、オリジナル画像の確信度が十分に高い場合(例えば99以上)と、十分ではないが高い場合(例えば95以上99未満)、および高くない場合(例えば95未満)とで、処理が分岐される。確信度が十分に高い場合はステップS2603へ、十分ではないが高い場合にはステップS2604へ、高くない場合にはステップS2606へ進む。
ステップS2603では、元画像が不要であると判定されているため、これを削除する。すなわち、ステップS2501でベクトル化してハードディスク33に格納したベクトル画像データから、ステップS2502で取り出したブロックIDに対応した部分データを削除する。削除対象となるデータは、スキャン文書ブロック情報にブロックIDに対応して格納されている位置とサイズに基づいて容易に特定できる。
ステップS2604では、元画像をオリジナル画像で置き換える必要があると判定されているため、元画像が無効となるように隠蔽する。すなわち、ステップS2501でベクトル化してハードディスク33に格納したベクトル画像データのうち、ステップS2502で取り出したブロックIDに対応した部分データについて、これが有効データとして扱われないように隠蔽する。例えばベクトル画像データがSVG形式であれば、隠蔽対象のベクトルデータをコメントアウトすることによって無効化する。その際、コメントアウトされたベクトルデータがスキャン画像であった旨を示すために、所定のスキャン画像マークを付与する。以下に、ベクトルデータをコメントアウトした例を示す。この例では、「@スキャン画像」がスキャン画像マークである。
<!−− @スキャン画像
<rect ..... />
@スキャン画像 −−>
以上説明したステップS2603における元画像の削除処理、またはステップS2604における元画像の隠蔽処理が終了すると、ステップS2605に進む。
ステップS2605では、ステップS2502で取り出したオリジナル画像、もしくはステップS2506でこれをラスタライズした画像を、置き換え後の画像として、ステップS2501でベクトル化された1ページ分のベクトル画像データに追加する。このときの追加方法としては、文書管理サーバ106に格納されたオリジナル画像のファイルを参照可能とするように、外部ファイルのエンティティを参照する形式をとる。例えばベクトル画像データがSVG形式であれば、image要素を使用すればよい。またその際、追加された画像がオリジナル画像である旨を示すために、所定のオリジナル画像マークを付与する。以下に、ベクトルデータに対して置き換え後の画像を外部エンティティとして追加した例を示す。この例では、「@オリジナル画像」がオリジナル画像マークとしてコメントされ、image要素によって外部エンティティが参照されていることが分かる。
<!−− @オリジナル画像 −−>
<image x=”20” .....
xlink:href=”...”/image>
<!−− @オリジナル画像 −−>
なお、ステップS2502でひとつのブロックIDに対して複数の画像IDが取り出された場合には、確信度の一番高い画像のみを有効データとして追加する。そしてその他の画像については置き換えの候補として、ステップS2604と同様に隠蔽した形式で、外部エンティティとして追加する。この場合も、追加された画像がオリジナル画像である旨を示すために、所定のオリジナル画像マークを付与する。以下に、置き換え候補画像を隠蔽して追加する例を示す。この例では「@オリジナル画像」がオリジナル画像マークである。
<!−− @オリジナル画像
<image x=”20” .....
xlink:href=”...”/image>
@オリジナル画像 −−>
一方、ステップS2606では、ステップS2502で取り出したオリジナル画像、もしくはステップS2506でこれをラスタライズした画像を、置き換えの候補として、ステップS2605における置換えの候補と同様に、隠蔽した形式で追加する。
このように、スキャン画像中の特定画像をオリジナルに置き換え、さらにオリジナルの置き換え候補も追加する場合に、オリジナルの画像データそのものをスキャン画像データ内に埋め込むのではなく、外部ファイルへのポインタを埋め込む。これにより、置換後のスキャン画像データのサイズを小さくすることができる。
上述したテップS2605の置換画像追加処理、またはステップS2606の置換候補追加処理を終えると、ブロック画像置換処理を終了する。
以上のようにブロック画像置換処理においては、オリジナル画像の確信度が十分に高ければ元画像を削除してオリジナルの置換画像を追加し、該確信度が十分ではないものの高いのであれば元画像を隠蔽した状態でオリジナルの置換画像を追加する。また、オリジナル画像の確信度が高いとはいえないのであれば、オリジナル画像を単なる置換候補として追加する。
以上のように本実施形態の送信処理においては、スキャン画像中で置き換えられなかった部分の画像データについてはベクトル化されるため、スキャン画像のサイズを小さくすると共に、このような未登録の画像部分についても編集が容易となる。
●保存処理(詳細)
以下、上述したステップS513における保存処理について、図27のフローチャートを用いてその詳細を説明する。
まずステップS2701において、MFP100の画像読み取り部110から画像を読み取り、該読み取ったスキャン画像データをLAN109を介してRAM32にロードする。この画像読込み処理は、上述したステップS1901と同様であるため、ここでは詳細な説明を省略する。
続いてステップS2702において、RAM32上にロードされたスキャン画像データに対して、矩形領域単位に領域を分離し、各領域(ブロック)毎に属性を判定し、その結果を図13に示すスキャン文書ブロック情報としてRAM32に格納する。なお、属性としては文字/図画/写真/線/表等が判定される。このBS処理については上述したステップS1902と同様であるため、ここでは詳細な説明を省略する。
続いてステップS2703において、該スキャンデータの保存が実行可能であるか否かを判定し、該判定結果に応じてステップS2704で処理を分岐する。すなわち、保存が可能と判定された場合はステップS2705へ進み、不可と判定された場合は保存処理を終了する。なお、ステップS2703における保存処理の実行可否判定処理については、上述したステップS1903の説明の際に図20を用いて詳述したが、基本的には以下のとおりである。すなわち、まずステップS2702で領域分割された各ブロックの画像を、登録済み画像から検索する。そして、スキャン画像内に登録画像と一致するブロックがあれば、その画像に対応するデータベース105内の画像情報において、その処理フラグの「保存可否」の値と、実行権限レベルに基づき、該画像が保存可能であるか否かを判定する。例えば、図10Cに示すような広く頒布される画像をステップS507で登録する際に、その画像情報中の保存可否のフラグを「可」に、実行権限レベルの値を「0」に設定しておくと、全てのユーザに対して保存可と判定される。
ステップS2705では、保存時の格納先が設定されているか否かを判定する。すなわち、ステップS2703で作成されたオリジナル画像情報に格納された画像IDでデータベース105の画像情報を検索し、画像IDに対応した「保存先」に情報が格納されているかを調べる。この保存先情報が格納されていなければステップS2706へ進み、格納されていればステップS2707へ進む。なお、オリジナル画像情報としてひとつのブロックIDに複数の画像IDが登録されている場合には、少なくとも1つの画像の「保存先」に情報が格納されていれば、格納先ありとしてステップS2707へ進む。
ステップS2706では、格納先が未設定であるため、表示装置35に格納先の設定画面を表示し、タッチパネル36によってユーザが入力した保存先の情報を取り込む。
そしてステップS2707では、ステップS2701で読み込んだスキャン画像データを、ステップS2705で登録が確認された保存先、あるいはステップS2706でユーザにより設定された保存先に、格納する。なお、保存先として複数を設定することが可能であり、この場合にはそれぞれの保存先にスキャン画像データを格納する。
以上のように本実施形態のスキャン画像保存処理によれば、以下のような効果が得られる。例えば、アンケート用の帳票に図10Cに示す画像をマークとして付加するものとし、このマーク画像をステップS507で登録する際に、その画像情報における「保存先」情報として、該帳票を保存すべきディレクトリを設定しておく。これにより、アンケート回答が入力された帳票をステップS2701で読み込んだ際に、これを格納するディレクトリを設定しなくても、そのスキャン画像は事前に設定したディレクトリに自動保存される。
●受信画像における置換画像選択
以上、本実施形態におけるMFP100およびマネージメントPC101において実行される処理について説明した。
上述したように、ステップS512の送信処理においては、MFP100で読み取られたスキャン画像がベクトル化され、必要に応じてその一部がオリジナル画像に置き換えられた後、電子メールとしてマネージメントPC101から送信先に送信される。送信先において受信された画像は、送信先ユーザのクライアントPCで閲覧されることになる。ここで、該受信された画像においては、上述したような部分置換が行われたことによって実際にスキャンされた画像とは異なっている可能性がある。また、オリジナル画像の情報が置き換え候補として埋め込まれているだけで、実質的な置き換えは行われていない可能性もある。したがって、置き換えが行われた可能性のある画像を受信したクライアントPC102においては、適切な置換画像の選択を行う必要がある。
以下、クライアントPC102における置換画像の選択処理について、図28を用いて詳細に説明する。
図28は、ステップS512で送信され、クライアントPC102で受信された画像データについて、クライアントPC102のユーザが適切な置換画像を選択するためのUIとしての画面表示である。同図において、2801は受信した画像データを表示する受信画像領域である。
受信画像領域2801内におけるブロック領域2802と2803は、受信画像内において置き換えられた可能性のあるブロックを、例えば点線で囲むことによって示している。すなわち、ステップS2508のブロック画像置換処理によって、オリジナル画像に置き換えられた、あるいは、置換え候補のオリジナル画像のデータが埋め込まれたブロックである旨をユーザに示す。ここで、受信した画像データには、図26を用いて説明したように、オリジナル画像のデータであればその旨を示すオリジナル画像マーク(例えば「@オリジナル画像」)が埋め込まれているため、置換が発生した箇所を容易に検出できる。また、例えばSVGの場合、外部エンティティを参照するためのimage要素におけるx,y,width,height属性により、置き換えられたブロック領域を容易に特定できる。また、既にオリジナル画像に置き換えられているのか、または置換え候補が追加されただけなのかについては、オリジナル画像のデータがコメントアウトされているか否かによって容易に判定できる。したがって、ブロック領域2802,2803としては、この判定結果をユーザに示すために、例えば領域を囲む点線の色を変えて表示する。なお、置換画像として追加されたオリジナル画像についは、その実データを外部エンティティからロードすることによって、表示される。
そして、ユーザがブロック領域2802,2803をマウス等でクリックすると、現在表示されている画像に代えて、隠蔽された画像データすなわちコメントアウトされている画像データがあれば、これを表示する。隠蔽された画像データが2つ以上ある場合には、表示するデータを循環的に切り替える。またこのとき、表示されている画像がスキャン画像であるかオリジナル画像であるかに応じて、領域を囲む点線の色も切り替える。
2804はオリジナル選択ボタンであり、このボタンがクリックされると、ブロック領域2802,2803における置換画像の表示を、全てオリジナル画像のもの、すなわち置換済みの状態に一括して切り替える。また、2805はスキャン選択ボタンであり、このボタンがクリックされると、ブロック領域2802,2803における置換画像の表示を、全てスキャン画像のもの、すなわち置換なしの状態に一括して切り替える。
2806は保存ボタンであり、このボタンがクリックされると、その時点で受信画像領域2801に表示されている画像を、実データとしてファイルに保存する。
このように本実施形態においては、クライアントPC102で受信した画像データについて、部分画像に対する置換えの発生状況が識別可能となるように表示されるため、ユーザが容易に、ブロック単位で置換画像を選択することができる。したがって、ユーザは受信した画像データを所望の形式で保存することができ、例えば該画像データの作成時とは異なるアプリケーションで利用すること等も可能となる。
●本実施形態による効果
以上説明したように本実施形態によれば、使用頻度の高い特定画像を予めオリジナル画像として登録しておき、スキャン画像の中から、オリジナル画像と等価とみなせる部分画像が検出されると、これをオリジナル画像で置き換える。これにより、スキャン画像内における特定画像については、印刷時およびスキャン時の画質劣化の影響を受けない高画質が得られる。
また、上記特定画像に加えて、再利用の可能性の高い文書もオリジナル画像として登録することにより、スキャン画像に対して、まず原本となるオリジナル文書画像を検索し、該原本がない場合に、オリジナル画像を検索して置き換えを行うことができる。これにより、オリジナル文書画像が登録されていた場合にはこれを利用することにより、確実に高画質が得られる。
また、本実施形態によれば、特定の画像をオリジナル画像として処理制御情報とともに登録しておくことにより、該オリジナル画像を含んで記録された紙文書がスキャナ等で読み込まれた際に、その処理制御情報に基づく処理制御が行われる。したがって、例えば図10Bの画像登録によるコピー制御や、図10Cの画像登録による保存制御等が可能となり、紙文書中に、バーコード等のユーザにとって認識不可能な画像を付加することなく、特定画像検出による処理制御を行うことが可能となる。
また、オリジナル画像の登録時にその処理制御情報として任意に設定可能なパラメータが含まれるため、該オリジナル画像の処理時における実行権限の制御や紙文書の分類等、柔軟なシステム運用が可能になる。
<第2実施形態>
以下、本発明に係る第2実施形態について説明する。第2実施形態における画像処理システムおよび各装置の構成は上述した第1実施形態と同様である。
上述した第1実施形態では、ステップS512の送信処理において図24に示されるように、原本の文書が見つからない場合には、ステップS2402で読み込んだスキャン画像をステップS2409でベクトル化し、該ベクトル化された画像を送信していた。第2実施形態では、スキャン画像に対する再編集を考慮しないことを前提として、読み込んだラスタ画像に対して高圧縮率な圧縮を施して、よりコンパクトな画像を送信することを特徴とする。
●送信処理
以下、第2実施形態における特徴的な送信処理について、図29を用いて詳細に説明する。
図29のステップS2901〜S2908までの処理は、上述した第1実施形態における図24のステップS2401〜S2408までの処理と同様であるため、説明を省略する。
第2実施形態においては、ステップS2907で原本画像が存在しない場合にはステップS2909において、ステップS2902で読み込んだスキャン画像を高圧縮率で圧縮する。この高圧縮処理の詳細については、図30を用いて後述する。続いてステップS2910において、ステップS2909で圧縮した画像を、ステップS2901で設定した送信先に送信する。
・高圧縮処理
次に図30を用いて、上述したステップ2909における高圧縮処理について、詳細に説明する。
まずステップS3001において、ステップS2903で作成されたスキャン文書ブロック情報から、順次ブロックの情報を取り出す。そしてステップS3002において該取り出し結果を判定し、ブロックの情報が取り出せればステップS3003へ進むが、全ブロックの取り出しを終えていれば高圧縮処理を終了する。
ステップS3003では、ステップS3001で取り出したブロックに対して、オリジナル画像が存在するか否かを判定する。すなわち、ステップS3001で取り出したブロックIDが、ステップS2904で作成したオリジナル画像情報に登録されていれば、オリジナル画像が存在するものとしてステップS3007へ進むが、そうでなければステップS3004へ進む。
ステップS3004〜S3006では、領域の属性によって最適な圧縮方式を切り替えるが、この処理については周知の技術によって実現される。例えば、特開2003−338935に開示された技術を適用すれば、ステップS3004で文字領域と判定された場合はステップS3005で2値のMMR圧縮を行い、画像領域と判定された場合はステップS3006で背景画像としてのJPEG圧縮を行う。
ステップS3007では、ステップS3001で取り出したブロックに対するオリジナル画像がベクトル画像であるか否かを判定する。すなわち、オリジナル画像情報中のブロックIDに対応した画像IDによってデータベース501の画像情報を検索し、検出された画像情報中の「種類」の値から、ベクトル画像であるか否かを判定することができる。ベクトル画像と判定された場合はステップS3008へ進み、そうでなければステップS3009へ進む。
ステップS3008では、ブロックIDに対するオリジナルのベクトル画像を、対象とするブロックのサイズでラスタライズしてラスタ画像を求める。このラスタライズ処理については、上述した第1実施形態におけるステップS2305と同様であるため、詳細な説明を省略する。
ステップS3009では、ステップS3001で取り出したブロックに対するスキャン画像データが、オリジナル画像で置換え可能であるか否かを判定する。この判定は、ブロックIDに対応した画像IDによって画像データベース501の画像情報を検索し、該検索された画像情報における処理フラグに基づいて行われる。この置換の可否を判定する処理は、上述した第1実施形態におけるステップS2303と同様であるため、詳細な説明を省略する。置換可と判定された場合はステップS3011へ進み、置換不可と判定された場合はステップS3010へ進む。
ステップS3010では、ステップS3001で取り出したブロックの画像、すなわちスキャン画像に対するJPEG圧縮を行う。このとき、ステップS3006における背景画像に対するJPEG圧縮よりも高画質となるようなJPEG圧縮を行う。例えば、ステップS3006よりも圧縮率が小さくなるような量子化テーブルを用いた圧縮を行えばよい。
一方、ステップS3011では、ステップS3001で取り出したブロックの画像を用いずに、該ブロックの対応するオリジナル画像に対するJPEG圧縮を行う。すなわち、ブロックIDに対応した画像がラスタ画像であれば該画像をそのまま圧縮し、ベクトル画像であれば、ステップS3008でラスタライズした画像を圧縮する。このとき、ステップS3010におけるスキャン画像に対するJPEG圧縮よりも高画質となるようなJPEG圧縮を行う。例えば、ステップS3010よりも圧縮率が小さくなるような量子化テーブルを用いた圧縮を行ったり、ロスレスの圧縮を行えばよい。
上述したステップS3011,S3010,S3006,S3005のいずれかの圧縮処理を終えると、ステップS3001へ戻って次ブロックの処理を行う。
なお、第2実施形態ではステップS2909の高圧縮処理においてJPEG圧縮を行う例を示したが、本発明はこの例に限定されず、JPEG2000等の自然画像に適した圧縮方式を用いてもよい。また、ステップS3006,S3010,S3011のそれぞれにおけるJPEG圧縮の画質の差別化を、量子化テーブルの切り替えによって実現していたが、本発明はこの例に限定されず、他の方法によってこれを実現することも可能である。例えば、解像度を切り替える、すなわち圧縮前の画像を縮小してからJPEG圧縮を行うようにしてもよく、この場合、ステップS3006がより小さく、ステップS3011がより大きくなるように、画像サイズを調整する。
以上説明したように第2実施形態によれば、スキャン画像における領域ブロック毎に、その属性に応じた圧縮を施す際にも、登録済みのオリジナル画像と等価なブロック画像については、オリジナル画像に置き換えてからより高圧縮率な圧縮を行う。この置き換えにより印刷およびスキャンによる画質劣化が解消され、さらにブロック単位で圧縮率を変えることにより圧縮による画質劣化も軽減される。
<変形例>
以下、上述した各実施形態に対する変形例を列挙する。
上記実施形態では、ステップS2508のブロック画像置換処理において、スキャン画像内のブロックをオリジナルのベクトル画像やラスタ画像に置き換える際に、該スキャン画像データに対して外部エンティティを参照する形式で追加する例を示した。すなわち、置換えた画像の実体を、送信する画像データ内に埋め込んではいなかったが、これを、送信する画像データ内に埋め込むようにしても良い。例えば、送信する画像ファイルのフォーマットがSVGであれば、置き換える画像がベクトル画像ならSVGに変換して直接埋め込み、ラスタ画像ならBASE64などでテキストエンコードして埋め込むことができる。
また、上記実施形態では、画像読み取り部110から読み込んだスキャン画像を文書画像と仮定し、いったんBS化して文字領域や画像領域などのブロックに分割した後、各ブロック毎にオリジナル画像を検索する例を示した。これを、特開平03−174658に開示されているように、自然画の中からロゴ領域の候補を検出し、各候補毎にオリジナル画像を検索することもできる。これにより、読み込んだ画像が文書画像ではなく、ポスターなどの自然画像であった場合にも、本発明が適用可能となる。
また、上記実施形態では、ステップS513の保存処理において、読み込んだスキャン画像に対してベクトル化を行わない例を示したが、ステップS512の送信処理と同様にベクトル化をした画像データを保存するようにしても良い。
また、画像情報において、画像IDに対応付けて保存先を記憶する例を示したが、保存先以外にも、ユーザが指定した送信先を記憶するようにしても良い。これにより、ステップS512の送信処理においても、画像情報中に記憶された送信先への送付を行うことができる。また、送信先として、電子メールアドレスだけでなくファクシミリ番号を登録できるようにしても良い。これにより、送信処理時に該ファクシミリ番号が指定された場合には、電子メール送信を行わず、ステップS2408でベクトル化された画像をラスタライズして、ファクシミリ送信することができる。
また、上記実施形態では、文書に対するアクセス制限を行うためにアクセスレベルという概念を用い、該アクセスレベルの上下によってアクセス可能なオブジェクトが増減する例を示した。これをオブジェクトごとに、アクセス可能な個人、グループを記述するようにして、個人単位、所属するグループ単位で、個別にアクセス制御を行ってもよい。
また、上記実施形態では、スキャナとプリンタが一体型のMFP100を用いる例を示したが、スキャナとプリンタをそれぞれ個別の機器としてLAN、もしくは、PCに接続した構成としても良い。この場合、図2における画像読み取り部110がスキャナに、印刷装置112がプリンタにそれぞれ相当し、それ以外の構成要素は、PCに含まれることになる。スキャナやプリンタとPCとの接続は、ネットワークI/Fを介してLAN経由で行われることになる。また、同様に、画像読み取り部110としてスキャナの代わりにデジタルカメラを用いてもよい。
<他の実施形態>
以上、実施形態例を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記憶媒体(記録媒体)等としての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等)から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、実施形態において図に示したフローチャートに対応したプログラムである。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、以下に示す媒体がある。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM,DVD-R)などである。
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントコンピュータのブラウザからインターネットのホームページに接続し、そこから本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることも可能である。すなわち該ユーザは、その鍵情報を使用することによって暗号化されたプログラムを実行し、コンピュータにインストールさせることができる。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、実行されることによっても、前述した実施形態の機能が実現される。すなわち、該プログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことが可能である。