(57)【特許請求の範囲】
【請求項１】
特定範囲内の階調値を有する複数個の画素を含む第１のオブジェクトと、前記第１のオブジェクトとは異なる第２のオブジェクトであって前記特定範囲外の階調値を有する複数個の画素を含む前記第２のオブジェクトと、を含む元画像を表す元画像データであって、原稿を光学的に読み取ることによって生成される、前記元画像データを取得する取得機能と、
前記元画像データに対して特定の補正処理を実行することによって、前記第２のオブジェクトを含む補正済画像を表す補正済画像データを生成する補正機能であって、前記特定の補正処理は、前記特定範囲内の階調値を有する画素の値を、特定の階調値に変更する処理である、前記補正機能と、
前記元画像データを用いて、前記元画像内の前記第１のオブジェクトの輪郭を抽出する抽出機能と、
前記補正済画像データを用いて、出力画像を表す出力画像データを生成する生成機能であって、前記出力画像は、前記第１のオブジェクトの輪郭を示す輪郭画像と、前記補正済画像内の前記第２のオブジェクトと、を含む、前記生成機能と、
前記出力画像データを出力する出力機能と、
をコンピュータに実現させるコンピュータプログラム。
【請求項２】
請求項１に記載のコンピュータプログラムであって、さらに、
前記抽出機能は、
前記元画像データに対してエッジ画素を抽出するエッジ抽出処理を実行することによって第１のエッジ画像を表す第１のエッジ画像データを生成し、
前記第１のエッジ画像データを用いて、前記第１のオブジェクトの輪郭を抽出する、コンピュータプログラム。
【請求項３】
請求項２に記載のコンピュータプログラム
前記抽出機能は、
前記補正済画像データに対して前記エッジ抽出処理を実行することによって第２のエッジ画像を表す第２のエッジ画像データを生成し、
前記第１のエッジ画像データと前記第２のエッジ画像データとを用いて、前記第１のオブジェクトの輪郭を抽出する、コンピュータプログラム。
【請求項４】
請求項３に記載のコンピュータプログラムであって、
前記抽出機能は、前記第１のエッジ画像内の複数個のエッジ画素のうち、前記第２のエッジ画像内の対応するエッジ画素が存在しない画素によって構成される領域を、前記第１のオブジェクトの輪郭として抽出する、コンピュータプログラム。
【請求項５】
請求項１から請求項４のいずれかに記載のコンピュータプログラムであって、
前記出力画像内の前記第１のオブジェクトの輪郭は、前記元画像内の前記第１のオブジェクトの輪郭と同じ色を有する、コンピュータプログラム。
【請求項６】
請求項１から請求項５のいずれかに記載のコンピュータプログラムであって、
前記出力画像内の前記第２のオブジェクトは、前記補正済画像内の前記第２のオブジェクトと同じ色を有する、コンピュータプログラム。
【請求項７】
請求項１から請求項６のいずれか一項に記載のコンピュータプログラムであって、さらに、
前記元画像の種類を判断する第１の判断機能をコンピュータに実現させ、
前記出力機能は、前記元画像が第１種の画像である場合には、前記出力画像データを出力し、前記元画像が第２種の画像である場合には、前記補正済画像データを出力する、コンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムであって、
前記第１種の画像は、写真とは異なるオブジェクトを示す画像であり、
前記第２種の画像は、写真を示す画像である、コンピュータプログラム。
【請求項９】
請求項１から請求項８のいずれか一項に記載のコンピュータプログラムであって、さらに、
前記元画像に対する前記特定の補正処理の種類を判断する第２の判断機能をコンピュータに実現させ、
前記出力機能は、前記特定の補正処理が前記元画像の背景色を除去するための処理である場合には、前記出力画像データを出力し、前記特定の補正処理が前記元画像内の前記第１のオブジェクトを除去するための処理である場合には、前記補正済画像データを出力する、コンピュータプログラム。
【請求項１０】
請求項１から請求項９のいずれか一項に記載のコンピュータプログラムであって、
前記第１のオブジェクトの輪郭は、前記第１のオブジェクトの一部の輪郭であって、前記第１のオブジェクトの全体の輪郭ではない、前記一部の輪郭を含む、コンピュータプログラム。
【請求項１１】
請求項１から請求項１０のいずれか一項に記載のコンピュータプログラムであって、さらに、
前記出力画像を表示部に表示して、前記輪郭画像に関する指示をユーザから取得する指示取得機能と、
第１の指示が取得された場合には、前記出力画像の前記輪郭画像の特定の輪郭を構成する複数個の画素のそれぞれの値を、前記補正済画像内の対応する画素の値に変更し、第２の指示が取得された場合には、前記特定の輪郭によって特定されるオブジェクト領域内の複数個の画素のそれぞれの値を、前記元画像内の対応する画素の値に変更する、変更機能と、
をコンピュータに実現させるコンピュータプログラム。
【請求項１２】
請求項１１に記載のコンピュータプログラムであって、
前記変更機能は、第３の指示が取得された場合に、前記出力画像内の前記特定の輪郭を構成する複数個の画素の値を変更しない、コンピュータプログラム。
【請求項１３】
請求項１１または請求項１２に記載のコンピュータプログラムであって、
前記出力画像の前記輪郭画像は、前記元画像内の複数個の前記第１のオブジェクトのそれぞれの輪郭を含み、
前記指示取得機能は、複数個の輪郭のそれぞれについて、ユーザから指示を取得し、
前記変更機能は、複数個の輪郭のそれぞれについて、ユーザからの指示に基づいて画素の値を変更する、コンピュータプログラム。
【請求項１４】
特定範囲内の階調値を有する複数個の画素を含む第１のオブジェクトと、前記第１のオブジェクトとは異なる第２のオブジェクトであって前記特定範囲外の階調値を有する複数個の画素を含む前記第２のオブジェクトと、を含む元画像を表す元画像データであって、原稿を光学的に読み取ることによって生成される、前記元画像データを取得する取得部と、
前記元画像データに対して特定の補正処理を実行することによって、前記第２のオブジェクトを含む補正済画像を表す補正済画像データを生成する補正部であって、前記特定の補正処理は、前記特定範囲内の階調値を有する画素の値を、特定の階調値に変更する処理である、前記補正部と、
前記元画像データを用いて、前記元画像内の前記第１のオブジェクトの輪郭を抽出する抽出部と、
前記補正済画像データを用いて、出力画像を表す出力画像データを生成する生成部であって、前記出力画像は、前記第１のオブジェクトの輪郭を示す輪郭画像と、前記補正済画像内の前記第２のオブジェクトと、を含む、前記生成部と、
前記出力画像データを出力する出力部と、
を備える、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、原稿を光学的に読み取ることによって生成される画像データに対して補正処理を実行する画像処理に関する。
【背景技術】
【０００２】
特許文献１には、スキャナを用いて原稿を読み取って得られた画像データに対して下地を除去する処理を行う技術が開示されている。この技術では、原稿種別およびユーザからの指示に基づいて、下地を除去するか否かを判断し、下地を除去すると判定された場合には、下地を除去する処理が実行される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２０５６５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、画像データに対して、下地を除去する処理が実行された場合に、下地とは異なる文字などのオブジェクト内の画素の値が変更される可能性があった。この場合には、例えば、下地を除去する処理によって、意図しないオブジェクトが画像から除去されてしまう不具合が発生し得る。このような課題は、下地を除去する処理に限らず、画像内の画素の値を変更する補正処理に共通する課題であった。
【０００５】
本明細書は、原稿を光学的に読み取ることによって生成される画像データに対して、画素の値を変更する補正処理を行う際に、意図しないオブジェクト内の画素の値が変更されることに起因する不具合を低減できる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【０００７】
［適用例１］特定範囲内の階調値を有する複数個の画素を含む第１のオブジェクトと、前記第１のオブジェクトとは異なる第２のオブジェクトであって前記特定範囲外の階調値を有する複数個の画素を含む前記第２のオブジェクトと、を含む元画像を表す元画像データであって、原稿を光学的に読み取ることによって生成される、前記元画像データを取得する取得機能と、前記元画像データに対して特定の補正処理を実行することによって、前記第２のオブジェクトを含む補正済画像を表す補正済画像データを生成する補正機能であって、前記特定の補正処理は、前記特定範囲内の階調値を有する画素の値を、特定の階調値に変更する処理である、前記補正機能と、前記元画像データを用いて、前記元画像内の前記第１のオブジェクトの輪郭を抽出する抽出機能と、前記補正済画像データを用いて、出力画像を表す出力画像データを生成する生成機能であって、前記出力画像は、前記第１のオブジェクトの輪郭を示す輪郭画像と、前記補正済画像内の前記第２のオブジェクトと、を含む、前記生成機能と、前記出力画像データを出力する出力機能と、をコンピュータに実現させるコンピュータプログラム。
【０００８】
上記構成によれば、特定範囲内の階調値を有する画素を含む第１のオブジェクトの輪郭を示す輪郭画像と、補正済画像と、が合成された出力画像を表す出力画像データが出力される。この結果、特定の補正処理によって色が変更される第１のオブジェクトと、補正済画像に含まれる第２のオブジェクトと、をユーザが区別して認識できる出力画像を、ユーザに提供することができる。この結果、特定の補正処理によって意図しないオブジェクト内の画素の値が変更されることに起因する不具合を低減できる。
【０００９】
なお、本明細書に開示された技術は、種々の形態で実現可能であり、例えば、コンピュータプログラムを記録した記録媒体、画像処理装置、画像読取装置の制御装置、画像処理方法、等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例における画像処理装置としての計算機２００と複合機１００の構成を示すブロック図である。
【図２】第１実施例のスキャン処理のフローチャートである。
【図３】第１実施例のスキャン処理のフローチャートである。
【図４】第１実施例の指示入力画面ＷＩ１の一例を示す図である。
【図５】本実施例で用いられる画像の一例を示す図である。
【図６】本実施例で用いられる画像の一例を示す図である。
【図７】Ｒ成分のヒストグラムの一例を示す図である。
【図８】ＵＩ画面ＷＩ２の一例を示す図である。
【図９】第２実施例の色補正処理のフローチャートである。
【図１０】第２実施例の指示入力画面ＷＩ３の一例を示す図である。
【発明を実施するための形態】
【００１１】
Ａ．第１実施例：
Ａ−１：画像処理装置の構成
次に、実施の形態を実施例に基づき説明する。図１は、実施例における画像処理装置としての計算機２００と、複合機１００の構成を示すブロック図である。
【００１２】
計算機２００は、例えば、パーソナルコンピュータであり、計算機２００のコントローラとしてのＣＰＵ２１０と、ハードディスクドライブなどの不揮発性記憶装置２２０と、ＲＡＭなどの揮発性記憶装置２３０と、マウスやキーボードなどの操作部２６０と、液晶ディスプレイなどの表示部２７０と、通信部２８０と、を備えている。計算機２００は、通信部２８０を介して、複合機１００などの外部装置と通信可能に接続される。
【００１３】
揮発性記憶装置２３０は、ＣＰＵ２１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域２３１を提供する。不揮発性記憶装置２２０には、コンピュータプログラムＣＰが格納されている。コンピュータプログラムＣＰは、本実施例では、複合機１００に搭載されたスキャナを制御するためのスキャナドライバプログラムであり、サーバからダウンロードされる形態で提供される。これに代えて、コンピュータプログラムＣＰは、ＤＶＤ−ＲＯＭなどに格納される形態で提供されてもよい。ＣＰＵ２１０は、コンピュータプログラムＣＰを実行することにより、後述するスキャン処理を実行する。
【００１４】
複合機１００は、イメージセンサを用いて原稿を光学的に読み取ることによってスキャンデータを生成するスキャナ部１２０と、所定の方式（例えば、インクジェット、レーザー）によって画像を印刷するプリンタ部１３０と、スキャナ部１２０やプリンタ部１３０を制御するＣＰＵとメモリとを含む制御部１１０と、を備えている。
【００１５】
Ａ−２：スキャン処理
図２、図３は、第１実施例のスキャン処理のフローチャートである。このスキャン処理は、例えば、複合機２００において、コンピュータプログラムＣＰが実行されて、スキャンドライバが起動されているときに、ユーザの開始指示に基づいて開始される。
【００１６】
Ｓ１０では、ＣＰＵ２１０は、スキャン処理に関する指示を入力するための指示入力画面ＷＩ１を表示部２７０に表示する。図４は、指示入力画面ＷＩ１の一例を示す図である。図４の指示入力画面ＷＩ４は、チェックボックスＣＢと、３個のボタンＢＴ１〜ＢＴ３を含んでいる。チェックボックスＣＢは、生成すべきスキャンデータに対して背景除去処理を実行か否かを示す指示を入力するための入力要素である。詳細設定ボタンＢＴ３が押下されると、解像度、保存ファイル形式、圧縮方式の指定などのスキャン処理に関する詳細指示を入力するための画面（図示省略）が表示される。ＣＰＵ２１０は、指示入力画面ＷＩ１を介して、背景除去処理の実行指示を含むスキャン処理に関する指示を取得する。
【００１７】
ユーザは、例えば、複合機１００のスキャナ部１２０に原稿を載置して、指示入力画面ＷＩ１の開始ボタンＢＴ１を押下する。ＣＰＵ２１０は、開始ボタンＢＴ１が押下されると、Ｓ１５に処理を進め、キャンセルボタンＢＴ２が押下されると、処理を中断する。
【００１８】
Ｓ１５では、ＣＰＵ２１０は、複合機１００にスキャン命令を送信することによって、複合機１００を用いて原稿を示すスキャンデータを生成し、生成されたスキャンデータを複合機から取得する。取得されたスキャンデータは、バッファ領域２３１に格納される。Ｓ１５にて取得されるスキャンデータによって表される画像を、元画像とも呼ぶ。スキャンデータは、画像内の複数個の画素のそれぞれの色を示す値を含む。本実施例のスキャンデータは、ＲＧＢ値で画素ごとの色を示すＲＧＢ画像データである。ＲＧＢ値の各色成分の階調値は、例えば、０〜２５５のいずれかの値を取る２５６階調の値である。
【００１９】
図５、図６は、本実施例で用いられる画像の一例を示す図である。図５（Ａ）の元画像ＳＩは、スキャンデータによって表される画像の一例である。この元画像ＳＩは、背景ＢＧと、描画Ｇ１と、文字Ｔ１、Ｔ２と、ベタ領域Ｂ１、Ｂ２と、を含んでいる。背景ＢＧは、白に近い色を有しているが、白色とは異なる色を有する部分ＵＥを含んでいる。部分ＵＥは、例えば、原稿の質感や、スキャナ部１２０のイメージセンサや光源の特性などに起因して発生する。描画Ｇ１は、円グラフを示す画像であり、背景ＢＧの色とは異なるが背景ＢＧに比較的近い色（例えば、薄いグレー）を有する部分ＰＧと、背景ＢＧの色とは比較的大きく異なる色を有する部分（ＰＧ以外の部分）と、を含む。ベタ領域Ｂ１、Ｂ２は、単色の領域であり、背景ＢＧの色とは異なるが背景ＢＧに比較的近い色（例えば、薄いグレー）を有している。文字Ｔ１は、白色を有しており、ベタ領域Ｂ１内に配置されている。文字Ｔ２は、背景ＢＧの色とは比較的大きく異なる色（例えば、赤や黒）を有している。なお、背景ＢＧに比較的近い色は、後述する背景色範囲ＲＡ内の色であり、背景ＢＧの色とは比較的大きく異なる色は、背景色範囲ＲＡ外の色である。
【００２０】
Ｓ２０では、ユーザによって背景除去処理の実行指示が入力されたか否かを判断する。具体的には、指示入力画面ＷＩ１において、開始ボタンＢＴ１が押下された時点で、チェックボックスＣＢにチェックが入力されている場合には、背景除去処理の実行指示が入力されたと判断され、チェックが入力されていない場合には、背景除去処理の実行指示が入力されていないと判断される。
【００２１】
背景除去処理の実行指示が入力されていない場合には（Ｓ２０：ＮＯ）、Ｓ２５にて、ＣＰＵ２１０は、スキャンデータを出力して、スキャン処理を終了する。例えば、スキャンデータは、不揮発性記憶装置２２０に出力されて、不揮発性記憶装置２２０に格納される。
【００２２】
背景除去処理の実行指示が入力された場合には（Ｓ２０：ＹＥＳ）、Ｓ３０にて、ＣＰＵ２１０は、スキャンデータに対して背景除去処理を実行して、補正済画像データを生成する。生成される補正済画像データは、スキャンデータとは別に、バッファ領域２３１に格納される。
【００２３】
背景除去処理について説明する。ＣＰＵ２１０は、スキャンデータのヒストグラムを生成する。色成分のヒストグラムは、元画像データの各画素を、その画素の色成分の階調値に応じて、複数個のクラスに分類することによって得られるデータである。本実施例では、２５６階調の階調値のそれぞれを、１個のクラスとして、ＲＧＢ値の３個の色成分についてそれぞれヒストグラムが生成される。図７は、Ｒ成分のヒストグラムの一例を示す図である。図７の横軸は、Ｒ成分の階調値を示し、縦軸は、各階調値を有する画素数を示す。
【００２４】
ＣＰＵ２１０は、ヒストグラムを用いて、背景ＢＧの色を示す背景色値を決定する。通常は、背景ＢＧは、文字Ｔ１や描画Ｇ１などのオブジェクトと比較して、均一であり、かつ、広い領域であるので、背景ＢＧに対応するピークが、各色成分のヒストグラムにおいて最も高いピークとなる。このために、本実施例では、各色成分のヒストグラムの最も高いピーク、すなわち、ＲＧＢの各色成分の最頻値Ｒｍ、Ｇｍ、Ｂｍによって示される色値（Ｒｍ、Ｇｍ、Ｂｍ）が、背景色値として決定される。図７には、Ｒ成分の最頻値Ｒｍが図示されている。
【００２５】
ＣＰＵ２１０は、元画像ＳＩ内の複数個の画素のうち、背景色値に基づく背景色範囲ＲＡ内のＲＧＢ値を有する画素のＲＧＢ値を、白色を示すＲＧＢ値に変更する。そして、ＣＰＵ２１０は、元画像ＳＩ内の複数個の画素のうち、背景色範囲ＲＡ外のＲＧＢ値を有する画素のＲＧＢ値を変更することなく、元の値に維持する。これによって、補正済画像を表す補正済画像データが生成される。ここで、背景色範囲ＲＡは、（Ｒｍ−ΔＶ）≦Ｒ≦（Ｒｍ＋ΔＶ）、かつ、（Ｇｍ−ΔＶ）≦Ｇ≦（Ｇｍ＋ΔＶ）、かつ、（Ｂｍ−ΔＶ）≦Ｂ≦（Ｂｍ＋ΔＶ）を満たす範囲である。白色値は、例えば、（２５５、２５５、２５５）のＲＧＢ値である。図７には、背景色範囲ＲＡのうち、Ｒ成分についての範囲ＲＡｒが図示されている。ΔＶは、各色成分の階調値が取り得る範囲が０〜２５５である場合に、例えば、１０〜２０程度の値である。なお、変形例では、例えば、（Ｒｍ−ΔＶ１）≦Ｒ≦（Ｒｍ＋ΔＶ２）の様に、背景色値を示すＲ、Ｇ、Ｂの階調値Ｒｍ、Ｇｍ、Ｂｍから上限までの幅と下限までの幅とが異なっていてもよい。なお、本実施例では、背景色範囲ＲＡ外のＲＧＢ値を有する画素の値を変更していないが、これに代えて、背景色範囲ＲＡ外のＲＧＢ値を、背景色範囲ＲＡに近いほど、白色に近づくように、画素の値を変更しても良い。この場合には、補正済画像において、白色の領域と、白色とは異なる色の領域と、の間に、不自然な境界線が現れることを抑制できる。
【００２６】
図５（Ｂ）には、補正済画像ＡＩの一例が示されている。この補正済画像ＡＩの背景ＢＧａは、背景除去処理によって白の単色の領域になっている。すなわち、白とは異なる色を有する部分ＵＥは、背景除去処理によって元画像ＳＩから除去されている。補正済画像ＡＩは、元画像ＳＩの文字Ｔ２と、描画Ｇ１から部分ＰＧを除いた描画Ｇ１ａと、を含んでいるが、他のオブジェクトを含んでいない。すなわち、ベタ領域Ｂ１、Ｂ２、文字Ｔ１ｂ、描画Ｇ１の部分ＰＧは、背景除去処理によって元画像ＳＩから除去されている。これは、ベタ領域Ｂ１、Ｂ２、描画Ｇ１の部分ＰＧを構成する画素のＲＧＢ値が、背景色範囲ＲＡに含まれるために、背景除去処理によって、白色値に変更されたためである。このように、背景除去処理によって、ユーザの意図に反して、オブジェクトが画像から除去される場合がある。
【００２７】
図２のＳ３５では、ＣＰＵ２１０は、元画像データに対して、エッジ画素を抽出するエッジ抽出処理を実行することによって、元画像ＳＩ内のエッジ画素を示す第１のエッジ画像データを生成する。第１のエッジ画像データは、元画像ＳＩ内の複数個の画素のそれぞれについて、エッジ画素であることを示すＯＮと、エッジ画素でないことを示すＯＦＦと、のいずれかの値を示す二値画像データである。具体的には、ＣＰＵ２１０は、元画像データに対して、グレー変換処理を実行して、元画像ＳＩのグレー画像データを生成する。グレー変換処理は、画像内の複数個の画素のＲＧＢ値を、公知の式を用いて、輝度を示す２５６階調の輝度値Ｙに変換する処理である。ＣＰＵ２１０は、元画像ＳＩのグレー画像データの各画素の値に対して、ソーベルオペレータ（Sobel operator）を適用して、各画素のエッジ強度を算出する。そして、ＣＰＵ２１０は、エッジ強度が所定の閾値以上である画素をエッジ画素として決定し、エッジ強度が所定の閾値未満である画素を非エッジ画素として決定することによって、第１のエッジ画像データを生成する。
【００２８】
なお、上述したエッジ抽出処理において、グレー変換処理を行うことによって、エッジ画素の検出精度を向上することができる。変形例としては、ＣＰＵ２１０は、グレー変換処理を行うことなく、ＲＧＢの各色成分の値に対して、ソーベルオペレータ（Sobel operator）を適用して、ＲＧＢの各色成分のエッジ画像データを生成しても良い。そして、ＣＰＵ２１０は、ＲＧＢの各色成分のエッジ画像データの論理和（ＯＲ）をとることによって、第１のエッジ画像データを生成しても良い。また、上述したエッジ抽出処理において、ソーベルオペレータ（Sobel operator）に代えて、プレウィットオペレータ（Prewitt operator）やロバーツクロスオペレータ（Roberts Cross operator）などの他のエッジ検出用オペレータが用いられても良い。
【００２９】
図２のＳ４０では、ＣＰＵ２１０は、補正済画像データに対して、上述したエッジ抽出処理を実行することによって、補正済画像ＡＩ内のエッジ画素を示す第２のエッジ画像データを生成する。第２のエッジ画像データは、補正済画像ＡＩ内の複数個の画素のそれぞれについて、エッジ画素であることを示すＯＮと、エッジ画素でないことを示すＯＦＦと、のいずれかの値を示す二値画像データである。
【００３０】
図５（Ｃ）、（Ｄ）には、第１のエッジ画像データによって表される第１のエッジ画像ＥＩ１と、第２のエッジ画像データによって表される第２のエッジ画像ＥＩ２と、の一例が示されている。エッジ画像ＥＩ１、ＥＩ２内の黒い線は、複数個のエッジ画素によって構成されるエッジを示し、白い領域は、エッジ画素ではない複数個の画素によって構成される領域を示す。第１のエッジ画像ＥＩ１は、元画像ＳＩ内の描画Ｇ１と、文字Ｔ１、Ｔ２と、ベタ領域Ｂ１、Ｂ２のそれぞれのエッジＧ１ｅ、Ｔ１１ｅ、Ｔ１２ｅ、Ｔ２ｅ、Ｂ１ｅ、Ｂ２ｅを含んでいる。エッジＧ１ｅ、Ｔ１１ｅ、Ｔ１２ｅ、Ｔ２ｅ、Ｂ１ｅ、Ｂ２ｅは、元画像内の対応するオブジェクトの輪郭を示している。第２のエッジ画像ＥＩ２は、補正済画像ＡＩ内の描画Ｇ１ａ、文字Ｔ２のそれぞれのエッジＧ１ａｅ、Ｔ２ｅを含んでいる。換言すれば、第２のエッジ画像ＥＩ２は、背景除去処理によって除去されない描画Ｇ１ａ、文字Ｔ２のエッジＧ１ａｅ、Ｔ２ｅを含んでいるが、背景除去処理によって除去される描画Ｇ１の部分ＰＧ、文字Ｔ１、ベタ領域Ｂ１、Ｂ２のエッジを含んでいない。
【００３１】
図２のＳ５０では、ＣＰＵ２１０は、第１のエッジ画像ＥＩ１と第２のエッジ画像ＥＩ２との差分を示す差分画像を表す差分画像データを生成する。具体的には、ＣＰＵ２１０は、第１のエッジ画像内の複数個のエッジ画素（すなわち、ＯＮの画素）のうち、第２のエッジ画像内のエッジ画素に対応する画素を、エッジ画素のまま維持する。そして、ＣＰＵ２１０は、第１のエッジ画像内の複数個のエッジ画素のうち、第２のエッジ画像内の非エッジ画素（すなわち、ＯＦＦの画素）に対応する画素を、エッジ画素から非エッジ画素に変更する、すなわち、当該画素の値をＯＮからＯＦＦに変更する。これによって、差分画像データが生成される。
【００３２】
以上の説明から解るように、元画像ＳＩ、補正済画像ＡＩ、第１のエッジ画像ＥＩ１、第２のエッジ画像ＥＩ２、差分画像ＤＩは、互いにサイズが同じ画像、すなわち、縦方向の画素数と横方向の画素数が同じ画像であり、これらの画像の各画素は、１対１で対応している。
【００３３】
図６（Ａ）には、差分画像データによって表される差分画像ＤＩの一例が示されている。差分画像ＤＩは、第１のエッジ画像ＥＩ１内のエッジＧ１ｅ、Ｔ１１ｅ、Ｔ１２ｅ、Ｔ２ｅ、Ｂ１ｅ、Ｂ２ｅのうち、描画Ｇ１の部分ＰＧのエッジＰＧｅと、文字Ｔ１のエッジＴ１ｅと、ベタ領域Ｂ１、Ｂ２のエッジＢ１ｅ、Ｂ２ｅと、を含んでいる。換言すれば、差分画像ＤＩは、背景除去処理によって除去される描画Ｇ１の部分ＰＧ、文字Ｔ１、ベタ領域Ｂ１、Ｂ２のエッジＰＧｅ、Ｔ１１ｅ、Ｔ１２ｅ、Ｂ１ｅ、Ｂ２ｅを含んでいるが、背景除去処理によって除去されない描画Ｇ１ａ、文字Ｔ２のエッジを含んでいない。このように、差分画像ＤＩは、背景除去処理によって除去されるオブジェクトの輪郭を構成するエッジ画素の位置を示している。
【００３４】
Ｓ５５では、ＣＰＵ２１０は、Ｓ１５にて取得された元画像データと、Ｓ３０にて生成された補正済画像データと、Ｓ５０にて生成された差分画像データと、を用いて、合成画像データを生成する。具体的には、ＣＰＵ２１０は、補正済画像ＡＩ内の複数個の画素のうち、差分画像ＤＩのエッジ画素（すなわち、ＯＮの画素）に対応する画素のＲＧＢ値を、元画像ＳＩ内の対応する画素のＲＧＢ値に変更する。また、ＣＰＵ２１０は、補正済画像ＡＩ内の複数個の画素のうち、差分画像ＤＩの非エッジ画素（すなわち、ＯＦＦの画素）に対応する画素のＲＧＢ値を、変更しない。これによって、合成画像データが生成される。
【００３５】
なお、変形例としては、差分画像データに対して、差分画像ＤＩに示されるオブジェクトの輪郭を太くする修正処理（例えば、公知の膨張処理）を実行して後に、修正処理後の差分画像データを用いて、合成画像データが生成されても良い。こうすれば、後述の合成画像ＣＩにおいて、輪郭画像をより視認しやすくすることができる。
【００３６】
図６（Ｂ）には、合成画像データによって表される合成画像ＣＩの一例が示されている。上述したように、差分画像ＤＩは、背景除去処理によって除去されるオブジェクトの輪郭を構成するエッジ画素の位置を示しているので、合成画像ＣＩは、背景除去処理によって除去されるオブジェクトの輪郭を示す輪郭画像が、補正済画像ＡＩに対して合成された画像である。したがって、合成画像ＣＩは、補正済画像ＡＩ内の描画Ｇ１ａ、文字Ｔ２と、元画像ＳＩ内の描画Ｇ１の部分ＰＧ、文字Ｔ１、ベタ領域Ｂ１、Ｂ２の輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄと、を含む輪郭画像を含んでいる。そして、輪郭ＰＧｄ、Ｔ１ｄ、Ｂ１ｄ、Ｂ２ｄを構成する複数個の画素のそれぞれは、補正済画像ＡＩ内の対応する画素のＲＧＢ値を有している。したがって、輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄは、元画像ＳＩ内の対応するオブジェクトの色、すなわち、描画Ｇ１の部分ＰＧ、文字Ｔ１、ベタ領域Ｂ１、Ｂ２の色を有している。
【００３７】
図２のＳ６０では、ＣＰＵ２１０は、差分画像データに対してラベリング処理を実行する。具体的には、ＣＰＵ２１０は、連続する一つながりの複数個のエッジ画素を含む画素群に、１個の識別子を割り当て、互いに離れた複数個のエッジ画素をそれぞれ含む複数個の画素群に、互いに異なる識別子を割り当てる。１個の識別子が割り当てられた画素群は、１個の輪郭として特定される。これによって、図６（Ａ）の差分画像ＤＩにおいて、エッジＰＧｅ、Ｂ１ｅ、Ｂ２ｅ、Ｔ１１ｅ、Ｔ１２ｅが、それぞれ輪郭として特定される。この結果、合成画像ＣＩにおいて、５個の輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄが特定される。
【００３８】
Ｓ６５では、ＣＰＵ２１０は、ラスタデータであるラベリング済の差分画像データを、ベクトルデータに変換する。これは、ベクトルデータの方が、一般的に、データ量が少ないからである。バッファ領域２３１の容量に十分な余裕がある場合などには、本ステップは省略されても良い。
【００３９】
Ｓ７０では、ＣＰＵ２１０は、合成画像ＣＩを含むＵＩ画面ＷＩ２を表示部２７０に表示する。図８は、ＵＩ画面ＷＩ２の一例を示す図である。ＵＩ画面ＷＩ２は、合成画像ＣＩと、合成画像ＣＩ内の５個の輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄの識別子ＩＤ１〜ＩＤ５と、５個の輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄのそれぞれに対応するプルダウンメニューＰＭ１〜ＰＭ５と、ボタンＢＴ４、ＢＴ５と、を含んでいる。プルダウンメニューＰＭ１〜ＰＭ５のそれぞれは、対応する輪郭ごとに、ユーザが指示を入力するための入力要素である。プルダウンメニューＰＭ１〜ＰＭ５のそれぞれで選択できる選択肢は、３個の指示、すなわち、輪郭表示の指示、復元の指示、除去の指示を含んでいる。
【００４０】
合成画像ＣＩには、５個の輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄを含む輪郭画像が含まれるので、ユーザは、合成画像ＣＩを見ることによって、背景除去処理によって、意図せずに除去されるオブジェクトを認識できる。ユーザは、５個の輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄのそれぞれについて、対応するプルダウンメニューＰＭ１〜ＰＭ５を操作して、指示を入力することができる。輪郭表示の指示は、輪郭だけを表示させる指示である。除去の指示は、オブジェクトおよび輪郭を除去させる指示である。復元の指示は、オブジェクトを復元させる指示である。
【００４１】
ＵＩ画面ＷＩ２において、印刷ボタンＢＴ４または保存ボタンＢＴ５が押下されると、ＣＰＵ２１０は、Ｓ７５に処理を進める。
【００４２】
Ｓ７５では、ＣＰＵ２１０は、合成画像ＣＩ内の複数個の輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄのそれぞれについて、入力された指示を取得する。すなわち、ＣＰＵ２１０は、印刷ボタンＢＴ４または保存ボタンＢＴ５が押下された時点で、プルダウンメニューＰＭ１〜ＰＭ５にてそれぞれ選択されている指示を取得する。
【００４３】
Ｓ８０では、ＣＰＵ２１０は、合成画像ＣＩ内の複数個の輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄの中から、１個の注目する輪郭を選択する。
【００４４】
Ｓ８５にて、ＣＰＵ２１０は、注目する輪郭について入力された指示が、除去の指示、復元の指示、輪郭表示の指示のいずれであるかを判断する。
【００４５】
入力された指示が、除去の指示である場合には、Ｓ９０にて、ＣＰＵ２１０は、注目する輪郭を除去する。具体的には、ＣＰＵ２１０は、合成画像ＣＩにおいて、注目する輪郭を構成する複数個の画素を、ラベリング済の差分画像ＤＩを示すベクトルデータを用いて特定する。ＣＰＵ２１０は、特定された複数個の画素のＲＧＢ値を、補正済画像ＡＩの対応する画素のＲＧＢ値に変更する。この結果、合成画像ＣＩには、注目する輪郭が合成されていない状態になる。
【００４６】
入力された指示が、復元の指示である場合には、Ｓ９５にて、ＣＰＵ２１０は、注目する輪郭を有する元画像ＳＩ内のオブジェクト（注目オブジェクトとも呼ぶ）を、合成画像ＣＩ内に復元する。具体的には、ＣＰＵ２１０は、合成画像ＣＩにおいて、注目オブジェクトを復元すべき復元領域を特定し、復元領域内の複数個の画素のＲＧＢ値を、元画像ＳＩ内の対応する画素のＲＧＢ値に変更することによって、注目オブジェクトを合成画像ＣＩ内に復元する。
【００４７】
復元領域の特定は、例えば、以下のように行われる。先ず、ＣＰＵ２１０は、合成画像ＣＩにおいて、注目する輪郭を構成する複数個の画素を、ラベリング済の差分画像ＤＩを示すベクトルデータを用いて特定する。そして、ＣＰＵ２１０は、注目する輪郭の外接矩形に含まれる複数個の画素であって、注目する輪郭を構成しない複数個の画素を非輪郭画素として特定する。そして、ＣＰＵ２１０は、連続する一つながりの非輪郭画素によって構成される領域であって、注目する輪郭の外接矩形の４辺と接触しない領域を、復元領域として特定する。ただし、注目する輪郭が、図６（Ｂ）の合成画像ＣＩの円弧状の輪郭ＰＧｄのように、閉じたループを形成していない場合には、ＣＰＵ２１０は、上記方法では、復元領域を特定できない。このために、上記方法で復元領域が特定できない場合には、ＣＰＵ２１０は、注目する輪郭は閉じたループを形成していないと判断して、例えば、以下の方法で復元領域を特定する。先ず、ＣＰＵ２１０は、注目する輪郭の両側に隣接する隣接領域の色を、元画像ＳＩ内の対応する複数個の画素の値を用いて算出する。ＣＰＵ２１０は、輪郭の両側の隣接領域のうち、領域の色が、元画像ＳＩの背景色値（Ｒｍ、Ｇｍ、Ｂｍ）に近い領域を背景側の領域と判定し、反対側の領域を復元すべき側の領域と判定する。ＣＰＵ２１０は、エッジ画像ＥＩ１を用いて、復元すべき側の領域を含み、連続する一つながりの非エッジ画素によって構成される領域を、復元領域として特定する。特定される復元領域は、エッジ画像ＥＩ１において、閉じたループを形成する複数個のエッジ画素によって囲まれた領域となる。変形例としては、例えば、復元領域を特定できない場合には、ＣＰＵ２１０は、復元領域を自動では特定できないことをＵＩ画面ＷＩ２に表示して、ユーザから復元領域を指定する指示を受け取ることによって、復元領域を特定しても良い。例えば、ユーザは、マウスなどのポインティングデバイスを用いて、ＵＩ画面ＷＩ２内の合成画像ＣＩ上で、復元領域を指定する指示を入力ことができる。
【００４８】
入力された指示が、輪郭表示である場合には、ＣＰＵ２１０は、Ｓ９０やＳ９５をスキップして、Ｓ１００に処理を進める。合成画像ＣＩは、輪郭を既に含んでいるので、この場合には、合成画像ＣＩを変更する必要はないからである。
【００４９】
Ｓ１００では、ＣＰＵ２１０は、全ての輪郭をについて処理したか否かを判断する。未処理の輪郭がある場合には（ステップＳ１００：ＮＯ）、ＣＰＵ２１０は、Ｓ８０に戻って、未処理の輪郭を新たに注目する輪郭として選択する。全ての輪郭について処理された場合には（ステップＳ１００：ＹＥＳ）、ＣＰＵ２１０は、Ｓ１０５に処理を進める。この時点でユーザの指示に基づいて合成画像ＣＩ内の輪郭について処理が行われた処理済合成画像ＡＣＩを表す処理済合成画像データが生成されている。
【００５０】
図６の（Ｃ）には、処理済合成画像ＡＣＩの一例が示されている。この処理済合成画像ＡＣＩでは、例えば、合成画像ＣＩの描画の輪郭ＰＧｄが、輪郭表示の指示に基づいて、維持されている。処理済合成画像ＡＣＩでは、合成画像ＣＩの輪郭Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄを有する元画像ＳＩ内のオブジェクトＴ１、Ｂ１が、復元の指示に基づいて復元されている。そして、処理済合成画像ＡＣＩでは、合成画像ＣＩの輪郭Ｂ２ｄが、消去の指示に基づいて消去されている。このように、ユーザの指示に基づいて、オブジェクトごとに適切な処理が実行されるので、ＣＰＵ２１０は、ユーザの意図に沿った処理済合成画像ＡＣＩを表す処理済合成画像データを生成することができる。
【００５１】
Ｓ１０５では、ＣＰＵ２１０は、図８のＵＩ画面ＷＩ２を介して入力された指示に従って、処理済合成画像データを出力する。具体的には、ＵＩ画面ＷＩ２の印刷ボタンＢＴ４が押下された場合には、ＣＰＵ２１０は、処理済合成画像データを用いて印刷データを生成して、印刷データを複合機１００に送信する。この結果、複合機１００によって用紙に印刷された処理済合成画像ＡＣＩが出力される。ＵＩ画面ＷＩ２の保存ボタンＢＴ５が押下された場合には、ＣＰＵ２１０は、処理済合成画像データを、所定のフォーマットの画像ファイル、例えば、ＪＰＥＧ（Joint Photographic Experts Groupの略）フォーマットの画像ファイルに変換して、不揮発性記憶装置２２０に出力する。この結果、不揮発性記憶装置２２０に処理済合成画像データが保存される。
【００５２】
以上説明した第１実施例によれば、元画像データを用いて、差分画像ＤＩを表す差分画像データが生成される（図２のＳ３５〜Ｓ５０）ことによって、背景除去処理によって除去されるオブジェクト（第１のオブジェクトとも呼ぶ）、すなわち、背景色範囲ＲＡ内のＲＧＢ値を有する複数個の画素を含むオブジェクトの輪郭ＰＧｅ、Ｔ１１ｅ、Ｔ１２ｅ、Ｂ１ｅ、Ｂ２ｅ（図６（Ａ））が抽出される。そして、補正済画像データを用いて、第１のオブジェクトの輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄを示す輪郭画像と、補正済画像ＡＩ内のオブジェクト、すなわち、背景除去処理によって除去されないオブジェクト（第２のオブジェクトとも呼ぶ）Ｇ１ａ、Ｔ２を示す画像と、を含む合成画像ＣＩを表す合成画像データが生成される（図２の５５）。第２のオブジェクトは、背景色範囲ＲＡ外のＲＧＢ値を有する複数個の画素を含むオブジェクトである、と言うことができる。生成された合成画像データを用いて、ＵＩ画面ＷＩ２に合成画像ＣＩが含められることによって、合成画像ＣＩが表示部２７０に出力（すなわち、表示）される（図３のＳ７０）。この結果、背景除去処理によって色が変更されて除去される第１のオブジェクトと、補正済画像ＡＩ内の第２のオブジェクトと、をユーザが区別して認識できる出力画像である合成画像ＣＩを、ユーザに提供することができる。
【００５３】
例えば、補正済画像ＡＩをユーザに提供しても、補正済画像ＡＩには、元画像ＳＩから除去された第１のオブジェクトが明示されないので、ユーザは、第１のオブジェクトがあることを認識できない可能性がある。また、仮に、差分画像ＤＩをユーザに提供しても、差分画像ＤＩには、補正済画像ＡＩに残る第２のオブジェクトが明示されないので、ユーザは、第２のオブジェクトを認識できない可能性がある。また、仮に、第１のエッジ画像ＥＩ１をユーザに提供しても、エッジ画像ＥＩ１では、第１のオブジェクトと第２のオブジェクトとが区別されないので、ユーザは、第１のオブジェクトと第２のオブジェクトとを区別して認識できない。合成画像ＣＩには、第１のオブジェクトと第２のオブジェクトが区別して明示されるので、背景除去処理によって意図しないオブジェクト内の画素の値が変更されることに起因する不具合を低減できる。例えば、輪郭が残ることで、ユーザが許容できる出力画像が、ユーザに提供できる。あるいは、ユーザは、第１のオブジェクトが除去されることを認識できるので、復元の指示を入力して第１のオブジェクトを復元させるなどの対応を取ることができる。
【００５４】
より具体的には、Ｓ３５にて、元画像データを用いて、第１のエッジ画像データが生成され、Ｓ４０にて、補正済画像データを用いて、第２のエッジ画像データが生成され、Ｓ５０にて第１のエッジ画像データと第２のエッジ画像データとを用いて、第１のオブジェクトの輪郭が抽出される。この結果、第１のエッジ画像データと第２のエッジ画像データとを用いて、第１のオブジェクトの輪郭を精度良く抽出することができる。
【００５５】
また、Ｓ５０にて、差分画像ＤＩを表す差分データを生成することによって、第１のエッジ画像ＥＩ１内の複数個のエッジ画素のうち、第２のエッジ画像ＥＩ２内の対応するエッジ画素が存在しない画素によって構成される領域が、第１のオブジェクトの輪郭として抽出される。この結果、第１のエッジ画像データと第２のエッジ画像データとを用いて、輪郭画像が合成されるべき領域を容易に特定することができる。
【００５６】
さらに、第１実施例では、合成画像ＣＩ内の第１のオブジェクトの輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄは、元画像ＳＩ内の第１のオブジェクトＰＧ、Ｔ１、Ｂ１、Ｂ２と同じ色を有している。この結果、合成画像ＣＩにおいて、第１のオブジェクトの元画像ＳＩにおける色が表現される。この結果、合成画像ＣＩを見るユーザは、背景除去処理によって変更される前の第１のオブジェクトの色を認識できる。
【００５７】
さらに、第１実施例では、背景除去処理によって除去されない第２のオブジェクトＧ１ａ、Ｔ２は、補正済画像ＡＩ内の第２のオブジェクトＧ１ａ、Ｔ２と同じ色を有している。この結果、ユーザは、合成画像ＣＩを見ることによって、補正済画像ＡＩ内で表現される第２のオブジェクトＧ１ａ、Ｔ２を確認できる。
【００５８】
さらに、第１実施例では、ＣＰＵ２１０は、合成画像ＣＩを含むＵＩ画面ＷＩ２を表示部２７０に表示して、輪郭画像に関する指示をユーザから取得する（図３のＳ７５）。そして、ＣＰＵ２１０は、Ｓ７５にて除去の指示が取得された場合には、Ｓ９０にて、指示の対象の輪郭を構成する複数個の画素のそれぞれの値を、補正済画像ＡＩ内の対応する画素の値に変更し、Ｓ７５にて復元の指示が取得された場合には、Ｓ９５にて、指示の対象の輪郭によって特定されるオブジェクト領域（即ち、上述した復元領域）内の複数個の画素のそれぞれの値を、元画像ＳＩ内の対応する画素の値に変更する。この結果、ユーザの指示に応じて、第１のオブジェクトの輪郭の除去や、第１のオブジェクトの復元を適切に実行できる。この結果、ユーザの意図に沿った適切な処理済合成画像ＡＣＩを表す処理済合成画像データを出力することができる。
【００５９】
さらに、第１実施例では、ＣＰＵ２１０は、輪郭表示の指示が取得された場合に、指示の対象の輪郭を構成する複数個の画素の値を変更しないので、ユーザの指示に基づいて、処理済合成画像ＡＣＩにおいて、特定のオブジェクトの輪郭を残すこともできる。したがって、ユーザの指示に応じて、さらに適切な処理済合成画像ＡＣＩを出力することができる。
【００６０】
なお、合成画像ＣＩ内の第１のオブジェクトの輪郭ＰＧｄのように、第１のオブジェクトの輪郭は、元画像ＳＩ内の第１のオブジェクトＰＧの一部の輪郭であって、第１のオブジェクトＰＧの全体の輪郭ではない輪郭を含む。すなわち、第１のオブジェクトの輪郭は、第１のオブジェクトの全体を囲む閉じたループ状の輪郭ではない場合がある。
【００６１】
さらに、第１実施例では、ＣＰＵ２１０は、元画像ＳＩ内の複数個の第１のオブジェクトＰＧ、Ｔ１、Ｂ１、Ｂ２のそれぞれの輪郭ＰＧｄ、Ｔ１１ｄ、Ｔ１２ｄ、Ｂ１ｄ、Ｂ２ｄについて、ユーザから指示を取得する（図３のＳ７５）。ＣＰＵ２１０は、複数個の輪郭のそれぞれについて、ユーザからの指示に基づいて画素の値を変更する（図３のＳ８５〜Ｓ９５）。したがって、背景除去処理で除去される複数個の第１のオブジェクトごとに、適切な処理が実行された処理済合成画像データを出力することができる。したがって、よりユーザの意図に沿った処理済合成画像ＡＣＩをユーザに提供することができる。
【００６２】
Ｂ．第２実施例
図９は、第２実施例の色補正処理のフローチャートである。第２実施例では、図２のスキャン処理に代えて、図９の色補正処理が行われる。この色補正処理は、図２のスキャン処理と同様に、合成画像ＣＩを表す合成画像データの出力（具体的には表示）や、処理済合成画像ＡＣＩを表す処理済合成画像データの出力（具体的には、印刷や保存）を行うための処理である。色補正処理は、例えば、計算機２００において起動されているスキャナドライバに対して、ユーザが開始指示を入力した場合に実行される。
【００６３】
Ｓ２０５では、ＣＰＵ２１０は、元画像データを取得して、バッファ領域２３１に格納する。ＣＰＵ２１０は、例えば、スキャナ部２５０を用いて原稿を読み取り、元画像データとしてのスキャンデータを生成することによって、元画像データを取得する。これに代えて、ＣＰＵ２１０は、予め生成されて不揮発性記憶装置２２０に保存されている複数個のスキャンデータの中から、ユーザの指定に基づいて選択される１個のスキャンデータを不揮発性記憶装置２２０から元画像データとして読み出すことによって、元画像データを取得しても良い。
【００６４】
Ｓ２１０では、ＣＰＵ２１０は、指示入力画面ＷＩ３を、表示部２７０に表示する。図１０は、指示入力画面ＷＩ３の一例を示す図である。図１０の指示入力画面ＷＩ３は、元画像データに対して実行すべき特定の補正処理の種類を選択する指示を入力するためのラジオボタンＲＢ１、ＲＢ２と、出力すべき画像に対する輪郭表示に関する指示を入力するためのラジオボタンＲＢ３〜ＲＢ５と、ボタンＢＴ８〜ＢＴ１０と、を含んでいる。
【００６５】
ユーザは、ラジオボタンＲＢ１、ＲＢ２のいずれかを選択することによって、背景除去処理と、カラードロップ処理と、のいずれか１個の処理を選択する指示を入力することができる。背景除去処理は、第１実施例の背景除去処理と同じ処理である。カラードロップ処理は、ユーザによって指定された指定色を示す色値に基づく指定色範囲ＲＡｓ内のＲＧＢ値を有する画素のＲＧＢ値を、白色を示すＲＧＢ値に変更する処理である。カラードロップ処理は、画像内のオブジェクトのうち、ユーザが不要であると判断するオブジェクトを除去するための処理である。ボタンＢＴ８が押下されると、ＣＰＵ２１０は、指定色の指定を入力するための入力画面（図示省略）を表示部２７０に表示する。この入力画面を介して、ユーザは、指定色を指定することができる。例えば、この入力画面は、元画像ＳＩを含み、ユーザは、元画像ＳＩ内の指定色を有する位置をマウスなどのポインティングデバイスを用いて指定することによって、指定色の指定を入力できる。
【００６６】
ユーザは、ラジオボタンＲＢ３〜ＲＢ５のいずれかを選択することによって、輪郭を表示させる表示指示と、輪郭を表示させない非表示指示と、輪郭を表示するか否かを自動で判定させる自動判定指示と、のいずれか１個の指示を入力することができる。
【００６７】
ユーザは、例えば、ラジオボタンＲＢ１、ＲＢ２のいずれか１個を選択し、かつ、ラジオボタンＲＢ３〜ＲＢ５のいずれか１個を選択して、指示入力画面ＷＩ３の開始ボタンＢＴ９を押下する。ＣＰＵ２１０は、開始ボタンＢＴ９が押下されると、Ｓ２２０に処理を進め、キャンセルボタンＢＴ１０が押下されると、処理を中断する。
【００６８】
Ｓ２１５では、ＣＰＵ２１０は、実行すべき特定の補正処理の種類の選択指示と、輪郭表示に関する指示と、を取得する。すなわち、ＣＰＵ２１０は、開始ボタンＢＴ９が押下された時点で、ラジオボタンＲＢ１〜ＲＢ５のうち、選択されているラジオボタンに対応する指示を取得する。特定の補正処理の種類の選択指示が、カラードロップ処理を選択する指示である場合には、ユーザによって指定された指定色を示す色値を併せて取得する。
【００６９】
Ｓ２２０では、ＣＰＵ２１０は、元画像データに対して、ユーザの選択指示に基づく特定の補正処理、本実施例では、背景除去処理とカラードロップ処理とのうちのいずれかの補正処理を実行して、補正済画像データを生成する。特定の補正処理が、背景除去処理である場合には、図２のＳ３０と同様に、背景除去処理が実行される。特定の補正処理が、背景除去処理である場合には、ＣＰＵ２１０は、元画像ＳＩ内の複数個の画素のうち、指定色範囲ＲＡｓ内のＲＧＢ値を有する画素のＲＧＢ値を、白色を示すＲＧＢ値に変更する。そして、ＣＰＵ２１０は、元画像ＳＩ内の複数個の画素のうち、指定色範囲ＲＡｓ外のＲＧＢ値を有する画素のＲＧＢ値を変更することなく、元の値に維持する。これによって、補正済画像を表す補正済画像データが生成される。ここで、指定色範囲ＲＡｓは、ユーザによって指定された指定色を示す色値（Ｒｓ、Ｇｓ、Ｂｓ）に基づく範囲であり、例えば、（Ｒｓ−ΔＶ）≦Ｒ≦（Ｒｓ＋ΔＶ）、かつ、（Ｇｓ−ΔＶ）≦Ｇ≦（Ｇｓ＋ΔＶ）、かつ、（Ｂｍ−ΔＶ）≦Ｂ≦（Ｂｍ＋ΔＶ）を満たす範囲である。
【００７０】
Ｓ２２５では、ＣＰＵ２１０は、Ｓ２１５で取得された輪郭表示に関する指示が、自動判定指示であるか否かを判断する。輪郭表示に関する指示が、自動判定指示でない場合には（Ｓ２２５：ＮＯ）、Ｓ２３０にて、ＣＰＵ２１０は、輪郭表示に関する指示が、表示指示であるか否かを判断する。輪郭表示に関する指示が、表示指示である場合には（Ｓ２３０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２５０に処理を進める。輪郭表示に関する指示が、表示指示でない場合、すなわち、非表示処理である場合には（Ｓ２３０：ＮＯ）、ＣＰＵ２１０は、Ｓ２４５に処理を進める。
【００７１】
輪郭表示に関する指示が、自動判定指示である場合には（Ｓ２２５：ＹＥＳ）、Ｓ２３５にて、ＣＰＵ２１０は、実行された特定の補正処理が、背景除去処理であるかカラードロップ処理であるかを判断する。実行された特定の補正処理が、背景除去処理である場合には、ＣＰＵ２１０は、Ｓ２５０に処理を進める。
【００７２】
実行された特定の補正処理が、カラードロップ処理である場合には、Ｓ２４０にて、ＣＰＵ２１０は、元画像ＳＩが写真であるか否かを判断する。元画像ＳＩのオブジェクトが写真であるか否かの判断は、公知の手法で判断され得る。例えば、ＣＰＵ２１０は、元画像データの色数Ｃを算出する。例えば、元画像データの輝度値のヒストグラムが生成され、輝度値のヒストグラムを用いて、２５６階調の輝度値のうち、所定数以上の画素が有する輝度値の個数が、色数Ｃとして算出される。ＣＰＵ２１０は、算出された色数Ｃが閾値ＴＨｃ以上である場合に、元画像ＳＩのオブジェクトが写真であると判断し、算出された色数Ｃが閾値ＴＨｃ未満である場合に、元画像ＳＩのオブジェクトが写真でないと判断する。写真とは異なるオブジェクトは、例えば、文字、コンピュータグラフィックスを含む。
【００７３】
元画像ＳＩが写真である場合には（Ｓ２４０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２４５に処理を進める。元画像ＳＩが写真でない場合には（Ｓ２４０：ＮＯ）、ＣＰＵ２１０は、Ｓ２５０に処理を進める。
【００７４】
Ｓ２４５では、ＣＰＵ２１０は、Ｓ２２０で生成された補正済画像データ、すなわち、輪郭画像が合成されていない補正済画像を表す補正済画像データを出力（例えば、保存や印刷）する。
【００７５】
Ｓ２５０では、ＣＰＵ２１０は、図２、図３のＳ３５〜Ｓ１０５の処理を実行する。この結果、合成画像データの出力（具体的には、図３のＳ７０の合成画像ＣＩの表示）や、処理済合成画像データの出力（具体的には、図３のＳ１０５）が行われる。
【００７６】
以上説明した第２実施例によれば、元画像ＳＩに対する特定の補正処理の種類が判断され（Ｓ２３５）、特定の補正処理が元画像ＳＩの背景色を除去する処理（すなわち、背景除去処理）である場合には、輪郭画像を含む合成画像ＣＩを表す合成画像データや処理済合成画像ＡＣＩを表す処理済合成画像データが出力される（Ｓ２５０）。そして、特定の補正処理が、元画像ＳＩ内のオブジェクトを除去する処理（すなわち、カラードロップ処理）である場合には、輪郭画像を含まない補正済画像を表す補正済画像データが出力され得る（Ｓ２４５）。カラードロップ処理は、ユーザが不要であると判断するオブジェクトを除去するための処理である。したがって、カラードロップ処理によって除去されるオブジェクトは、ユーザの意図に反して除去されたオブジェクトではなく、ユーザの意図に沿って除去されたオブジェクトである場合がある。このために、特定の補正処理がカラードロップ処理である場合には、輪郭画像を含む合成画像ＣＩを表す合成画像データではなく、輪郭画像を含まない補正済画像データを出力するほうが好ましい場合がある。このために、本実施例では、ＣＰＵ２１０は、特定の補正処理がカラードロップ処理である場合には、元画像ＳＩが写真であることを条件に、補正済画像データを出力している。一方、背景除去処理は、背景の色を除去するための処理であるので、背景除去処理によって除去されるオブジェクトは、ユーザの意図に反して除去されたオブジェクトである可能性が高い。このために、本実施例では、ＣＰＵ２１０は、特定の補正処理が背景除去処理である場合には、合成画像データや処理済合成画像データが出力される。この結果、元画像ＳＩの種類に応じて、適切な画像データを出力することができる。
【００７７】
また、第２実施例では、元画像ＳＩが第１種の画像（具体的には、写真を示す画像）である場合には（Ｓ２４０：ＹＥＳ）、補正済画像データが出力され（Ｓ２４５）、元画像ＳＩが第２種の画像（具体的には、写真とは異なるオブジェクトを示す画像）である場合には（Ｓ２４０：ＮＯ）、合成画像データや処理済合成画像データが出力される（Ｓ２５０）。こうすれば、元画像の種類に応じて、適切な画像データを出力できる。より具体的に説明すると、写真を示す画像に対して、カラードロップ処理が実行される場合には、ユーザは、写真内の特定の色のオブジェクトを除去したい場合が多い。この場合に、写真内に輪郭が表示されると、不自然な画像となる場合が多い。したがって、この場合には、輪郭画像を含まない補正済画像データが出力されることが適切であると考えられる。一方、写真とは異なるオブジェクト、例えば、文字や、コンピュータグラフィックを示す画像に対して、カラードロップ処理が実行される場合には、ユーザは、画像内のベタ塗りの領域の色を除去したい場合が多い。この場合に、除去されたベタ塗りの領域の輪郭を表示した方が、画像内のオブジェクトを適切に表せる場合がある。例えば、図５（Ａ）の元画像ＳＩの描画Ｇ１については、図６（Ｂ）の合成画像ＣＩにおいて、描画Ｇ１の輪郭ＰＧｄが表示されることが、好ましいと考えられる。したがって、この場合には、第１のオブジェクトの輪郭を含む合成画像データや処理済合成画像データが出力されることが適切であると考えられる。
【００７８】
さらに、第２実施例によれば、ユーザが、輪郭の表示を行うか否かの指示を入力することができ（図１０）、ＣＰＵ２１０は、ユーザから輪郭の表示指示が入力された場合には（Ｓ２３０：ＹＥＳ）、第１のオブジェクトの輪郭を含む合成画像データや処理済合成画像データが出力され（Ｓ２５０）、非表示指示が入力された場合には（Ｓ２３０：ＮＯ）、第１のオブジェクトの輪郭を含まない補正済画像データが出力される（Ｓ２４５）。この結果、ユーザの意図に沿った画像を出力することができる。
【００７９】
Ｃ．変形例：
（１）上記実施例では、第１のエッジ画像データと、第２のエッジ画像データと、を用いて、差分画像データを生成することによって、背景除去処理によって除去される第１のオブジェクトの輪郭が抽出されている（図２のＳ３５〜Ｓ５０）。これに代えて、他の方法で第１のオブジェクトの輪郭を抽出しても良い。例えば、第１のエッジ画像データのみを用いて、第１のオブジェクトの輪郭が抽出されても良い。第１のエッジ画像データによって表される第１のエッジ画像ＥＩ１では、複数個のエッジ画素によって、背景除去処理によって除去される第１のオブジェクトの輪郭と、除去されない第２のオブジェクトの輪郭と、の両方が抽出されている。このために、第１のエッジ画像データが生成された時点で、第２のエッジ画像データを用いなくても、第１のオブジェクトの輪郭と第２のオブジェクトの輪郭とは区別できないものの、第１のオブジェクトの輪郭は、元画像ＳＩから既に抽出されている、と言うことができる。このために、例えば、Ｓ５５では、ＣＰＵ２１０は、補正済画像データと、第１のエッジ画像データと、を用いて、合成画像データを生成しても良い。具体的には、ＣＰＵ２１０は、補正済画像ＡＩ内の複数個の画素のうち、第１のエッジ画像ＥＩ１のエッジ画素に対応する画素のＲＧＢ値を、元画像ＳＩ内の対応する画素のＲＧＢ値に変更し、エッジ画像ＥＩ１の非エッジ画素に対応する画素のＲＧＢ値を、変更しない。これによって、合成画像データが生成されても良い。この場合には、補正済画像ＡＩ内の第２のオブジェクトの輪郭を構成する画素の値も、元画像ＳＩの対応する画素の値に変更されるが、第２のオブジェクトの輪郭を構成する画素の値は、補正済画像ＡＩにおいても元画像ＳＩにおいても同じ値であるので、結果にはほぼ影響がない。このために、本変形例の方法で、合成画像データを生成しても、上記実施例とほぼ同様の合成画像データを生成することができる。
【００８０】
また、元画像データと補正済画像データとの差分を示す画像データを生成し、該画像データに対してエッジ抽出処理を実行することによって、第１のオブジェクトの輪郭を示すエッジ画像データを生成しても良い。この方法によっても、第１のオブジェクトの輪郭を抽出することができる。
【００８１】
（２）上記実施例では、合成画像ＣＩに含まれる第１のオブジェクトの輪郭は、元画像ＳＩ内の第１のオブジェクトの色を有している。これに代えて、合成画像ＣＩに含まれる第１のオブジェクトの輪郭の色は、背景色（本実施例では白色）と異なる他の色、例えば、黒やグレーであっても良い。ＣＰＵ２１０は、元画像ＳＩ内の第１のオブジェクトの色が、背景色に極めて近い場合には、例えば、第１のオブジェクトの平均色と背景色との色の差が基準値未満である場合には、合成画像ＣＩ内の第１のオブジェクトの輪郭の色を、元画像ＳＩ内の第１のオブジェクトの色に拘わらずに、黒やグレーに設定しても良い。こうすれば、合成画像ＣＩにおいて、第１のオブジェクトの輪郭の色が視認し難くなることを抑制できる。第１のオブジェクトの平均色と背景色との色の差には、例えば、２個の色を示す色値のＲＧＢ色空間におけるユークリッド距離が用いられる。
【００８２】
（３）上記第１実施例および第２実施例において、図２のＳ６０以降の処理が省略されて、Ｓ５５で生成された合成画像データが出力（例えば、印刷や保存）されても良い。
【００８３】
（４）上記第２実施例では、元画像ＳＩが写真を示す画像である場合に、第１のオブジェクトの輪郭を含まない補正済画像データが出力され、元画像ＳＩが写真とは異なるオブジェクトを示す画像である場合に、第１のオブジェクトの輪郭を含む補正済画像データが出力される。これに限らず、他の分類方法によって分類される元画像ＳＩの種類に応じて、出力すべき画像データを切り替えても良い。例えば、元画像ＳＩに写真を示す画像を含む場合において、元画像ＳＩが、写真のみを含み、写真とは異なるオブジェクトを含まない画像である場合には、第１のオブジェクトの輪郭を含まない補正済画像データが出力され、元画像ＳＩが、写真と、写真とは異なるオブジェクトと、の両方を含む画像である場合には、第１のオブジェクトの輪郭を含む補正済画像データが出力されても良い。写真のみを含む画像にカラードロップ処理が行われる場合は、上述したように、ユーザが意図的に、写真内の一部のオブジェクトを除去するために、行われる可能性が高い。この場合には、上述したように、除去されたオブジェクトの輪郭を表示する必要性が比較的低い。これに対して、写真と、写真とは異なるオブジェクトと、の両方を含む画像にカラードロップ処理が行われる場合には、写真とは異なるオブジェクトの全部または一部を除去するために、行われる可能性が高い。この場合には、写真内の一部のオブジェクトがユーザの意図に反して除去される可能性があるので、除去されたオブジェクトの輪郭を表示する必要性が比較的高いからである。
【００８４】
（５）上記各実施例では、元画像データは、スキャナ部２５０によって生成されるスキャンデータである。これに限らず、光学的に読み取られた画像を表す種々の画像データを採用可能である。例えば、デジタルカメラによる撮影によって、原稿が光学的に読み取られることによって生成される画像データであっても良い。
【００８５】
（６）なお、上記各実施例では、ＣＰＵ２１０は、背景除去処理において、背景色範囲ＲＡ外のＲＧＢ値を有する画素の値を変更していないが、これに代えて、背景色範囲ＲＡ外のＲＧＢ値を、背景色範囲ＲＡに近いほど、白色に近づくように、画素の値を変更しても良い。この場合には、補正済画像において、白色の領域と、白色とは異なる色の領域と、の間に、不自然な境界線が現れることを抑制できる。この場合には、元画像ＳＩ内の第２のオブジェクトと、補正済画像ＡＩ内の第２のオブジェクトとは、完全に同じではなく、色が少し異なり得る。
【００８６】
（７）上記各実施例において計算機２００のＣＰＵ２１０によって実行される図２、図３のスキャン処理および図９の色補正処理は、例えば、複合機１００の制御部１１０によって実行されても良い。この場合には、計算機２００は不要であり、複合機１００が単体でこれらの処理を実行すればよい。
【００８７】
（８）また、図２、図３のスキャン処理および図９の色補正処理は、複合機１００や計算機２００と通信可能に接続されたサーバによって実行されても良い。サーバは、例えば、複合機１００の製造者によって管理されていても良い。この場合には、例えば、サーバは、合成画像ＣＩを含むＵＩ画面ＷＩ２を示す画面データを、複合機１００または計算機２００に送信することによって、複合機１００または計算機２００の表示部にＵＩ画面ＷＩ２を表示させる。そして、サーバは、複合機１００または計算機２００を介して、ユーザからの指示を取得して、処理済合成画像ＡＣＩを表す処理済画像データを生成する。生成された示す合成画像データは、サーバから、複合機１００または計算機２００に出力される。サーバは、１個の計算機でも良く、互いに通信可能な複数個の計算機を含む計算システムであっても良い。
【００８８】
（９）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
【００８９】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【００９０】
１００...複合機、１１０...制御部、１２０...スキャナ部、１３０...プリンタ部、２００...計算機、２１０...ＣＰＵ、２２０...不揮発性記憶装置、２３０...揮発性記憶装置、２３１...バッファ領域、２５０...スキャナ部、２６０...操作部、２７０...表示部、２８０...通信部
【図１】
0006350362.tif 000002
【図２】
0006350362.tif 000003
【図３】
0006350362.tif 000004
【図４】
0006350362.tif 000005
【図５】
0006350362.tif 000006
【図６】
0006350362.tif 000007
【図７】
0006350362.tif 000008
【図８】
0006350362.tif 000009
【図９】
0006350362.tif 000010
【図１０】
0006350362.tif 000011