(57)【要約】【課題】メモリやパフォーマンス等の消費を抑えながらも複数の画像データに分割された写真のオブジェクト（例えば、赤目）の解析・補正の精度を高レベルで維持することが可能な技術を適用した画像処理装置を提供すること。【解決手段】画像解析手段を備えた画像処理装置が提供される。前記画像解析手段は、複数の画像を取得し（Ｓ６０１）、前記複数の画像それぞれにおいて赤目領域の候補を抽出し（Ｓ６０２，Ｓ６０３）、前記抽出された赤目領域の候補の位置およびサイズを算出し（Ｓ６０４）、前記算出された位置およびサイズから前記赤目領域の候補の一体性を判断して前記赤目領域の候補を結合する（Ｓ６０８）ことを特徴とする。【選択図】図６
2015056054.tif 000002
【特許請求の範囲】
【請求項１】
画像解析手段を備えた画像処理装置であって、
前記画像解析手段は、複数の画像を取得し、前記複数の画像それぞれにおいて赤目領域の候補を抽出し、前記抽出された赤目領域の候補の位置およびサイズを算出し、前記算出された位置およびサイズから前記赤目領域の候補の一体性を判断して前記赤目領域の候補を結合することを特徴とする画像処理装置。
【請求項２】
前記画像解析手段はさらに、前記赤目領域の候補の特徴量を算出し、前記特徴量を加算することにより前記赤目領域の候補を結合することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像解析手段はさらに、前記赤目領域の候補が前記画像の境界にあるか否かを判定し、前記赤目領域の候補が前記画像の境界にある場合、前記赤目の予測中心および前記赤目の予測半径を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記画像解析手段はさらに、前記赤目領域の候補の形状情報として方向ヒストグラムを算出することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記画像解析手段は、前記赤目領域の候補が前記画像の内部にある場合、前記赤目領域を結合する前に、前記赤目領域の候補が赤目領域であるか否かを判定することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記画像解析手段は、前記赤目領域の候補が重なっているか隣接している場合に、前記赤目領域の候補群をクラスタリングすることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
画像解析手段を備えた画像処理装置によって実行される画像処理方法であって、
複数の画像を取得するステップと、
前記複数の画像それぞれにおいて赤目領域の候補を抽出するステップと、
前記抽出された赤目領域の候補の位置およびサイズを算出するステップと、
前記算出された位置およびサイズから前記赤目領域の候補の一体性を判断して前記赤目領域の候補を結合するステップと
を備えたことを特徴とする画像処理方法。
【請求項８】
コンピュータを請求項１乃至６の何れかに記載の画像処理装置として機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、およびプログラムに関する。具体的には、本発明は、複数のバンドに分割された特定のオブジェクト、特に赤目や人物の顔を検出する技術を適用した画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【０００２】
デジタルカメラやスチルカメラやカメラ付き携帯電話による撮影で得られた画像データには、赤目現象や逆光現象による画質不良が含まれることが往々にしてある。そのようなデータに対して、パーソナルコンピュータ上で画像データの画質不良を解析して補正することが行われている。例えば、特許文献１には画像データの画質を補正する技術が公開されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３７０７５２３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、パーソナルコンピュータの処理の都合上、一つの画像データを複数の画像データに分割していることが多い。画像データが大きくなるのにつれてデータサイズが多大となり、画像データを一体として処理するにはメモリ等の資源（リソース）の負担が大きくなるからである。
【０００５】
ここで、１つの写真を表す画像データが複数の画像データに分割されている場合、画質不良を解析するには複数の画像データを個々に処理しては画質不良を正しく解析・補正することができないという問題がある。例えば、赤目不良が発生している写真が赤目領域を分割するように２つの画像データに分割されている場合、この赤目領域を高精度に判定することは難しい。
【０００６】
この問題に対して、複数の画像データをひとまとまりとして把握する技術が特許文献１に公開されている。特許文献１に公開されている技術では、画像データの配置情報と、内容情報（色空間、解像度など）とから、画像の一体性を判断して連結する技術が公開されている。しかしながら、画像不良領域を持たない画像についても一体性を判断する対象とするため、画像不良がない画像についても連結することとなり、メモリやパフォーマンスが浪費されてしまうといった問題があった。
【０００７】
本発明は、上記の問題を鑑みてなされたものである。本発明は、メモリやパフォーマンス等の消費を抑えながらも複数の画像データに分割された写真のオブジェクトの解析・補正の精度を高レベルで維持することが可能な技術を適用した画像処理装置、画像処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、画像解析手段を備えた画像処理装置であって、前記画像解析手段は、複数の画像を取得し、前記複数の画像それぞれにおいて赤目領域の候補を抽出し、前記抽出された赤目領域の候補の位置およびサイズを算出し、前記算出された位置およびサイズから前記赤目領域の候補の一体性を判断して前記赤目領域の候補を結合することを特徴とする。
【発明の効果】
【０００９】
本発明により、メモリやパフォーマンス等の消費を抑えながらも複数の画像データに分割された写真のオブジェクト（例えば、赤目現象による画質不良）の解析・補正の精度を高レベルで維持することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態における画像形成装置を含む画像処理システムの構成図である。
【図２】第１の実施形態におけるコンピュータ１０２のハードウェア構成図である。
【図３】第１の実施形態におけるＣＰＵ２０２が実行するプログラムの構成図である。
【図４】第１の実施形態における画像形成装置１０４のハードウェア構成図である。
【図５】第１の実施形態におけるＣＰＵ４０２が実行するプログラムの構成図である。
【図６】第１の実施形態における画像解析部５０４が実行する処理のフローチャートである。
【図７】第１の実施形態におけるＰＤＬデータの一例を示す図である。
【図８】第１の実施形態における適応的二値化処理の説明図である。
【図９】第１の実施形態における適応的二値化処理の結果の一例を示す図である。
【図１０】第１の実施形態における境界線追跡処理の説明図である。
【図１１】第１の実施形態における方向ヒストグラムを示す図である。
【図１２】第１の実施形態における赤色領域に対して、赤目の中心と、赤目の半径とを予測する処理の説明図である。
【図１３】第１の実施形態における中央領域および周辺領域の説明図である。
【図１４】第１の実施形態における領域情報および特徴量を表す図である。
【図１５】第１の実施形態における画像境界の赤色領域の結合処理のフローチャートである。
【図１６】第１の実施形態における境界線形状判定の処理のフローチャートである。
【図１７】第１の実施形態における特徴量判定の内容を示す図である。
【図１８】第１の実施形態における画像補正部５０５が実行する処理のフローチャートである。
【図１９】第１の実施形態における赤目補正処理のフローチャートである。
【図２０】第１の実施形態における赤目の補正範囲の説明図である。
【図２１】第２の実施形態における画像解析部５０４が実行する処理のフローチャートである。
【図２２】第３の実施形態におけるＰＤＬデータの一例を示す図である。
【図２３】第３の実施形態における赤色領域結合処理のフローチャートである。
【図２４】第３の実施形態における方向ヒストグラム加算処理のフローチャートである。
【図２５】第３の実施形態における方向ヒストグラム加算処理の説明図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面を用いて説明する。  
［第１の実施形態］
第１の実施形態では、画質不良である赤目が２つの画像データに分割されているケースについて、赤目を検出して補正するためのシステムの一例を説明する。 
【００１２】
図１に、本実施形態における画像形成装置を含む画像処理システムの構成図を示す。画像処理システム１００は、データ伝送路１０１と、コンピュータ１０２と、画像生成装置１０３と、画像形成装置１０４とより構成される。コンピュータ１０２と、画像生成装置１０３と、画像形成装置１０４とは、データ伝送路１０１を介して繋がっており、それぞれの間でデータのやりとりが可能である。
【００１３】
画像生成装置１０３は、例えばデジタルスチルカメラやスキャナなどの画像データを生成・取得する装置であり、画像データを取得した後にコンピュータ１０２に画像データを送信する。画像形成装置１０４は、例えばインクやトナーなどの色材を用いたプリンタである。コンピュータ１０２は、画像生成装置１０３が取得した画像データを受信してコンピュータ１０２の内部の記憶装置に格納する。さらに、コンピュータ１０２は、ユーザからの指示を受け付けて画像形成装置１０４で出力（印刷）可能な文書データを生成する。その文書データは、コンピュータ１０２が記憶装置に格納している画像データを含んでいる。コンピュータ１０２はユーザから印刷指示を受けると、文書データを画像形成装置１０４が解釈可能なページ記述言語（ＰＤＬ）の形式に変換し、データ伝送路１０１を介して画像形成装置１０４に送信する。ページ記述言語とは、画像データや図形データ、文字データを紙媒体の１ページ上に描画する描画領域を指定する命令セットである。 
【００１４】
図２に、本実施形態におけるコンピュータ１０２のハードウェア構成図を示す。コンピュータ１０２は、データ転送路２０１と、ＣＰＵ２０２と、ＲＯＭ２０３と、ＲＡＭ２０４と、記憶装置２０５と、ディスプレイ通信部２０６と、外部入力装置２０７と、ネットワーク通信部２０８とより構成される。
【００１５】
ＣＰＵ２０２は、ＲＯＭ２０３に格納されているプログラムをＲＡＭ２０４にロードして実行する。さらに、ＣＰＵ２０２は、記憶装置２０５に格納されているオペレーティングシステムやアプリケーションなどのプログラムを順次ＲＡＭ２０４にロードして実行する。ネットワーク通信部２０８は、データ伝送路１０１を介して画像処理システム１００内の他の装置との間でデータの送受信を行う。ＣＰＵ２０２は、ネットワーク通信部２０８を介して画像生成装置１０３が取得した画像データを受信し、記憶装置２０５に格納する。
【００１６】
ディスプレイ通信部２０６は、ＣＰＵ２０２が実行するプログラムにより表示される画面情報を受け付けてユーザに視認できるようにディスプレイに表示する。
【００１７】
外部入力装置２０７は、キーボードやマウスポインタなどユーザからの指示を受け付ける装置である。ＣＰＵ２０２はユーザからの指示を外部入力装置２０７から受け付けると、実行しているプログラムに従って処理を実行する。 
図３に、ＣＰＵ２０２が実行するプログラムの構成図を示す。ＣＰＵ２０２が実行するプログラム３００は、オペレーティングシステム３０１と、アプリケーション３０２と、外部入力ドライバ３０３と、ディスプレイドライバ３０４と、ファイルシステム３０５と、プリンタドライバ３０６とから構成される。
【００１８】
ＣＰＵ２０２は、これらのプログラムを記憶装置２０５から読み出しＲＡＭ２０４にロードして実行する。ＣＰＵ２０２は、アプリケーション３０２の指示に従って現在の文書データの編集状況であるプレビューをディスプレイドライバ３０４に通知する。ディスプレイドライバ３０４は、通知されたプレビューをディスプレイ通信部２０６に出力してディスプレイ上に表示する。外部入力ドライバ３０３は、外部入力装置２０７を介してユーザからの指示を受け付け、ＣＰＵ２０２にユーザの指示内容を通知する。ＣＰＵ２０２は、アプリケーション３０２に従ってユーザの指示に対応した文書データの編集を行う。ＣＰＵ２０２は、アプリケーション３０２に従ってファイルシステム３０５から記憶装置２０５に格納されている画像データを受け取り文書データに貼りつけることも行う。ＣＰＵ２０２は、外部入力ドライバ３０３からユーザによる印刷実行指示を受け付け、アプリケーション３０２に従って文書データの描画命令をプリンタドライバ３０６に送信する。 
【００１９】
プリンタドライバ３０６は、描画命令取得部３０７と、描画命令解釈部３０８と、ＰＤＬデータ生成部３０９とより構成される。描画命令取得部３０７は文書データの描画命令をオペレーティングシステム３０１から受け付けると、描画命令解釈部３０８に文書データを送信する。描画命令解釈部３０８は、オペレーティングシステム３０１が出力した画像データや図形・文字などの描画命令を解釈する。ＰＤＬデータ生成部３０９は、画像形成装置１０４が解釈できるＰＤＬデータを生成する。生成されたＰＤＬデータは、ネットワーク通信部２０８に出力され、データ伝送路１０１を介して画像形成装置１０４に送信される。
【００２０】
図４に、本実施形態における画像形成装置１０４のハードウェア構成図を示す。画像形成装置１０４は、データ伝送路４０１と、ＣＰＵ４０２と、ＲＯＭ４０３と、ＲＡＭ４０４と、プリンタエンジン４０５と、ネットワーク通信部４０６とより構成される。データ伝送路４０１を介して、ＣＰＵ４０２と、ＲＯＭ４０３と、ＲＡＭ４０４と、プリンタエンジン４０５と、ネットワーク通信部４０６とは繋がっており、それぞれの間でデータのやりとりが可能である。
【００２１】
ＲＯＭ４０３には、ページ記述言語を解釈して画像処理を行いプリンタエンジン４０５に画像信号を出力するプログラムが格納されている。ＣＰＵ４０２は、ＲＯＭ４０３からそのプログラムを読み取りＲＡＭ４０４にロードして実行する。ＲＡＭ４０４は、ＣＰＵ４０２がプログラムを実行するときに必要なワークメモリや画像バッファも提供する。ネットワーク通信部４０６は、コンピュータ１０２が出力するＰＤＬデータを受信してＣＰＵ４０２に伝達する。プリンタエンジン４０５は、色材（シアン・マゼンタ・イエロー・ブラック）の二値信号で構成されたエンジン解像度の画像信号をＣＰＵ４０２から受け取る。そして、プリンタエンジン４０５は、ＰＷＭ制御を行って感光体にレーザをスキャンして感光体上で潜像させ、紙媒体上に色材を塗布して定着させ、画像を形成する。 
【００２２】
図５に、本実施形態におけるＣＰＵ４０２が実行するプログラムの構成図を示す。ＰＤＬデータ取得部５０１は、ネットワーク通信部４０６がコンピュータ１０２から受信したＰＤＬデータを取得しＰＤＬ解釈部５０２に出力する。ＰＤＬ解釈部５０２は、ＰＤＬデータを解釈し、ＰＤＬデータ蓄積部５０３に出力する。ＰＤＬデータ蓄積部５０３は、１ページ分のＰＤＬデータを格納する。ＰＤＬ解釈部５０２は、ＰＤＬデータの中に含まれる画像データについては画像解析部５０４にも出力する。画像解析部５０４は、画像データにおける赤目不良の領域を検出し、補正パラメータを算出して画像補正部５０５に出力する。ＰＤＬ解釈部５０２がＰＤＬデータ内でページの区切りを検出すると、ＰＤＬ解釈部５０２は、画像解析部５０４にページ終了を通知する。そして、ＰＤＬ解釈部５０２は、ＰＤＬデータ蓄積部５０３から蓄積していた１ページ分のＰＤＬデータを取得する。ＰＤＬ解釈部５０２は、画像データについては画像解析部５０４に渡し、文字データおよび図形データはレンダリング部５０６に直接出力する。画像補正部５０５は、画像データの画質不良について画像解析部５０４から受け取った補正パラメータに基づいて補正を行い、レンダリング部５０６に補正後の画像データを出力する。レンダリング部５０６は、画像データ・文字データ・図形データを１つのページ画像にラスタライズして二値化処理部５０７に出力する。二値化処理部５０７は、中間調処理を行って色材ごとの二値の画像信号を生成しプリンタエンジン出力部５０８に出力する。プリンタエンジン出力部５０８は、二値の画像信号をＰＷＭ信号としてプリンタエンジン４０５に送信する。すると、プリンタエンジン４０５は、紙媒体上に色材を転写・定着して画像を形成する。
【００２３】
図６に、第１の実施形態における画像解析部５０４が実行する処理のフローチャートを示す。
【００２４】
まず、ステップＳ６０１において、画像解析部５０４は、ＰＤＬ解釈部５０２から画像データを取得する。
【００２５】
次に、ステップＳ６０２において、画像解析部５０４は、適応的二値化処理を行うことで赤色画素を判定する。
【００２６】
次に、ステップＳ６０３において、画像解析部５０４は、境界線追跡処理を行うことで赤色領域を抽出し、輪郭情報を算出する。
【００２７】
次に、ステップＳ６０４において、画像解析部５０４は、画像境界の赤色領域に対し赤目領域を予測する。
【００２８】
次に、ステップＳ６０５において、画像解析部５０４は、中央領域および周辺領域を算出する。
【００２９】
次に、ステップＳ６０６において、画像解析部５０４は、特徴量を算出する。
【００３０】
次に、ステップＳ６０７において、画像解析部５０４は、ページ内に画像データが残っているかどうかをＰＤＬ解釈部５０２に問い合わせることにより判定する。まだページ内に画像データが残っている場合はステップＳ６０１に戻り、ページ内に画像データが残っていない場合はステップＳ６０８に進む。
【００３１】
ステップＳ６０８において、画像解析部５０４は、赤色領域結合処理を行う。具体的には、画像解析部５０４は、複数の画像における境界で赤色領域が隣接しているものがあれば、赤色領域同士の一体性は高いと判断できるので、領域情報と、輪郭情報と、特徴量とを加算することで、赤色領域を結合する。
【００３２】
次に、ステップＳ６０９において、画像解析部５０４は、結合した赤色領域に関して境界線形状判定を行い、境界線形状が丸状となっている赤色領域を赤目候補として登録する。
【００３３】
次に、ステップＳ６１０において、画像解析部５０４は、特徴量を判定し、赤目の特徴量に関する条件を満たす赤目候補を赤目としてリストに登録する。
【００３４】
次に、ステップＳ６１１において、画像解析部５０４は、補正パラメータを算出する。
【００３５】
最後に、ステップＳ６１２において、画像解析部５０４は、赤目と、その補正パラメータとのリストを画像補正部５０５に出力する。なお、それぞれの処理の詳細については、順次追って説明する。 
【００３６】
図７に、第１の実施形態におけるＰＤＬデータの一例を示す。図７（Ａ）では、ＰＤＬデータのプレビューが表現されており、ページ７０１の中に２つの赤目を持つ写真７０２が貼りつけられている。図７（Ｂ）は、写真７０２を構成する画像データを説明する図（描画される画像の拡大図）であり、写真７０２は、画像７０３と、画像７０４とより構成されている例を示している。画像７０３は、赤目７０５と、赤目７０６とを含む。赤目７０５は、全体が画像７０３の内部に存在する。赤目７０６は、下半分が欠損した形で画像７０３の境界に存在している。画像７０４は、赤目７０７を含む。赤目７０７は、上半分が欠損した形で画像７０４の境界に存在している。
【００３７】
＜適応的二値化処理＞ 
適応的二値化処理（ステップＳ６０２）では、入力画像データに適応的二値化処理を適用することで、画像から赤色領域を抽出する。ここで言う「二値化」とは、赤色と判定した画素に‘1’を、そうではない画素に‘0’を割り当てることを言う。赤色か否かを判定するために、赤色評価量ERを算出して所定の閾値と比較する。赤色評価量ERは下記の式（１）で定義する。  
ER = (R - G)/R ・・・（１） 
【００３８】
図８を参照しながら式（１）を説明する。式（１）は、注目画素８０２の赤色度合いを、一般的なＨＳＩ系の彩度ではなく、Ｂ成分を除くＲ、Ｇの二成分から求めることを意味している。なお、上記の式（１）において、R成分に対する(R-G)の割合を評価量ERとしたが、評価量ERはこれに限定されるわけではなく、例えば(R-G)のみまたはR/Gを評価量ERとしてもよい。図８の注目画素８０２を二値化するために、注目画素８０２と同一ライン上の、注目画素８０２に対して左方向（主走査方向の前方）に画素数がWindowSizeになるようなウィンドウ領域８０３を設定する。当該ウィンドウ内の画素の赤色評価量ERの平均値ERaveを求める。なお、評価量ERは以下の条件（２）を満たす場合にのみ算出するため、評価量ERが負になることはない。  
R ＞ 0 かつ R ＞ G ・・・（２）
平均値ERaveを用いて、以下の式（３）に従って注目画素８０２を二値化する。   
ER ＞ ERave + Margin_RGB ならば‘1’   
ER ≦ ERave + Margin_RGB ならば‘0’・・・（３）   
【００３９】
以上の処理を、入力画像データのライン単位に、注目画素８０２を左から右に移動して、すべての画素に施す。さらに、入力画像データのライン単位に、右から左へも同様の処理を施し、その結果のANDを取ることで、適応的二値化の精度を上げることも可能である。
【００４０】
図９に、図７（Ｂ）の画像データに対して適応的二値化処理を行った結果の一例を示す。画像９０１は画像７０３に対応する適応的二値化処理後の二値画像を示し、画像９０２は画像７０４に対応する適応的二値化処理後の二値画像を示す。図９は、適応的二値化処理により、赤色領域９０３、９０４、９０５が抽出された様子を表している。 
【００４１】
＜境界線追跡処理＞ 
図１０に、境界線追跡処理（ステップＳ６０３）の説明図を示す。境界線追跡処理とは、適応的二値化処理の結果得られる二値画像に対して、画像を上端から主副走査方向にスキャンする処理である。図１０（Ａ）に示すように、注目画素(x, y)の値が‘1’で、注目画素の左(x-1, y)、左斜め上(x-1, y-1)、上方(x, y-1)、右斜め上(x+1, y-1)の四画素の値が‘0’である場合は、注目画素をスキャン始点にする。また、図１０（Ｂ）に示すように、注目画素が画像上端にあり注目画素の左(x-1, y)の画素の値が‘0’である場合も、注目画素をスキャン始点にする。さらに、図１０（Ｃ）に示すように、注目画素が画像左端にあり注目画素の上(x,y-1)の画素の値が‘0’である場合も、注目画素をスキャン始点にする。図１０（Ａ）〜（Ｄ）中の符号１００１〜１００４で示す画素がそのスキャン始点の画素である。なお、図１０（Ａ）〜（Ｄ）では、二値画像の左上を原点とする座標系を設定している。
【００４２】
まず、図１０（Ａ）について境界線追跡処理の説明を行う。始点画素１００１から反時計回りに再び始点１００１に戻るまで、値が‘1’の画素を追跡する。追跡の途中、画像領域を逸脱する場合または始点画素１００１よりもY座標が小さくなる場合は、追跡を打ち切り、次の始点を探索する。追跡の途中でY座標が始点画素１００１よりも小さくなった場合に追跡を打ち切る理由は、図１０（Ｄ）に示すような環状の赤色領域の内側を誤って追跡することを防ぐためである。環状領域の内側を追跡した場合には、図１０（Ｄ）において、画素１００５に到達すると始点画素１００４よりもY座標が小さくなるので、この時点で追跡処理を打ち切る。図９の赤色領域９０３、９０４、９０５における境界線追跡の結果を、図１０（Ａ）〜（Ｃ）に示す。ここで、追跡過程において追跡方向のベクトルを方向エッジとして抽出する。この方向エッジを図１０（Ｅ）に示す八方向で表し、追跡して累積したヒストグラムを、方向ヒストグラムとして算出する。方向ヒストグラムは、この赤色領域の形状情報を表現している。
【００４３】
ここで、図１０（Ｂ）および図１０（Ｃ）に示した例は、赤目が分割された画像データの二値画像であり、画像端部に接している方向エッジは形状情報として意味をなさないことに留意されたい。よって、画像端部に接している方向エッジは、方向ヒストグラムを作成する際にカウントから除外する。除外した方向エッジは、図１１に示すように、方向ヒストグラム除外の行に記載する。図１１には、図１０（Ａ）〜（Ｃ）に示す例に対して算出された方向ヒストグラムが示されている。上記の追跡過程では、方向ヒストグラムと、X座標の最大値（=x2）・最小値（=x1）と、Y座標の最大値（=y2）・最小値（=y1）とを得ることができる。X、Y座標の最大値・最小値は、赤色領域の領域情報を表現している。詳細には、X、Y座標の最大値・最小値は、図１０（Ａ）に示すように、値が‘1’の画素が存在する領域すなわち赤色領域の外接矩形領域を示す。
【００４４】
＜画像境界の赤色領域に対する赤目領域の予測＞ 
次に、画像境界の赤色領域に対して行われる赤目領域を予測する処理（ステップＳ６０４）を説明する。画像内部の赤色領域ならば、赤色領域そのものが赤目領域であるため、特に予測は不要である。それに対して、画像境界の赤色領域については、実際の赤目の位置・サイズを予測して、特徴量算出の際に参照すべき周辺領域を決定する必要がある。
【００４５】
赤目領域の予測は、赤目の予測中心および予測半径を算出することにより行う。ただし、赤目の中心が赤色領域の内側にあるか外側にあるかによって、算出する方法は異なってくる。
【００４６】
画像下端または画像上端に接している赤色領域については、下記の式（４）を満たす場合は、赤目の中心が赤色領域の内側にあることになる。   
(x2 - x1)/2  ≦  (y2 - y1)  ・・・（４） 
ここで、(x1, y1)は赤色領域の始点であり、(x2, y2)は赤色領域の終点である。例えば、図１２（Ｂ）に示す赤色領域は式（４）を満たしていることから、赤目の中心が赤色領域の内側にあると判断できる。赤目の半径は (x2 - x1)/2 と等しくなり、赤目の中心座標(x0, y0)は、下記の式（５）で表すことができる。 
(x0, y0) = ((x1 + x2) / 2, y2 - (x2 - x1) / 2)  ・・・（５） 
【００４７】
一方、図１２（Ａ）に示すような式（４）を満たさない場合は、赤目の中心が赤色領域の外側に位置すると判断できる。(x1, y2)および((x1+x2)/2, y1)を結ぶ直線を弦とする円が赤目の領域として予測され、その円の中心が赤目の中心として予測される。赤目の中心座標を算出するために、 (x1, y2)と((x1+x2)/2,y1)との中点である((3x1+x2)/4, (y1+y2)/2)を通り、かつ、(x1, y2)および((x1+x2)/2,y1)を結ぶ直線と直行する直線を求める。この直線の式は、下記の式（６）で表される。  
y - (y1+y2)/2 = { (x1 - x2) / 2(y2 - y1) } {x - (3x1+x2)/4}  ・・・（６）
この直線と、下記の式（７）
x = (x1+x2)/2    ・・・（７）
で表される直線との交点が、円の中心（赤目中心）である。よって、赤目中心は、
x0 = (x1 + x2) / 2    ・・・（８）
y0 = {4(y1 + y2)(y2 - y1) + (x1 -x2)(x2 - x1)} / 8(y2 - y1)  ・・・（９）
となる。よって、赤目の半径Rは 
R = {4(y1 + y2)(y2 - y1) + (x1 -x2)(x2 - x1)} / 8(y2 - y1) - y1・・・（１０）
である。
【００４８】
以上の手順により、赤目の予測中心および予測半径を算出することにより、赤目の領域を予測することができる。
【００４９】
＜中央領域・周辺領域の定義と算出＞
次に、赤色領域において赤目の中央領域および周辺領域を算出する処理（ステップＳ６０５）を説明する。図１３は、赤色領域の特徴量を算出する際に使用する中央領域および周辺領域を説明する図である。
【００５０】
図１３（Ａ）において、中央領域１３０１は、境界線追跡処理で算出した赤色領域、および画像境界の赤色領域については予測した赤目領域を表す。ただし、中央領域１３０１の特徴量を算出する際は、内側の菱形状の領域１３０２の画素だけを参照する。これは、中央領域１３０１のうち赤目の領域は、中央領域１３０１の内接円であるためである。ここでは計算の簡便のため参照領域として菱形を用いたが、菱形ではなく内接円を参照しても構わない。周辺領域は、中央領域１３０１を中心として、その周辺に中央領域１３０１の縦横のサイズをそれぞれ２倍、３倍、５倍に拡大した領域である。各拡大倍率に対する周辺領域を図１３（Ｂ）〜（Ｄ）に示す。 
【００５１】
図１３（Ｅ）に、赤目候補領域が画像の端部近傍に存在する場合の中央領域・周辺領域の説明図を示す。図１３（Ｅ）は、赤目候補領域の中央領域１３０１が画像の右端近傍に、ややマージンを残して存在する例を示す。この場合、周辺領域の各ブロック内に一画素でも画素が存在するならば、その画素を用いて特徴量算出を行う。例えば図１３（Ｅ）に示す例では、３倍周辺領域における特徴量算出領域は、領域１３０６である。その他の倍率の周辺領域や中央領域についても同様で、領域内に１つでも画素が存在するならば、その領域内の画素を用いて特徴量算出を行う。
【００５２】
図１４は、領域情報および特徴量を表す図である。図１４（Ａ）は、それぞれの赤色領域ごとに保持すべき領域情報を表す図である。これらの情報を赤色領域情報として保持しておく。
【００５３】
＜特徴量算出＞
図１４（Ｂ）に、それぞれの赤色領域ごとに算出すべき特徴量のリストを示す。輝度・色相・彩度は、画像のRGB値から下記の式（１１）〜（１３）を用いて算出する。  
・RGB→YCC（輝度）の算出方法の式（１１）
Y = 0.299R + 0.587G + 0.114B
Cb = -0.169R - 0.331G + 0.500B
Cr = 0.500R - 0.419G - 0.081B
・H（色相）の算出方法の式（１２）
H = (360/2π)arctan(Cr/Cb) 
・S（彩度）の算出方法の式（１３）
S = √(Cb^2 + Cr^2) 
【００５４】
また、エッジ量は、Sobelフィルタを用いて輝度値に対して算出する。座標(i, j)の画素値をp(i, j)とすると、Sobelフィルタは下記の式（１４）で表される。 
・Sobelフィルタ算出方法の式（１４） 
SO = (-1) × p(i-1, j-1) + 1 × p(i+1, j-1) + (-2) × p(i-1, j) + 2×p(i+1, j) + (-1) ×p(i-1, j-1) + 1 × p(i+1, j+1) 
【００５５】
また、肌色画素率RHは、肌色色相範囲に入る画素が５倍周辺領域内に存在する割合を表す。肌色の色相範囲は、経験から求めた範囲である。
【００５６】
＜赤色領域の結合処理＞ 
ページ内の全ての画像データについて、赤色領域の抽出と、特徴量の算出とが完了したら、次に、画像境界の赤色領域の結合処理（ステップＳ６０８）を行う。図１５に、画像境界の赤色領域の結合処理のフローチャートを示す。
【００５７】
まず、ステップＳ１５０１において、赤色領域リストに「画像境界の赤色領域」が存在するか否かを判定する。赤色領域リストに「画像境界の赤色領域」が存在しなければ処理は終了し、赤色領域リストに「画像境界の赤色領域」が存在すればステップＳ１５０２に進む。
【００５８】
ステップＳ１５０２において、ステップＳ１５０１で見つかった赤色領域を赤色領域Ａとし、赤色領域Ａの領域情報と、方向ヒストグラムと、特徴量とを取得する。
【００５９】
次に、ステップＳ１５０３において、赤色領域リストに赤色領域Ａに隣接する「画像境界の赤色領域」が他に存在するか否かを判定する。赤色領域リストに赤色領域Ａに隣接する「画像境界の赤色領域」が存在しなければ、ステップＳ１５０４に進む。赤色領域リストに赤色領域Ａに隣接する「画像境界の赤色領域」が存在すれば、ステップＳ１５０５に進む。
【００６０】
ステップＳ１５０４において、赤色領域Ａを赤色領域リストから除外し、ステップＳ１５０１に戻る。
【００６１】
ステップＳ１５０５において、ステップＳ１５０３で見つかった赤色領域を赤色領域Ｂとし、赤色領域Ｂの領域情報と、方向ヒストグラムと、特徴量とを取得する。
【００６２】
次に、ステップＳ１５０６において、赤色領域Ａと、赤色領域Ｂとの領域情報・方向ヒストグラム・特徴量を重みづけ加算して新しい赤色領域情報として赤色領域リストに追加する。ここで、領域情報・方向ヒストグラム・特徴量の加算の方法について詳細に説明する。領域情報については、領域を結合した後の概説した矩形の始点・終点を加算後の新しい領域情報とする。方向ヒストグラムについては、各エッジ方向の値を加算することで加算後の方向ヒストグラムを得る。特徴量については、各値を足し合わせる際に各特徴量を算出した際の「参照画素数」に応じて重みづけを行い加算する。例えば、赤色領域Ａの特徴量Pの値をPaとしその参照画素数をNaとし、赤色領域Ｂの特徴量Pの値をPbとしその参照画素数をNbとすると、重みづけの加算の式は
Psum = (Pa * Na + Pb * Nb) / (Na + Nb)    ・・・（１５） 
となる。Psumは、重みづけ加算後の特徴量の値である。この計算を全ての特徴量について行う。
【００６３】
最後に、ステップＳ１５０７において、赤色領域Ａおよび赤色領域Ｂを赤色領域リストから除外し、ステップＳ１５０１に戻る。ステップＳ１５０１〜Ｓ１５０７を繰り返し実行することで、最終的には画像境界の赤色領域の結合処理が完了し、赤色領域リストの赤色領域は欠損のないものだけが残ることとなる。
【００６４】
＜境界線形状判定＞
図１６に、本実施形態における境界線形状判定の処理（ステップＳ６０９）のフローチャートを示す。
【００６５】
まず、ステップＳ１６０１において、赤色領域リストから赤色領域を抜き出す。
【００６６】
次に、ステップＳ１６０２において、方向ヒストグラムの偏りに関する判定を行う。既に説明したように、境界線追跡の過程で、図１１（Ａ）〜（Ｃ）に示すような方向ヒストグラムを得ることができる。もし、境界線追跡の対象領域が円に近い場合、追跡処理の結果から得られた八方向の方向ヒストグラムは均等な分布になるが、対象領域が細長い場合などは方向ヒストグラムに偏りが生じる。例えば、対象領域が右上から右下に細長い形状であれば、図１０（Ｅ）に示す方向のうち、方向２および方向６に度数が集中し、方向４および方向８の度数が少なくなる。従って、下の式（１５）に示す条件すべてを満たす場合は、注目赤色領域を赤丸領域と判定し、何れか一つでも条件を満たさない場合は、注目赤色領域は赤丸領域ではないと判定する。  
・赤丸領域判定方法の式（１５）
sum(f1, f2, f5, f6) ＜ Σf×Th_BF_DirectRatio
sum(f2, f3, f6, f7) ＜ Σf×Th_BF_DirectRatio
sum(f3, f4, f7, f8) ＜ Σf×Th_BF_DirectRatio
sum(f4, f5, f8, f1) ＜ Σf×Th_BF_DirectRatio
ここで、 fnは方向nの度数であり、sum(fa, fb, fc, fd)は方向a, b, c, dの度数の和であり、Σfは度数の総和である。式(１５)により、ある方向について求めた度数の和が所定割合よりも多い場合、すなわち、ある方向に集中がある場合は、注目赤色領域は赤丸領域ではないと判定し、ステップＳ１６０４に進む。ある方向に集中がない場合は、注目赤色領域は赤丸領域であると判定し、ステップＳ１６０３に進む。
【００６７】
ステップＳ１６０３において、注目赤色領域を赤目候補リストに加える。なお、式(１５)による判定は、度数の総和Σfが小さい場合は判定精度が低下する危惧があり、度数の総和Σfが所定値以下の場合、注目赤色領域を候補領域リストに加えるようにしてもよい。
【００６８】
次に、ステップＳ１６０４において、赤色領域リストに赤色領域が残っているか否かを判定する。残っている場合はステップＳ１６０１に戻り、残っていない場合は一連のフローを終了する。
【００６９】
＜特徴量判定＞ 
図１７に、本実施形態における特徴量判定の内容を示す。各赤目候補について、この表の全ての判定結果が真である場合にその赤目候補は赤目であると決定し、赤目リストに追加する。なお、TH1〜TH9は所定の値であり、実験的に求めるパラメータである。 
【００７０】
＜補正パラメータの算出＞ 
赤目であると決定した候補について、補正パラメータを算出する（ステップＳ６１１）。本実施形態では、補正パラメータとして、特徴量における中央領域の最大輝度Y0maxと、最大彩度S0maxとを利用する（図１４（Ｂ）参照）。よって、赤目リストには赤目領域に関連付けて最大輝度Y0maxと、最大彩度S0maxとが格納される。
【００７１】
＜画像補正部５０５が実行する処理＞ 
図１８に、画像補正部５０５が実行する処理のフローチャートを示す。まず、ステップＳ１８０１において、画像解析部５０４から赤目リストを取得する。次に、ステップＳ１８０２において、ＰＤＬ解釈部５０２から１つの画像データを取得する。次に、ステップＳ１８０３において、画像データに含まれる赤目を補正する。次に、ステップＳ１８０４において、ページ内の画像データを全て解析したかどうかを、画像解析部５０４をチェックすることで、判定する。まだページ内に未解析の画像データが残っている場合はステップＳ１８０２に戻る。ページ内に未解析の画像データが残っていない場合は処理を終了する。なお、ステップＳ１８０３における赤目の補正方法については、これから詳細に説明する。
【００７２】
＜赤目補正処理＞ 
図１９に、画像補正部５０５が実行する赤目補正処理のフローチャートを示す。
【００７３】
まず、ステップＳ１９０１において、注目赤目領域に対して補正範囲を決定する。図２０は補正範囲を説明する図である。図２０において、中央の矩形領域が候補領域リストに記載された赤目領域２００１である。赤目領域２００１の中心を通る長径、短径がそれぞれLw1、Lh1の楕円の補正領域２００２を設定する。なお、Lw1、Lh1は式(１６)によって算出する。  
・Lw1、Lh1の算出式（１６）
Lw1 = {(x2-x1)/2}×AREARATIO
Lh1 = {(y2-y1)/2}×AREARATIO
ここで、Lw0は赤目領域２００１の幅の1/2であり、Lh0は赤目領域２００１の高さの1/2である。AREARATIOは補正範囲を決定するためのパラメータである。本実施例では、AREARATIOは2とする。
【００７４】
次に、ステップＳ１９０３において、注目画素が補正領域２００２内に存在するか否かを判定する。注目画素が補正領域（楕円領域）２００２内に存在するか否かは、以下の式（１７）によって判定することができる。 
(x/Lw1)2 + (y/Lh1)2 ≦ 1・・・（１７）
ここで、(x, y)は注目画素の座標である。ただし、座標原点は、注目赤目領域の中心である。注目画素の座標(x, y)が式（１７）を満たす場合、注目画素は補正領域２００２内に存在すると判断して、処理をステップＳ１９０４に進める。注目画素が補正領域２００２内に存在しない場合は、処理をステップＳ１９０２に進める。
【００７５】
ステップＳ１９０２において、注目画素を次の画素に移動し、処理をステップＳ１９０３に戻す。
【００７６】
ステップＳ１９０４において、注目画素のRGB成分値を輝度、色差成分のYCC値に変換する。変換方法には既知の様々な方法が存在するが、どの方法を用いても構わない。
【００７７】
次に、ステップＳ１９０５において、注目画素に対する評価量を算出する。この評価量は、後段のステップＳ１９０６で補正量を決定するために必要なパラメータであり、具体的には以下の三つの値である。
(1) 赤目領域２００１の中心から注目画素までの距離rと、中心から楕円境界までの距離r0との比：r/r0
(2) 注目画素の評価量ERと、評価量の最大値ERmaxとの比：ER/ERmax
(3) 注目画素の輝度Yと、最大輝度値Ymaxとの比：Y/Ymax
【００７８】
次に、ステップＳ１９０６において、ステップＳ１９０５で求めたパラメータを用いて、注目画素の輝度Yおよび色差成分Cr、Cbそれぞれの補正量Vy、Vcを以下の式（１８）によって算出する。  
・補正量Vy、Vcの算出式（１８）
Vy = {1 - (r/r0)}・{1 - (1 - (ER/ERmax))}・{1 - (Y/Ymax)}
Vc = {1 - (r/r0)}・{1 - (1 - (ER/ERmax))}
Vy、Vcはともに0.0〜1.0の範囲になり、1.0に近いほど補正量が大きいことを意味する。輝度の補正量Vyは、ステップＳ１９０５で求めた三つのパラメータすべてを用いて決定し、注目画素の位置が補正領域２００２の中心から離れるほど補正量が小さくなる。また、注目画素の評価量ERが、最大値ERmaxに比べて小さい場合、補正量Vyは小さくなる。また、注目画素の輝度値Yが、最大値Ymaxに近い場合、補正量Vyは小さくなる。輝度が高い画素の補正量Vyを小さくするのは、目の中のハイライト部（キャッチライト）を保存する効果がある。一方、色差の補正量Vcは、Vyから輝度に関するパラメータを除いたものである。
【００７９】
次に、ステップＳ１９０７において、補正量Vy、Vcを用いて以下の式（１９）により補正後のYCC値を算出する。 
・補正後のYCC値の算出式（１９）
Y' = (1.0 - Vy)・Y
C‘ = (1.0 - Vc)・C
ここで、Y、Cは補正前の値であり、Y‘、C’は補正後の値である。
【００８０】
次に、ステップＳ１９０８において、補正後のYCC値をRGB値へ変換する。YCCからRGBへ戻すには下記の式（２０）を用いる。 
・YCC→RGBの算出式（２０）
R = 1.000Y + 1.402V
G = 1.000Y - 0.344U - 0.714V
B = 1.000Y + 1.772U
【００８１】
次に、ステップＳ１９０９において、注目画素が最後の画素であるか否かを判定する。注目画素が最後の画素である場合は、一連のフローを終了し、注目画素が最後の画素ではない場合は、処理を前述のステップＳ１９０２に進める。
【００８２】
ステップＳ１９０９の判定により、注目赤目領域に含まれる最後の画素に達するまで、ステップＳ１９０２で注目画素を移動して、上記の処理（Ｓ１９０３〜Ｓ１９０８）を繰り返す。また、注目赤目領域に含まれる最後の画素に達した場合、次の赤目領域の補正処理に移行して、候補領域リストに記録されたすべての赤目領域の補正処理を繰り返す。なお、画像補正部５０５に入力される画像がRGB成分で構成され、入力画像を輝度、色差成分に変換して補正した後、再び、RGB成分に戻す方法を説明したが、本発明は、この例に限定されない。入力画像の色空間がYCCやCMYKなどである場合も、同様な処理による赤目補正が可能である。
【００８３】
以上より、本実施形態によれば、赤目が２つの画像データに分割された場合であっても、画像データそのものを記憶せずに小さいメモリでパフォーマンスを落とすことなく赤目を検出し補正することが可能である。 
【００８４】
［第２の実施形態］
第１の実施形態では、画像境界の赤色領域を結合した後に全ての赤色領域について境界線形状判定および特徴量判定を行うことで赤目判定を行った。しかし、これでは画像内部の赤色領域について、赤目判定を最終段で行うことになるので、赤色領域リストのデータ量が大きくなりメモリを浪費してしまう。そのため、第２の実施形態では、赤色領域が画像内部にあるものについてはすぐに境界線形状判定および特徴量判定を行って赤目の候補を絞ることで、よりメモリの浪費を抑えるシステムの一例を説明する。
【００８５】
図２１に、第２の実施形態における画像解析部５０４が実行する処理のフローチャートを示す。
【００８６】
まず、ステップＳ２１０１において、ＰＤＬ解釈部５０２から画像データを取得する。
【００８７】
次に、ステップＳ２１０２において、適応的二値化処理により赤色領域を判定する。
【００８８】
次に、ステップＳ２１０３において、境界線追跡処理により輪郭情報を算出する。
【００８９】
次に、ステップＳ２１０４において、画像端部に接していない赤色領域について、境界線形状判定を実施する。赤色領域が画像端部に接しているかどうかは方向ヒストグラムの除外欄に１以上の値があるかどうかを見ることで判定可能である。なお、境界線形状判定の方法は、第１の実施形態の図１６で説明した方法と同様である。
【００９０】
次に、ステップＳ２１０５において、画像端部に接している赤色領域の赤目領域を予測する。
【００９１】
次に、ステップＳ２１０６において、中央領域および周辺領域を算出する。
【００９２】
次に、ステップＳ２１０７において、各赤色領域の特徴量を算出する。
【００９３】
次に、ステップＳ２１０８において、画像端部に接していない赤色領域について、特徴量判定を実施する。特徴量判定方法は第１の実施形態の図１７で説明した方法と同様である。
【００９４】
次に、ステップＳ２１０９において、ページ内の画像データを全て受け付けて解析したかどうかをＰＤＬ解釈部５０２に問い合わせることにより判定する。まだ未解析の画像データが残っている場合はステップＳ２１０１に戻り、未解析の画像データが残っていない場合は処理をステップＳ２１１０に進める。
【００９５】
ステップＳ２１１０において、赤色領域結合処理を行い、ある画像の端部に接している赤色領域について、別の画像の端部に接している赤色領域で隣接しているものがあれば、輪郭情報および特徴量を結合する。
【００９６】
次に、ステップＳ２１１１において、結合した赤色領域について境界線形状判定を行い丸状ではない赤色領域を赤目候補から除外する。
【００９７】
次に、ステップＳ２１１２において、結合した赤色領域について特徴量判定を行い、赤目の特徴量条件を満たさない赤色領域を赤目候補から除外する。
【００９８】
次に、ステップＳ２１１３において、補正パラメータを算出し、候補リストに格納する。
【００９９】
最後に、ステップＳ２１１４において、画像補正部５０５に補正パラメータを出力する。 
【０１００】
以上より、第２の実施形態によれば、赤色領域が画像端部に接していないものについては赤色領域を結合する前に一度判定して候補を絞ることで、より消費メモリを小さくパフォーマンスを早くすることが可能である。
【０１０１】
［第３の実施形態］
第１の実施形態では、赤目が２つの画像データに分割された場合に、赤目を検出して補正するシステムの一例を説明した。第３の実施形態では、赤目が３つ以上の画像データに分割されている場合や、赤目がオーバーラップしながら複数の画像データに分割されている場合に、赤目を検出して補正するシステムの一例を説明する。 
【０１０２】
図２２に、第３の実施形態におけるＰＤＬデータの一例を示す。図２２（Ａ）は、ＰＤＬデータのプレビューを示しており、ページ２２０１の中に赤目現象が発生している眼を持つ写真２２０２が割り付けられている。図２２（Ｂ）は、写真２２０２を構成する画像データに従って描画したときの画像を拡大した図である。写真２２０２は、画像２２０３と、画像２２０４と、画像２２０５と、画像２２０６とより構成されている。画像２２０３は赤目不良２２０７を含み、赤目不良２２０７は欠損した約４分の１の形で含まれている。画像２２０４は赤目不良２２０８を含み、赤目不良２２０８は欠損した約４分の１の形で含まれている。画像２２０５は赤目不良２２０９を含み、赤目不良２２０９は欠損した約４分の１の形で含まれている。画像２２０６は赤目不良２２１０を含み、赤目不良２２１０は欠損した約４分の１の形で含まれている。 
【０１０３】
図２３に、第３の実施形態における赤色領域結合処理のフローチャートを示す。
【０１０４】
まず、ステップＳ２３０１において、赤色領域が少しでも重なっているかまたは隣接している、赤目候補群をクラスタリングする。以下のステップＳ２３０２〜Ｓ２３１０では、順次クラスタを参照して結合処理を行う。
【０１０５】
次に、ステップＳ２３０２において、まだ参照していないクラスタを取り出す。
【０１０６】
次に、ステップＳ２３０３において、参照しているクラスタの中に画像端部に接していない赤色領域が存在するか否かを判定する。参照しているクラスタの中に画像端部に接していない赤色領域が存在する場合は、ステップＳ２３０４に進み、参照しているクラスタの中に画像端部に接していない赤色領域が存在しない場合は、ステップＳ２３０５に進む。
【０１０７】
ステップＳ２３０４において、特徴量を算出した画素の数が一番多い「画像内部の赤色領域」を残し、他の赤色領域を赤色領域リストから除外する。ステップＳ２３０４の後、ステップＳ２３１０に進む。
【０１０８】
ステップＳ２３０５において、クラスタの中に赤色領域が２つ以上あるかどうかを判定する。２つ以上ない場合はステップＳ２３０６に進み、２つ以上ある場合はステップＳ２３０７に進む。
【０１０９】
ステップＳ２３０６において、クラスタ内の赤色領域を赤色領域リストから除外する。
【０１１０】
ステップＳ２３０７において、クラスタの中の領域情報・特徴量を、重みづけを用いて加算する。この加算処理は、第１の実施形態で説明したステップＳ１５０６における領域情報・特徴量の加算処理と同様である。
【０１１１】
次に、ステップＳ２３０８において、クラスタの中の赤色領域の方向ヒストグラムを加算する。赤目がオーバーラップされながら画像データが分割されている場合、方向ヒストグラムの加算は単純にはできない。というのも、同じ方向エッジを重ねて加算している場合がありえるためである。そのため、重なって計算されているエッジを予測して加算する必要がある。この方法は後述する。
【０１１２】
次に、ステップＳ２３０９において、クラスタの中の赤色領域を１つの赤色領域として赤色領域リストに登録する。ステップＳ２３０９の後、ステップＳ２３１０に進む。
【０１１３】
ステップＳ２３１０において、未参照のクラスタが存在するか否かを判定する。未参照のクラスタが存在する場合は、ステップＳ２３０２に戻る。未参照のクラスタが存在しない場合は、処理を終了する。 
【０１１４】
＜方向ヒストグラムの加算方法＞
図２４に、ステップＳ２３０８における方向ヒストグラム加算処理のフローチャートを示す。また、図２５（Ａ）に、ステップＳ２３０２で取り出したクラスタ内の赤色領域の重なり具合の例を示す。図２５（Ａ）の例では、４つの画像データに赤目が部分的に重複して分割されたため、赤色領域が４つにオーバーラップして重なっている。
【０１１５】
まず、ステップＳ２４０１において、クラスタ内の赤色領域の重なり状況を示すフラグ画像を作成する。図２５（Ｂ）に、図２５（Ａ）のクラスタにおけるフラグ画像の例を示す。このフラグ画像のサイズは、４つの赤色領域を結合した後のサイズと等しい。各画素には重なり度が設定されており、赤色領域が２つ重なっていれば２、３つ重なっていれば３、４つ重なっていれば４、といった具合に重なっている赤色領域の数を重なり度として設定する。
【０１１６】
次に、ステップＳ２４０２において、この４つの赤色領域が結合した赤色領域に内接する円をフラグ画像上で描画する。図２５（Ｃ）に、図２５（Ｂ）のフラグ画像に対して内設円を描画した例を示す。
【０１１７】
次に、ステップＳ２４０３において、この内接円が描画されたフラグ画像上で境界線追跡処理を行い、方向エッジを算出する。方向エッジの算出の仕方は、図１０を用いて第１の実施形態で説明した方法と同様である。図２５（Ｄ）に、図２５（Ｃ）のフラグ画像に対して方向エッジを算出した例を示す。
【０１１８】
次に、ステップＳ２４０４において、方向ヒストグラムの重複エッジを算出する。
【０１１９】
次に、ステップＳ２４０５において、クラスタ内の赤色領域の方向ヒストグラムを全て加算する。
【０１２０】
最後に、ステップＳ２４０６において、方向ヒストグラムからＳ２４０４で算出した重複エッジを引く。以上より、オーバーラップによる方向エッジの重複を考慮した方向ヒストグラムの加算が可能となる。
【０１２１】
以上、第３の実施形態によれば、赤目が３つ以上の画像データに分割されている場合や、オーバーラップしながら複数の画像データに分割されている場合にも、赤目を検出して補正することが可能である。
【０１２２】
［その他の実施形態］
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
2015056054.tif 000003
【図２】
2015056054.tif 000004
【図３】
2015056054.tif 000005
【図４】
2015056054.tif 000006
【図５】
2015056054.tif 000007
【図６】
2015056054.tif 000008
【図７】
2015056054.tif 000009
【図８】
2015056054.tif 000010
【図９】
2015056054.tif 000011
【図１０】
2015056054.tif 000012
【図１１】
2015056054.tif 000013
【図１２】
2015056054.tif 000014
【図１３】
2015056054.tif 000015
【図１４】
2015056054.tif 000016
【図１５】
2015056054.tif 000017
【図１６】
2015056054.tif 000018
【図１７】
2015056054.tif 000019
【図１８】
2015056054.tif 000020
【図１９】
2015056054.tif 000021
【図２０】
2015056054.tif 000022
【図２１】
2015056054.tif 000023
【図２２】
2015056054.tif 000024
【図２３】
2015056054.tif 000025
【図２４】
2015056054.tif 000026
【図２５】
2015056054.tif 000027