(57)【要約】【課題】  被写体に応じた最適な補正を短時間で行うことが可能な画像処理装置を提供すること。【解決手段】  画像データに含まれている顔領域を特定する特定手段（ＣＰＵ５０）と、特定手段によって特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度を調整する調整手段（ＣＰＵ５０）と、特定手段によって特定された顔領域の状態に基づいて画像データを補正する補正手段（ＣＰＵ５０）と、を有し、調整手段は、特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度が１８０度およびその近傍となる範囲については調整対象から除外する。【選択図】  図２
2006277275.tif 000002
【特許請求の範囲】
【請求項１】
画像データに含まれている顔領域を特定する特定手段と、
上記特定手段によって特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度を調整する調整手段と、
上記特定手段によって特定された顔領域の状態に基づいて上記画像データを補正する補正手段と、を有し、
上記調整手段は、上記特定可能な顔領域の方向と、上記特定対象となる画像データの方向との間の相対的な角度が１８０度およびその近傍となる範囲については調整対象から除外することを特徴とする画像処理装置。
【請求項２】
前記調整手段は、前記特定可能な顔領域の方向と、前記特定対象となる画像データの方向との間の相対的な角度が略−１３５度から略＋１３５度となる範囲で段階的に調整し、
前記特定手段は、これらの相対的な角度が調整される各段階において顔領域を特定する、
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記調整手段は、前記特定対象となる画像データを略−１３５度から略＋１３５度となる範囲で段階的に回転させ、
前記特定手段は、前記特定対象となる画像データが回転される各段階において顔領域を特定する、
ことを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記調整手段は、前記特定手段が使用する顔領域特定用のテンプレートを略−１３５度から略＋１３５度となる範囲で段階的に回転させ、
前記特定手段は、前記テンプレートが回転される各段階において顔領域を特定する、
ことを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記調整手段は、前記画像データに画像の撮像時の角度を示す情報が含まれている場合には、当該情報に含まれている角度に応じて前記特定可能な顔領域の方向と、前記特定対象となる画像データの方向との間の相対的な角度を調整することを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記調整手段は、前記画像データに含まれている肌色領域および黒色領域の位置関係に応じて、調整する範囲を設定することを特徴とする請求項１記載の画像処理装置。
【請求項７】
請求項１〜５のいずれか１項に記載の画像処理装置を有する印刷装置。
【請求項８】
画像データに含まれている顔領域を特定する特定ステップと、
上記特定ステップにおいて特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度を調整する調整ステップと、
上記特定ステップにおいて特定された顔領域の状態に基づいて上記画像データを補正する補正ステップと、を有し、
上記調整ステップは、上記特定可能な顔領域の方向と、上記特定対象となる画像データの方向との間の相対的な角度が１８０度およびその近傍となる範囲については調整対象から除外することを特徴とする画像処理方法。
【請求項９】
画像データに含まれている顔領域を特定する特定手段、
上記特定手段によって特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度を調整する調整手段、
上記特定手段によって特定された顔領域の状態に基づいて上記画像データを補正する補正手段、としてコンピュータを機能させ、
上記調整手段は、上記特定可能な顔領域の方向と、上記調整対象となる画像データの方向との間の相対的な角度が１８０度およびその近傍となる範囲については対象から処理除外することを特徴とするコンピュータ読み取り可能な画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、印刷装置、画像処理方法、および、画像処理プログラムに関する。
【背景技術】
【０００２】
近年、ディジタルカメラ等によって撮像された画像を簡易に印刷できる印刷装置が普及している。最近では、ディジタルカメラの普及に伴い、メモリカードが挿着できるスロットを有する印刷装置、あるいはディジタルカメラとの接続のためのインタフェースを有する高解像度の印刷装置も市販されるようになっている。この種の印刷装置には、プリントエンジンとして、インクジェット式、あるいは昇華式のものがあり、高い解像度での印刷が可能となっている。
【０００３】
ところで、例えば、ディジタルカメラによって撮像された画像は、カメラ自体の特性等によって、例えば、露出値が適切でなかったり、色かぶりが発生したりする場合があるため、これらを補正するための技術が提案されている（特許文献１参照）。
【０００４】
【特許文献１】特開２０００−１６５６４７号公報（要約書、請求項）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、前述したような補正は、被写体の種類（例えば、風景、または、人物等）に応じて行うことが望ましいが、特許文献１に示す技術では、被写体に応じて補正を行うことができないという問題点がある。
【０００６】
また、近年、パーソナルコンピュータを接続せずに、印刷装置自体に画像データを読み取る手段と、画像処理を行う手段とを有し、印刷装置単独で画像を印刷できるいわゆるスタンドアローンプリンタが流通しているが、このようなスタンドアローンプリンタでは、中央処理装置の処理速度がパーソナルコンピュータに比較して遅いため、被写体に応じて複雑な補正処理を施そうとすると、印刷を開始するまでに長い時間を要するという問題点がある。
【０００７】
本発明は、上記の事情に基づきなされたもので、その目的とするところは、被写体に応じた最適な補正を短時間で行うことが可能な画像処理装置、印刷装置、画像処理方法、および、画像処理プログラムを提供しよう、とするものである。
【課題を解決するための手段】
【０００８】
上述の目的を達成するため、本発明の画像処理装置は、画像データに含まれている顔領域を特定する特定手段と、特定手段によって特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度を調整する調整手段と、特定手段によって特定された顔領域の状態に基づいて画像データを補正する補正手段と、を有し、調整手段は、特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度が１８０度およびその近傍となる範囲については調整対象から除外するようにしている。
【０００９】
このため、被写体に応じた最適な補正を短時間で行うことが可能な画像処理装置を提供することができる。
【００１０】
また、他の発明の画像処理装置は、上述の発明に加えて、調整手段が、特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度が略−１３５度から略＋１３５度となる範囲で段階的に調整し、特定手段が、これらの相対的な角度が調整される各段階において顔領域を特定するようにしている。このため、これらの間の相対的な角度を３６０度回転させる場合に比較して、データの処理量を減少させ、処理時間を短縮することができる。
【００１１】
また、他の発明の画像処理装置は、上述の発明に加えて、調整手段が、特定対象となる画像データを略−１３５度から略＋１３５度となる範囲で段階的に回転させ、特定手段が、特定対象となる画像データが回転される各段階において顔領域を特定するようにしている。このため、処理の対象となる画像データを３６０度回転させる場合に比較して、データの処理量を減少させ、処理時間を短縮することができる。
【００１２】
また、他の発明の画像処理装置は、上述の発明に加えて、調整手段が、特定手段が使用する顔領域特定用のテンプレートを略−１３５度から略＋１３５度となる範囲で段階的に回転させ、特定手段が、テンプレートが回転される各段階において顔領域を特定するようにしている。このため、処理の対象となる画像データを３６０度回転させる場合に比較して処理量を減少させるとともに、画像データ全体を回転させる場合に比較して処理量を一層減少させることが可能になる。
【００１３】
また、他の発明の画像処理装置は、上述の発明に加えて、調整手段が、画像データに画像の撮像時の角度を示す情報が含まれている場合には、当該情報に含まれている角度に応じて特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度を調整するようにしている。このため、画像データに撮影時の角度を示す情報が含まれている場合には当該情報を活用することにより、処理量を減少させて、処理速度を向上させることが可能になる。
【００１４】
また、他の発明の画像処理装置は、上述の発明に加えて、調整手段が、画像データに含まれている肌色領域および黒色領域の位置関係に応じて、調整する範囲を設定するようにしている。このため、画像データが天地逆転された状態である場合であっても、これを検出して調整することにより、正常に顔を検出することができる。
【００１５】
また、本発明の印刷装置は、上述の各発明の画像処理装置を有するようにしている。
【００１６】
このため、被写体に応じた最適な補正を短時間で行うことが可能な印刷装置を提供することができる。
【００１７】
また、本発明の印刷方法は、画像データに含まれている顔領域を特定する特定ステップと、特定ステップにおいて特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度を調整する調整ステップと、特定ステップにおいて特定された顔領域の状態に基づいて画像データを補正する補正ステップと、を有し、調整ステップは、特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度が１８０度およびその近傍となる範囲については調整対象から除外するようにしている。
【００１８】
このため、被写体に応じた最適な補正を短時間で行うことが可能な印刷方法を提供することができる。
【００１９】
また、本発明の画像処理プログラムは、画像データに含まれている顔領域を特定する特定手段、特定手段によって特定可能な顔領域の方向と、特定対象となる画像データの方向との間の相対的な角度を調整する調整手段、特定手段によって特定された顔領域の状態に基づいて画像データを補正する補正手段、としてコンピュータを機能させ、調整手段は、特定可能な顔領域の方向と、調整対象となる画像データの方向との間の相対的な角度が１８０度およびその近傍となる範囲については対象から処理除外するようにしている。
【００２０】
このため、被写体に応じた最適な補正を短時間で行うことが可能な画像処理プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の一実施の形態について、図面を参照して説明する。
【００２２】
図１は、本発明の実施の形態に係る画像処理装置を用いた印刷装置の構成例を示す図である。以下、本発明の一実施の形態について、図１から図１３に基づいて説明する。図１は、本実施の形態に係る印刷装置１１の基本構成を示す斜視図である。この図１に示すように、印刷装置１１は、ロール紙対応型のインクジェット式印刷装置であり、装置全体を覆うケース１２と、印刷媒体としてのロール紙Ｒおよび印刷用紙（不図示）を供給する給紙装置１３と、ロール紙Ｒまたは印刷用紙に対して印刷を行う印刷部とを備える。
【００２３】
ケース１２は、略四角形状の箱体であり、上面右側に操作パネル部１５を備え、操作パネル部１５は、ＬＣＤ（Liquid Crystal Display）１７と、操作ボタン１８とを備える。ＬＣＤ１７には、印刷装置１１のメニュー機能、動作内容、動作状況、エラー内容などが表示され、操作ボタン１８は、印刷装置１１のメニュー選択等を行う時に押されるようになっている。そして、これらＬＣＤ１７および操作ボタン１８により、カット位置調整等の各種操作が行えるようになっている。
【００２４】
ケース１２は、前面下部に、排出口１２ａを備え、印刷されたロール紙Ｒまたは印刷用紙が排出されるようになっている。また、ケース１２の前面右側には、カードスロット２１が設けられており、例えば、ディジタルカメラ３０等によって撮影された画像データを記録するメモリカードＭが、取り外し自在に収納されるようになっている。
【００２５】
給紙装置１３は、ケース１２の背面側に設けられており、ケース１２に対して固定されているホルダー２２と、ロール紙軸２３とを備える。そして、同ロール紙軸２３には、ロール紙Ｒの基端（終端）が連結され巻回されており、この状態で、ホルダー２２に対して回転可能に支持されている。そして、ユーザーがロール紙軸２３の両端部を掴んでロール紙軸２３を正回転、あるいは、逆回転させると、ロール紙Ｒは給紙装置１３から送り出されたり、巻き取られたりするようになっている。
【００２６】
つぎに、図１に示す印刷装置１１の制御系について説明する。図２は、図１に示す印刷装置の制御系を示すブロック図である。この図に示すように、印刷装置の制御系は、ＣＰＵ（Central Processing Unit）５０、ＲＯＭ（Read Only Memory）５１、ＲＡＭ（Random Access Memory）５２、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）５３、ＧＰ（Graphic Processor）５４、Ｉ／Ｆ（Interface）５５、バス５６、ＬＣＤ１７、操作ボタン１８、カードＭが挿入されるカードスロット２１、カードＩ／Ｆ回路６０、プリンタエンジンコントローラ６２、紙送りモータ６３、ローラ６４、キャリッジモータ６５、駆動ベルト６６、キャリッジ６７、および、記録ヘッド６８を有している。
【００２７】
ここで、特定手段、調整手段、および、補正手段としてのＣＰＵ５０は、ＲＯＭ５１およびＥＥＰＲＯＭ５３に格納されているプログラムに応じて各種演算処理を実行するとともに、紙送りモータ６３およびキャリッジモータ６５をはじめとする装置の各部を制御する。
【００２８】
ＲＯＭ５１は、ＣＰＵ５０が実行する各種プログラムや各種データを格納している半導体メモリである。ＲＡＭ５２は、ＣＰＵ５０が実行対象とするプログラムやデータを一時的に格納する半導体メモリである。
【００２９】
ＥＥＰＲＯＭ５３は、ＣＰＵ５０における演算処理結果の所定のデータ等が格納され、印刷装置の電源が切断された後も該データを保持する半導体メモリである。
【００３０】
ＧＰ５４は、ＣＰＵ５０から供給されが描画命令に基づいて描画処理を実行し、得られた画像データをＬＣＤ１７に供給して表示させる。
【００３１】
Ｉ／Ｆ５５は、操作ボタン１８、カードＩ／Ｆ回路６０、および、プリンタエンジンコントローラ６２の間で情報を授受する際に、データの表現形式を適宜変換する装置である。
【００３２】
バス５６は、ＣＰＵ５０、ＲＯＭ５１、ＲＡＭ５２、ＥＥＰＲＯＭ５３、ＧＰ５４、および、Ｉ／Ｆ５５、を相互に接続し、これらの間で情報の授受を可能とするための信号線群である。
【００３３】
操作ボタン１８は、前述したように、メニュー選択等を行う場合に操作される。メモリカードＭは、前述したように、ディジタルカメラ３０によって撮像された画像データが格納されている不揮発メモリである。
【００３４】
カードスロット２１は、前述したように印刷装置１１のケース１２の前面右側に設けられており、当該部分にメモリカードＭが挿入される。カードＩ／Ｆ回路６０は、メモリカードＭとの間で情報を読み書きするためのインタフェースである。
【００３５】
プリンタエンジンコントローラ６２は、紙送りモータ６３、キャリッジモータ６５、および、記録ヘッド６８を制御するための制御装置である。紙送りモータ６３は、ローラ６４を回転させることにより印刷用紙またはロール紙Ｒを副走査方向に移動させる。ローラ６４は、円柱状の部材によって構成され、印刷用紙またはロール紙Ｒを副走査方向に移動させる。
【００３６】
キャリッジモータ６５は、キャリッジ６７に一端が固定されている駆動ベルト６６に駆動力を与えることにより、キャリッジ６７を主走査方向に往復動させる。記録ヘッド６８は、印刷用紙に対向する面に複数のノズルが形成されており、当該複数のノズルからインクを吐出させることにより情報を印刷用紙に記録する。
【００３７】
図３は、図１に示すディジタルカメラ３０の詳細な構成例を示す図である。この図に示すように、ディジタルカメラ３０は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＣＣＤ（Charge Coupled Device）３４、光学系３５、ＧＰ３６、ＬＣＤ３７、Ｉ／Ｆ３８、バス３９、操作ボタン４０、カードＩ／Ｆ４１、カードスロット４２、メモリカードＭ、ジャイロセンサ４３を有している。なお、図３において図２と同一の部分については説明を省略する。図３の例では、図２の場合と比較して、ＣＣＤ３４、光学系３５、および、ジャイロセンサ４３が異なっている。ここで、ＣＣＤ３４は、光学系３５によって集光された被写体からの光画像を対応する電気信号に変換して出力する。光学系３５は、複数のレンズおよびアクチュエータによって構成されており、被写体からの光画像を複数のレンズによってＣＣＤ３４の受光面に集光するとともに、アクチュエータによってフォーカス等を調整する。ジャイロセンサ４３は、ディジタルカメラ３０によって被写体を撮影した際のカメラ本体の角度（水平面に対する角度）を示す信号を生成して出力する。ディジタルカメラ３０では、撮影時におけるカメラの角度を示す情報を、後述するｅｘｉｆ（Exchangeable Image File Format）情報として画像データに添付することができる構造となっている。
【００３８】
つぎに、以上の実施の形態の動作について説明する。以下では、まず、本実施の形態の動作の概略について説明した後、詳細な動作について説明する。
【００３９】
本発明の実施の形態では、印刷装置１１によって印刷しようとする画像データに人物の顔が含まれている場合には、当該顔を構成する画素の状態に応じて画像データを補正し、最適な印刷状態が得られるようにする。
【００４０】
ところで、画像データに顔が含まれているか否かを判定する方法としては、例えば、顔のテンプレートを利用して画像データとマッチング処理を行う方法がある。このような方法では、画像データに含まれている画像の大きさ、および、方向が一定でないため、図４（Ａ）に示すように複数のサイズのテンプレート（第１〜第５のテンプレート）を準備し、図５（Ａ），（Ｂ）に示すように、例えば、画像データの左上端から右下端まで当該テンプレートとのマッチング処理を実行し、当該テンプレートに対応する顔が含まれているか否かを判定する。なお、マッチング処理の際には、図４（Ｂ）に示すように、テンプレートにはモザイク処理が施され、個人の特徴による影響が排除される。
【００４１】
ところで、ディジタルカメラ３０で被写体である人物を撮像する場合、図６に示すように、ディジタルカメラ３０の角度を変えて撮影される場合がある。図６の例では、（Ａ）は通常の場合を示し、（Ｂ）は正面から見て反時計方向に９０度回転させた場合を示し、（Ｃ）は正面から見て時計方向に９０度回転させた場合を示している。このような場合、（Ａ）〜（Ｃ）にそれぞれ示すように、画像に含まれている顔は、（Ａ）では正立状態、（Ｂ）では反時計方向に９０度回転した状態、（Ｃ）では時計方向に９０度回転した状態となる。したがって、この場合、図４に示すような正立方向のテンプレートを使用して顔の検出処理を実行した場合には（Ｂ），（Ｃ）の状態の顔が検出できなくなってしまう。
【００４２】
そこで、画像データを段階的に３６０度回転させ、それぞれの段階において図５に示すようにスキャンを行うことにより、撮影された角度によらず顔を検出することができる。
【００４３】
しかしながら、画像を３６０度回転させ、しかも、図４に示すように、複数のテンプレートを使用して検出を行うことは、処理コストが高くついてしまう。そこで、本発明の実施の形態では、図７（Ａ）に示すように、ディジタルカメラ３０を１８０度回転させた状態で撮影が行われることは想定できないことから、当該状態を処理対象から除外することにより処理を高速化している。具体的には、図７（Ｂ）に示すように、画像データを＋１３５度〜−１３５度の範囲で段階的に（例えば、＋５度ずつ）回転させ、それぞれの段階において顔を検出する処理を実行する。この結果、図６（Ｂ）に示す場合には−９０度回転された状態で正立状態となり、図６（Ｃ）に示す場合では＋９０度回転された状態で正立状態となって顔が検出される。なお、図６（Ｂ），（Ｃ）の場合では、−９０度および＋９０度回転させれば顔を検出することができるが、被写体が傾いていたり、あるいは、ディジタルカメラ３０が傾いたりしている場合を考慮し、余裕をみて−１３５度および＋１３５度の範囲で回転させるようにしている。このように、本発明の実施の形態では、図７（Ａ）に示す反転状態およびその近傍の状態を処理対象から除外することにより、処理速度を向上させている。
【００４４】
つぎに、本発明の実施の形態の詳細について説明する。図８は、以上の実施の形態の動作を説明するためのフローチャートである。このフローチャートの処理が開始されると、以下のステップが実行される。なお、この処理は、メモリカードＭがカードスロット２１に挿入された後、所定の画像または画像群を印刷することが指示された場合に、ＲＯＭ５１に格納されているプログラムを読み出して実行することにより、実現される。
【００４５】
ステップＳ１０：ＣＰＵ５０は、印刷の対象となる画像ファイルをメモリカードＭから取得し、ハフマン解凍処理を実行し、量子化ＤＣＴ（Discrete Cosine Transform）係数を得る。図９に示すように、画像ファイル７０は、ヘッダ情報７１、テーブル７２、および、圧縮データ７３によって構成されている。ここで、ヘッダ情報７１は、例えば、ｅｘｉｆ情報７１ａ（詳細は後述する）を有するとともに、ファイル名、圧縮方式、画像サイズ、密度単位等の情報を有している。テーブル７２は、例えば、量子化テーブルおよびエントロピー符号化テーブル等によって構成されている。圧縮データ７３は、ＪＰＥＧ（Joint Photographic Coding Experts Group）方式により圧縮された画像データによって構成されている。ＣＰＵ５０は、図９に示す画像ファイル７０のテーブル７２からエントロピー符号化テーブルを取得し、圧縮データ７３に含まれているＹ（輝度）成分、Ｃｒ（色差成分）、および、Ｃｂ（色差成分）のそれぞれのブロックのＤＣ係数と、ＡＣ係数とを復号する。なお、この際、最小符号化単位であるＭＣＵ単位で復号を行う。
【００４６】
ステップＳ１１：ＣＰＵ５０は、ステップＳ１１において得られた量子化ＤＣＴ係数を逆量子化する。具体的には、ＣＰＵ５０は、図９に示す画像ファイル７０のテーブル７２から量子化テーブルを取得し、ステップＳ１１において得られた量子化ＤＣＴ係数に乗じることにより（逆量子化することにより）、ＤＣＴ係数を得る。
【００４７】
ステップＳ１２：ＣＰＵ５０は、画像を回転させるために必要な情報を、例えば、ＲＡＭ５２にキャッシュする。具体的には、ＪＰＥＧ方式によって圧縮された画像を回転させる場合、ＭＣＵのＤＣ成分（直流成分）とＡＣ成分（交流成分）のそれぞれを一度ハフマン展開しなければならない。ここで、ＤＣ成分については隣接するＤＣ成分値の差分をハフマン符号化することから、隣接するＭＣＵとの相関関係が問題となる。また、ＡＣ成分ではハフマン符号化処理によりそのデータ長が各ＭＣＵで一定にならず、ＪＰＥＧデータのビットストリーム中のどのデータが求めるＭＣＵのＡＣ成分値であるかが不明となることが問題となる。そこで、ステップＳ１２の処理では、各ＭＣＵのＤＣ成分値とＡＣ成分のアドレスを求めてキャッシュしておくことにより、ローテート処理を可能とする。
【００４８】
ステップＳ１３：ＣＰＵ５０は、ステップＳ１１で得られたＤＣＴ係数に対して逆ＤＣＴ演算を施すことによりもとの画素値を得る。
【００４９】
ステップＳ１４：ＣＰＵ５０は、ステップＳ１３の処理によって得られたＹＣＣ方式の画像をＲＧＢ（Red Green Blue）方式の画像と、ＨＳＢ（Hue Saturation Brightness）方式の画像に変換する。
【００５０】
ステップＳ１５：ＣＰＵ５０は、ステップＳ１３およびステップＳ１４の処理において得られたＹＣＣ，ＲＧＢ，ＨＳＢのそれぞれの画像をＲＡＭ５２に格納して保持する。なお、このとき、データ量を削減するために画素を所定の割合で間引きした後にＲＡＭ５２に格納してもよい。
【００５１】
ステップＳ１６：ＣＰＵ５０は、ステップＳ１５においてＲＡＭ５２に格納されたＹＣＣ，ＲＧＢ，ＨＳＢそれぞれの画像の成分について、ヒストグラムを計算する。具体的には、ＲＧＢ画像については、Ｒ，Ｇ，Ｂそれぞれの画像についてヒストグラムを計算する。その結果、画像を構成する各成分の分布を得る。
【００５２】
ステップＳ１７：ＣＰＵ５０は、全てのＭＣＵについての処理が終了したか否かを判定し、終了した場合にはステップＳ１８に進み、それ以外の場合にはステップＳ１０に戻って同様の処理を繰り返す。
【００５３】
ステップＳ１８：ＣＰＵ５０は、画像方向を特定する処理を実行する。なお、この処理の詳細については、図１１を参照して後述するが、概略を説明すると、つぎの通りである。すなわち、画像ファイル７０のｅｘｉｆ情報７１ａに撮影時のディジタルカメラ３０の角度（ジャイロセンサ４３の出力データ）が記録されている場合には、当該情報を抽出する。なお、特別な場合として、画像データの天地が反転された状態（図７（Ａ）に示す状態）となっている場合には、肌色領域および黒色領域の位置関係を参照して天地が反転されていることを検出し、画像データの天地を反転させる。
【００５４】
ステップＳ１９：ＣＰＵ５０は、画像データに含まれている顔を特定する処理を実行する。なお、この処理の詳細については、図１２および図１３を参照して後述するが、概略を説明するとつぎの通りである。すなわち、この処理では、画像データに顔画像が含まれているか否かを判定するために、図７（Ｂ）に示すように、画像データを回転させながら、図４に示すテンプレートと相関が高い領域を顔画像が含まれている領域（以下、「顔領域」と称する）として特定する。なお、含まれている顔画像の大きさは、被写体とディジタルカメラの距離によって変化し、また、被写体が複数である場合も想定されるので、ステップＳ１９の処理では、大きさの異なる複数のテンプレートを用いて顔画像の検出を行うとともに、１０人分の顔領域が発見されるまで処理を繰り返すようにしている。なお、特定された顔領域については、例えば、その中心部分の座標または左上端の座標がＲＡＭ５２に格納される。
【００５５】
ステップＳ２０：ＣＰＵ５０は、ステップＳ１９の処理において顔画像が特定された場合にはステップＳ２１に進み、それ以外の場合にはステップＳ２２に進む。
【００５６】
ステップＳ２１：ＣＰＵ５０は、ステップＳ１９において特定された顔領域から顔色を取得する。具体的には、顔領域を構成する所定の画素を抽出してＲ，Ｇ，Ｂそれぞれの値を取得する。このとき、複数の画素を抽出して平均値または中央値を計算し、これらの値を用いるようにしてもよい。なお、複数の顔領域が特定された場合にはそれぞれの顔領域から顔色を取得し、例えば、中央値または平均値を計算する。
【００５７】
ステップＳ２２：ＣＰＵ５０は、ステップＳ２１において取得された顔色が、正常な顔色となる補正パラメータを算出する。具体的には、Ｒ，Ｇ，Ｂのバランスが適正値からずれている場合には、色かぶりが生じているとして、正常値に補正するための補正パラメータをＲ，Ｇ，Ｂそれぞれについて算出する。また、Ｒ，Ｇ，Ｂのトータル値がずれている場合には、露光が適正でないとして、露光を適正とするための補正パラメータをＲ，Ｇ，Ｂそれぞれについて算出する。なお、ステップＳ１９において顔が特定できなかった場合には、例えば、空の色に基づいて補正パラメータを算出する。
【００５８】
なお、顔色は、人種および光源の種類によって異なる。そこで、ＲＯＭ５１に格納されているテーブル（図１０参照）を参照して、取得したＲ，Ｇ，Ｂから適正な補正パラメータを算出する。図１０の例では、第１〜第３の肌色が列挙してある。ここで、第１の肌色は白色系、第２の肌色は黄色系、第３の肌色は黒色系の肌色となっている。図１０では、第１から第３の肌色のそれぞれについて、太陽光、蛍光灯、白熱光を光源とした場合のＲ，Ｇ，Ｂそれぞれの値の範囲が列挙されている。ステップＳ２２の処理では、顔領域の複数のポイントから画素をサンプリングし、サンプリングされた画素のＲ，Ｇ，Ｂ値の平均値または中央値を算出し、図１０に示すテーブルと比較することにより、対象となる顔の肌色の種類と、光源の種類を特定する。そして、画素の平均値のＲ，Ｇ，Ｂのそれぞれの値が図５に示すテーブルの中央値（適正値）となるような補正パラメータを求める。なお、複数人の顔領域が特定された場合には、それぞれの顔領域から複数点におけるサンプリングを行い、得られた複数人分の画素の平均値または中央値を算出し、これらの値に基づいて、補正パラメータを算出する。
【００５９】
ステップＳ２３：ＣＰＵ５０は、印刷対象となる画像ファイルにおいて、解凍処理の対象となる位置を示すファイルポインタをリセットし、処理位置を画像ファイルの先頭に復元する。
【００６０】
ステップＳ２４：ＣＰＵ５０は、ＲＡＭ５２にキャッシュされた１ＭＣＵライン分の画像データにハフマン解凍処理を施し、量子化ＤＣＴ係数を得る。ここで、１ＭＣＵラインとは、画像を回転させる場合には、画像を構成する列方向に１列のＭＣＵ群をいい、回転させない場合には、画像を構成する行方向に１列のＭＣＵ群をいう。
【００６１】
ステップＳ２５：ＣＰＵ５０は、ステップＳ２４の処理において得られた量子化ＤＣＴ係数を逆量子化する。
【００６２】
ステップＳ２６：ＣＰＵ５０は、ステップＳ２５で得られたＤＣＴ係数に対して逆ＤＣＴ演算を施すことによりもとのデータを得る。
【００６３】
ステップＳ２７：ＣＰＵ５０は、ステップＳ２６の処理によって得られたＹＣＣ方式の画像をＲＧＢ方式の画像に変換する。
【００６４】
ステップＳ２８：ＣＰＵ５０は、ステップＳ２７において得られたＲＧＢ方式の画像を構成する各画素に対して補正処理を施す。具体的には、それぞれの画素に対して、ステップＳ２２において算出した補正パラメータを適用することにより、色かぶりを解消するとともに、露出が適正となるように補正する。例えば、色かぶりによって赤色が強い場合には、Ｒのヒストグラムの分布が原点方向に移動するように、例えば、それぞれの画素値に対して値“０．９”を乗算する等の処理を行う。
【００６５】
ステップＳ２９：ＣＰＵ５０は、補正処理の結果得られた画像データを、プリンタエンジンコントローラ６２の図示せぬバンドバッファに供給し、印刷処理を実行させる。この結果、プリンタエンジンコントローラ６２は、記録ヘッド６８を制御して画像データに対応するインクを吐出させ、キャリッジモータ６５を駆動して記録ヘッド６８を主走査方向に移動させるとともに、紙送りモータ６３を駆動して副走査方向に移動させ、画像を印刷する。
【００６６】
ステップＳ３０：ＣＰＵ５０は、ＲＡＭ５２にキャッシュされている画像データを、つぎの処理に備えて更新する。
【００６７】
ステップＳ３１：ＣＰＵ５０は、処理を終了するか否かを判定し、終了しない場合にはステップＳ２４に戻って同様の処理を繰り返し、それ以外の場合には処理を終了する。
【００６８】
つぎに、図１１を参照して、図８のステップＳ１８の詳細な処理について説明する。図６の処理が開始されると、以下のステップが実行される。
【００６９】
ステップＳ４０：ＣＰＵ５０は、画像ファイル７０にｅｘｉｆ情報７１ａが含まれている場合には当該ｅｘｉｆ情報７１ａを取得する。
【００７０】
ステップＳ４１：ＣＰＵ５０は、ｅｘｉｆ情報７１ａに画像方向情報が含まれている場合には当該情報を取得する。なお、画像方向情報とは、撮影時におけるディジタルカメラの角度（例えば、水平面からの角度）を示す情報であり、例えば、図３に示すディジタルカメラ３０の場合、画像の撮影時において、ジャイロセンサ４３から出力されるデータがｅｘｉｆ情報７１ａに格納される。
【００７１】
ステップＳ４２：ＣＰＵ５０は、ステップＳ４１において画像方向情報が取得できたか否かを判定し、取得できた場合にはもとの処理に復帰し、それ以外の場合にはステップＳ４３に進む。
【００７２】
ステップＳ４３：ＣＰＵ５０は、画像データから図１０を参照して、人物の顔に対応する肌色領域を検出する。
【００７３】
ステップＳ４４：ＣＰＵ５０は、画像データから目および口に対応する黒色領域を検出する。
【００７４】
ステップＳ４５：ＣＰＵ５０は、ステップＳ４３およびステップＳ４４の検出結果に基づき、黒色領域と肌色領域の位置関係に基づき、黒色領域を結ぶ三角形が頂点を上として配置されている場合（双方の目を結ぶ底辺が下向きに配置されている場合）には、図７（Ａ）に示すように天地が反転した状態で撮影されたと判定してステップＳ４６に進み、それ以外の場合にはもとの処理に復帰する。
【００７５】
ステップＳ４６：ＣＰＵ５０は、図７（Ａ）に示すように天地が反転した状態で撮影された画像データの天地を反転する処理を実行する。
【００７６】
つぎに、図１２を参照して、図９に示すステップＳ１９の顔特定処理の詳細について説明する。図１２に示す処理が開始されると、以下のステップが実行される。
【００７７】
ステップＳ５０：ＣＰＵ５０は、ステップＳ４１において画像方向情報を取得した場合にはステップＳ５１に進み、それ以外の場合にはステップＳ５２に進む。
【００７８】
ステップＳ５１：ＣＰＵ５０は、画像データを方向情報に示される角度に回転させる処理を実行する。なお、回転させる画像（顔の有無を検出する画像）としては、例えば、もとの画像データを所定の割合で間引きして縮小して得られるＱＶＧＡ（Quarter Video Graphics Array）サイズの画像とする。なお、処理の対象となる画像データの種類としては、例えば、Ｙ（輝度）成分画像を用いることができる。すなわち、画像データに顔領域が含まれているか否か検索する場合には、後述する白黒濃淡画像であるテンプレートとの類比を判断するので、検索対象となる画像データについても白黒濃淡画像である輝度成分であるＹ成分画像を利用する。
【００７９】
ステップＳ５２：ＣＰＵ５０は、図１３に示す顔特定処理を実行する。なお、この処理の詳細については後述する。
【００８０】
ステップＳ５３：ＣＰＵ５０は、画像データを−１３５度回転させる処理を実行する。なお、回転させる画像データとしては、前述のステップＳ５１の場合と同様に、もとの画像データを所定の割合で間引きして縮小して得られるＱＶＧＡサイズの画像とし、また、画像データの種類としては、Ｙ（輝度）成分画像を用いる。
【００８１】
ステップＳ５４：ＣＰＵ５０は、図１３に示す顔特定処理を実行する。なお、この処理の詳細については後述する。
【００８２】
ステップＳ５５：ステップＳ５４の処理により顔が特定されたか否かを判定し、特定された場合にはもとの処理に復帰し、それ以外の場合にはステップＳ５６に進む。
【００８３】
ステップＳ５６：ＣＰＵ５０は、画像データを＋５度だけ回転させる処理を実行し、ステップＳ５４に戻って同様の処理を繰り返す。
【００８４】
ステップＳ５７：ＣＰＵ５０は、画像データが＋１３５度回転したか否かを判定し、回転した場合にはもとの処理に復帰し、それ以外の場合にはステップＳ５４に戻って同様の処理を繰り返す。
【００８５】
以上の処理により、図７（Ｂ）に示すように、画像データが−１３５度から＋１３５度まで５度ずつ回転され、それぞれの角度において顔が特定される。
【００８６】
つぎに、図１３を参照して、図１２のステップＳ５２に示す顔特定処理の詳細について説明する。図１３に示す処理が開始されると、以下のステップが実行される。
【００８７】
ステップＳ６０：ＣＰＵ５０は、テンプレートを指定する変数ｎに値“１”を初期設定し、テンプレートの走査位置を指定する変数ｘ，ｙに値“０”をそれぞれ初期設定する。
【００８８】
ステップＳ６１：ＣＰＵ５０は、変数ｎによって指定される第ｎ番目のテンプレート（詳細は後述する）をＲＯＭ５１から選択する。第１回目の処理では、変数ｎには値“１”が設定されているので、第１番目のテンプレートが選択される。図４（Ａ）に示すように、テンプレートは顔の特徴点（目、鼻、口等）を含む画像であり、第１〜第５の順でそのサイズが小さくなっている。なお、テンプレートの画像の解像度が高い場合には、各個人の顔の特徴に影響を受けてマッチング処理の精度が低下するので、図４（Ｂ）に示すように、テンプレートにモザイク処理を施すことにより、各個人の特徴に影響を受けにくくしている。
【００８９】
ステップＳ６２：ＣＰＵ５０は、画像データからｘ，ｙを左上端とし、ステップＳ６１で選択したテンプレートに対応するサイズの領域を抽出する。なお、以下では、抽出された画像データを抽出画像データと称する。いまの例では、ｘ，ｙ＝０であり、第１のテンプレートが選択されているので、ｘ，ｙ＝０を左上端とし、第１のテンプレートと同じサイズの領域が抽出画像データとして抽出される。なお、回転によって画像が傾いている場合には、抽出画像データの一部が欠落しない範囲で、画像データを抽出する。
【００９０】
ステップＳ６３：ＣＰＵ５０は、ステップＳ６１において選択したテンプレートと、ステップＳ６２において抽出された抽出画像データとのマッチング処理を実行する。マッチング方法としては、例えば、抽出画像データと、テンプレートの各画素の差分の２乗を累積加算し、所定の閾値以下になった場合には、これらの類似性が高い（顔が含まれている）と判断することができる。なお、これ以外にも、例えば、ニューラルネットワークを利用することも可能である。その場合、例えば、入力層、中間層、および、出力層の３層構造を有するニューラルネットワークを利用し、入力層にテンプレートの画像を、例えば、位置等をずらしながら入力して学習を行い、十分に学習を積んだニューラルネットワークを用いてマッチング処理を行うことが可能である。
【００９１】
また、ニューラルネットワークではなく、例えば、ジェネティックアルゴリズム（遺伝的アルゴリズム）を用いてマッチング処理を行うことも可能である。例えば、テンプレートを原画像に重ねる際のパラメータとして、テンプレートの種類ｎ、左上端のｘ，ｙ座標を定義し、各固体の染色体をこれらのパラメータに基づいて決定し、マッチング率を固体の適応度とみなして個体集団を進化させることにより、最適な個体をマッチング処理の結果とすることができる。
【００９２】
ステップＳ６４：ＣＰＵ５０は、ステップＳ６３の処理の結果に基づいて、ステップＳ６２で抽出された抽出画像データに顔が含まれているか否かを判定し、含まれていると判定した場合にはステップＳ６５に進み、それ以外の場合にはステップＳ６６に進む。例えば、前述した差分の２乗を計算するマッチング処理の場合には、累積加算値が所定の閾値よりも小さい場合には顔が含まれていると判定する。
【００９３】
ステップＳ６５：ＣＰＵ５０は、顔が存在すると判定された領域の中心の座標をＲＡＭ５２に記憶する。なお、中心座標を求めるには、現在選択されているテンプレートのサイズの半分の長さを、現在のｘ，ｙ座標に加算すればよい。
【００９４】
ステップＳ６６：ＣＰＵ５０は、それまでの処理で合計して１０人分の顔を検出したか否かを判定し、１０人分の顔を検出した場合には処理を終了してもとの処理に復帰し、それ以外の場合にはステップＳ６７に進む。例えば、第１のテンプレートで、３人の顔が検出され、第３のテンプレートで７人の顔が検出された場合には処理を終了してもとの処理に復帰する。
【００９５】
ステップＳ６７：ＣＰＵ５０は、抽出画像データが抽出される領域が画像データの右端に到達したか否かを判定し、到達した場合にはステップＳ６９に進み、それ以外の場合にはステップＳ６８に進む。すなわち、本発明の実施の形態では、図５（Ａ）に示すように、画像データからテンプレートに対応した大きさの画像データを抽出し、図５（Ｂ）に示す順序で抽出を繰り返す。このとき、画像を抽出する領域が右端に到達した場合には、ステップＳ６９に進む。
【００９６】
ステップＳ６８：ＣＰＵ５０は、左上端のｘ座標に対してΔｘを加算する。なお、Δｘは、選択されているテンプレートのサイズに応じて最適な値を決定する。例えば、テンプレートのサイズが小さい場合にはΔｘの値を小さくし、サイズが大きい場合にはΔｘの値を大きくする。
【００９７】
ステップＳ６９：ＣＰＵ５０は、左上端のｙ座標に対してΔｙを加算する。なお、Δｙは、前述のΔｘの場合と同様に、テンプレートのサイズに応じて決定する。
【００９８】
ステップＳ７０：ＣＰＵ５０は、左上端のｘ座標を“０”に設定する。その結果、画像を抽出する領域が画像の左端に復帰する。
【００９９】
ステップＳ７１：ＣＰＵ５０は、所定のテンプレートについて、全領域に対する処理が完了したか否かを判定し、終了したと判断した場合にはステップＳ７２に進み、それ以外の場合にはステップＳ６２に戻って同様の処理を繰り返す。
【０１００】
ステップＳ７２：ＣＰＵ５０は、ｘ，ｙのそれぞれに対して値“０”を設定する。その結果、画像を抽出する領域が画像データの左上端にリセットされる。
【０１０１】
ステップＳ７３：ＣＰＵ５０は、テンプレートを選択するための変数ｎを“１”だけインクリメントする。いまの例では、変数ｎには初期値“１”が設定されているので、変数ｎの値はこの処理により“２”となる。その結果、ステップＳ６１の処理では第２のテンプレートが選択されることになる。
【０１０２】
ステップＳ７４：ＣＰＵ５０は、変数ｎの値がテンプレートの最大値を示す値Ｎよりも大きいか否かを判定し、大きい場合には処理を終了する。いまの例では、図４に示すように、Ｎ＝５であるので、ｎ＞５である場合には処理を終了してもとの処理に復帰し、それ以外の場合にはステップＳ６１に戻って同様の処理を繰り返す。
【０１０３】
以上に説明したように、本発明の実施の形態によれば、画像データを回転させながら顔領域が含まれているか判定する場合に、天地反転した角度およびその近傍の角度を処理の対象から除外するようにしたので、処理速度を向上させることが可能になる。
【０１０４】
なお、以上の実施の形態では、スタンドアロン型の印刷装置を例に挙げて説明を行ったが通常の印刷装置（パーソナルコンピュータと接続して使用するタイプの印刷装置）に対して本発明を適用することができる。また、図１４に示す、スキャナ装置、印刷装置、および、コピー装置が一体となったいわゆる複合型の印刷装置に対して本発明を適用することも可能である。
【０１０５】
図１４の例では、印刷装置２１１は、装置全体を覆うケース２１２と、印刷媒体としての印刷用紙を供給する給紙装置２１３と、紙媒体等に印刷された画像を読み取るスキャナ部２３０と、印刷用紙に対して印刷を行う印刷部（不図示）とを備える。
【０１０６】
ケース２１２は、略四角形状の箱体であり、上面にスキャナ部２３０が設けられており、また、前面中央部には、ＬＣＤ２１７と、各種操作ボタン２１８とを備える。ＬＣＤ２１７には、図１の場合と同様に、印刷装置２１１のメニュー機能、動作内容、動作状況、エラー内容などが表示され、操作ボタン２１８は、印刷装置２１１のメニュー選択等を行う時に押されるようになっている。
【０１０７】
ケース２１２は、前面下部に、排出口２１２ａを備え、印刷された印刷用紙が排出されるようになっている。また、ケース２１２の前面右側には、カードスロット２２１が設けられており、例えば、ディジタルカメラ３０等によって撮影された画像データを記録するメモリカードＭが、取り外し自在に収納されるようになっている。
【０１０８】
給紙装置２１３は、ケース２１２の背面側に設けられており、印刷用紙をストックするとともに、必要に応じて印刷装置２１１の内部に一枚ずつ供給する。
【０１０９】
図１５は、図１４に示す複合型の印刷装置２１０の制御系の構成例を示す図である。なお、この図において、図２の場合と対応する部分には同一の符号を付してその説明を省略する。図１５の例では、図２の場合と比較して、操作ボタン１８が操作ボタン２１８に置換され、また、スキャナ部２３０が新たに付加されている。なお、その他の構成は、図２の場合と同様である。
【０１１０】
ここで、操作ボタン２１８としては、スキャナ装置およびコピー装置を制御するためのボタンが新たに追加されている。スキャナ部２３０は、紙媒体に印刷されている画像を読み取るための光学系、撮像系、および、これらを制御するための制御系によって構成されており、ＣＰＵ５０の制御に応じて紙媒体に印刷された画像を読み取って、対応する画像データに変換して出力する。
【０１１１】
このような複合型の印刷装置２１１では、メモリカードＭから読み込んだ画像データに対して、前述したような処理を実行することにより、画像に含まれている顔に応じて補正処理を行うことが可能となる。
【０１１２】
なお、図１４に示す実施の形態では、メモリカードＭのみならず、スキャナ部２３０によって読み込まれた画像に含まれている顔に応じて、補正処理を実行することも可能である。しかしながら、その場合、原稿である写真等の置き方には制限がないことから、例えば、図７（Ａ）のように天地が逆転した状態で画像データが読み込まれることも想定される。したがって、図１４に示す実施の形態では、メモリカードＭから読み込まれた画像データについては、前述のように−１３５度〜＋１３５度の範囲で回転させて顔を検出するようにし、スキャナ部２３０から読み込まれた画像データについては、天地が逆転した状態も含めて、３６０度回転させて顔を検出するようにしてもよい。
【０１１３】
なお、以上の実施の形態は、一例であって、これ以外にも種々の変形実施態様が存在する。例えば、以上の実施の形態では、処理対象となる画像データを−１３５度〜＋１３５度の範囲で回転させるようにしたが、これ以外の角度であってもよい。例えば、−１２０度〜＋１２０度の範囲に設定することも可能である。要は、−９０度〜＋９０度を含む範囲であって、ある程度の余裕を有する範囲であればよい。
【０１１４】
また、以上の実施の形態では、画像を回転させる範囲については固定としたが、撮影者の癖を学習することにより、適切な範囲に設定することも可能である。例えば、図６（Ａ）および（Ｂ）の角度のみの使用が大半であって、図６（Ｃ）および図７（Ａ）の角度の使用がない場合には、例えば、−１３５度〜＋４５度の範囲で回転させるようにしてもよい。また、撮影者の癖として、カメラの傾きの範囲が狭い場合には、−１３５度〜＋１３５度の範囲ではなく、学習に基づいて適切な範囲（例えば、−１００度〜＋１００度の範囲）で回転させるようにすることも可能である。
【０１１５】
また、以上の実施の形態では、画像データ自体を回転させるようにしたが、画像データは固定とし、テンプレートの方を回転させるようにすることも可能である。その場合、テンプレートの方がデータ量が少ないので、回転に係る処理量を削減することにより、処理速度を向上させることができる。さらに、画像データを回転させる場合であっても、画像データ全体を回転させるのではなく、画像データから一部のデータを抽出し、当該抽出された画像データのみを回転させるようにすることも可能である。その場合、テンプレートよりも少しだけ大きい範囲（回転させた場合にテンプレートが含まれる範囲）を抽出するようにすれば、顔検出処理も問題なく実行することができるとともに、回転に係るデータの処理量を減少させることができる。
【０１１６】
また、以上の実施の形態では、画像データを＋５度ずつ増加させて顔領域を特定するようにしたが、これ以外の角度ずつ（例えば、＋２度ずつ）増加または減少させながら顔領域を検出してもよい。また、増加する角度については固定ではなく、顔領域が存在する蓋然性が高い範囲（例えば、０度、＋９０度、−９０度およびこれらの近傍の範囲）では、増加する角度を狭くし（例えば、＋３度とし）、それ以外の範囲では増加する角度を広くする（例えば、＋１０度）とするようにしてもよい。
【０１１７】
また、以上の実施の形態では、正面を向いた顔に対応するテンプレートを使用するようにしたが、例えば、上、下、右、および、左を向いたテンプレートを用いるようにしてもよい。その場合、正面と上、下、右、左の中間の段階のテンプレートを複数用意し、それぞれのテンプレートとのマッチング処理を実行してもよい。そのような実施の形態によれば、被写体の人物が正面以外の方向を向いている場合であっても、顔として認識される確率を向上させることができる。
【０１１８】
また、以上の実施の形態では、画像データの全ての範囲を検出処理の対象としたが、例えば、撮影者の癖に基づいて、人物の顔が存在する可能性が高い範囲について学習を行い、可能性が高い範囲を含む領域を抽出して前述の処理を実行するようにしてもよい。そのような方法によれば、最小限のコストで顔を発見することが可能になる。
【０１１９】
また、画像データに対して拡大および縮小処理を施すことによりノイズ成分を減少させ、認識精度を向上させることも可能である。すなわち、画像データを拡大および縮小することによりノイズ成分を平均化し、ノイズの影響を少なくするようにすることができる。
【０１２０】
また、以上の実施の形態では、テンプレートについてはモザイク処理を施すようにしたが、画像データについてもモザイク処理を施すようにしてもよい。
【０１２１】
また、以上の実施の形態では、ＹＣＣ方式の画像のＹ画像を利用して顔を検出するようにしたが、例えば、ＲＧＢ方式の画像から黒白濃淡画像を生成し、当該白黒濃淡画像から顔を検出することも可能である。
【０１２２】
また、以上の実施の形態では、顔の大きさに拘わらず、１０人検出した場合に、処理を終了するようにしたが、例えば、小さい顔については重要度が低いと考えることができることから、大きい顔が所定の個数見つかった場合には、処理を終了するようにしてもよい。そのような実施の形態によれば、処理速度を向上させることができる。また、それぞれの大きさについて、個数を定めておき、定められた個数の顔が検出された場合には処理を終了するようにしてもよい。例えば、第１のテンプレートでは１つ、第２のテンプレートでは２つ、といった具合である。そのような処理によれば、主な被写体と考えられる大きな顔が検出された場合には、迅速に処理を終了することにより、処理時間を短縮することができる。
【０１２３】
また、以上の実施の形態では、図５（Ｂ）に示す順序で顔を検出するようにしたが、例えば、顔が含まれている蓋然性が最も高い、画面の中央から外側に向かって、螺旋状に旋回しながら検出するようにしてもよい。なお、そのとき、画面の中央部分では、抽出範囲の移動ステップを小さくし、外側に行くほどステップを大きくするようにしてもよい。そのような実施の形態によれば、例えば、顔が存在する蓋然性に応じたステップで検出処理を実行することができる。また、前述の大きい顔が見つかった場合には処理を終了する実施の形態と併せて実施するようにすれば、処理速度を向上させることが可能になる。
【０１２４】
また、以上の実施の形態では、図８，１１〜１３に示す処理を、印刷装置１１または印刷装置２１１において実行するようにしたが、例えば、印刷装置１１または印刷装置２１１に接続されているホストコンピュータにおいて実行することも可能である。
【０１２５】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、画像処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disk）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disk ROM）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１２６】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１２７】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【０１２８】
【図１】本発明の実施の形態に係る印刷装置の構成例を示す図である。
【図２】図１に示す印刷装置の制御系の構成例を示す図である。
【図３】図１に示すディジタルカメラの構成例を示す図である。
【図４】顔検出処理において利用されるテンプレートを示す図である。
【図５】顔検出処理の流れを示す図である。
【図６】ディジタルカメラの角度と画像との関係を示す図である。
【図７】画像データの回転範囲を示す図である。
【図８】図１に示す印刷装置において実行される処理を説明する図である。
【図９】図１に示す印刷装置の印刷対象となるファイルを示す図である。
【図１０】顔色と光源との関係を示す図である。
【図１１】図８に示すステップＳ１８の処理の詳細を示す図である。
【図１２】図８に示すステップＳ１９の処理の詳細を示す図である。
【図１３】図８に示すステップＳ５２，Ｓ５３の処理の詳細を示す図である。
【図１４】複合型の印刷装置の外観を示す図である。
【図１５】複合型の印刷装置の制御系の構成例を示す図である。
【符号の説明】
【０１２９】
５０  ＣＰＵ（特定手段、調整手段、補正手段）、５１  ＲＯＭ、５２  ＲＡＭ、  ６２  プリンタエンジンコントローラ
【図１】
2006277275.tif 000003
【図２】
2006277275.tif 000004
【図３】
2006277275.tif 000005
【図４】
2006277275.tif 000006
【図５】
2006277275.tif 000007
【図６】
2006277275.tif 000008
【図７】
2006277275.tif 000009
【図８】
2006277275.tif 000010
【図９】
2006277275.tif 000011
【図１０】
2006277275.tif 000012
【図１１】
2006277275.tif 000013
【図１２】
2006277275.tif 000014
【図１３】
2006277275.tif 000015
【図１４】
2006277275.tif 000016
【図１５】
2006277275.tif 000017