画像処理装置及び画像処理方法並びにプログラム
【課題】写真が多数の画像に分割されている場合にも、周辺画素を参照した画像処理によるバンディングを抑制しつつ、一体性判定のパフォーマンス劣化やメモリ消費を低減する、画像処理技術を提供することを課題とする。
【解決手段】複数の画像オブジェクトを含むドキュメントデータを取得する手段、前記取得したドキュメントデータのラスター画像を生成する手段、前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する手段、前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する手段、前記判定した写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する手段、前記写真領域に対応する前記ラスター画像上の画素群に対して、前記生成した補正パラメータを用いて画素値を補正する手段を有する画像処理装置。
【解決手段】複数の画像オブジェクトを含むドキュメントデータを取得する手段、前記取得したドキュメントデータのラスター画像を生成する手段、前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する手段、前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する手段、前記判定した写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する手段、前記写真領域に対応する前記ラスター画像上の画素群に対して、前記生成した補正パラメータを用いて画素値を補正する手段を有する画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理方法ならびにプログラムに関する。
【背景技術】
【0002】
近年、デジタルスチルカメラやスキャナ等のデジタル撮像装置が普及し、写真をデジタル画像としてコンピュータに取り込むことが頻繁に行われるようになってきた。コンピュータに取り込まれた画像はコンピュータ上のアプリケーションを用いて編集されプリンタ等で出力される。プリンタで出力する際に印刷物上の写真の見栄えがよくなるよう、プリンタドライバで画像を自動的に補正してからプリンタに出力することがよく行われている。
【0003】
しかしながら、ディスプレイ上では写真が1つに見えていても、アプリケーションからドライバへ写真のデータを送信する際に、アプリケーションが写真を複数の画像に分割して送信するケースがある。その場合、分割された個々の画像毎に補正パラメータを算出し補正を行うと、各分割画像に適応的な補正が行われる。その結果、分割画像毎に最適な補正が行われ、1つの写真としては分割画像毎に補正結果が異なる一貫性のない画像となってしまい、印刷物にバンディングなどの不具合が発生する。
【0004】
この不具合を解決するための技術が特許文献1に公開されている。特許文献1の技術では、複数存在する画像それぞれの描画領域の情報から隣接する画像を判定し、隣接すると判定された画像については一体性があると見なしてサンプリング情報を結合・共有する。これにより、一体性のある複数の画像に対して一貫性のある補正を行うことが可能となる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−076416号
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1の手法では、写真が多数の画像に分割されている場合に、画像の隣接を判定する組み合わせの数が膨大となりパフォーマンスが落ちるという問題があった。また、全ての画像で隣接を判定し終わるまでサンプリング情報を全ての画像の数だけ記憶しておく必要があるため、写真が多数の画像に分割されている場合に、多くのメモリを消費するという問題があった。
【0007】
本発明は上記問題点に鑑み、写真が多数の画像に分割されている場合にも、周辺画素を参照した画像処理によるバンディングを抑制しつつ、一体性判定のパフォーマンス劣化やメモリ消費を低減する、画像処理装置および方法を提供することを課題とする。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明は、複数の画像オブジェクトを含むドキュメントデータのラスター画像を生成する手段と、前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する手段と、前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する手段と前記判定した写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する手段と、前記写真領域に対応する前記ラスター画像上の画素群に対して、前記生成した補正パラメータを用いて画素値を補正する手段とを有することを特徴とする画像処理装置を提供する。
【発明の効果】
【0009】
本発明によれば、ラスター画像に含まれる画像オブジェクトの情報を参照してラスター画像上で写真領域を判定するため、写真領域が分割された場合であっても、精度よく写真領域を判定することができる。
【図面の簡単な説明】
【0010】
【図1】第一の実施形態に係る画像処理装置を含む画像形成システムの構成例を示す図
【図2】CPU102が実行するプログラムの構成例を示す図
【図3】写真を含むドキュメントのデータの例を示す図
【図4】ドライバ203のモジュール構成とデータの流れの例を示す図
【図5】ドキュメントの写真領域を判定し補正パラメータを算出する処理の例を示す図
【図6】図3のドキュメントのラスター画像、オブジェクトフラグ画像、写真領域の例を示す図
【図7】オブジェクトフラグ画像から写真領域の輪郭を判定する処理の例を示す図
【図8】オブジェクトフラグ画像から写真領域の輪郭を追跡する様子を示す図
【図9】オブジェクトフラグ画像から判定された写真領域の輪郭情報の例を示す図
【図10】写真領域から補正パラメータを算出する処理の例を示す図
【図11】写真領域から算出した輝度ヒストグラムの例を示す図
【図12】写真領域の情報と補正パラメータを関連付けて保存したテーブルの例を示す図
【図13】ドキュメントの画像オブジェクトを補正するための処理の例を示す図
【図14】重なった写真を含むドキュメントのデータの例を示す図
【図15】第二の実施形態に係るオブジェクトフラグ画像を生成する処理の例を示す図
【図16】図14のドキュメントのラスター画像、オブジェクトフラグ画像、写真領域の例を示す図
【図17】図14のドキュメントに対して判定された写真領域の輪郭情報の例を示す図
【図18】隣接する写真領域を判定し結合する処理の例を示す図
【図19】第三の実施形態に係るドライバ203のモジュール構成とデータの流れの例を示す図
【図20】第三の実施形態に係るページ画像レンダリング部1903の処理の例を示す図
【発明を実施するための形態】
【0011】
以下、本発明を実施する為の最良の形態について図面を用いて説明する。
【0012】
<第一の実施形態>
図1は本発明の実施形態に関わる画像処理装置を含む画像形成システムの構成例である。この画像形成システムは、データ転送路101、CPU102、RAM103、外部記憶装置104、ディスプレイ105、外部入力装置106、画像生成装置107、画像形成装置108から構成される。このうち、CPU102、RAM103、外部記憶装置104、ディスプレイ105、外部入力装置106が画像処理装置109を構成する。
【0013】
図2はCPU102が実行するプログラムの構成を示すブロック図である。外部記憶装置104には、画像オブジェクトを含むドキュメントを編集し印刷するアプリケーションのプログラムと、ドキュメントの印刷指示を受け取り印刷データを生成して画像形成装置108に出力するプリンタドライバのプログラムが保存されている。CPU102はアプリケーション201のプログラムを外部記憶装置104から読み込んでRAM103に格納し実行する。CPU102はアプリケーション201からの指示に従ってディスプレイ105にプレビューを表示したり、画像生成装置107から写真画像を読み込んでRAM103上に格納したり、外部入力装置106を介してユーザからドキュメントの編集の指示を受け付ける。画像生成装置107は例えばデジタルスチルカメラやスキャナといった画像を生成する装置である。外部入力装置106は例えばキーボードやマウスといったユーザインタフェースである。CPU102はユーザからドキュメントの印刷の指示を受け取ると、外部記憶装置104からプリンタドライバ203のプログラムを読み込んでRAM103に格納し実行する。そして、プリンタドライバ203はオペレーティングシステム202を介してアプリケーション201から印刷出力するためのドキュメントデータを受け取る。ここで、ドキュメントデータは、例えばページ記述言語である。プリンタドライバ203は画像形成装置108に入力するデータを生成するためのプログラムである。画像形成装置108は例えば電子写真方式のプリンタやインクジェットプリンタなどである。
【0014】
図3はアプリケーション201が扱うドキュメントのデータの一例を示す図である。ドキュメントデータをディスプレイ105にプレビューしたときの様子を図3(a)に示す。ドキュメント301には写真302と写真303が貼り付けられている。写真302はプレビュー上では1枚の画像に見えるが、実際のドキュメントデータ上では図3(b)に示すように画像304、画像305、画像306の3つの画像オブジェクトで構成されているとする。また、写真303もプレビュー上では1枚の画像に見えるが、実際のドキュメントデータ上では図3(c)に示すように画像307、画像308、画像309の3つの画像オブジェクトで構成されているとする。以降の説明ではプリンタドライバ203は図3に示すドキュメントデータを受け取ったとして説明する。
【0015】
図4はプリンタドライバ203のモジュール構成とデータの流れの一例を示すブロック図である。プリンタドライバ203は、ドキュメントデータ取得部401、ドキュメントデータ解釈部402、オブジェクト蓄積部403、ページ画像レンダリング部404、印刷データ生成出力部405、画像処理部406から構成される。また、画像処理部406は、レンダリング部407、オブジェクトフラグ画像生成部408、写真領域判定部409、解析部410、パラメータ格納テーブル411、補正部412より構成される。ドキュメントデータ取得部401はアプリケーション201からオペレーティングシステム202を介してドキュメントデータを取得する。ドキュメントデータ解釈部402はドキュメントデータを構成するオブジェクトを解釈し、オブジェクト蓄積部403に蓄積する。オブジェクトは、例えば図3(b)や図3(c)に示す304〜309のような画像オブジェクトや、他にも文字の描画を表すテキストや、グラフや図形などの描画を表すグラフィックスなどがある。画像処理部406はオブジェクト蓄積部403に蓄積されたオブジェクトのうち画像オブジェクトのみを受け取って画像処理を行い、ページ画像レンダリング部404に画像オブジェクトを渡す。ページ画像レンダリング部404はオブジェクト蓄積部403や画像処理部406から受け取った画像、テキスト、グラフィックスのオブジェクトにレンダリングを行いページ画像(ラスタ画像)を生成し、そのページ画像を印刷データ生成出力部405に渡す。印刷データ生成出力部405は受け取ったページ画像を画像形成装置108に入力するデータに変換し、画像形成装置108へ出力する。なお、図4の処理の全てまたは一部を、画像形成装置108で行ってもよい。
【0016】
図5は画像処理部406においてドキュメントデータ内の画像オブジェクトを補正するためのパラメータを算出するための処理を示すフローチャートである。処理S501では、レンダリング部407がオブジェクト蓄積部403から画像オブジェクトとその描画領域情報を受け取りラスター画像を生成する。また、同時にオブジェクトフラグ画像生成部408はレンダリング部407から画像オブジェクトを描画した領域の情報を受け取り、画像オブジェクトを描画した領域と描画しない領域のフラグを切り替えたオブジェクトフラグ画像を生成する。例えばプリンタドライバ203が図3に示すドキュメントデータを受け取った場合、レンダリング部407が生成するラスター画像は図6(a)に示すようなラスター画像である。601はラスター画像全体を表し、602は図3(a)の画像304〜306を描画した画素群、603は図3(b)の画像307〜309を描画した画素群を示す。オブジェクトフラグ画像生成部408が生成するオブジェクトフラグ画像は例えば、図6(b)に示すようなオブジェクトフラグ画像である。604はオブジェクトフラグ画像全体を表す。オブジェクトフラグ画像604の各画素はラスター画像601の同じ座標の画素に対応しており、ラスター画像601上で画像オブジェクトが描画された場合は1が、画像オブジェクトが描画されていない場合は0がセットされる。オブジェクトフラグ画像604のうち、領域605と領域606がそれぞれラスター画像上の描画領域602、603に対応しており、フラグの値として各画素に1がセットされる。オブジェクトフラグ画像604における領域605と領域606以外の画素は対応するラスター画像上の画素に何も画像オブジェクトが描画されていないことを示す0がセットされる。
【0017】
次に処理S502では、写真領域判定部409がオブジェクトフラグ画像604から写真領域を判定する。すなわち領域605と領域606の輪郭を判定することになる。図6(c)に、領域605と領域606の輪郭を示す矩形607、608とその四隅の座標の例を示す。オブジェクトフラグ画像604から輪郭を示す矩形607、608を判定するための手法の詳細は後に説明する。次に処理S503では処理S501で生成したラスター画像において処理S502で判定した写真領域の画素を参照して写真領域の見えを良くするための補正パラメータを算出する。補正パラメータの算出方法については後述する。最後に、処理S504において、写真領域の情報とS503で算出した補正パラメータとを関連付けてパラメータ格納テーブル411に格納する。
【0018】
図7は処理S502においてオブジェクトフラグ画像から写真領域を判定する処理の詳細を示すフローチャートである。このフローチャートでは、二値画像における輪郭追跡処理を行う。輪郭追跡の様子を図8に示す。図8において白い画素は画像描画なしを示す0がセットされている画素、グレーの画素は画像描画ありを示す1がセットされている画素である。また、黒の画素は輪郭を構成する画素として判定された画素である。
【0019】
処理S701ではオブジェクトフラグ画像内を左上から右下に向かって各行を捜査し、輪郭追跡の開始点を決定する。輪郭追跡の開始点は、画像が描画されていないことを示す0から画像が描画されていることを示す1の値に切り替わる画素が見つかったときに、その画素を開始点として決定する。図8(a)がそのときの処理の様子を示しており、白い丸で示されている画素が輪郭追跡の開始点として決定された画素である。次に処理S702ではこの追跡開始点を中心とした8近傍の画素を時計回りで調べる。図8(b)がそのときの処理の様子を示しており、数字が時計回りに画素を調査している様子を示す。
【0020】
次に処理S703では時計回りに画素を調査したときに0から1に値が切り替わる画素を新たな追跡点とする。図8(b)を参照して説明すると、図8(b)の白い丸の右上の画素(0)から白い丸の右隣の画素(1)に切り替わる画素を新たな追跡点とする。図8(c)がそのときの処理の様子を示しており、白い丸で示されている画素が輪郭追跡の開始点として新たに決定された画素である。次に処理S704では、その新たに決定された開始点が最初の追跡開始点と同じ座標であるかを判定する。同じ座標ではない場合は処理S702に戻り処理S702と処理S703を繰り返す。図8(c)、図8(d)はそのときの処理の様子を示しており、図8(c)では新たに8近傍の画素を参照して0から1に切り替わる画素を新たな追跡点とする。図8(d)はさらに追跡が進んだときの様子を示しており、黒い輪郭画素が多数判定されている。処理S704で、新たに決定された開始点が最初の追跡開始点と同じ座標であると判定された場合は、処理S705に進み追跡した経路を1つの写真領域の輪郭として出力する。図8(e)は新たに決定された開始点が最初の追跡開始点と同じ座標であるときの様子を示している。
【0021】
処理S705で輪郭を出力する際、輪郭を構成する各画素の経路が直線である部分は直線の始点と終点だけを出力する。処理S706では、オブジェクトフラグ画像を全ての画素を調査したかどうかを判定し、調査がまだ完了していない場合はS701に戻って未調査の画素から輪郭追跡の開始点を決定する。オブジェクトフラグ画像を全ての画素を調査した場合は図7のフローチャートの処理を終了する。図9は処理S705にて出力された写真領域の輪郭情報を示す。写真領域1や写真領域2の輪郭は4つの直線に囲まれた閉領域である。写真領域1は図6(b)の605、図9に示す写真領域1の直線1〜4は図6(c)の607、写真領域2は図6(b)の606、図9に示す写真領域2の直線1〜4は図6(c)の608を示す。
【0022】
図10は処理S503で解析部410が補正パラメータを算出する処理を示すフローチャートである。処理S1001では、ラスター画像において写真領域判定部409で判定した写真領域を参照し、写真領域ごとに輝度のヒストグラムを生成する。ラスター画像の各画素がレッド(R)・グリーン(G)・ブルー(B)の8ビットRGB信号で表現されているとすると、輝度は下記の式1で算出できる。なお、Yは輝度を、UとVは色差成分を表す。
【数1】
【0023】
生成したヒストグラムの例を図11に示す。横軸は輝度、縦軸は画素数である。1101がある写真領域の輝度のヒストグラムである。
【0024】
次に処理S1002で輝度ヒストグラムの上端1%度数に対応する輝度値と下端1%度数に対応する輝度値を判定する。上端1%度数に対応する輝度値は写真領域のダイナミックレンジの最大値を表し、下端1%度数に対応する輝度値は写真領域のダイナミックレンジの最小値を現す。上端1%度数と下端1%度数を捨てているのは、ノイズや孤立点などの影響を避けるためである。後に補正部412で行う写真領域の補正は、このダイナミックレンジの最大値から最小値までの範囲を輝度で表現可能な最大値(255)と最小値(0)まで線形的に広げることによりダイナミックレンジを向上する処理を行う。ヒストグラム1101を持つ写真補正領域を補正した後のヒストグラムを1104に示す。補正における線形変換処理は下記の式2で表される。
【数2】
【0025】
処理S1003ではそのためのパラメータaとbをヒストグラム1101の上下端1%度数の輝度値1102と1103から求める。パラメータaとbを求めるには下記の式3と式4を用いる。
【数3】
【数4】
【0026】
処理S504で解析部410が写真領域の情報と補正パラメータを関連付けてパラメータ格納テーブル411に保存した際のテーブルを図12に示す。写真領域ごとに、輪郭の直線で表現された写真領域と線形変換の補正パラメータa・bを関連付けて記憶している。
【0027】
図13は画像処理部406においてドキュメントデータ内の画像オブジェクトを補正するための処理を示すフローチャートである。処理S1301では、画像オブジェクトをオブジェクト蓄積部403より取得する。次に、処理S1302でパラメータ格納テーブル411に記憶されている写真領域のうち、その画像オブジェクトの各画素に対して、その画素の座標値を含む写真領域を判定する。ある座標を決めれば写真領域は必ず一意に定まる。次に処理S1303ではパラメータ格納テーブル411からその判定した写真領域に関連付けられた補正パラメータを取得する。そして、処理S1304で画像オブジェクトの各画素に対して画素ごとに取得した補正パラメータを用いて画素値を補正する。画素値の補正は、まず式1を用いてRGB信号を輝度に変換し、それに対して式2を用いて線形変換しダイナミックレンジを補正する。その後に、その補正後の輝度値に対して下記の式5を用いてRGB信号に戻し画素値を更新する。
【数5】
【0028】
以上より、第一の実施形態によれば、画像オブジェクトがレンダリングされたかどうかを表す画素群を持つオブジェクトフラグ画像を基に、一体性のある画素群領域を判定している。これにより、ドキュメント内の画像数の増加によるパフォーマンスの劣化・メモリの消費を低減することが可能である。
【0029】
<第二の実施形態>
第一の実施形態では、プリンタドライバ203がアプリケーション201から、図14(a)に示す写真1402と写真1403が重なっているようなドキュメントデータ1401を受け取った場合、その2つの写真を分離して個別に補正を行うことはできない。さらに、写真1402と写真1403は図14(b)や図(c)に示すように画像オブジェクト1404〜1409に分割されている場合、第一の実施形態で実現したような複数の画像を考慮した写真領域の判定の実現も必要である。第二の実施形態ではこれら2点の特徴を持つドキュメントに対して各写真の補正を可能とするための構成を説明する。なお、第二の実施の形態が第一の実施の形態と異なるのは図4の画像処理部406のオブジェクトフラグ画像を生成する処理(図5の処理S501)と、写真領域判定の処理(図5の処理S502)である。
【0030】
図15は図5の処理S501においてオブジェクトフラグ画像生成部408がオブジェクトフラグ画像を生成する処理の詳細を示すフローチャートである。まず処理S1500において、更新フラグ値を初期値0に設定する。次に、処理S1501で、オブジェクトフラグ画像生成部408はレンダリング部407よりオブジェクトのレンダリングが発生したことを受け付ける。次に、処理S1502では、オブジェクトフラグ画像生成部408はレンダリング部407がレンダリングした画像オブジェクトの描画領域をレンダリング部407より受け取る。レンダリング部407はドキュメントデータ1401内の画像オブジェクト1404〜1406を受け取りレンダリングを行い、図16(a)に示すラスター画像1601に画素領域1602を描画している。
【0031】
処理S1503ではオブジェクトフラグ画像生成部408はオブジェクトフラグ画像内のオブジェクト1404〜1406の描画領域における全画素のフラグ値を参照し、最大値を取得する。オブジェクトフラグ画像1603は最初は全ての画素のフラグ値に0をセットしており、そのためオブジェクト1404〜1406の描画領域1604の画素のフラグ値の最大値は0である。次に処理S1504で、その最大値に対して1を足した値を更新フラグ値として算出する。今回は最大値0に1を足した1が更新フラグ値となる。次に処理S1505でオブジェクトフラグ画像生成部408はオブジェクトフラグ画像1402内の画像オブジェクト1404〜1406の領域の画素に対して更新フラグ値1をセットする。すると、図16(a)の領域1604の全ての画素に1がセットされる。
【0032】
次に、処理S1506でレンダリング部407がレンダリング終了したかどうかを確認する。レンダリングが終了していない場合は処理S1500に戻り、レンダリングが終了した場合は処理を終了する。この例ではドキュメントデータの画像オブジェクト1407〜1409がまだレンダリングされていないため処理S1500に戻る。
【0033】
処理S1501で画像オブジェクト1407のレンダリングが発生したことを受け取り、処理S1502で画像オブジェクト1407の描画領域を取得する。この時点でレンダリング部407はラスター画像1601に写真領域1605を描画している。次に処理S1503でオブジェクトフラグ画像生成部408はオブジェクトフラグ画像内の1606の領域の画素を全て参照し、最大のフラグ値を取得する。この時点では図16(a)の状態であるため、領域1606における最大値は1となる。次に処理S1504で最大値1に1を足した2を更新フラグ値として算出する。次に処理S1505ではオブジェクトフラグ画像生成部408はオブジェクトフラグ画像1603の領域の画素に対して更新フラグ値2をセットする。以上の処理S1500〜S1506を繰り返すと、図16(c)に示すように最終的に生成されるラスター画像1601は1607と1608が描画され、オブジェクトフラグ画像1603は1609と1610の領域にフラグ値2と1がそれぞれセットされる。
【0034】
次に、図5の処理S502で写真領域判定部がオブジェクトフラグ画像から写真領域を判定する処理の詳細について説明する。まず、写真領域の候補を算出する処理を行う。この処理は図7のフローチャートに示す処理S701〜S706と全く同じ処理を行う。その結果得られた領域の輪郭は図16(d)に示す写真領域1611、写真領域1612、写真領域1613であり、それぞれの情報は図17(a)に示す写真領域1、写真領域2、写真領域3のように直線の集合として表現する。
【0035】
次に、隣接する写真領域の候補を判定し結合することで最終的な写真領域を判定する処理を、図18のフローチャートに示す。処理1801では、写真領域の全ての辺(直線)をチェックする。次に処理S1802で両端の座標が一致する2つの直線が見つかったかどうかを判定し、見つかった場合は処理S1803に移り、見つからなかった場合は処理を終了する。処理S1803では、その2つの直線を持つ2つの写真領域を結合して1つの写真領域にする。それには、直線の集合を足し合わせ、両端の座標が一致する辺は消すという処理を行う。この例では写真領域2と写真領域3が結合される。そして処理S1801に戻り、以降の処理を繰り返す。以上の処理により最終的に生成される写真領域の輪郭は図16(e)に示す1611と1614であり、写真領域の輪郭の情報は図17(b)に示す写真領域1と写真領域4となる。
【0036】
以上より、第二の実施形態によれば、ドキュメントデータ内の写真が複数の画像オブジェクトで構成され、さらにそれが互いに重なっている場合でも、2つの写真領域を分離してバンディングの生じない画像処理を実現することが可能となる。
【0037】
<第三の実施形態>
第一および第二の実施形態ではページ画像レンダリング部404が印刷用のページ画像(ラスタ画像)を生成するためのレンダリングする前に画像処理部406が独自にレンダリングと写真領域判定を行って画像の補正を行う。しかし、ページ画像レンダリング部404と画像処理部406のレンダリング部407のどちらもがレンダリングを行うのは冗長である。そこで、第三の実施の形態ではページ画像レンダリング部404の中で写真領域判定と画像補正を行う画像形成システムの一例を説明する。
【0038】
図19は第三の実施の形態におけるプリンタドライバ203のモジュール構成とデータの流れの一例を示すブロック図である。プリンタドライバ203は、ドキュメントデータ取得部1901、ドキュメントデータ解釈部1902、ページ画像レンダリング部1903、印刷データ生成出力部1904から構成される。また、ページ画像レンダリング部1903は、レンダリング部1905、オブジェクトフラグ画像生成部1906、写真領域判定部1907、解析部1908、補正部1909より構成される。ドキュメントデータ取得部1901はアプリケーション201からオペレーティングシステム202を介してドキュメントデータを取得する。ドキュメントデータ解釈部1902はドキュメントデータを構成するオブジェクトを解釈し、ページ画像レンダリング部1903にオブジェクトの情報を出力する。ページ画像レンダリング部1903は、入力されたオブジェクトの情報を受け取ってレンダリング・補正を行い、そのページ画像(ラスタ画像)を印刷データ生成出力部1904に渡す。印刷データ生成出力部1904は受け取ったページ画像を画像形成装置108に入力するデータに変換し、画像形成装置108へ出力する。
【0039】
図20はページ画像レンダリング部1903の処理を示すフローチャートである。処理S2001では、レンダリング部1905がドキュメントデータ解釈部1902からオブジェクトとその描画領域情報を受け取りラスター画像を生成する。また、同時にオブジェクトフラグ画像生成部1906はレンダリング部1905から画像オブジェクトについてのみ描画した領域の情報を受け取り、画像を描画した領域と描画しない領域のフラグを切り替えたオブジェクトフラグ画像を生成する。次に処理S2002では、写真領域判定部1907がオブジェクトフラグ画像から写真領域を判定する。処理S2003では、処理S2001で生成したラスター画像の写真領域の画素を参照して写真領域の見えを良くするための補正パラメータを算出する。なお、S2003で参照する写真領域の画素はS2002で判定した画素である。補正パラメータの算出方法については第一の実施の形態で説明したとおりである。最後に、処理S2004ではラスター画像上の写真領域ごとにおのおのの補正パラメータに基づいて画素値を補正し、印刷データ生成出力部1904に出力する。
【0040】
以上より、第3の実施形態によれば、写真領域を判定し補正パラメータを生成する為だけにレンダリングを行うという必要がないため、パフォーマンスの劣化やメモリの消費を低減させることが可能となる。
【0041】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0042】
401 ドキュメントデータ取得部
407 レンダリング部
408 オブジェクトフラグ画像生成部
409 写真領域判定部
410 解析部
411 パラメータ格納テーブル
412 補正部
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理方法ならびにプログラムに関する。
【背景技術】
【0002】
近年、デジタルスチルカメラやスキャナ等のデジタル撮像装置が普及し、写真をデジタル画像としてコンピュータに取り込むことが頻繁に行われるようになってきた。コンピュータに取り込まれた画像はコンピュータ上のアプリケーションを用いて編集されプリンタ等で出力される。プリンタで出力する際に印刷物上の写真の見栄えがよくなるよう、プリンタドライバで画像を自動的に補正してからプリンタに出力することがよく行われている。
【0003】
しかしながら、ディスプレイ上では写真が1つに見えていても、アプリケーションからドライバへ写真のデータを送信する際に、アプリケーションが写真を複数の画像に分割して送信するケースがある。その場合、分割された個々の画像毎に補正パラメータを算出し補正を行うと、各分割画像に適応的な補正が行われる。その結果、分割画像毎に最適な補正が行われ、1つの写真としては分割画像毎に補正結果が異なる一貫性のない画像となってしまい、印刷物にバンディングなどの不具合が発生する。
【0004】
この不具合を解決するための技術が特許文献1に公開されている。特許文献1の技術では、複数存在する画像それぞれの描画領域の情報から隣接する画像を判定し、隣接すると判定された画像については一体性があると見なしてサンプリング情報を結合・共有する。これにより、一体性のある複数の画像に対して一貫性のある補正を行うことが可能となる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−076416号
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1の手法では、写真が多数の画像に分割されている場合に、画像の隣接を判定する組み合わせの数が膨大となりパフォーマンスが落ちるという問題があった。また、全ての画像で隣接を判定し終わるまでサンプリング情報を全ての画像の数だけ記憶しておく必要があるため、写真が多数の画像に分割されている場合に、多くのメモリを消費するという問題があった。
【0007】
本発明は上記問題点に鑑み、写真が多数の画像に分割されている場合にも、周辺画素を参照した画像処理によるバンディングを抑制しつつ、一体性判定のパフォーマンス劣化やメモリ消費を低減する、画像処理装置および方法を提供することを課題とする。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明は、複数の画像オブジェクトを含むドキュメントデータのラスター画像を生成する手段と、前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する手段と、前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する手段と前記判定した写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する手段と、前記写真領域に対応する前記ラスター画像上の画素群に対して、前記生成した補正パラメータを用いて画素値を補正する手段とを有することを特徴とする画像処理装置を提供する。
【発明の効果】
【0009】
本発明によれば、ラスター画像に含まれる画像オブジェクトの情報を参照してラスター画像上で写真領域を判定するため、写真領域が分割された場合であっても、精度よく写真領域を判定することができる。
【図面の簡単な説明】
【0010】
【図1】第一の実施形態に係る画像処理装置を含む画像形成システムの構成例を示す図
【図2】CPU102が実行するプログラムの構成例を示す図
【図3】写真を含むドキュメントのデータの例を示す図
【図4】ドライバ203のモジュール構成とデータの流れの例を示す図
【図5】ドキュメントの写真領域を判定し補正パラメータを算出する処理の例を示す図
【図6】図3のドキュメントのラスター画像、オブジェクトフラグ画像、写真領域の例を示す図
【図7】オブジェクトフラグ画像から写真領域の輪郭を判定する処理の例を示す図
【図8】オブジェクトフラグ画像から写真領域の輪郭を追跡する様子を示す図
【図9】オブジェクトフラグ画像から判定された写真領域の輪郭情報の例を示す図
【図10】写真領域から補正パラメータを算出する処理の例を示す図
【図11】写真領域から算出した輝度ヒストグラムの例を示す図
【図12】写真領域の情報と補正パラメータを関連付けて保存したテーブルの例を示す図
【図13】ドキュメントの画像オブジェクトを補正するための処理の例を示す図
【図14】重なった写真を含むドキュメントのデータの例を示す図
【図15】第二の実施形態に係るオブジェクトフラグ画像を生成する処理の例を示す図
【図16】図14のドキュメントのラスター画像、オブジェクトフラグ画像、写真領域の例を示す図
【図17】図14のドキュメントに対して判定された写真領域の輪郭情報の例を示す図
【図18】隣接する写真領域を判定し結合する処理の例を示す図
【図19】第三の実施形態に係るドライバ203のモジュール構成とデータの流れの例を示す図
【図20】第三の実施形態に係るページ画像レンダリング部1903の処理の例を示す図
【発明を実施するための形態】
【0011】
以下、本発明を実施する為の最良の形態について図面を用いて説明する。
【0012】
<第一の実施形態>
図1は本発明の実施形態に関わる画像処理装置を含む画像形成システムの構成例である。この画像形成システムは、データ転送路101、CPU102、RAM103、外部記憶装置104、ディスプレイ105、外部入力装置106、画像生成装置107、画像形成装置108から構成される。このうち、CPU102、RAM103、外部記憶装置104、ディスプレイ105、外部入力装置106が画像処理装置109を構成する。
【0013】
図2はCPU102が実行するプログラムの構成を示すブロック図である。外部記憶装置104には、画像オブジェクトを含むドキュメントを編集し印刷するアプリケーションのプログラムと、ドキュメントの印刷指示を受け取り印刷データを生成して画像形成装置108に出力するプリンタドライバのプログラムが保存されている。CPU102はアプリケーション201のプログラムを外部記憶装置104から読み込んでRAM103に格納し実行する。CPU102はアプリケーション201からの指示に従ってディスプレイ105にプレビューを表示したり、画像生成装置107から写真画像を読み込んでRAM103上に格納したり、外部入力装置106を介してユーザからドキュメントの編集の指示を受け付ける。画像生成装置107は例えばデジタルスチルカメラやスキャナといった画像を生成する装置である。外部入力装置106は例えばキーボードやマウスといったユーザインタフェースである。CPU102はユーザからドキュメントの印刷の指示を受け取ると、外部記憶装置104からプリンタドライバ203のプログラムを読み込んでRAM103に格納し実行する。そして、プリンタドライバ203はオペレーティングシステム202を介してアプリケーション201から印刷出力するためのドキュメントデータを受け取る。ここで、ドキュメントデータは、例えばページ記述言語である。プリンタドライバ203は画像形成装置108に入力するデータを生成するためのプログラムである。画像形成装置108は例えば電子写真方式のプリンタやインクジェットプリンタなどである。
【0014】
図3はアプリケーション201が扱うドキュメントのデータの一例を示す図である。ドキュメントデータをディスプレイ105にプレビューしたときの様子を図3(a)に示す。ドキュメント301には写真302と写真303が貼り付けられている。写真302はプレビュー上では1枚の画像に見えるが、実際のドキュメントデータ上では図3(b)に示すように画像304、画像305、画像306の3つの画像オブジェクトで構成されているとする。また、写真303もプレビュー上では1枚の画像に見えるが、実際のドキュメントデータ上では図3(c)に示すように画像307、画像308、画像309の3つの画像オブジェクトで構成されているとする。以降の説明ではプリンタドライバ203は図3に示すドキュメントデータを受け取ったとして説明する。
【0015】
図4はプリンタドライバ203のモジュール構成とデータの流れの一例を示すブロック図である。プリンタドライバ203は、ドキュメントデータ取得部401、ドキュメントデータ解釈部402、オブジェクト蓄積部403、ページ画像レンダリング部404、印刷データ生成出力部405、画像処理部406から構成される。また、画像処理部406は、レンダリング部407、オブジェクトフラグ画像生成部408、写真領域判定部409、解析部410、パラメータ格納テーブル411、補正部412より構成される。ドキュメントデータ取得部401はアプリケーション201からオペレーティングシステム202を介してドキュメントデータを取得する。ドキュメントデータ解釈部402はドキュメントデータを構成するオブジェクトを解釈し、オブジェクト蓄積部403に蓄積する。オブジェクトは、例えば図3(b)や図3(c)に示す304〜309のような画像オブジェクトや、他にも文字の描画を表すテキストや、グラフや図形などの描画を表すグラフィックスなどがある。画像処理部406はオブジェクト蓄積部403に蓄積されたオブジェクトのうち画像オブジェクトのみを受け取って画像処理を行い、ページ画像レンダリング部404に画像オブジェクトを渡す。ページ画像レンダリング部404はオブジェクト蓄積部403や画像処理部406から受け取った画像、テキスト、グラフィックスのオブジェクトにレンダリングを行いページ画像(ラスタ画像)を生成し、そのページ画像を印刷データ生成出力部405に渡す。印刷データ生成出力部405は受け取ったページ画像を画像形成装置108に入力するデータに変換し、画像形成装置108へ出力する。なお、図4の処理の全てまたは一部を、画像形成装置108で行ってもよい。
【0016】
図5は画像処理部406においてドキュメントデータ内の画像オブジェクトを補正するためのパラメータを算出するための処理を示すフローチャートである。処理S501では、レンダリング部407がオブジェクト蓄積部403から画像オブジェクトとその描画領域情報を受け取りラスター画像を生成する。また、同時にオブジェクトフラグ画像生成部408はレンダリング部407から画像オブジェクトを描画した領域の情報を受け取り、画像オブジェクトを描画した領域と描画しない領域のフラグを切り替えたオブジェクトフラグ画像を生成する。例えばプリンタドライバ203が図3に示すドキュメントデータを受け取った場合、レンダリング部407が生成するラスター画像は図6(a)に示すようなラスター画像である。601はラスター画像全体を表し、602は図3(a)の画像304〜306を描画した画素群、603は図3(b)の画像307〜309を描画した画素群を示す。オブジェクトフラグ画像生成部408が生成するオブジェクトフラグ画像は例えば、図6(b)に示すようなオブジェクトフラグ画像である。604はオブジェクトフラグ画像全体を表す。オブジェクトフラグ画像604の各画素はラスター画像601の同じ座標の画素に対応しており、ラスター画像601上で画像オブジェクトが描画された場合は1が、画像オブジェクトが描画されていない場合は0がセットされる。オブジェクトフラグ画像604のうち、領域605と領域606がそれぞれラスター画像上の描画領域602、603に対応しており、フラグの値として各画素に1がセットされる。オブジェクトフラグ画像604における領域605と領域606以外の画素は対応するラスター画像上の画素に何も画像オブジェクトが描画されていないことを示す0がセットされる。
【0017】
次に処理S502では、写真領域判定部409がオブジェクトフラグ画像604から写真領域を判定する。すなわち領域605と領域606の輪郭を判定することになる。図6(c)に、領域605と領域606の輪郭を示す矩形607、608とその四隅の座標の例を示す。オブジェクトフラグ画像604から輪郭を示す矩形607、608を判定するための手法の詳細は後に説明する。次に処理S503では処理S501で生成したラスター画像において処理S502で判定した写真領域の画素を参照して写真領域の見えを良くするための補正パラメータを算出する。補正パラメータの算出方法については後述する。最後に、処理S504において、写真領域の情報とS503で算出した補正パラメータとを関連付けてパラメータ格納テーブル411に格納する。
【0018】
図7は処理S502においてオブジェクトフラグ画像から写真領域を判定する処理の詳細を示すフローチャートである。このフローチャートでは、二値画像における輪郭追跡処理を行う。輪郭追跡の様子を図8に示す。図8において白い画素は画像描画なしを示す0がセットされている画素、グレーの画素は画像描画ありを示す1がセットされている画素である。また、黒の画素は輪郭を構成する画素として判定された画素である。
【0019】
処理S701ではオブジェクトフラグ画像内を左上から右下に向かって各行を捜査し、輪郭追跡の開始点を決定する。輪郭追跡の開始点は、画像が描画されていないことを示す0から画像が描画されていることを示す1の値に切り替わる画素が見つかったときに、その画素を開始点として決定する。図8(a)がそのときの処理の様子を示しており、白い丸で示されている画素が輪郭追跡の開始点として決定された画素である。次に処理S702ではこの追跡開始点を中心とした8近傍の画素を時計回りで調べる。図8(b)がそのときの処理の様子を示しており、数字が時計回りに画素を調査している様子を示す。
【0020】
次に処理S703では時計回りに画素を調査したときに0から1に値が切り替わる画素を新たな追跡点とする。図8(b)を参照して説明すると、図8(b)の白い丸の右上の画素(0)から白い丸の右隣の画素(1)に切り替わる画素を新たな追跡点とする。図8(c)がそのときの処理の様子を示しており、白い丸で示されている画素が輪郭追跡の開始点として新たに決定された画素である。次に処理S704では、その新たに決定された開始点が最初の追跡開始点と同じ座標であるかを判定する。同じ座標ではない場合は処理S702に戻り処理S702と処理S703を繰り返す。図8(c)、図8(d)はそのときの処理の様子を示しており、図8(c)では新たに8近傍の画素を参照して0から1に切り替わる画素を新たな追跡点とする。図8(d)はさらに追跡が進んだときの様子を示しており、黒い輪郭画素が多数判定されている。処理S704で、新たに決定された開始点が最初の追跡開始点と同じ座標であると判定された場合は、処理S705に進み追跡した経路を1つの写真領域の輪郭として出力する。図8(e)は新たに決定された開始点が最初の追跡開始点と同じ座標であるときの様子を示している。
【0021】
処理S705で輪郭を出力する際、輪郭を構成する各画素の経路が直線である部分は直線の始点と終点だけを出力する。処理S706では、オブジェクトフラグ画像を全ての画素を調査したかどうかを判定し、調査がまだ完了していない場合はS701に戻って未調査の画素から輪郭追跡の開始点を決定する。オブジェクトフラグ画像を全ての画素を調査した場合は図7のフローチャートの処理を終了する。図9は処理S705にて出力された写真領域の輪郭情報を示す。写真領域1や写真領域2の輪郭は4つの直線に囲まれた閉領域である。写真領域1は図6(b)の605、図9に示す写真領域1の直線1〜4は図6(c)の607、写真領域2は図6(b)の606、図9に示す写真領域2の直線1〜4は図6(c)の608を示す。
【0022】
図10は処理S503で解析部410が補正パラメータを算出する処理を示すフローチャートである。処理S1001では、ラスター画像において写真領域判定部409で判定した写真領域を参照し、写真領域ごとに輝度のヒストグラムを生成する。ラスター画像の各画素がレッド(R)・グリーン(G)・ブルー(B)の8ビットRGB信号で表現されているとすると、輝度は下記の式1で算出できる。なお、Yは輝度を、UとVは色差成分を表す。
【数1】
【0023】
生成したヒストグラムの例を図11に示す。横軸は輝度、縦軸は画素数である。1101がある写真領域の輝度のヒストグラムである。
【0024】
次に処理S1002で輝度ヒストグラムの上端1%度数に対応する輝度値と下端1%度数に対応する輝度値を判定する。上端1%度数に対応する輝度値は写真領域のダイナミックレンジの最大値を表し、下端1%度数に対応する輝度値は写真領域のダイナミックレンジの最小値を現す。上端1%度数と下端1%度数を捨てているのは、ノイズや孤立点などの影響を避けるためである。後に補正部412で行う写真領域の補正は、このダイナミックレンジの最大値から最小値までの範囲を輝度で表現可能な最大値(255)と最小値(0)まで線形的に広げることによりダイナミックレンジを向上する処理を行う。ヒストグラム1101を持つ写真補正領域を補正した後のヒストグラムを1104に示す。補正における線形変換処理は下記の式2で表される。
【数2】
【0025】
処理S1003ではそのためのパラメータaとbをヒストグラム1101の上下端1%度数の輝度値1102と1103から求める。パラメータaとbを求めるには下記の式3と式4を用いる。
【数3】
【数4】
【0026】
処理S504で解析部410が写真領域の情報と補正パラメータを関連付けてパラメータ格納テーブル411に保存した際のテーブルを図12に示す。写真領域ごとに、輪郭の直線で表現された写真領域と線形変換の補正パラメータa・bを関連付けて記憶している。
【0027】
図13は画像処理部406においてドキュメントデータ内の画像オブジェクトを補正するための処理を示すフローチャートである。処理S1301では、画像オブジェクトをオブジェクト蓄積部403より取得する。次に、処理S1302でパラメータ格納テーブル411に記憶されている写真領域のうち、その画像オブジェクトの各画素に対して、その画素の座標値を含む写真領域を判定する。ある座標を決めれば写真領域は必ず一意に定まる。次に処理S1303ではパラメータ格納テーブル411からその判定した写真領域に関連付けられた補正パラメータを取得する。そして、処理S1304で画像オブジェクトの各画素に対して画素ごとに取得した補正パラメータを用いて画素値を補正する。画素値の補正は、まず式1を用いてRGB信号を輝度に変換し、それに対して式2を用いて線形変換しダイナミックレンジを補正する。その後に、その補正後の輝度値に対して下記の式5を用いてRGB信号に戻し画素値を更新する。
【数5】
【0028】
以上より、第一の実施形態によれば、画像オブジェクトがレンダリングされたかどうかを表す画素群を持つオブジェクトフラグ画像を基に、一体性のある画素群領域を判定している。これにより、ドキュメント内の画像数の増加によるパフォーマンスの劣化・メモリの消費を低減することが可能である。
【0029】
<第二の実施形態>
第一の実施形態では、プリンタドライバ203がアプリケーション201から、図14(a)に示す写真1402と写真1403が重なっているようなドキュメントデータ1401を受け取った場合、その2つの写真を分離して個別に補正を行うことはできない。さらに、写真1402と写真1403は図14(b)や図(c)に示すように画像オブジェクト1404〜1409に分割されている場合、第一の実施形態で実現したような複数の画像を考慮した写真領域の判定の実現も必要である。第二の実施形態ではこれら2点の特徴を持つドキュメントに対して各写真の補正を可能とするための構成を説明する。なお、第二の実施の形態が第一の実施の形態と異なるのは図4の画像処理部406のオブジェクトフラグ画像を生成する処理(図5の処理S501)と、写真領域判定の処理(図5の処理S502)である。
【0030】
図15は図5の処理S501においてオブジェクトフラグ画像生成部408がオブジェクトフラグ画像を生成する処理の詳細を示すフローチャートである。まず処理S1500において、更新フラグ値を初期値0に設定する。次に、処理S1501で、オブジェクトフラグ画像生成部408はレンダリング部407よりオブジェクトのレンダリングが発生したことを受け付ける。次に、処理S1502では、オブジェクトフラグ画像生成部408はレンダリング部407がレンダリングした画像オブジェクトの描画領域をレンダリング部407より受け取る。レンダリング部407はドキュメントデータ1401内の画像オブジェクト1404〜1406を受け取りレンダリングを行い、図16(a)に示すラスター画像1601に画素領域1602を描画している。
【0031】
処理S1503ではオブジェクトフラグ画像生成部408はオブジェクトフラグ画像内のオブジェクト1404〜1406の描画領域における全画素のフラグ値を参照し、最大値を取得する。オブジェクトフラグ画像1603は最初は全ての画素のフラグ値に0をセットしており、そのためオブジェクト1404〜1406の描画領域1604の画素のフラグ値の最大値は0である。次に処理S1504で、その最大値に対して1を足した値を更新フラグ値として算出する。今回は最大値0に1を足した1が更新フラグ値となる。次に処理S1505でオブジェクトフラグ画像生成部408はオブジェクトフラグ画像1402内の画像オブジェクト1404〜1406の領域の画素に対して更新フラグ値1をセットする。すると、図16(a)の領域1604の全ての画素に1がセットされる。
【0032】
次に、処理S1506でレンダリング部407がレンダリング終了したかどうかを確認する。レンダリングが終了していない場合は処理S1500に戻り、レンダリングが終了した場合は処理を終了する。この例ではドキュメントデータの画像オブジェクト1407〜1409がまだレンダリングされていないため処理S1500に戻る。
【0033】
処理S1501で画像オブジェクト1407のレンダリングが発生したことを受け取り、処理S1502で画像オブジェクト1407の描画領域を取得する。この時点でレンダリング部407はラスター画像1601に写真領域1605を描画している。次に処理S1503でオブジェクトフラグ画像生成部408はオブジェクトフラグ画像内の1606の領域の画素を全て参照し、最大のフラグ値を取得する。この時点では図16(a)の状態であるため、領域1606における最大値は1となる。次に処理S1504で最大値1に1を足した2を更新フラグ値として算出する。次に処理S1505ではオブジェクトフラグ画像生成部408はオブジェクトフラグ画像1603の領域の画素に対して更新フラグ値2をセットする。以上の処理S1500〜S1506を繰り返すと、図16(c)に示すように最終的に生成されるラスター画像1601は1607と1608が描画され、オブジェクトフラグ画像1603は1609と1610の領域にフラグ値2と1がそれぞれセットされる。
【0034】
次に、図5の処理S502で写真領域判定部がオブジェクトフラグ画像から写真領域を判定する処理の詳細について説明する。まず、写真領域の候補を算出する処理を行う。この処理は図7のフローチャートに示す処理S701〜S706と全く同じ処理を行う。その結果得られた領域の輪郭は図16(d)に示す写真領域1611、写真領域1612、写真領域1613であり、それぞれの情報は図17(a)に示す写真領域1、写真領域2、写真領域3のように直線の集合として表現する。
【0035】
次に、隣接する写真領域の候補を判定し結合することで最終的な写真領域を判定する処理を、図18のフローチャートに示す。処理1801では、写真領域の全ての辺(直線)をチェックする。次に処理S1802で両端の座標が一致する2つの直線が見つかったかどうかを判定し、見つかった場合は処理S1803に移り、見つからなかった場合は処理を終了する。処理S1803では、その2つの直線を持つ2つの写真領域を結合して1つの写真領域にする。それには、直線の集合を足し合わせ、両端の座標が一致する辺は消すという処理を行う。この例では写真領域2と写真領域3が結合される。そして処理S1801に戻り、以降の処理を繰り返す。以上の処理により最終的に生成される写真領域の輪郭は図16(e)に示す1611と1614であり、写真領域の輪郭の情報は図17(b)に示す写真領域1と写真領域4となる。
【0036】
以上より、第二の実施形態によれば、ドキュメントデータ内の写真が複数の画像オブジェクトで構成され、さらにそれが互いに重なっている場合でも、2つの写真領域を分離してバンディングの生じない画像処理を実現することが可能となる。
【0037】
<第三の実施形態>
第一および第二の実施形態ではページ画像レンダリング部404が印刷用のページ画像(ラスタ画像)を生成するためのレンダリングする前に画像処理部406が独自にレンダリングと写真領域判定を行って画像の補正を行う。しかし、ページ画像レンダリング部404と画像処理部406のレンダリング部407のどちらもがレンダリングを行うのは冗長である。そこで、第三の実施の形態ではページ画像レンダリング部404の中で写真領域判定と画像補正を行う画像形成システムの一例を説明する。
【0038】
図19は第三の実施の形態におけるプリンタドライバ203のモジュール構成とデータの流れの一例を示すブロック図である。プリンタドライバ203は、ドキュメントデータ取得部1901、ドキュメントデータ解釈部1902、ページ画像レンダリング部1903、印刷データ生成出力部1904から構成される。また、ページ画像レンダリング部1903は、レンダリング部1905、オブジェクトフラグ画像生成部1906、写真領域判定部1907、解析部1908、補正部1909より構成される。ドキュメントデータ取得部1901はアプリケーション201からオペレーティングシステム202を介してドキュメントデータを取得する。ドキュメントデータ解釈部1902はドキュメントデータを構成するオブジェクトを解釈し、ページ画像レンダリング部1903にオブジェクトの情報を出力する。ページ画像レンダリング部1903は、入力されたオブジェクトの情報を受け取ってレンダリング・補正を行い、そのページ画像(ラスタ画像)を印刷データ生成出力部1904に渡す。印刷データ生成出力部1904は受け取ったページ画像を画像形成装置108に入力するデータに変換し、画像形成装置108へ出力する。
【0039】
図20はページ画像レンダリング部1903の処理を示すフローチャートである。処理S2001では、レンダリング部1905がドキュメントデータ解釈部1902からオブジェクトとその描画領域情報を受け取りラスター画像を生成する。また、同時にオブジェクトフラグ画像生成部1906はレンダリング部1905から画像オブジェクトについてのみ描画した領域の情報を受け取り、画像を描画した領域と描画しない領域のフラグを切り替えたオブジェクトフラグ画像を生成する。次に処理S2002では、写真領域判定部1907がオブジェクトフラグ画像から写真領域を判定する。処理S2003では、処理S2001で生成したラスター画像の写真領域の画素を参照して写真領域の見えを良くするための補正パラメータを算出する。なお、S2003で参照する写真領域の画素はS2002で判定した画素である。補正パラメータの算出方法については第一の実施の形態で説明したとおりである。最後に、処理S2004ではラスター画像上の写真領域ごとにおのおのの補正パラメータに基づいて画素値を補正し、印刷データ生成出力部1904に出力する。
【0040】
以上より、第3の実施形態によれば、写真領域を判定し補正パラメータを生成する為だけにレンダリングを行うという必要がないため、パフォーマンスの劣化やメモリの消費を低減させることが可能となる。
【0041】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0042】
401 ドキュメントデータ取得部
407 レンダリング部
408 オブジェクトフラグ画像生成部
409 写真領域判定部
410 解析部
411 パラメータ格納テーブル
412 補正部
【特許請求の範囲】
【請求項1】
複数の画像オブジェクトを含むドキュメントデータのラスター画像を生成する手段と、
前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する手段と、
前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する手段と、
前記判定した写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する手段と、
前記写真領域に対応する前記ラスター画像上の画素群に対して、前記生成した補正パラメータを用いて画素値を補正する手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記オブジェクトフラグ画像を生成する手段は、前記画像オブジェクトの重なりの数を前記画像オブジェクトの描画領域に対応する形で含めたオブジェクトフラグ画像を生成することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
さらに
複数の前記写真領域の輪郭情報から前記複数の写真領域の一体性を判定し、一体性があると判定した場合は1つの写真領域に結合する手段を有することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
複数の画像オブジェクトを含むドキュメントデータのラスター画像を生成するレンダリング手段と、
前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する手段と、
前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する手段と、
前記写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する手段と、
前記写真領域と前記補正パラメータとを関連づけて記憶する手段と、
前記画像オブジェクトの各画素が属する写真領域を前記記憶手段から読み出し、前記写真領域に関連付けられた補正パラメータを取得する手段と、
前記画像オブジェクトの各画素に対して、前記取得した補正パラメータを用いて画素値を補正する手段と、
を有することを特徴とする画像処理装置。
【請求項5】
前記オブジェクトフラグ画像を生成する手段は、前記画像オブジェクトの重なりの数を前記画像オブジェクトの描画領域に対応する形で含めたオブジェクトフラグ画像を生成することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
さらに
複数の前記写真領域の輪郭情報から前記複数の写真領域の一体性を判定し、一体性があると判定した場合は1つの写真領域に結合する手段を有することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
複数の画像オブジェクトを含むドキュメントデータのラスター画像を生成する工程と、
前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する工程と、
前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する工程と、
前記判定した写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する工程と、
前記写真領域に対応する前記ラスター画像上の画素群に対して、前記生成した補正パラメータを用いて画素値を補正する工程と、
を有することを特徴とする画像処理方法。
【請求項8】
複数の画像オブジェクトを含むドキュメントデータのラスター画像を生成する工程と、
前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する工程と、
前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する工程と、
前記写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する工程と、
前記写真領域と前記補正パラメータとを関連づけて記憶手段に記憶する工程と、
前記画像オブジェクトの各画素が属する写真領域を前記記憶手段から読み出し、前記写真領域に関連付けられた補正パラメータを取得する工程と、
前記画像オブジェクトの各画素に対して、前記取得した補正パラメータを用いて画素値を補正する工程と、
を有することを特徴とする画像処理方法。
【請求項9】
コンピュータを請求項1乃至6のいずれか一項に記載された画像処理装置として機能させるためのプログラム。
【請求項1】
複数の画像オブジェクトを含むドキュメントデータのラスター画像を生成する手段と、
前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する手段と、
前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する手段と、
前記判定した写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する手段と、
前記写真領域に対応する前記ラスター画像上の画素群に対して、前記生成した補正パラメータを用いて画素値を補正する手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記オブジェクトフラグ画像を生成する手段は、前記画像オブジェクトの重なりの数を前記画像オブジェクトの描画領域に対応する形で含めたオブジェクトフラグ画像を生成することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
さらに
複数の前記写真領域の輪郭情報から前記複数の写真領域の一体性を判定し、一体性があると判定した場合は1つの写真領域に結合する手段を有することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
複数の画像オブジェクトを含むドキュメントデータのラスター画像を生成するレンダリング手段と、
前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する手段と、
前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する手段と、
前記写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する手段と、
前記写真領域と前記補正パラメータとを関連づけて記憶する手段と、
前記画像オブジェクトの各画素が属する写真領域を前記記憶手段から読み出し、前記写真領域に関連付けられた補正パラメータを取得する手段と、
前記画像オブジェクトの各画素に対して、前記取得した補正パラメータを用いて画素値を補正する手段と、
を有することを特徴とする画像処理装置。
【請求項5】
前記オブジェクトフラグ画像を生成する手段は、前記画像オブジェクトの重なりの数を前記画像オブジェクトの描画領域に対応する形で含めたオブジェクトフラグ画像を生成することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
さらに
複数の前記写真領域の輪郭情報から前記複数の写真領域の一体性を判定し、一体性があると判定した場合は1つの写真領域に結合する手段を有することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
複数の画像オブジェクトを含むドキュメントデータのラスター画像を生成する工程と、
前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する工程と、
前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する工程と、
前記判定した写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する工程と、
前記写真領域に対応する前記ラスター画像上の画素群に対して、前記生成した補正パラメータを用いて画素値を補正する工程と、
を有することを特徴とする画像処理方法。
【請求項8】
複数の画像オブジェクトを含むドキュメントデータのラスター画像を生成する工程と、
前記生成したラスター画像の各画素が画像オブジェクトを示すかどうかをフラグで表すオブジェクトフラグ画像を生成する工程と、
前記生成したオブジェクトフラグ画像を基に、前記ラスター画像上で写真領域を判定する工程と、
前記写真領域に対応する前記ラスター画像上の画素群に対して、画素値を補正するための補正パラメータを生成する工程と、
前記写真領域と前記補正パラメータとを関連づけて記憶手段に記憶する工程と、
前記画像オブジェクトの各画素が属する写真領域を前記記憶手段から読み出し、前記写真領域に関連付けられた補正パラメータを取得する工程と、
前記画像オブジェクトの各画素に対して、前記取得した補正パラメータを用いて画素値を補正する工程と、
を有することを特徴とする画像処理方法。
【請求項9】
コンピュータを請求項1乃至6のいずれか一項に記載された画像処理装置として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2013−66015(P2013−66015A)
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2011−202915(P2011−202915)
【出願日】平成23年9月16日(2011.9.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願日】平成23年9月16日(2011.9.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]