(57)【特許請求の範囲】
【請求項１】
画像データに含まれる複数の部分領域に対して任意の評価を設定する設定手段と、
前記設定手段により第１の評価が設定された部分領域すべてを含む領域をトリミング枠として決定する決定手段と、
前記決定されたトリミング枠と、前記設定手段により第２の評価が設定された部分領域すべてを含む領域との重なりを検知する検知手段と、
前記決定されたトリミング枠と、前記第２の評価が設定された部分領域すべてを含む領域との重なりがあると検知された場合、警告を通知する通知手段を備えたことを特徴とする画像編集装置。
【請求項２】
前記決定されたトリミング枠と前記第２の評価が設定された部分領域すべてを含む領域との重なりがあると検知された場合、前記第１の評価が設定された複数の部分領域を複数のグループに分割する分割手段をさらに備え、
前記決定手段は、前記第１の評価が設定された複数の部分領域のうち、同じグループに属する部分領域すべてを含むようにトリミング枠を決定することを特徴とする請求項１に記載の画像編集装置。
【請求項３】
前記決定されたトリミング枠と前記第２の評価が設定された部分領域すべてを含む領域との重なりがないと検知された場合、前記トリミング枠に関する情報をメモリに保存するトリミング処理手段をさらに備えたことを特徴とする請求項１または２に記載の画像編集装置。
【請求項４】
前記画像データが複数、存在し、
前記通知手段は、前記決定されたトリミング枠と前記第２の評価が設定された部分領域すべてを含む領域との重なりがあると前記検知手段により検知された画像データを、表示パネルに一覧表示することを特徴とする請求項１乃至３のいずれか１項に記載の画像編集装置。
【請求項５】
前記画像データに含まれる前記部分領域の範囲をユーザの操作に応答して指定する指定手段をさらに備えたことを特徴とする請求項１乃至４のいずれか１項に記載の画像編集装置。
【請求項６】
前記設定手段は前記任意の評価をユーザの操作に応答して設定することを特徴とする請求項１乃至５のいずれか１項に記載の画像編集装置。
【請求項７】
画像データに含まれる複数の部分領域に対して任意の評価を設定するステップと、
第１の評価が設定された部分領域すべてを含む領域をトリミング枠として決定するステップと、
前記決定されたトリミング枠と、第２の評価が設定された部分領域すべてを含む領域との重なりを検知するステップと、
前記決定されたトリミング枠と、前記第２の評価が設定された部分領域すべてを含む領域との重なりがあると検知された場合、警告を通知するステップを備えたことを特徴とする画像編集装置の制御方法。
【請求項８】
コンピュータに、
画像データに含まれる複数の部分領域に対して任意の評価を設定するステップと、
第１の評価が設定された部分領域すべてを含む領域をトリミング枠として決定するステップと、
前記決定されたトリミング枠と、第２の評価が設定された部分領域すべてを含む領域との重なりを検知するステップと、
前記決定されたトリミング枠と、前記第２の評価が設定された部分領域すべてを含む領域との重なりがあると検知された場合、警告を通知するステップを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像のトリミング編集を実行する画像編集装置及びその制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、デジタルカメラで撮影した画像を印刷して複数の人に配布するということが一般的によく行われている。その際、ユーザはデジタルカメラを操作して、どの画像を何枚印刷するかをＤＰＯＦ（Ｄｉｇｉｔａｌ  Ｐｒｉｎｔ  Ｏｒｄｅｒ  Ｆｏｒｍａｔ）のような規格に則って記録メディアに記録することで、印刷指定を行うことができる。
【０００３】
また、画像を所望の印刷用紙の大きさに合せて印刷したい場合には、オペレータがマウスやキーボードを使って、プリントサイズに応じたアスペクト比のトリミング枠を２次元方向に動かしてトリミング領域を決定し、画像を切り出すことが行われている。（例えば特許文献１参照）。
【０００４】
また、操作者が画像上の所望の領域を指定し、その指定領域が画像に占める位置関係から構図を解析し、元々の画像の意図（構図）図にできるだけ合う形で指定領域を含む部分領域をトリミングすることが行われている。（例えば特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１７７８０２号公報
【特許文献２】特開２００５−０７８２９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された発明では、ユーザが手動でトリミング枠を移動するので、画像上の所望の領域がトリミング枠内に入るように細心の注意を払わなければならず、煩わしさが生じるという問題がある。
【０００７】
また、特許文献２に開示された発明では、撮影時の画像の意図（構図）に合わせて指定領域を含む部分領域をトリミングするので、印刷時にユーザが所望するようにトリミングされるとは限らないという問題がある。
【０００８】
本発明は上記問題点を鑑みてなされたものであり、ユーザが簡単な設定をするだけで、ユーザが所望する領域を含み、あるいは所望しない領域を含まずに画像を所望のサイズで自動的にトリミングすることを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本願発明の１つは、画像編集装置であって、画像データに含まれる複数の部分領域に対して任意の評価を設定する設定手段と、前記設定手段により第１の評価が設定された部分領域すべてを含む領域をトリミング枠として決定する決定手段と、前記決定されたトリミング枠と、前記設定手段により第２の評価が設定された部分領域すべてを含む領域との重なりを検知する検知手段と、前記決定されたトリミング枠と、前記第２の評価が設定された部分領域すべてを含む領域との重なりがあると検知された場合、警告を通知する通知手段を備えたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ユーザが簡単な設定をするだけで、ユーザが所望する領域を含み、あるいは所望しない領域を含まずに画像を所望のサイズで自動的にトリミングすることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態におけるデジタルカメラの概略構成を示すブロック図である。
【図２】本発明の一実施形態におけるデジタルカメラの背面部構成を示す図である。
【図３】本発明の一実施形態におけるデジタルカメラの上面部構成を示す図である。
【図４】本発明の一実施形態における画像編集システムの構成を示す図である。
【図５】本発明の一実施形態におけるトリミング編集の手順を示すフローチャート図である。
【図６】本発明の一実施形態における画像の一例である。
【図７】本発明の一実施形態における画像の一例である。
【図８】本発明の一実施形態における画像の一例である。
【図９】本発明の一実施形態における画像の一例である。
【図１０】本発明の一実施形態における画像の一例である。
【図１１】本発明の一実施形態における画像の一例である。
【図１２】本発明の一実施形態におけるトリミング位置を算出する方法を説明するための図である。
【図１３】本発明の一実施形態におけるトリミング位置を算出する方法を説明するための図である。
【図１４】本発明の一実施形態における部分領域をグループに分割する方法を説明するための図である。
【図１５】本発明の一実施形態における部分領域をグループに分割する方法を説明するための図である。
【図１６】本発明の一実施の形態における情報処理装置の構成を示す図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明を実施するための最良の形態を詳細に説明する。
【００１３】
（第１の実施形態）
本実施形態では、画像編集装置としてデジタルカメラを一例として用いることにより本発明を実現する場合について説明する。
【００１４】
図１はデジタルカメラ１００の回路構成を示すブロック図である。同図において、１０１は撮影レンズ、１０２は撮影レンズ１０１のズーム倍率の変更やフォーカス調節を行う撮影レンズ駆動部である。１０３は撮影レンズ１０１によって生成された被写体像を光電変換して電子的な画像データを生成する撮像素子である。１０４は撮像素子１０３で得た画像信号に所定の処理を施すことにより画像データを生成したり、画像データに対して表示したり編集したり保存するために変換する等の画像処理を行うデータ処理部である。１０５は画像データを一時的に記憶する一次メモリである。１０６は撮影レンズ１０１の撮影領域の被写体距離を測定する距離測定部である。１０７は画像データ等の情報を表示する表示部、１０８はデジタルカメラ１００の各種設定を行うための操作部である。１０９はデジタルカメラ１００の各種の動作の制御を行う中央演算素子（ＣＰＵ）、１１０は画像データおよび画像データに付随する情報などを保存する保存メモリである。保存メモリ１１０はデジタルカメラ１００から着脱可能な記録メディアも含む。
【００１５】
図２はデジタルカメラ１００の背面図であり、同図において、２０１は前述した表示部１０７に含まれ、たとえば表示パネルなどで構成される表示画面である。２０２は表示パネル２０１に表示されたカーソル等を上下左右に動かす、もしくは表示された画像の領域の位置を上下左右に動かして位置を指定するための十字キーである。２０６、２０７、２０８、２０９はそれぞれ上、下、左、右への移動を指示するボタンである。本実施形態では上下左右の位置を指定するボタンを個別に設けて説明しているが、１つのボタンで上下左右および斜めも含む自由な方向に位置を指定できるポインティングデバイスやマルチコントローラであっても良い。２０３はメニュー画面を表示パネル２０１に表示するもしくは非表示にするよう指示するためのメニューボタンである。２０４は表示パネル２０１に表示されたメニューや機能を選択する場合等、操作内容に応じて選択中の内容の決定を指示するためのセットボタンである。２１２は他の操作ボタンと組み合わせて用いることで機能指定を入力するためのファンクションボタンである。２０５はデジタルカメラの動作を切り替えるものであり、画像を撮影するための撮影モードと画像を再生表示するための再生モードのいずれかを選択するためのモード切替スイッチである。
【００１６】
図３は本実施形態に係るデジタルカメラ１００の上面図であり、同図において、３０１は電源スイッチである。３０２は画像を撮影するためのシャッターボタンである。３０３は図２におけるモード切替スイッチに応じてその機能が切り替わる多機能レバー（ズームレバーともいう。）である。多機能レバー３０３は、モード切替スイッチ２０５が撮影モードの場合は撮影される被写体の拡大や縮小を調整の指示を入力するためのものである。また、モード切替スイッチが再生モードの場合は、表示パネル２０１に表示される画像の拡大または縮小を調整し、さらに複数画像表示と一画像表示を切替える指示を入力するためのものである。本実施形態では表示画像の拡大または縮小の表示の調整を１つの多機能レバー３０３で実現するものとして説明しているが、これに限らず、縮小ボタンと拡大ボタンを個別に設けても良い。これら十字キー２０２、メニューボタン２０３、セットボタン２０４、モード切替スイッチ２０５、ファンクションボタン２１２、電源ボタン３０１、シャッターボタン３０２、多機能レバー３０３は図１の操作部１０８に含まれる。
【００１７】
次に、ユーザの操作にしたがい、デジタルカメラ１００において、画像に含まれる部分領域を指定し、その評価を示すフラグを設定する動作について説明する。なお、フラグの評価にはＯＫ（第１の評価）およびＮＧ（第２の評価）の２種類があるものとして説明する。
【００１８】
デジタルカメラ１００の電源ボタン３０１を押下してモード切替スイッチ２０５を再生モードにすると、表示パネル２０１には撮影日時が最新の画像が一つ表示される。多機能レバー３０３は引いても（回転させても）レバー自体が元に戻るような操作性を提供しているのでレバーを引く操作は繰り返し可能である。ここでは時計回りに引く（回転させる）方向を拡大方向、反時計回りに引く（回転させる）方向を縮小方向として説明する。画像が１つ表示パネル２０１に表示され多機能レバー３０３を拡大方向に操作すると、画像の一部の領域が、表示パネル２０１に拡大して表示される。拡大表示時に表示される部分領域の中心は、その拡大表示をする直前に表示していた画像の中心と同一である。多機能レバー３０３を１回操作するたびに拡大する率はあらかじめ定められた固定値である。さらに多機能レバー３０３を拡大方向に操作すると、上記一定の拡大率に基づいてさらに部分領域を拡大して表示パネル２０１に表示することができる。また、部分領域が表示パネル２０１に拡大表示されている状態で多機能レバー３０３を縮小方向に操作すると、拡大された状態から元の状態に戻って表示パネル２０１に表示される。したがって、ユーザは多機能レバー３０３を使って拡大や縮小を繰り返すことで、好みの拡大率で部分領域を表示パネル２０１に表示させることができる。また、表示パネル２０１に表示される部分領域の位置を移動したい場合は、ユーザは十字キー２０２を使用して操作する。上キー２０７、下キー２０９、左キー２０６および右キー２０８を押下することであらかじめ固定値として定められているグリッド間隔値の量だけ、表示画面に表示される部分領域の位置を移動することができる。
【００１９】
このように、デジタルカメラ１００は多機能レバー３０３の拡大方向または縮小方向への操作を受けて部分領域の範囲を指定し、十字キー２０２を押下する操作を受けて部分領域の位置を指定することができる。したがって、ユーザは画像を詳細に確認するために拡大表示するよう指示するのに続けて、その拡大された部分領域をフラグを付与する対象として指定することができる。
【００２０】
そして、拡大して表示されている画像の部分領域が、笑顔であったり、フォーカスが合っていたり、ユーザが狙ったとおりの撮影結果である場合など、ユーザが気に入ったものであれば、ユーザはフラグをＯＫとして設定するよう指示する。具体的にはユーザは、セットボタン２０４を押下して指示をデジタルカメラ１００に入力する。このセットボタン２０４を押下する操作を受けて、デジタルカメラ１００は現在表示されている画像の部分領域のフラグをＯＫに設定する。
【００２１】
一方、拡大して表示されている画像の部分領域が、目をつぶっていたり、ピンぼけであったり、ユーザの意図と異なる撮影結果である場合など、ユーザが気に入らなければ、ユーザはフラグに「ＮＧ」を設定するよう指示する。具体的には、ユーザはセットボタン２０４を押下して指示をデジタルカメラ１００に入力する。
【００２２】
そして、デジタルカメラ１００は以上のような操作によって設定された、部分領域の位置を示す座標およびフラグを、画像ファイルに関連づけて保存メモリ１１０に記憶しておく。
【００２３】
次に、デジタルカメラ１００が、画像ファイルに紐付けられた部分領域のフラグの内容にしたがって、画像に対してトリミング設定を行う動作を図５のフローチャート図を参照して説明する。本フローチャートは、ユーザの操作に応答して、表示パネル２０１に表示されたメニュー画面において「自動トリミング」が選択され、「印刷サイズ」が指定されると開始する。ここで、各印刷サイズはＬ判、２Ｌ判、Ａ４、Ａ３であり、それぞれ予め定められたアスペクト比の値を保持している。したがって印刷サイズを指定することはアスペクト比を指定することと同義である。
【００２４】
ステップＳ５００においてＣＰＵ１０９は画像ファイルに部分領域のＯＫを示すフラグが紐付けられているか否か判定する。
【００２５】
ステップＳ５００でＯＫフラグがあると判定された場合、ステップＳ５０１においてＣＰＵ１０９はＯＫを示すフラグが付与された部分領域を含む仮想矩形（以下、ＯＫ矩形という。）を生成し、中心位置を取得する。具体的には、図６に示すように画像データ６００の部分領域６０１、６０２、６０３にＯＫフラグが設定されている場合、部分領域６０１、６０２、６０３が全て収まるような仮想矩形６０５を作成し、その中心位置６０４を取得する。中心位置６０４の座標は以下のようにして求める。部分領域６０１、６０２、６０３の各座標は前述の通り位置情報として予め保存メモリ１１０に保存されている。これらの座標におけるＸ座標、Ｙ座標の中からそれぞれの最小値および最大値を取得する。そして、中心位置６０４の座標（Ｘ０，Ｙ０）は次の式で算出できる。
（数１）Ｘ０＝（Ｘ座標の最小値＋（Ｘ座標の最大値−Ｘ座標の最小値）／２）
（数２）Ｙ０＝（Ｙ座標の最小値＋（Ｙ座標の最大値−Ｙ座標の最小値）／２）
【００２６】
次にステップＳ５１２においてＣＰＵ１０９はＮＧを示すフラグが付与された部分領域があるか否か判定する。
【００２７】
ステップＳ５１２にてＮＧ領域がないと判定された場合、ステップＳ５０４の処理へ遷移する。
【００２８】
ステップＳ５１２にてＮＧの部分領域があると判定された場合、ステップＳ５０２においてＣＰＵ１０９はＮＧの部分領域を含む仮想矩形（以下、ＮＧ矩形という。）を生成し、中心位置を取得する。ＮＧ矩形の生成は、ＮＧの部分領域について、ステップＳ５０１でのＯＫ矩形の生成と同様の処理を実行することにより生成される。図１０では、ＮＧフラグが関連付けられた部分領域が１つなので、ＮＧ矩形１００１はＮＧ部分領域と一致する領域となる。なお、ＯＫ矩形１００５はＯＫフラグが付与された部分領域１００２および１００３を含む領域である。
【００２９】
ステップＳ５０３においてＣＰＵ１０９は、ステップＳ５０１で生成されたＯＫ矩形とステップＳ５０２で生成されたＮＧ矩形との重なりを検知する。ここでは、ＯＫ矩形およびＮＧ矩形それぞれのＸ座標やＹ座標の値を比較することにより重なりが求められる。
【００３０】
ステップＳ５０３にてＯＫ矩形とＮＧ矩形の重なりがあると検知された場合、ステップＳ５０９においてＣＰＵ１０９は警告を通知するためのダイアログを表示パネル２０１に表示し、一連の処理を終了する。なお、一連の処理を複数の画像ファイルについて連続して実行する場合に、トリミング処理を実行できなかった画像を表示パネル２０１に一覧表示し、ユーザに確認を促すようにしてもよい。
【００３１】
ステップＳ５０３にてＯＫ矩形とＮＧ矩形の重なりがないと検知された場合、ステップＳ５０４においてＣＰＵ１０９は、トリミング位置を決定し、トリミング位置情報として保存メモリ１１０に格納する。
【００３２】
例えば、図７に示すように、ＯＫ矩形６０５の中心位置６０４が、前もって指定されたアスペクト比のトリミング枠の中心位置と一致するようにして、トリミング位置７０７を決定する。あるいは、図１０に示すように、ＯＫ矩形１００５の中心位置１００４が、前もって指定されたアスペクト比のトリミング枠の中心位置と一致するようにして、トリミング位置１００７を決定する。
【００３３】
図１２および図１３は、ステップＳ５０１で生成されたＯＫ矩形の中心位置を基に、ステップＳ５０４においてＣＰＵ１０９がトリミング位置を算出する例を詳細に説明するための図である。
【００３４】
まず、トリミング枠が仮想矩形よりも縦長の場合を図１２を参照して説明する。ＣＰＵ１０９は、印刷サイズ等に対応付けて予め設定されたアスペクト比（＝Ａ）がＯＫ矩形のアスペクト比よりも小さい場合に、トリミング枠が仮想矩形よりも縦長であると判断し、以下のようにしてトリミング位置を求める。
【００３５】
図１２ではトリミング枠は実線で囲まれた矩形領域１２２１であり、ＯＫ矩形は点線で囲まれた矩形領域１２０５である。Ｐはトリミング枠１２２１の左上点１２０１と右上点１２０６とを結ぶ線分の長さであり、Ｑはトリミング枠１２２１の右上点１２０６と右下点１２０９とを結ぶ線分の長さである。Ｒは仮想矩形１２０５の左上点１２０２と右上点１２０７とを結ぶ線分の長さであり、Ｓは仮想矩形１２０５の右上点１２０７と右下点Ｐ１２０８とを結ぶ線分の長さである。すなわち、ＣＰＵ１０９は、１／Ａ≧Ｓ／Ｒである場合に、トリミング枠１２２１がＯＫ矩形１２０５よりも縦長であると判断し、トリミング位置のサイズであるＰおよびＱを以下の式で算出する。
（数３）Ｐ＝Ｒ
（数４）Ｑ＝Ｐ×（１／Ａ）＝Ｒ×（１／Ａ）
【００３６】
トリミング枠１２２１の右上点１２０６の座標を（Ｘ１，Ｙ１）とし、先に求めたＯＫ矩形１２０５の中心位置１２０４の座標を（Ｘ０，Ｙ０）とすると、トリミング枠１２２１の右上点１２０６の座標（Ｘ１，Ｙ１）は以下の式で求められる。
（数５）Ｘ１＝Ｘ０＋Ｒ／２
（数６）Ｙ１＝Ｙ０＋Ｑ／２＝Ｙ０＋Ｒ／２×（１／Ａ）
これらの値を参照して、トリミング枠１２２１の左上点１２０１、左下点１２１１、右下点１２０９の各座標も順に算出することができ、トリミング位置が決定される。
【００３７】
次に、トリミング枠が仮想矩形よりも横長の場合を図１３を参照して説明する。ＣＰＵ１０９は、印刷サイズ等に対応して予め設定されたアスペクト比（＝Ａ）がＯＫ矩形のアスペクト比以上である場合に、トリミング枠が仮想矩形よりも横長であると判断し、以下のようにしてトリミング位置を求める。
【００３８】
図１３ではトリミング枠は実線で囲まれた矩形領域１３２１であり、ＯＫ矩形は点線で囲まれた矩形領域１３０５である。Ｐはトリミング枠１３２１の左上点１３０１と右上点１３０６を結ぶ線分の長さであり、Ｑはトリミング枠１３２１の右上点１３０６と右下点１３０９を結ぶ線分の長さである。ＲはＯＫ矩形１３０５の左上点１３０２と右上点１３０７を結ぶ線分の長さであり、Ｓは仮想矩形１３０５の右上点１３０７と右下点１３０８を結ぶ線分の長さである。すなわち、ＣＰＵ１０９は、１／Ａ＜Ｓ／Ｒである場合に、トリミング枠１３２１がＯＫ矩形よりも横長であると判断し、トリミング位置のサイズであるＰおよびＱを以下の式で算出する。
（数７）Ｑ＝Ｓ
（数８）Ｐ＝Ｑ×Ａ＝Ｓ×Ａ
【００３９】
トリミング枠１３２１の右上点１３０６の座標を（Ｘ１，Ｙ１）とし、先に求めたＯＫ矩形１３０５の中心位置１３０４の座標を（Ｘ０，Ｙ０）とすると、トリミング枠１３２１の右上点１３０６の座標（Ｘ１，Ｙ１）は以下の式で求められる。
（数９）Ｘ１＝Ｘ０＋Ｐ／２＝Ｘ０＋Ｓ／２×Ａ
（数１０）Ｙ１＝Ｙ０＋Ｓ／２
これらの値を参照して、トリミング枠１３２１の左上点１３０１、左下点１３１１、右下点１３０９の各座標も順に算出することができ、トリミング位置が決定される。
【００４０】
なお、上記では、図１２および図１３のように仮想矩形が横長の場合で説明しているが縦長の場合も同様にしてトリミング位置を決定することが可能である。また、トリミング枠も横長として図示しているが、縦長であってもかまわないし、ユーザがどちらかを任意に設定できるようにしてもかまわない。
【００４１】
また、上記では、トリミング枠の縦辺または横辺のいずれか一方を、仮想矩形６０５の縦辺または横辺のどちらか一方に一致させた場合について説明しているが、トリミング枠と仮想矩形の間に余白を設けるようにしてもかまわない。
【００４２】
また、トリミング枠のアスペクト比をユーザが任意に選択できるようにしてもよい。さらに、選択したアスペクト比でのトリミングが不可能な場合にアスペクト比の変更を許可するか否かも選択ができるようにしてもよい。あるいは、横長優先や縦長優先などを予め設定できるようにしてもよい。例えば、横長優先で４対３のアスペクト比が設定されている場合に、トリミングが不可能であれば、縦長に４対３のアスペクト比のトリミングを行うこととなる。
【００４３】
次に、ステップＳ５０６においてＣＰＵ１０９は、ステップＳ５０４で決定したトリミング位置がステップＳ５０２で生成したＮＧ矩形１００１に重なるかどうかを検知する。ここでは、トリミング位置およびＮＧ矩形のそれぞれのＸ座標やＹ座標の値を比較することにより重なりの有無が検知される。
【００４４】
ステップＳ５０６にて重なりが検知されなかった場合、ステップＳ５０８においてＣＰＵ１０９は、トリミング位置が画像データの範囲外にあるか否かを判定する。図８はトリミング位置８０７の一部の領域８１０が画像データ８００の左端８１１より外にある状態を示す。
【００４５】
ステップＳ５０６にて重なりが検知された場合またはステップＳ５０８にてトリミング位置が画像データの範囲内にないと判定された場合、ステップＳ５０７においてＣＰＵ１０９はトリミング位置を移動する。ここで、トリミング位置の移動はユーザ操作による移動指示の入力に応答して行われる。そして、移動後のトリミング位置にしたがって、トリミング位置情報を更新して保存メモリ１１０に格納する。その後、ＣＰＵ１０９はステップＳ５０６に戻る。
【００４６】
例えば、図８に示すように画像データ８００の範囲外にあるトリミング位置８０７を、画像データ８００の範囲内に移動させた状態を図９のトリミング位置９０７に示す。また、図１０に示すようにＮＧ矩形１００１と重なっているトリミング位置１００７を、重ならないように移動させた状態を図１１のトリミング位置１１０７に示す。
【００４７】
ステップＳ５０８でトリミング位置が画像データの範囲内にあると判定された場合、ＣＰＵ１０９は一連の処理を終了する。
【００４８】
なお、ステップＳ５００でＯＫ領域がない、ステップＳ５１２でＮＧ領域があると判定された場合、ステップＳ５０４においてＣＰＵ１０９はＮＧ領域を含まず、所定のアスペクト比で最大面積を有するようにトリミング位置を決定する。
【００４９】
なお、ステップＳ５０７の移動処理を繰返した回数をカウントし、所定値を超えた場合には、警告メッセージを通知して終了するようにしてもよい。
【００５０】
なお、上記では、ＯＫ矩形はＯＫフラグが設定された複数の部分領域の全てを含む場合について説明したが、ＯＫフラグが設定された複数の部分領域のうちユーザが任意に選択した部分領域を含むようにしてもよい。
【００５１】
なお、上記では、ステップＳ５０７での移動処理はユーザの指示に応答して実行する場合について説明したが、自動的に行うようにしてもよい。例えば、ＣＰＵ１０９は、所定のアスペクト比を有し、ＮＧ矩形と重ならず、画像データの範囲内となるように座標を予め定められたルールにしたがって変更し、トリミング位置を決定するようにしてもよい。例えば、トリミング位置の左端（右端）がＮＧ矩形と重なる場合には、ＮＧ矩形の右端（左端）のＸ座標を求め、トリミング位置の左端（右端）のＸ座標が重ならない位置になるよう、トリミング位置全体のＸ座標をずらす。あるいは、例えば、トリミング位置の上端（下端）がＮＧ矩形の下端（上端）と重なる場合には、ＮＧ矩形の下端（上端）のＹ座標を求め、トリミング位置の上端（下端）のＸ座標が重ならない位置になるよう、トリミング位置全体のＹ座標をずらす。
【００５２】
なお、上記では、ステップＳ５０３でＯＫ矩形とＮＧ矩形とが重なると判定された場合にはトリミング処理を行わずに終了する場合について説明した。しかしながら、ＯＫ矩形とＮＧ矩形の重なり面積が所定の値より小さい場合には、一連の処理を終了せずに、ステップＳ５０４の処理を進めるようにしてもよい。
【００５３】
さらに、この場合、ステップＳ５０７での移動処理を自動的に行う際にも、トリミング位置とＮＧ矩形との重なり面積も所定値よりも小さくなるように決定されるようにしてもよい。
【００５４】
なお、ステップＳ５０３でＯＫ矩形とＮＧ矩形に重なりがあると判定された場合、ＯＫフラグの部分領域が複数ある場合には、いくつかの部分領域のグループに分割してＯＫ矩形を作成し、重なりをなくすようにしてトリミング位置を決定するようにしてもよい。以下、ＯＫ矩形を複数に分割する場合について図１４および図１５を参照して説明する。
【００５５】
図１４においてＯＫフラグが関連付けられた部分領域１４０１、１４０２、１４０３、１４０４を囲むＯＫ矩形を生成すると、ＮＧフラグの部分領域１４０８と重なりが生じる。
【００５６】
そこで、ＣＰＵ１０９は、図１４に示すように、部分領域１４０１と１４０２を囲むＯＫ矩形１４０６と、部分領域１４０３と１４０４を囲むＯＫ矩形１４０５のように分割された複数のＯＫ矩形を生成する。あるいは、図１５に示すように、部分領域１４０１を囲むＯＫ矩形１５０６と、部分領域１４０２、１４０３、１４０４を囲むＯＫ矩形１５０５を生成する。
【００５７】
図１４に示すような状態で、４つの部分領域を２つずつの組に分割する組み合わせは他に「１４０１と１４０３、１４０２と１４０４」「１４０１と１４０４、１４０２と１４０３」の２通りの組が存在する。しかし、ＮＧ矩形１４０８と重ならないＯＫ矩形を生成するための組み合わせは図１４に示す「１４０１と１４０２、１４０３と１４０４」の組だけである。図１５に示すような状態で、４つの部分領域を１つと３つの組に分割する組み合わせは他に「１４０２、１４０１と１４０３と１４０４」「１４０３、１４０１と１４０２と１４０４」「１４０４、１４０１と１４０２と１４０３」の３通りの組が存在する。しかし、ＮＧ矩形１４０８と重ならないＯＫ矩形を生成するための組み合わせは図１５に示す「１４０１、１４０２と１４０３と１４０４」の組だけである。
【００５８】
以上のようにして、ＣＰＵ１０９は、ＯＫ部分領域の全ての組み合わせからそれぞれのＯＫ矩形を求め、ＮＧ矩形との重なりを検知することにより、ＯＫ矩形を形成するためのＯＫ部分領域の適切な組み合わせを選択することができる。
【００５９】
また、ＯＫフラグの部分領域が５つの場合はＯＫフラグの部分領域３つのＯＫ矩形と２つのＯＫ矩形に分割するか、ＯＫフラグの部分領域４つのＯＫ矩形と１つのＯＫ矩形に分割することが考えられる。同様に整数ＮとするとＮ個のＯＫフラグの部分領域が存在する場合は以下の式で表わされる組が存在する。
（数１１）
Ｎが偶数の場合
Ｎ／２の商をＦとし、Ｋは整数と仮定すると、
「Ｆ個とＦ個」の組、「（Ｆ＋１）個と（Ｆ−１個）の組」・・・「（Ｆ＋Ｋ）個と（Ｆ−Ｋ）個」の組のようにＫ＝Ｆ−１となるまでＦ通りの組が存在する。
（数１２）
Ｎが奇数の場合
Ｎ／２の商をＦとし、Ｋは整数と仮定すると、
「（Ｆ＋１）個とＦ個」の組、「（Ｆ＋２）個と（Ｆ−１）個」の組・・・「（Ｆ＋Ｋ）個と（Ｆ−Ｋ＋１）」個の組のようにＫ＝Ｆ−１となるまで（Ｆ−１）通りの組が存在する。
【００６０】
ＣＰＵ１０９は、ＮＧ矩形と重ならないようなＯＫ矩形を生成するための組み合わせが複数通り存在する場合は、均等により近い個数を含む組み合わせを優先して選択する。例えば、図１５で示すようにＯＫフラグの部分領域を３つ含むＯＫ矩形と１つのＯＫ矩形に分割する場合よりも、図１４で示すようにＯＫフラグの部分領域を２つずつ含むＯＫ矩形の組み合わせを選択する。なお、上記の例ではＯＫ矩形を２つに分割する例を挙げているが３つ以上に分割してトリミングするようにしてもよい。
【００６１】
以上のようにして複数のＯＫ矩形を生成した後の手順は、それぞれのＯＫ矩形について図５のステップＳ５０４以降と同様の処理を順に実行することにより、グループ毎にトリミング位置を決定する。
【００６２】
（第２の実施形態）
本実施形態では画像編集装置として、第１の実施形態のデジタルカメラの代わりに、画像を管理するためのアプリケーションソフトウェアをインストールしたコンピュータ装置を用いて本願発明を実現する場合について説明する。以下、第１の実施形態と同様の部分については説明を省略し、本実施形態に特有の部分について詳細に説明する。
【００６３】
図４は、本実施形態に係る画像管理システムの概略を示すブロック図である。４０１は光学像を電気信号に変換し、所定の画像処理を施した後デジタル情報として記録可能な画像入力装置である。この画像入力装置４０１は、例えば静止画や動画を撮影し、画像データとして記録可能なデジタルカメラや、原稿を読み取って画像データとして出力可能なスキャナなどである。また、画像データを記憶した記憶媒体から画像データを読み出して出力可能な各種記憶媒体のドライバであってもよい。
【００６４】
４０２はパーソナルコンピュータ（ＰＣ）、４０３は画像入力装置４０１からＰＣ４０２へ、画像データを転送するためのデータ転送用インタフェース（Ｉ／Ｆ）である。データ転送用Ｉ／Ｆ４０３としては、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＩＥＥＥ１３９４に代表される有線インタフェースや、ＩｒＤＡ、Ｂｌｕｅｔｏｏｔｈ（登録商標）に代表される無線系インタフェースなどを用いることができる。
【００６５】
画像データは、画像入力装置４０１からデータ転送用Ｉ／Ｆ４０３を介してＰＣ４０２に転送され、ハードディスクドライブ（ＨＤＤ）に記憶される。ＰＣ４０２には、画像管理アプリケーションソフトウェアがインストールされており、これを起動することによって、ハードディスクに記憶された画像データに対して、その顔領域の評価を設定したり、保持したりすることができる。
【００６６】
図１６は、ＰＣ４０２を実現するための情報処理装置の構成を示すブロック図である。情報処理装置は、ＣＲＴディスプレイ１６０１、ＶＲＡＭ１６０２、ＢＭＵ１６０３、キーボード１６０４、ＰＤ１６０５、ＣＰＵ１６０６、ＲＯＭ１６０７、ＲＡＭ１６０８、ＨＤＤ１６０９、ＦＤＤ１６１０、ネットワークＩ／Ｆ１６１１を有する。
【００６７】
ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ１６０１には、画像や画像管理アプリケーションソフトウェアのメニュー画面が表示される。ディスプレイ１６０１は、第１の実施形態における表示部１０７と対応する。ＶＲＡＭ１６０２には、ディスプレイ１６０１に表示するための画像が描画される。このＶＲＡＭ１６０２に描画された画像は、所定の規定に従ってディスプレイ１６０１に転送され、これによりディスプレイ１６０１に画像が表示されることとなる。ＢＭＵ（ビットムーブユニット）１６０３は、メモリ間のデータ転送や、メモリと各Ｉ／Ｏデバイスとの間のデータ転送を制御する。キーボード１６０４は、ユーザの指示を入力するための各種キーを有する。ＰＤ（ポインティングデバイス）１６０５は、例えば、ディスプレイ１６０１に表示されたアイコンやメニュー画面の項目に対するユーザの指示を入力するために使用される。キーボード１６０４やＰＤ１６０５は第１の実施形態における十字キー２０２やメニューボタン２０３、セットボタン２０４、ファンクションボタン２１２、多機能レバー３０３と対応する。ＣＰＵ１６０６は、ＲＯＭ１６０７やＨＤＤ１６０９に格納された制御プログラムに基づいて、各デバイスを制御する。ＣＰＵ１６０６は第１の実施形態におけるＣＰＵ１０９と対応する。ＲＯＭ１６０７は、各種制御プログラムやデータを保存する。ＲＡＭ１６０８は、ＣＰＵ１６０６のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。ＨＤＤ１６０９は、オペレーティングシステム（ＯＳ）や画像管理アプリケーションソフトウェア、画像データなどを格納する。ＨＤＤ１６０９は第１の実施形態における保存メモリ１１０と対応する。ネットワークＩ／Ｆ１６１１は、他の情報処理装置やプリンタ等とネットワークを介して通信を行う。ＣＰＵバス１６１２は、アドレスバス、データバス及びコントロールバスを含む。ＣＰＵ１６０６に対する制御プログラムの提供は、ＲＯＭ１６０７、ＨＤＤ１６０９から行うこともできるし、ネットワークＩ／Ｆ１６１１を介してネットワーク経由で他の情報処理装置等から行うこともできる。
【００６８】
第１の実施形態において図５で示したフローは、ＰＣ４０２においてＣＰＵ１６０６がＯＳや画像管理アプリケーションソフトウェアを起動し、それらにしたがって動作することで実現できる。
【００６９】
なお、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施の形態の機能を実現するプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【００７０】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７１】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００７２】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【００７３】
更に、前述した実施の形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【符号の説明】
【００７４】
１００  デジタルカメラ
１０１  撮影レンズ
１０２  撮影レンズ駆動部
１０３  撮像素子
１０４  信号処理部
１０５  一次メモリ
１０６  距離測定部
１０７  表示部
１０８  操作部
１０９  ＣＰＵ
１１０  保存メモリ
【図１】
0005575173.tif 000002
【図２】
0005575173.tif 000003
【図３】
0005575173.tif 000004
【図４】
0005575173.tif 000005
【図５】
0005575173.tif 000006
【図６】
0005575173.tif 000007
【図７】
0005575173.tif 000008
【図８】
0005575173.tif 000009
【図９】
0005575173.tif 000010
【図１０】
0005575173.tif 000011
【図１１】
0005575173.tif 000012
【図１２】
0005575173.tif 000013
【図１３】
0005575173.tif 000014
【図１４】
0005575173.tif 000015
【図１５】
0005575173.tif 000016
【図１６】
0005575173.tif 000017