説明

情報処理装置および褪色補正方法およびプログラムおよび記録媒体

【課題】経年変化等により劣化した記録材から読み取られた画質が低下した(褪色した)画像データを褪色補正して劣化前の状態に正確に色再現すること。
【解決手段】CPU11の制御により、現像時のフィルムからスキャナ2000により読み取り縮小処理した褪色前画像データをICチップに保存しておき、現像時より例えば数年後に前記フィルムからスキャナ2000を用いて褪色後画像データを読み取り、該読み取った褪色後画像データとICチップから読み出される褪色前画像データとに基づいて、褪色後画像データを褪色前画像データの状態に補正するためのルックアップテーブルを作成し、褪色後画像データにルックアップテーブルを適用して褪色補正する構成を特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、劣化した記録材から読み取られた画像データを記録材劣化前の状態に褪色補正する情報処理装置および褪色補正方法およびプログラムおよび記録媒体に関する。
【背景技術】
【0002】
特許文献1には、写真フィルムに記録されているフィルム画像の画質が劣化する前に、フィルム画像をスキャナで読み取り、画像を所定数のブロックに分割したときのブロックごとに、RGBの平均濃度を求め保持しておき、画質が劣化した際に劣化画像を同じようにRGBの平均濃度を求め、保持しておいたデータとの差分を補正する技術が記載されている。
【特許文献1】特開2000−92317号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、自然画像のデータは離散的で、特許文献1に示されるブロック内の画素はRGB空間内における多様な画素を持つ可能性があるため、これら全ての画素を同じ補正値で補正できるとは限らない。特許文献1に記載の方法では、ブロック内の画素は全て同じ補正値で補正されてしまうが、記録材料や保存方法によっては、色域により劣化による褪色度合いが異なる場合もあり、正確な色再現ができず、不自然な画像となってしまう等の問題点があった。
【0004】
また、フィルムの保存状態等により画像の一部分のみ劣化の度合いが異なる場合もあり、この部分が、ブロックに対応しているとは限らず、ブロック毎に補正してしまうと、正確な色再現ができず、不自然な画像となってしまう等の問題点もあった。
【0005】
なお、これらの問題はブロックのサイズに依存しているともいえるが、ブロックサイズを細かくすると、ブロック内が全て同一の色域の画素のみになったり、部分的に劣化の度合いが異なる個所とブロックとが対応する可能性もある。しかしながら、これを実現しようとすると、ブロックサイズが1画素サイズに近いものとなってしまう。その結果、保持すべき画像データが巨大になり(画像をそのまま保存するのと同等になってしまい)、容易にフィルムと緋付けて保持することができなくなってしまうという問題点があった。
【0006】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、経年変化等により劣化した記録材から読み取られた画質が低下した(褪色した)画像データを褪色補正して劣化前の状態に正確に色再現することができる仕組を提供することである。
【課題を解決するための手段】
【0007】
本発明は、第1時点で読取手段を用いて記録材から画像データを読み取り縮小処理した第1画像データを記憶手段に保存する保存手段と、前記第1時点より後の第2時点で読取手段を用いて前記記録材から第2画像データを読み取り、該読み取った第2画像データと、前記記憶手段から読み出される第1画像データとに基づいて、前記第2画像データを前記第1画像データの状態に補正するためのルックアップテーブルを作成する作成手段と、前記第2画像データに前記作成手段によって作成されたルックアップテーブルを適用して前記第2画像データを補正する補正手段と、を有することを特徴とする。
【0008】
また、本発明は、第1時点で読取手段を用いて記録材から画像データを読み取り縮小処理した第1画像データと該第1画像データの縮小処理前の画像データを色域のまとまり毎のパーツに分割した際のパーツ境界情報を示す第1パーツマップとを記憶手段に保存する保存手段と、前記第1時点より後の第2時点で読取手段を用いて前記記録材から第2画像データを読み取り、該読み取った第2画像データを色域のまとまり毎のパーツに分割した際のパーツ境界情報を示す第2パーツマップを作成し、該第2パーツマップと前記記憶手段より読み出される前記第1パーツマップとに基づいて、前記各パーツマップが示すパーツ境界の論理和に対応するパーツ境界情報を示す第3パーツマップを作成し、前記第2画像データの前記第3パーツマップの示す各パーツを前記記憶手段より読み出される前記第1画像データの前記第3パーツマップの示す各パーツの状態にそれぞれ補正するための前記第3パーツマップの示すパーツ毎のルックアップテーブルを作成する作成手段と、前記第2画像データの各画素に対して、該画素が属する前記第3パーツマップの示すパーツのルックアップテーブルを適用して前記第2画像データを補正する補正手段と、を有することを特徴とする。
【0009】
さらに、本発明は、メモリから読み出される、第1時点で記録材から読み取られ縮小処理された第1画像データと、前記第1時点より後の第2時点で前記記録材から読み取られた第2画像データとに基づいて、前記第2画像データを前記第1画像データの状態に補正するためのルックアップテーブルを作成する作成手段と、前記第2画像データに前記作成手段によって作成されたルックアップテーブルを適用して前記第2画像データを補正する補正手段と、を有することを特徴とする。
【0010】
また、本発明は、前記作成手段は、メモリから読み出される、前記第1時点で前記第1画像データの縮小処理前の画像データを色域のまとまり毎のパーツに分割した際のパーツ境界情報を示す第1パーツマップと、前記第2画像データを色域のまとまり毎のパーツに分割した際のパーツ境界情報を示す第2パーツマップとに基づいて、前記各パーツマップが示すパーツ境界の論理和に対応するパーツ境界情報を示す第3パーツマップを作成し、前記第2画像データの前記第3パーツマップの示す各パーツを前記第1画像データの前記第3パーツマップの示す各パーツの状態にそれぞれ補正するための前記第3パーツマップの示すパーツ毎のルックアップテーブルを作成するものであり、前記補正手段は、前記第2画像データの各画素に対して、該画素が属する前記第3パーツマップの示すパーツのルックアップテーブルを適用して前記第2画像データを補正することを特徴とする。
【発明の効果】
【0011】
本実施形態によれば、ルックアップテーブルを用いて、褪色後画像データをキーとして補正を行うため、従来の技術(濃度平均値により均一に全色を補正する技術)よりも正確な色を再現することができる。
【発明を実施するための最良の形態】
【0012】
以下、図面を参照して、本発明の情報処理装置及び褪色補正方法について詳細に説明する。
【0013】
図1は、本発明を適用可能な情報処理装置の一例を示すブロック図である。
【0014】
図1において、1000は情報処理装置である。情報処理装置1000において、11はCPUで、ROM13やハードディスク(HD)21等に記憶されたプログラムを実行してシステムバス14に接続された各デバイスを制御し、情報処理装置1000全体を統括制御する。なお、12はRAMで、CPU11の主メモリ,ワークエリア等として機能する。
【0015】
15はキーボードコントローラ(KBC)で、キーボード(KB)19やポインティングデバイス(PD)22、例えばマウスからの入力を制御する。16はビデオカード(VC)で、ディスプレイ20の表示を制御する。なお、ディスプレイはCRTであってもLCD等のその他の形式の表示装置であってもよい。
【0016】
17はメモリコントローラ(MC)で、ハードディスク(HD)21,図示しないフレキシブルディスク(FD),CD−ROM等とのアクセスを制御する。18はインタフェース(I/F)で、スキャナ2000が接続されている。勿論、ネットワークを関してスキャナと接続される構成であってもよい。また、プリンタを接続して本発明の褪色補正方法により補正した画像を印刷出力するように構成してもよいことはいうまでもない。
【0017】
また、I/F18には、IC R/W装置2100が接続されていおり、CPU11からの制御により、ICチップからのデータの読み出し/ICチップへのデータの書き込みを行うことができる。
【0018】
以下、図1に示した情報処理装置を用いた褪色補正方法(劣化した記録材から読み取られた画像データを記録材劣化前の状態に褪色補正する褪色補正方法)について説明する。
【0019】
まず、元画像のデータ保存処理について説明する。
【0020】
ここで元画像とは、例えば、現像直後のフィルム内の画像のように劣化していない、褪色補正の基準になる画像を示す。この元画像は、現像直後のフィルム内の画像に限られるものではなく、あらゆる記録材に撮像や印刷等された画像であって、将来記録材が劣化等して画像が褪色した場合に本発明の褪色補正により補正したい画像を示す。例えば、現像後の或時点のフィルム内の画像であってもよいし、写真、印刷物等の画像であってもよいが、以下の説明では、現像直後のフィルム上の画像を例として説明する。
【0021】
<元画像のデータ保存処理>
図2は、本発明における第1の制御処理手順の一例を示すフローチャートであり、元画像のデータ保存処理に対応する。なお、このフローチャートの処理は、図1のCPU11がHD21等に格納されたプログラムをRAM12上で実行することにより実現される。なお、図中、S201〜S205は各ステップを示す。
【0022】
まず、ステップS201において、CPU11は、現像直後のフィルムから褪色補正の対象としたい画像(元画像)の画像データをスキャナ2000を用いて読み込み、RAM12内等に保持する。以下、この画像データを「褪色前画像データ」と呼ぶ。
【0023】
次に、ステップS202において、CPU11は、ステップS201で読み込んだ褪色前画像データに対してオブジェクト抽出処理を実行して、オブジェクト区画(以下、「オブジェクトパーツ」と呼ぶ)の情報を作成しRAM12内等に保持する。以下、この情報を「オブジェクトパーツマップ(褪色前)」と呼ぶ。ここで、図3,図4を参照して、S202のオブジェクト抽出処理について説明する。
【0024】
図3は、図2のステップS202に示したオブジェクト抽出処理を説明するための模式図である。
【0025】
図3において、301は褪色前画像データの一例を示す。本実施形態においてオブジェクト抽出とは、オブジェクト抽出対象の画像データ(ここでは褪色前画像データ301)において、近い色域(色空間は任意)同士でまとまりを作り、この境界情報だけを抽出する処理を示す。なお、オブジェクト抽出の手法は、既知の手法を使用して容易に実現することができる。例えば、電気通信回線を通じて公衆が利用可能なWEBサイト(http://www.taf.or.jp/publication/kjosei_17/pdf/p614.pdf)等でオブジェクト抽出の手法が開示されている。
【0026】
CPU11が、このようなオブジェクト抽出を褪色前画像データ301に対して実行することにより、褪色前画像データに対して確実に違う色同士で区画を作成することができる。
【0027】
このとき、作成された区画の1つ1つを「オブジェクトパーツ」と呼び、CPU11は、このオブジェクトパーツに番号を持たせ(ナンバリングし)、これをオブジェクトパーツマップとしてRAM12に保持する。図3の302は褪色前画像データ301に対してオブジェクト抽出を行うことにより作成されるオブジェクトパーツマップの一例を示す。302に示す例では、11個のオブジェクトパーツが抽出され、パーツ番号「1」〜「11」としてナンバリングされている。
【0028】
このオブジェクトパーツマップの情報の保持方法について図4を用いて具体的に説明する。
【0029】
図4は、図3に示したオブジェクト抽出処理により抽出されたオブジェクトパーツマップの情報の保持方法を説明する模式図である。
【0030】
CPU11は、まず、褪色前画像データ301(図3)と同じ画像サイズの白黒2値のビットマップをRAM12内に作成し、オブジェクト抽出した各オブジェクトパーツの境界を黒ピクセルで描く(図4の401)。
【0031】
ここで、CPU11は、黒ピクセルと画像端による閉域(パーツ)毎に、閉域(パーツ)内の任意の座標とパーツ番号との対応をRAM12内に保持させる(図4の402)。
【0032】
図4の402に示すパーツ番号対応表の例では、座標(2,0)とパーツ番号「1」とが対応し、座標(0,1)とパーツ番号「2」とが対応し、座標(8,12)とパーツ番号「3」とが対応することが保持されている。
【0033】
なお、オブジェクトパーツマップは、図4の401に示したような2値画像の代わりにベクトル画像で表現することもできる。このとき、図4の401のような2値画像を用いても、ベクトル画像を用いても、既知の技術を使用して高可逆圧縮可能である。以下、本実施形態では、図4に示すような2値画像401と対応表402のペアを用いてオブジェクトパーツマップを保持するものとする。
【0034】
このようにして、CPU11は、オブジェクトパーツ内に或一定色域内の画素しか存在しないようなオブジェクトパーツを抽出することができ、該抽出したオブジェクトパーツマップを図4に示すようにRAM12内等に格納することができる。
【0035】
以下、図2のフローチャートの説明に戻る。
【0036】
次に、ステップS203において、CPU11は、ステップS201で読み込んだ褪色前画像データを縮小し、かつJpeg等の圧縮方法によりデータサイズを小さくし、ステップS202で抽出したオブジェクトパーツマップとともに保存する。この保存先は、HD21でもよいし、FD,CD−ROM,ICチップ等でもよい。ステップS201で読み込んだ元の画像と対応が付くように保存できればよい。例えば、上記褪色前画像データ(縮小,圧縮済み)とオブジェクトパーツマップをICチップに保存し、このICチップをフィルムケース等に埋め込むなどしてフィルム(元画像)と紐付けて保持するようにしてもよい。なお、オブジェクトパーツマップも圧縮するようにしてもよい。
【0037】
以上により、元画像のデータ保存処理を終了する。
【0038】
この後、数年が経つ等、時が経過すると保存状態により、フィルム中の乳剤が揮発する等の要因でフィルム内の画像の色情報が変化する(褪色する)場合がある。
【0039】
次に、このように経年変化したフィルム内の画像をスキャナ等により電子データとして読み込んで画像補正して褪色前の画像を再現する処理について説明する。
【0040】
<褪色後の画像補正処理>
図5は、本発明における第2の制御処理手順の一例を示すフローチャートであり、褪色後の画像補正処理に対応する。なお、このフローチャートの処理は、図1のCPU11がHD21等に格納されたプログラムをRAM12上で実行することにより実現される。なお、図中、S501〜S505は各ステップを示す。
【0041】
まず、ステップS501において、CPU11は、過去に図2に示した元画像のデータ保存処理を行ったフィルム等から画像データをスキャナ2000を用いて読み込み、RAM12内等に保持する。以下、この画像データを「褪色後画像データ」と呼ぶ。
【0042】
次に、ステップS502において、CPU11は、ステップS501で読み込んだ褪色後画像データに対してオブジェクト抽出処理(図2のステップS202と同一の処理)を実行して、褪色後画像データのオブジェクトパーツマップを作成する。
【0043】
なお、このオブジェクトパーツマップは褪色前画像データにおいても、褪色後画像データにおいてもパーツ内では同じ色域の画素だけが存在するが、褪色前画像データでは違う色でも、褪色後画像データでは同じ色に褪色してしまうケースがある。また、褪色前画像データでは同じ色でも、保存の仕方によっては、褪色後画像データでは別々の色に褪色するケースもある。
【0044】
このような褪色後画像データのオブジェクト抽出を実行すると、褪色前は別の色でも同じ色に褪色した部分は同じ部分(パーツ)として抽出されてしまう。しかし、その一方で、部分焼け(半焼け)等が発生すると、元は同じパーツであっても、それぞれの焼け具合の違う部分(別々のパーツ)として抽出されてしまう。このイメージを図6の601,602に示す。図6は、褪色後画像データに対してしてオブジェクト抽出を実施した場合のオブジェクト抽出結果の一例を示す模式図である。
【0045】
そこで、図5のステップS503において、CPU11は、ICチップ等に保存された褪色前画像データのオブジェクトパーツマップ(図2の元画像のデータ保存処理で保存された褪色前画像データのオブジェクトパーツマップ)とステップS502で抽出した褪色後画像データのオブジェクトパーツマップをOR結合して双方の境界情報を有効にする処理(OR結合処理)を行う。なお、ICチップ等から予めHD21等にデータを読み込んでおき、HD21からデータを読み出して処理するように構成してもよい。以下、このOR結合処理について図7,図8を用いて説明する。
【0046】
図7,図8は、図5のステップS503に示したオブジェクトパーツのOR結合処理を説明する模式図である。
【0047】
図7に示すように、褪色前のオブジェクトパーツマップ701の切り方(パーツ分割)と、褪色後のオブジェクトパーツマップ702の切り方(パーツ分割)を互いに有効にしたいので、これらをOR結合により合成し、703に示すように、両方の境界情報を有効にする。以下、このOR結合処理により生成されたオブジェクトパーツマップを「オブジェクトパーツマップ(合成後)」と呼ぶ。図8に、オブジェクトパーツマップの2値画像と対応表を示す。
【0048】
図8において、801は褪色前オブジェクトパーツマップの2値画像を示し、802はその対応表を示す。また、803は褪色後オブジェクトパーツマップの2値画像を示し、804はその対応表を示す。
【0049】
そして、805は褪色前と褪色後オブジェクトパーツマップをOR結合した後の2値画像を示し、806はその対応表を示す。
【0050】
以上のように、褪色前オブジェクトパーツマップと褪色後オブジェクトパーツマップをOR結合する。
【0051】
以下、図5のフローチャートの説明に戻る。
【0052】
次に、CPU11は、ステップS504において、ステップS503でOR結合して作成されたオブジェクトパーツマップの各パーツにおいて3DLUT(3 Dimension Look Up Table;3次元ルックアップテーブル)を作成する。この各パーツにおいて3DLUTを作成する処理の詳細は後述する図9〜図12に示す。
【0053】
次に、ステップS505において、CPU11は、褪色後画像データの各パーツ毎に、ステップS504で作成された各パーツ毎の3DLUTを用いて、褪色補正を行う(褪色補正処理)。この褪色補正処理の詳細は後述する図13に示す。
【0054】
そして、この褪色補正処理を終了すると、CPU11は、褪色後の補正処理を終了する。
【0055】
<各パーツにおいて3DLUTを作成する処理>
図9は、本発明における第3の制御処理手順の一例を示すフローチャートであり、図5のステップS504に示した各パーツにおいて3DLUTを作成する処理に対応する。なお、このフローチャートの処理は、図1のCPU11がHD21等に格納されたプログラムをRAM12上で実行することにより実現される。なお、図中、S901〜S905は各ステップを示す。
【0056】
図10は、3次元ルックアップテーブル(3DLUT)の作成手順を示した模式図である。
【0057】
まず、図9のステップS901の処理の前に、CPU11は、図示しないステップにおいて、各パーツに対応する3DLUTを格納する領域3DLUT(i)をRAM12内に確保しておくものとする(なお、iはパーツ番号を示す)。さらに、CPU11は、ICチップ等に保存された褪色前画像データ(図2の元画像のデータ保存処理で縮小,圧縮されて保存された褪色前画像データ)を読み出して解凍してRAM12に展開しておくものとする。
【0058】
そして、ステップS901において、CPU11は、RAM12の褪色前画像データから1画素画素値を取得し、これをPとする。なお、本実施形態では、画素値はRGB空間を前提として説明するが、Lab空間やYUV空間等であってもよい。この様子を図10の1001に示す。
【0059】
次に、ステップS902において、CPU11は、RAM12内に保持される褪色後画像データから、ステップS901で褪色前画像データから取得した画素の座標に対応する座標の画素値を取得し、これをQとする。この様子を図10の1002に示す。
【0060】
なお、保存されていた褪色前画像データは、図2のステップS203で縮小されているため、褪色後画像データより解像度が低い。そのため、褪色前画像データにおける単一の画素は、同じ位置(座標)の褪色後画像データにおける領域に対応する。よって、ここでは、S901で取得した画素の座標に対応する褪色後画像データの領域から抽出された標本点の画素値、もしくは対応する領域の平均画素値をQとするものとする。
【0061】
次に、ステップS903において、CPU11は、Pの座標に対応する褪色後画像データ内の1点の座標を注目座標とおき、これがオブジェクトパーツマップ(合成後)におけるどのパーツに該当するか調べ、そのパーツ番号をiとする(注目座標からのパーツ番号引き当てる処理)。なお、この注目座標がどのパーツiに含まれるかを引き当てる処理の詳細な説明は後述する図11に示す。
【0062】
次に、CPU11は、ステップS904に処理を進め、ステップS903で注目座標から引き当てられたパーツ番号iの3DLUT(i)において、Qの値からPの値が引き当てられるように、3DLUT(i)のQの値のセルにPの値を設定する(Qの値に対応させてPの値が引き当ててあられるような3次元ルックアップテーブルを作成する)。この様子を図10の1003に示す。
【0063】
図10では、P値をRGB(255,255,255)とし、Q値をRGB(255,255,240)として説明する。
【0064】
Q値からP値が引き当てられるように、図10の1003に示すように、3DLUT(i)のQ値RGB(255,255,240)に相当するセルにP値RGB(255,255,255)を設定する。即ち、メモリ上では、3DLUT(i)は、1004に示すように、Q値(R,B,G)を添え字とした3次配列のデータとなり、該3次元配列データの各セルには、それぞれP値のRGBが格納されることとなる。なお、RGB各色のbit深度が8の画像(即ち、0〜255で数値化された画像)では、1色あたり8bit(1byte)のデータとなる。
【0065】
本実施形態では、このような各パーツ毎の3DLUT(i)を作成しておき、褪色後画像データの画素値から褪色前画像データの画素値を引き当てられるようにする。
【0066】
なお、1001〜1004の処理を全画素に対して行っていくと、同一パーツの3DLUTの同一のQ値に相当するセルに対して、複数回、P値を格納する処理を行う事態が発生する場合が考えられるが、このような場合には、各P値の平均値を格納するように構成する。
【0067】
次に、CPU11は、図9のステップS905に処理を進め、褪色前画像データの全ての画素についてステップS901〜S904の処理を実行したか否かを判定し、まだ褪色前画像の全ての画素について実行していないと判定した場合には、ステップS901に処理を戻し、次の画素に処理を進める。
【0068】
一方、ステップS905において、褪色前画像データの全ての画素についてステップS901〜S904の処理を実行したと判定した場合には、そのまま本フローチャートの処理を終了する。
【0069】
ただし、図9に示した処理で各3DLUT(i)内の全ての要素が埋まるわけではないため、何らかの補完法で欠落部分を埋める必要がある。これには、例えば、"ラグランジェ補間"を用いて実現することができる。
【0070】
ラグランジェ補間は、例えば、電気通信回線を通じて公衆が利用可能なWEBサイト(http://www.ccad.sccs.chukyo-u.ac.jp/~mito/syllabi/enshu/intp/)等で開示されている。
【0071】
ラグランジェ補間は、与えられたn個の点を用い、その点の間の値を補完する方法として知られている。これにより、各3DLUT(i)内で欠落部分を補完することができる。
【0072】
一般にラグランジェ補完は、一次元空間で与えられる考え方であるが、n次元空間へ広げる方法があり、3次元に広げることによって今回のケースに適用することができる。なお、各3DLUT(i)全体でラグランジェ補間を適用すると処理が重く膨大となるようであれば、対象空間を局所にすることで処理時間を短くしても影響は小さいと考えられる。
【0073】
<注目座標からのパーツ番号引き当てる処理>
図11は、本発明における第4の制御処理手順の一例を示すフローチャートであり、図9のステップS903に示した注目座標からのパーツ番号引き当てる処理に対応する。なお、このフローチャートの処理は、図1のCPU11がHD21等に格納されたプログラムをRAM12上で実行することにより実現される。なお、図中、S1101〜S1105は各ステップを示す。
【0074】
まず、ステップS1101において、CPU11は、RAM12内に保持されるオブジェクトパーツマップ(合成)の対応表から最初のパーツ(以下、現在のパーツ)の座標を取り出す。
【0075】
次に、ステップS1102において、CPU11は、注目座標(Pの座標に対応する褪色後画像データ内の1点の座標)が上記現在のパーツに含まれるか調べる。例えば、上記取り出した現在のパーツの座標から当該パーツ内の座標を塗りつぶしていき、注目座標を塗りつぶせるか否かを調べ、塗りつぶせる場合に当該パーツに注目座標が含まれると判断できる。以下、この処理を図12を参照して説明する。
【0076】
図12は、注目座標から対応表におけるn番目のパーツの座標に対して注目座標がパーツ内に含まれるかどうかを調べる処理について説明する模式図である。
【0077】
注目座標がパーツ内に含まれるかどうかは、パーツ境界線の内部を一定色で塗りつぶすアルゴリムで調べることができる。該アルゴリズムにより、対応表におけるn番目のパーツの座標から注目点を塗りつぶすことができたら、注目座標が当該パーツ内に含まれると判断できる。この境界線の内部を一定色で塗りつぶすアルゴリムは既知であり、例えばMicrosoft社のWindows(登録商標)に標準で付属するペイントツールなどでも実現している。
【0078】
なお、本実施形態では、注目画像がパーツ境界線上の画像であった場合、即ち、パーツ境界線の内部を塗りつぶした際に該塗りつぶした領域が注目画像に接した場合にも、当該注目画像は、当該パーツに含まれるものとする。
【0079】
<褪色補正処理>
以下、図13〜図16のフローチャートを参照して、図5のステップS505に示した褪色補正処理について説明する。
【0080】
図13は、本発明における第5の制御処理手順の一例を示すフローチャートであり、図5のステップS505に示した褪色補正処理に対応する。なお、このフローチャートの処理は、図1のCPU11がHD21等に格納されたプログラムをRAM12上で実行することにより実現される。なお、図中、S1301〜S1307は各ステップを示す。
【0081】
まず、ステップS1301において、CPU11は、RAM12の褪色後画像データから1画素画素値を取得とする。
【0082】
次に、ステップS1302において、CPU11は、ステップS1301で取得した画素を注目座標として、該注目座標が含まれるパーツ番号iを引き当てる処理を実行する(図10,図11参照)。
【0083】
次に、ステップS1303において、CPU11は、注目座標がパーツ境界に含まれるか判別する。以下、この処理について図14,図15を参照して説明する。
【0084】
図14は、本発明における第6の制御処理手順の一例を示すフローチャートであり、図13のステップS1303で示した注目座標が境界に含まれるか判別する処理に対応する。なお、このフローチャートの処理は、図1のCPU11がHD21等に格納されたプログラムをRAM12上で実行することにより実現される。なお、図中、S1401〜S1404は各ステップを示す。
【0085】
また、図15は、注目座標が境界に含まれるか判別する処理を説明するための模式図である。
【0086】
まず、図14のステップS1401において、CPU11は、注目座標から最寄の境界までの距離を調べる。例えば、注目座標から境界までの距離を調べるには、以下のような方法がある。
【0087】
注目座標を中心として半径1ピクセル刻みで円を複数描き、境界に触れており、なおかつ、一番小さい円を特定し、この円の半径が注目座標から境界までの距離となる。
【0088】
次に、ステップS1402において、CPU11は、ステップS1401で求めた注目座標から境界までの距離がL未満か否かを判定する。なお、このLは、解像度に依存して予め決められた値であり、図15に示すように、距離がL未満の画素を境界に含まれる画素とする。
【0089】
ステップS1404において、CPU11が、ステップS1401で求めた注目座標から境界までの距離がL未満であると判定した場合には、ステップS1403に処理を進める。
【0090】
そして、ステップS1403では、CPU11は、注目座標を境界上の画素とし、図15に示すように、注目座標を境界上の画素とする。そして、CPU11は、境界との距離をx1とし、境界に隣接するパーツ番号i,jとともにRAM12内に記憶し、本フローチャートの処理を終了する。注目座標が境界上にあると判断された場合、境界幅Lの中に入り込んでいる度合いは、注目座標と境界との距離x1によって表現できる。そこで、この後、距離x1に後述の計算式を適用して最終的に補正する値を決定するものとする。
【0091】
一方、ステップS1404において、CPU11が、ステップS1401で求めた注目座標から境界までの距離がL未満でないと判定した場合には、ステップS1404に処理を進め、注目座標を境界上の画素でないとし、本フローチャートの処理を終了する。
【0092】
以下、図13のフローチャートに処理を戻す。
【0093】
次に、図13のステップS1304において、CPU11は、注目座標がパーツ境界に含まれるか否かを判定し、含まれないと判定した場合には、ステップS1305に処理を進める。
【0094】
ステップS1305では、CPU11は、注目座標がステップS1302で取得したパーツ番号iに含まれるとして、3DLUT(i)を用いて、注目座標の画素値に対応付けられた画素値を引き当て、この値で、RAM12内の褪色後画像データ内の注目座標の画素値を置き換える。
【0095】
例えば、褪色後画像データの注目座標の画素値RGB(255,255,240)においては、該当パーツの3DLUT(i)における引き当て値としてRGB(255,255,255)が入っているとすると、注目座標の画素値をRGB(255,255,255)に補正する。
【0096】
一方、ステップS1304において、CPU11が、注目座標がパーツ境界に含まれると判定した場合には、ステップS1306に処理を進める。
【0097】
ステップS1306では、CPU11は、注目座標がステップS1303で取得した隣接する2つのパーツ番号i,jそれぞれのルックアップテーブル3DLUT(i),3DLUT(j)を用いて、注目座標の画素値に対応付けられた画素値を引き当てた各値,境界幅L,注目座標と境界との距離x1を用いて補正後の画素値を計算し、この値で、RAM12内の褪色後画像データ内の注目座標の画素値を置き換える。この様子を図16に示す。
【0098】
図16は、パーツ境界での補正処理を説明するための模式図である。
【0099】
図16に示すように、パーツ境界での補正処理を行う場合、まず、CPU11は、注目座標の画素値Qを取得する。図16の例ではQ値はRGB(255,255,240)となっている。
【0100】
次に、CPU11は、注目座標が含まれる境界に隣接する2つのパーツ番号i,jそれぞれのルックアップテーブル3DLUT(i),3DLUT(j)を用いて、上述のQ値に対応する画素値Pi値,Pj値をそれぞれ引き当てる。図16の例ではPi値はRGB(255,255,255)、Pj値はRGB(240,240,240)となっている。
【0101】
さらに、CPU11は、Pi値とPj値を図16に示す式(1)に従ってブレンドした値を求め、その値で、RAM12内の褪色後画像データ内の注目座標の画素値を置き換える。
【0102】
以下、図13のフローチャートの説明に戻る。
【0103】
ステップS1305又はS1306の処理が終了すると、CPU11は、ステップS1307に処理を進める。
【0104】
ステップS1307では、CPUは、褪色後画像データの全ての画素についてステップS1301〜S1304の処理を実行したか否かを判定し、まだ褪色後画像データの全ての画素について実行していないと判定した場合には、ステップS1301に処理を戻し、次の画素に処理を進める。
【0105】
一方、ステップS1307において、褪色後画像データの全ての画素についてステップS1301〜S1304の処理を実行したと判定した場合には、そのまま本フローチャートの処理を終了する。
【0106】
以上示したように、本発明では、褪色後画像データからオブジェクトパーツを抽出して、該オブジェクトパーツ毎に作成した3次元ルックアップテーブル(3DLUT)を用いて、褪色後画像データをキーとして補正を行うことにより、一定色域毎に正確に元の色に再現でき、従来の技術よりも正確な色を再現することができる。
【0107】
例えば、経年変化等により、別々の色が同じ色に褪色したとしても、パーツが別であれば、3DLUTも別となるため、元の色を正確に再現することができる。
【0108】
また、同じ色が違う色に褪色したとしても、やはりパーツが別であれば、3DLUTも別となるため、元の色を正確に再現することができる。
【0109】
また、パーツの境界付近においては、隣接するパーツの3DLUTをブレンドして使用することにより、境界においても自然な褪色補正を行うことができる。なお、ブレンドする割合は、パーツ境界に解像度に依存して予め決定された一定の幅Lを設け、この境界領域内にどのくらい入っているかで割合を決定するように構成する。
【0110】
以上示したように、本実施形態によれば、ルックアップテーブルを用いて、褪色後画像データをキーとして補正を行うため、従来の技術(濃度平均値により均一に全色を補正する技術)よりも正確な色を再現することができる。
【0111】
また、記録材の劣化等により、別々の色が同じ色に褪色したとしても、パーツが別であれば、3DLUTも別となるため、元の色を正確に再現することができる。
【0112】
さらに、記録材の劣化等により、同じ色が違う色に褪色したとしても、やはりパーツが別であれば、3DLUTも別となるため、元の色を正確に再現することができる。
【0113】
また、各パーツの境界域にある画素の補正では、境界を形成する隣接する2つのパーツの3DLUTをブレンドして適用し、パーツ間を滑らかに結合するように補正することができる。
【0114】
さらに、パーツの境界域にある画素の補正では、該画素のパーツの境界線からの距離に応じて、該画素が含まれているパーツの3DLUTと、該画素が属していない前記パーツの境界を形成する他のパーツのルックアップテーブルとの適用割合を変更することにより、パーツ間を非常に滑らかに結合するように補正することができる。
【0115】
なお、上記実施形態では、画像データをパーツ分割して、パーツ毎の3DLUTを作成し、褪色後画像データのパーツ毎にパーツ毎の3DLUTを適用して褪色後画像データの褪色補正を行う構成について示した。しかし、画像データのパーツ分割を省略して、パーツに関係なく、褪色後画像データの画素値から褪色前画像データの画素値を引き当てる1つの3DLUTを作成し、該1つの3DLUTを褪色後画像データの全体に適用して褪色後画像データの褪色補正を行うように構成してもよい。例えば、記録材が一様に劣化しているような場合では、この構成でも、自然な色再現を行うことが可能である。
【0116】
また、上記実施形態では、褪色前画像データを縮小する前に、オブジェクト抽出してオブジェクトパーツマップ(褪色前)を作成しておき、該オブジェクトパーツマップ(褪色前)と縮小処理した褪色前画像データとをICチップに保存しておく構成について説明した。
【0117】
しかし、縮小処理した褪色前画像データとをICチップに保存しておき、褪色補正する際に、ICチップから読み出した縮小処理した褪色前画像データからオブジェクト抽出してオブジェクトパーツマップ(褪色前)を作成するように構成してもよい。これにより、ICチップに保存するデータ量を抑えることができる。
【0118】
なお、この構成の場合、オブジェクト抽出してオブジェクトパーツマップ(褪色後)を作成する際も、褪色後画像データを(褪色前画像データと同一に)縮小したサイズでオブジェクトパーツマップ(褪色後)作成するように構成する。また、褪色後画像データの注目座標からパーツ番号を引き当てる処理は、注目座標を上記縮小サイズにスケールダウンして行うように構成する。
【0119】
上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0120】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0121】
以下、図17に示すメモリマップを参照して本発明に係るサーバ装置で読み取り可能なデータ処理プログラムの構成について説明する。
【0122】
図17は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【0123】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0124】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0125】
本実施形態における図2,図5,図9,図11,図13,図14に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0126】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0127】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0128】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0129】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0130】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0131】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0132】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0133】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【0134】
【図1】本発明を適用可能な情報処理装置の一例を示すブロック図である。
【図2】本発明における第1の制御処理手順の一例を示すフローチャートである。
【図3】図2のステップS202に示したオブジェクト抽出処理を説明するための模式図である。
【図4】図3に示したオブジェクト抽出処理により抽出されたオブジェクトパーツマップの情報の保持方法を説明する模式図である。
【図5】本発明における第2の制御処理手順の一例を示すフローチャートである。
【図6】褪色後画像データに対してしてオブジェクト抽出を実施した場合のオブジェクト抽出結果の一例を示す模式図である。
【図7】図5のステップS503に示したオブジェクトパーツのOR結合処理を説明する模式図である。
【図8】図5のステップS503に示したオブジェクトパーツのOR結合処理を説明する模式図である。
【図9】本発明における第3の制御処理手順の一例を示すフローチャートである。
【図10】3次元ルックアップテーブル(3DLUT)の作成手順を示した模式図である。
【図11】本発明における第4の制御処理手順の一例を示すフローチャートである。
【図12】注目座標から対応表におけるn番目のパーツの座標に対して注目座標がパーツ内に含まれるかどうかを調べる処理について説明する模式図である。
【図13】本発明における第5の制御処理手順の一例を示すフローチャートである。
【図14】本発明における第6の制御処理手順の一例を示すフローチャートである。
【図15】注目座標が境界に含まれるか判別する処理を説明するための模式図である。
【図16】パーツ境界での補正処理を説明するための模式図である。
【図17】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
【0135】
11 CPU
12 RAM
13 ROM
14 システムバス
20 ディスプレイ
1000 情報処理装置
2000 スキャナ
2100 IC R/W装置

【特許請求の範囲】
【請求項1】
第1時点で読取手段を用いて記録材から読み取り縮小処理した第1画像データを記憶手段に保存する保存手段と、
前記第1時点より後の第2時点で読取手段を用いて前記記録材から第2画像データを読み取り、該読み取った第2画像データと、前記記憶手段から読み出される第1画像データとに基づいて、前記第2画像データを前記第1画像データの状態に補正するためのルックアップテーブルを作成する作成手段と、
前記第2画像データに前記作成手段によって作成されたルックアップテーブルを適用して前記第2画像データを補正する補正手段と、
を有することを特徴とする情報処理装置。
【請求項2】
第1時点で読取手段を用いて記録材から画像データを読み取り縮小処理した第1画像データと該第1画像データの縮小処理前の画像データを色域のまとまり毎のパーツに分割した際のパーツ境界情報を示す第1パーツマップとを記憶手段に保存する保存手段と、
前記第1時点より後の第2時点で読取手段を用いて前記記録材から第2画像データを読み取り、該読み取った第2画像データを色域のまとまり毎のパーツに分割した際のパーツ境界情報を示す第2パーツマップを作成し、該第2パーツマップと前記記憶手段より読み出される前記第1パーツマップとに基づいて、前記各パーツマップが示すパーツ境界の論理和に対応するパーツ境界情報を示す第3パーツマップを作成し、前記第2画像データの前記第3パーツマップの示す各パーツを前記第3パーツマップの示す各パーツに対応した前記記憶手段より読み出される前記第1画像データの状態にそれぞれ補正するための前記第3パーツマップの示すパーツ毎のルックアップテーブルを作成する作成手段と、
前記第2画像データの各画素に対して、該画素が属する前記第3パーツマップの示すパーツのルックアップテーブルを適用して前記第2画像データを補正する補正手段と、
を有することを特徴とする情報処理装置。
【請求項3】
メモリから読み出される、第1時点で記録材から読み取られ縮小処理された第1画像データと、前記第1時点より後の第2時点で前記記録材から読み取られた第2画像データとに基づいて、前記第2画像データを前記第1画像データの状態に補正するためのルックアップテーブルを作成する作成手段と、
前記第2画像データに前記作成手段によって作成されたルックアップテーブルを適用して前記第2画像データを補正する補正手段と、
を有することを特徴とする情報処理装置。
【請求項4】
前記作成手段は、
メモリから読み出される、前記第1時点で前記第1画像データの縮小処理前の画像データを色域のまとまり毎のパーツに分割した際のパーツ境界情報を示す第1パーツマップと、前記第2画像データを色域のまとまり毎のパーツに分割した際のパーツ境界情報を示す第2パーツマップとに基づいて、前記各パーツマップが示すパーツ境界の論理和に対応するパーツ境界情報を示す第3パーツマップを作成し、
前記第2画像データの前記第3パーツマップの示す各パーツを前記第3パーツマップの示す各パーツに対応する前記第1画像データの状態にそれぞれ補正するための前記第3パーツマップの示すパーツ毎のルックアップテーブルを作成するものであり、
前記補正手段は、前記第2画像データの各画素に対して、該画素が属する前記第3パーツマップの示すパーツのルックアップテーブルを適用して前記第2画像データを補正することを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記補正手段は、前記パーツの境界域に位置する画素に対しては、前記パーツ境界を形成する複数のパーツのルックアップテーブルを適用して補正することを特徴とする請求項2又は4のいずれかに記載の情報処理装置。
【請求項6】
前記補正手段は、前記パーツの境界域に位置する画素に対しては、該画素の前記パーツの境界線からの距離に応じて、該画素が属しているパーツのルックアップテールと、該画素が属していない前記パーツの境界を形成する他のパーツのルックアップテーブルとの適用割合を変更することを特徴とする請求項5に記載の情報処理装置。
【請求項7】
第1時点で読取手段を用いて記録材から読み取り縮小処理した第1画像データを記憶手段に保存する保存ステップと、
前記第1時点より後の第2時点で読取手段を用いて前記記録材から第2画像データを読み取り、該読み取った第2画像データと、前記記憶手段から読み出される前記第1画像データとに基づいて、前記第2画像データを前記第1画像データの状態に補正するためのルックアップテーブルを作成する作成ステップと、
前記第2画像データに前記作成ステップで作成されたルックアップテーブルを適用して前記第2画像データを補正する補正ステップと、
を有することを特徴とする褪色補正方法。
【請求項8】
第1時点で読取手段を用いて記録材から画像データを読み取り縮小処理した第1画像データと該第1画像データの縮小処理前の画像データを色域のまとまり毎のパーツに分割した際のパーツ境界情報を示す第1パーツマップとを記憶手段に保存する保存ステップと、
前記第1時点より後の第2時点で読取手段を用いて前記記録材から第2画像データを読み取り、該読み取った第2画像データを色域のまとまり毎のパーツに分割した際のパーツ境界情報を示す第2パーツマップを作成し、該第2パーツマップと前記記憶手段から読み出される前記第1パーツマップとに基づいて、前記各パーツマップが示すパーツ境界の論理和に対応するパーツ境界情報を示す第3パーツマップを作成し、前記第2画像データの前記第3パーツマップの示す各パーツを前記第3パーツマップの示す各パーツに対応する前記記憶手段から読み出される前記第1画像データの状態にそれぞれ補正するための前記第3パーツマップの示すパーツ毎のルックアップテーブルを作成する作成ステップと、
前記第2画像データの各画素に対して、該画素が属する前記第3パーツマップの示すパーツのルックアップテーブルを適用して前記第2画像データを補正する補正ステップと、
を有することを特徴とする褪色補正方法。
【請求項9】
メモリから読み出される、第1時点で記録材から読み取られ縮小処理された第1画像データと、前記第1時点より後の第2時点で前記記録材から読み取られた第2画像データとに基づいて、前記第2画像データを前記第1画像データの状態に補正するためのルックアップテーブルを作成する作成ステップと、
前記第2画像データに前記作成ステップによって作成されたルックアップテーブルを適用して前記第2画像データを補正する補正ステップと、
を有することを特徴とする褪色補正方法。
【請求項10】
請求項1〜6に記載された情報処理装置としてコンピュータを機能させるための、又は、請求項7〜9に記載された褪色補正方法をコンピュータに実行させるための、プログラム。
【請求項11】
請求項1〜6に記載された情報処理装置としてコンピュータを機能させるためのプログラム、又は、請求項7〜9に記載された褪色補正方法をコンピュータに実行させるためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2008−92125(P2008−92125A)
【公開日】平成20年4月17日(2008.4.17)
【国際特許分類】
【出願番号】特願2006−268654(P2006−268654)
【出願日】平成18年9月29日(2006.9.29)
【出願人】(301015956)キヤノンソフトウェア株式会社 (364)
【Fターム(参考)】