説明

自動画像クロッピング

【課題】ユーザにとって処理が容易になるクロッピング方法及び装置を提供する。
【解決手段】各々が少なくとも原画像の一部分に対応する複数のクロップの例を受信する。2つのクロップの例1450,1490は、少なくとも対象のクロップ領域の特性に基づいて選択される。選択されたクロップの例の間を補間してクロップウィンドウ1410を判定し、その判定されたクロップウィンドウを用いて原画像をクロップしてクロップされた画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアにより実現されるデジタル画像の自動クロッピング方法及び処理に関する。
【背景技術】
【0002】
デジタル画像は、多くの通信の形態で広く使用される。そのような画像が使用される媒体の例には、ポスター、雑誌、ニュースレター、フォトアルバム、招待状、ウェブページ及びその他多くのものが含まれる。ページ上に表示又は再生されるデジタル画像の位置及びサイズは、ページのレイアウトにより判定される。しかし、デジタル画像は、使用される殆どの状況の知識なしで作成されることが多い。
【0003】
画像は、画像の元の高さ又は幅と、画像が再生される際に必要な高さ又は幅との差異のために、レイアウトに正確に適合しないことがある。必要な範囲は、任意の高さ、幅及びアスペクト比であってもよい。多くの場合、画像は、レイアウトにより判定される範囲に適合するようにクロップされる必要がある。
【0004】
多くの場合、同一デジタル画像は種々の状況下で複数回にわたり再使用されるため、それに応じて種々のレイアウトに適合するように種々のサイズにクロップされる必要がある。また、設計者は、レイアウトを設計する過程において、随時レイアウト設計を調整する必要がある。レイアウトが調整されるたびに、画像は、いかなる新しい範囲が指定されても適合するように再クロップされる必要がある。
【0005】
ユーザは、デジタル画像を手動でクロップするために、コンピュータシステムの入力装置を使用してクロップの位置及びサイズを示す必要がある。同一画像を何度も繰り返し手動でクロップすることは、ユーザにとって時間がかかり、退屈で間違いが起きやすく且つ苛立つ体験である。自動画像クロッピング機能を提供するソフトウェアにより、必要なサイズのクロップウィンドウをデジタル画像中に自動的に位置付けられるようになり、ユーザにとって処理がより容易になる。
【0006】
ソフトウェアの中には、自動画像クロッピングに対して簡単な手法をとるものもある。簡単な手法の一例には、画像の主な対象は、通常、中央に位置付けられるという仮定に基づいて、クロップされるデジタル画像に対してクロップウィンドウを中央に置くことが含まれる。そのようなソフトウェアは、原画像における主な対象の実際の位置については無知である。クロップウィンドウを単に中央に位置付けることにより、人の顔半分をクロップする等、非常に望ましくないクロップを生成する可能性がある。
【0007】
より許容できるクロップを生成するために、自動画像クロッピングを行なうソフトウェアシステムは、主な対象の位置及びサイズ等、デジタル画像に取り込まれた対象に関するいくらかの知識を取り入れる必要がある。そのような情報は、ユーザ又はデジタル画像上で自動対象検出を実行するソフトウェアシステムのいずれか一方から得られる。
【0008】
そのような手法の1つにより、ユーザが指定する特定のアスペクト比のクロップウィンドウが提案される。提案されるクロップウィンドウは、全ての主な対象を含む最小の可能な矩形領域である主な対象領域の中央に位置付けられる。
【発明の概要】
【0009】
所定の対象のクロップ領域に対して原画像からクロップされた画像を生成する方法が開示される。方法は、各々が少なくとも原画像の一部分に対応する複数のクロップの例を受信する。2つのクロップの例は、少なくとも対象のクロップ領域の特性に基づいて選択される。方法は、選択されたクロップの例の間を補間してクロップウィンドウを判定し、判定されたクロップウィンドウを用いて原画像をクロップしてクロップされた画像を生成する。
【図面の簡単な説明】
【0010】
次に、以下の図面を参照して、本発明の少なくとも1つの実施形態を説明する。
【図1】説明される構成が実施される汎用コンピュータシステムを示す概略ブロック図。
【図2】デジタル画像及びデジタル画像と関連付けられる複数の文書を示す図。
【図3A】、
【図3B】2つのデジタル画像及び対応するクロップウィンドウを示す図。
【図4】画像クロッピング処理のストーリーボードを示す図。
【図5】デジタル画像をクロップする方法を概略的に示すフローチャート。
【図6】図5の方法で使用されるような1つ以上のクロップの例を選択する方法を概略的に示すフローチャート。
【図7a】、
【図7b】、
【図7c】デジタル画像及び3つの対象のクロップ領域と関連付けられる3組のクロップの例を示す図。
【図8】図5の方法において使用されるような1つ以上のクロップの例を選択する方法を概略的に示すフローチャート。
【図9a】、
【図9b】、
【図9c】図9aは、デジタル画像及び対象のクロップ領域と関連付けられる1組のクロップの例を示す図であり、図9b及び9Cは、デジタル画像と関連付けられる更なる2組のクロップの例を示す図。
【図10】図5の方法で使用されるようなクロップ対の例を補間する方法を概略的に示すフローチャート。
【図11】図5の方法で使用されるようなクロップ対の例を補間する方法を概略的に示すフローチャート。
【図12】デジタル画像及び関連するクロップの例を示し、図10の方法において使用されるような補間処理を例示する図。
【図13】デジタル画像及び関連するクロップの例を示し、図10の方法において使用されるような補間処理を更に例示する図。
【図14】デジタル画像及び関連するクロップの例を示し、図11の方法において使用されるような補間処理を更に例示する図である。
【発明を実施するための形態】
【0011】
ハードウェアプラットフォーム
説明される自動画像クロッピング方法及び構成は、図1に示すようなコンピュータシステム100を使用して実現されてもよい。図2から図14の処理は、コンピュータシステム100内で実行可能な1つ以上のアプリケーションプログラム等のソフトウェアとして実現されてもよい。特に、方法のステップは、コンピュータシステム100内で実行されるソフトウェアの命令により実行される。命令は、各々が1つ以上の特定のタスクを実行する1つ以上のコードモジュールとして形成されてもよい。ソフトウェアは2つの別個の部分に分割されてもよく、第1の部分及び対応するコードモジュールはクロッピング機能を実行し、第2の部分及び対応するコードモジュールは第1の部分とユーザとの間のユーザインタフェースを管理する。例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ可読記憶媒体に格納されてもよい。ソフトウェアは、コンピュータ可読記憶媒体からコンピュータシステム100にロードされ、コンピュータシステム100により実行される。そのようなソフトウェアを有するコンピュータ可読記憶媒体又はそれに記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム100はコンピュータプログラム製品を使用して、クロッピング画像を容易に処理できる装置であることが好ましい。
【0012】
図1から分かるように、コンピュータシステム100は、コンピュータモジュール101、キーボード102及びマウスポインタ装置103等の入力装置、並びにプリンタ115、表示装置114及びスピーカ117を含む出力装置により形成される。外部変復調器(モデム)トランシーバ装置116は、接続121を介して通信ネットワーク120と通信するためにコンピュータモジュール101により使用されてもよい。ネットワーク120は、インターネット又は専用の広域ネットワーク(WAN)等のWANであってもよい。接続121が電話線である場合、モデム116は従来の「ダイアルアップ」モデムであってもよい。或いは、接続121が大容量の(例えば、ケーブル)接続である場合、モデム116は広帯域モデムであってもよい。無線モデムは、ネットワーク120への無線接続のために使用されてもよい。
【0013】
コンピュータモジュール101は、通常、少なくとも1つのプロセッサユニット105と、例えば半導体ランダムアクセスメモリ(RAM)及び読み出し専用メモリ(ROM)から形成されるメモリユニット106とを含む。このモジュール101は、ビデオ表示装置114及びスピーカ117に接続されるオーディオビデオインタフェース107を含むいくつかの入出力(I/O)インタフェースと、キーボード102及びマウス103、並びにオプションとしてジョイスティック(不図示)用のI/Oインタフェース113と、外部モデム116及びプリンタ115用のインタフェース108とを更に含む。いくつかの実施例において、モデム116は、コンピュータモジュール101内、例えばインタフェース108内に組み込まれてもよい。コンピュータモジュール101は、ローカルエリアネットワーク(LAN)として周知であるローカルネットワークインタフェース111を更に有し、それにより、コンピュータシステム100は接続123を介してローカルコンピュータネットワーク122に接続される。更に例示されるように、ローカルネットワーク122は、接続124を介して広域ネットワーク120に接続されてもよく、通常、いわゆる「ファイアウォール」装置又は同様の機能性を含む。インタフェース111は、イーサネット(登録商標)回路カード、無線Bluetooth(商標)又はIEEE802.11無線構成により形成されてもよい。
【0014】
インタフェース108及び113は、直列の接続性及び並列の接続性の双方を提供してもよく、前者は、通常、ユニバーサルシリアルバス(USB)規格に従って実現され且つ対応するUSBコネクタ(不図示)を有する。記憶装置109が提供され、通常、ハードディスクドライブ(HDD)110を含む。フロッピー(登録商標)ディスク及び磁気テープ装置(不図示)等の他の装置が更に使用されてもよい。光ディスクドライブ112は、通常、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク(例えば、CD−ROM、DVD)、USB−RAM及びフロッピー(登録商標)ディスク等の携帯メモリ素子は、システム100への適当なデータのソースとして使用されてもよい。
【0015】
コンピュータモジュール101の構成要素105から113は、通常、相互接続バス104を介して通信し、結果として当業者には周知であるコンピュータシステム100の動作の従来のモードで通信する。説明する構成が実施されるコンピュータの例には、IBM−PC及び互換機、Sun Sparcstations、アップルマック(商標)又はそれらから進化した同様のコンピュータシステムが含まれる。
【0016】
通常、上述のアプリケーションプログラムは、ハードディスクドライブ110に常駐し、プロセッサ105により実行される際に読み出され且つ制御される。そのようなプログラム、並びにネットワーク120及び122から取り出される任意のデータの中間記憶領域は、半導体メモリ106を使用して、場合によってはハードディスクドライブ110と協働して達成されてもよい。いくつかの例において、アプリケーションプログラムは、1つ以上のCD−ROM上に符号化されてユーザに供給され、対応するドライブ112を介して読み出されてもよく、或いはネットワーク120又は122からユーザにより読み出されてもよい。更にソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム100にロードされてもよい。コンピュータ可読記憶媒体は、実行及び/又は処理のために命令及び/又はデータをコンピュータシステム100に提供することに関係する任意の記憶媒体を示す。コンピュータモジュール101に内蔵されるか又は外付けされるか否かに関わらず、そのような媒体の例には、フロッピー(登録商標)ディスク、磁気テープ、CD−ROM、ハードディスクドライブ、ROM又は集積回路、光磁気ディスク、或いはPCMCIAカード等のコンピュータ可読カードが含まれる。命令及び/又はデータの提供に更に関係してもよいコンピュータ可読送信媒体の例には、別のコンピュータ又はネットワーク化装置へのネットワーク接続に加え、無線又は赤外線送信チャネル、並びに電子メール送信及びウェブサイト上に記録された情報等を含むインターネット又はイントラネットが含まれる。
【0017】
アプリケーションプログラムの第2の部分及び上述の対応するコードモジュールは、表示装置114上にレンダリングされるか又は示される1つ以上のグラフィカルユーザインタフェース(GUI)を実現するように実行されてもよい。コンピュータシステム100及びアプリケーションのユーザは、キーボード102及びマウス103の操作を介してインタフェースを操作し、GUIと関連付けられるアプリケーションに制御コマンド及び/又は入力を提供してもよい。
自動画像クロッピング
次に、デジタル画像及びデジタル画像と関連付けられるメタデータを処理して、高さ及び幅のうち少なくとも1つ又はアスペクト比等、ユーザの指定した寸法を有するデジタル画像の適切なクロップを生成することを含む方法が開示される。簡単に言えば、クロッピングは、「クロップウィンドウ」として周知である画像の領域を選択することを含み、その内容は、対象のクロップ領域と呼ばれる割り当てられた領域のページ上に表示されることが望ましい。クロップウィンドウの外側の画像の領域は表示されない。
【0018】
図2は、種々の文書に対する異なる状況において画像又は画像のクロップが使用される方法のいくつかの仮定の例を示す図である。
【0019】
図2の中央にある例えばメモリユニット106に格納される元のデジタル画像210は、プロセッサ105により処理され、元のデジタル画像210のクロップ220を生成する。例示的な文書230は、クロップされた画像220の使用法を例示する。デジタル画像210の異なるクロップ240は、異なる例示的な文書270において示される。複数の他の例示的な文書250,260,280,290が示される。各文書は、異なるサイズのクロップ又は前記デジタル画像210のアスペクト比を含む。
【0020】
図2から分かるように、原画像210は2つの主要な対象460及び320を有し、ユーザは、通常、その一方又はその部分が画像210のクロップの焦点となることを要求する。例えば、文書230は対象460の全体のみを含み、文書290は対象460及び320の各々の一部分を別個に含み、文書250は全体の画像のクロップの内の元の位置において対象460及び320の全体を含む。
【0021】
クロップされた画像220の必要な高さ及び幅の寸法は、文書230のレイアウトにより判定される。同様に、クロップされた画像240の必要な高さ及び幅の寸法は、文書270のレイアウトにより判定される。
【0022】
画像の適切なクロップを判定することは、重要なタスクである。図3Aは、デジタル画像210の中心に任意に配置される第1のクロップウィンドウ310が望ましくない結果をもたらすことを示す図である。クロップされた画像310は対象320の顔半分を含み、顔の一部がクロップされる。これは、殆どの使用例において望ましくない。一方、図3Bに示される第2のクロップウィンドウ330は、ウィンドウ330が対象320の顔全体を含むため、多くの例において許容できるものとして考えられてもよい。
【0023】
しかし、コンピュータシステム100がクロップウィンドウをデジタル画像内のどこに配置するかに関して高度に判断するためには、システム100が画像の合成に関していくらかの知識を有する必要がある。そのような情報を得るためのいくつかの方法がある。一例には、画像中の主な対象の位置に関する情報を提供する自動対象検出システムの使用が含まれる。画像合成情報を得る別の方法は、オペレータ又はシステムのユーザ、或いは原画像210を取り込んだ使用者から入力を受信する方法である。設計者は、デジタル画像が上述のGUI内の表示装置114上に表示される場合に、キーボード102又はマウス103を使用してデジタル画像に印を付けることにより適切なクロップの例を提供できる。GUIから受信される情報は、コンピュータシステム100により処理され、自動画像クロッピングを実行する。
【0024】
以下に説明する構成は、画像合成情報を受信し、ユーザの要求に基づいて対象のクロップウィンドウの位置及びサイズを計算するために使用される1つ又は2つのクロップの例を選択する自動クロッピングシステムのための手段を提供する。
【0025】
図4は、クロップされた画像がレイアウトに適合するように、次に示す手法がデジタル画像をクロップするためにどのように使用されるかを例示する図である。この例において、対象のクロップ領域410は、画像210の4つのクロップの例420,430,440及び450と共に、画像210をクロップするために受信される。クロップの例は、ユーザにより実行されていてもよい。第1のクロップの例420は、男の子320の顔及びその周囲を含む。第2のクロップの例430は、男の子320の顔の大部分を含む。第3のクロップの例440は、男の子320の顔及び女の子である対象460全体を含む。第4のクロップの例450は、他の3つのクロップの例420,430及び440全てを完全に含む。この情報を受信することにより、本実施形態に係る自動クロッピング処理は、いくつかのクロップの例を選択し、選択されたクロップの例に基づいて計算してクロップウィンドウ470を生成する。クロップウィンドウ470内の画像領域は、対象の文書のレイアウト480と組み合わされて最終的な文書490を生成する。
【0026】
図5は、自動画像クロッピングの処理500を含む一連のステップを示す図である。処理500は、通常、本明細書では説明されないコンピュータシステム100内で実行可能な更なる機能性を有する文書レイアウトのサブモジュール又はパブリシングソフトウェアアプリケーションとして形成される。ステップ510において、デジタル画像は、図4の上部に示されるような画像と関連付けられる複数のクロップの例と共に、例えばHDD110からプロセッサ105により検索される。各クロップの例は、画像の許容できるクロップを示し、画像そのもの全体を含んでも含まなくてもよい。クロップの例は重なり合ってもよく、原画像において位置を示す値の集合として記憶装置109に格納されてもよい。一旦受信されたデジタル画像210及び関連付けられるクロップの例420から460は、処理対象のコンピュータシステム100のメモリ素子106にロードされる。クロップの例は、表示装置114、キーボード102及びマウスポインタ103により示されるGUIを操作する際にユーザにより作成されてもよい。クロップの例は、HDD110等のメモリから検索されてもよい。
【0027】
ステップ520において、ユーザの要求が受信される。このため、通常、表示装置114上に示されるGUIを介してキーボード102及びマウス103からユーザの入力を検出するプロセッサ105が必要となる。ユーザの要求には、対象のクロップ領域の高さ及び幅の寸法、対象のクロップ領域の好適なアスペクト比、許容される最小及び最大アスペクト比、並びに/又は許容される最小倍率及び最大倍率が含まれてもよい。
【0028】
ステップ530において、ステップ510において受信されるクロップの例は、プロセッサ105により実行されるアプリケーションにより検査及び解析される。1つ以上のクロップの例は、所定の選択基準及びステップ520で受信されたユーザの要求を適用することにより選択され、高さ、幅及びアスペクト比等、対象のクロップ領域の少なくとも1つの特性を含む。選択処理の詳細については、図6から図9において説明する。
【0029】
ステップ530に後続するステップ560において、プロセッサ105は、2つ以上のクロップの例が選択されたかのテストを行う。ステップ560において2つ以上のクロップの例が選択されたと判定される場合、プロセッサ105は、ステップ540において選択されたクロップの例の位置を補間することにより、クロップウィンドウのサイズ及び位置を判定する。補間処理の詳細については、図10から図14において説明する。
【0030】
ステップ530において厳密に1つのクロップの例が選択されたことがステップ560において判定される場合、選択されたクロップの例はクロップウィンドウとして使用され、ステップ550に続く。
【0031】
更にステップ550は、プロセッサ105がクロップウィンドウ内に画像を保持し且つクロップウィンドウの外側の画像領域を破棄することにより画像のクロップを生成するステップ540に後続する。クロップされた画像は、原画像210とは別個に、HDD110等のメモリに格納されてもよい。また、クロップされた画像は、表示装置114上に表示されてもよい。
高さ及び幅による選択
ステップ530において、所定の選択基準及びユーザの要求を適用することにより、1つ以上のクロップの例が選択される。図6及び図7は、選択処理の一例530A及び選択基準を更に詳細に説明する。
【0032】
図6において、処理530Aの場合、最初のステップ610では、各クロップの例の高さ及び幅の寸法を、対象のクロップ領域の高さ及び幅の寸法とそれぞれ比較する。クロップの例のうちの1つが対象のクロップ領域と同一の高さ及び幅を有することが判明した場合、そのクロップの例が選択される。ステップ660においてそのようなテストを行ない、対象のクロップ領域と同一の高さ又は幅を有するクロップの例が無い場合、次にステップ620が実行される。
【0033】
ステップ620において、同一の対象の組を含むクロップの入れ子対の例を見つけることを試みる。本実施例における入れ子対は、一方のクロップの例が他方のクロップの例を完全に含む必要があることを意味する。更に、1対のうち一方のクロップの例は、対象のクロップ領域以上の幅及び高さを有する必要があり、他方のクロップの例は、対象のクロップ領域以下の幅及び高さを有する必要がある。
【0034】
図7aは、画像210においてステップ620の基準を満たす入れ子クロップ対の例を示す図である。第1のクロップの例710及び第2のクロップの例720は、同一の対象の組、特に男の子320の顔を含む。第1のクロップの例710は、第2のクロップの例720を完全に含む。対象のクロップ領域730は、第1のクロップの例710の高さ及び幅を下回り且つ第2のクロップの例720を上回る高さ及び幅を有する。
【0035】
2対以上のクロップの例がステップ620において示された条件を満たす場合、最も大きい重なり合った領域を有する1対が補間のために選択される。別の実施例において、原画像及び関連付けられるクロップの例は、条件を満たすために必要であるため、変倍される。最大倍率及び最小倍率は、ステップ520において説明されたユーザの要求の一部として得られる。
【0036】
ステップ670においてステップ620の結果をテストし、基準に一致するクロップ対の例がステップ620において見つからない場合、次にステップ630が実行される。ステップ630において、同一の対象の組を含む重なり合ったクロップ対の例を見つけることを試みる。この条件において、対象のクロップ領域の高さは、一方のクロップの例の高さ以下であり且つ他方のクロップの例の高さ以上である。また、対象のクロップ領域の幅は、一方のクロップの例の幅以下であり且つ他方のクロップの例の幅以上である。図7bは、上記基準を満たすクロップ対の例を示す。
【0037】
図7bは、画像210の重なり合ったクロップ対の例740及び750を示す図である。第1のクロップの例740及び第2のクロップの例750は、同一の対象の組、即ち男の子320の顔を含む。第1のクロップの例740及び第2のクロップの例750は重なり合う。しかし、第2のクロップの例750は、第1のクロップの例740を完全に含まない。対応する対象のクロップ領域760は、第1のクロップの例740の幅を上回るが、第2のクロップの例750の幅を下回る幅を有し、且つ第1のクロップの例740の高さを上回るが第2のクロップの例750の高さを下回る高さを有する。
【0038】
2対以上のクロップの例がステップ630において示された条件を満たす場合、最も大きい重なり合った領域を有する1対が選択される。別の実施例において、原画像210及び関連付けられるクロップの例は、条件を満たすために再び変倍されることが可能である。最大倍率及び最小倍率は、ステップ520において説明されたユーザの要求の一部として得られる。
【0039】
ステップ630をテストするステップ680において、ステップ630の基準に一致するクロップ対の例が見つからない場合、プロセッサ105はステップ640を実行する。ステップ640において、少なくとも1つの共通の対象を含む重なり合ったクロップ対の例を見つけることを試みる。重なり合った対は、入れ子対であっても入れ子対でなくてもよい。更に、対象のクロップ領域の高さは、一方のクロップの例の高さ以下であり且つ他方のクロップの例の高さ以上である。また、対象のクロップ領域の幅は、一方のクロップの例の幅以下であり且つ他方のクロップの例の幅以上である。図7cは、上記基準を満たすクロップ対の例を示す。
【0040】
図7cは、画像210の重なり合ったクロップ対の例770及び780を示す図である。第1のクロップの例770及び第2のクロップの例780は、1つの共通の対象、即ち男の子320の顔を含む。しかし、第2のクロップの例780が2つの対象、即ち、男の子320の顔及び女の子460の全体を含む一方、第1のクロップの例770は1つの対象、即ち、男の320の顔のみを含む。2つのクロップの例770及び780は互いに重なり合う。対象のクロップ領域790は、第1のクロップの例770の幅を上回るが、第2のクロップの例780の幅を下回る幅を有する。対象のクロップ領域790は、第1のクロップの例770の高さを下回るが第2のクロップの例780の高さを上回る高さを有する。
【0041】
2対以上のクロップの例がステップ640において示された条件を満たす場合、最も大きい重なり合った領域を有する1対が選択される。別の実施例において、原画像210及び関連付けられるクロップの例は、条件を満たすために変倍されることが可能である。最大倍率及び最小倍率は、ステップ520において説明されたユーザの要求の一部として得られる。
【0042】
ステップ640において基準に一致するクロップ対の例が見つからなかったかどうかがステップ690において判定され、見つからなかった場合にはステップ650が実行される。
【0043】
ステップ650において、対象のクロップ領域に最も近いか又はほぼ同様の高さ又は幅を有する1つのクロップの例が容易に見つけられる。
【0044】
各テスト660,670,680及び690が満たされる(Yes)場合、ステップ650の後、制御は、処理530Aが終了するステップ699に移る。従って、処理530Aは、部分的に重なり合った基準の組を確立し、ユーザの要求に従って1つ或いはそれ以上のクロップの例を選択する。要求された場合、基準の順序は、図6に例示されたもの及び上述したものから変更されてもよい。
アスペクト比によるクロップの例の選択
図5のステップ530において、所定の選択基準及びユーザの要求を適用することにより、1つ或いはそれ以上のクロップの例が選択される。図8及び図9は、選択処理530Bの別の例について説明し、高さと幅の比として規定されるアスペクト比が対象のクロップ領域を指定するために使用される。
【0045】
処理530Bは、各クロップの例のアスペクト比を対象のクロップ領域のアスペクト比と比較するステップ810から開始する。クロップの例のうちの1つが対象のクロップ領域と同一のアスペクト比を有する場合、クロップの例はステップ860で選択され、処理530Bはステップ899で終了する。対象のクロップ領域と同一のアスペクト比を有するクロップの例が無いことがステップ860において判定される場合、次にステップ820が実行される。
【0046】
ステップ820において、同一の対象の組を含むクロップの入れ子対の例を見つけることを試みる。入れ子対は、一方のクロップの例が他方のクロップの例を完全に含む必要があることを意味する。更に、対のうち一方のクロップの例は、対象のクロップ領域を上回るアスペクト比を有する必要があり、他方のクロップの例は、対象のクロップ領域を下回るアスペクト比を有する必要がある。図9aは、上記基準を満たす入れ子クロップ対の例910及び920を示す図である。第1のクロップの例910及び第2のクロップの例920は、同一の対象の組、即ち、男の子320の顔を含む。第2のクロップの例920は、第1のクロップの例910を完全に含む。対象のクロップ領域930は、1対1のアスペクト比を有する。第1のクロップの例910は、対象のクロップ領域930を上回るアスペクト比を有する。第2のクロップの例920は、対象のクロップ領域930を下回るアスペクト比を有する。
【0047】
2対以上のクロップの例がステップ820において示された条件を満たす場合、最も大きい重なり合った領域を有する1対が選択される。
【0048】
ステップ870はステップ820をテストし、基準に一致するクロップ対の例を識別できないことが判定される場合、ステップ830が実行される。ステップ830において、プロセッサ105は、同一の対象の組を含む重なり合ったクロップ対の例を見つけることを試みる。また、対のうち一方のクロップの例は対象のクロップ領域を上回るアスペクト比を有する必要があり、他方のクロップの例は対象のクロップ領域を下回るアスペクト比を有する必要がある。図9bは、上記基準を満たす画像210のクロップ対の例940及び950を示す図である。第1のクロップの例940及び第2のクロップの例950は、同一の対象の組、即ち男の子320の顔を含む。2つのクロップの例940及び950は、互いに重なり合う。しかし、2つのクロップの例940及び950のどちらも他方を完全に含まない。第1のクロップの例940は、対象のクロップ領域930を下回るアスペクト比を有する。第2のクロップの例950は、対象のクロップ領域930を上回るアスペクト比を有する。
【0049】
2対以上のクロップの例がステップ830において示された条件を満たす場合、最も大きい重なり合った領域を有する1対が選択されることが望ましい。
【0050】
ステップ880はステップ830をテストし、基準に一致するクロップ対の例を識別できないことが判定される場合、ステップ840が実行される。ステップ840において、少なくとも1つの共通の対象を含む重なり合ったクロップ対の例を見つけることを試みる。重なり合った対は、入れ子対であっても入れ子対でなくてもよい。また、対のうち一方のクロップの例は、対象のクロップ領域を上回るアスペクト比を有する必要があり、他方のクロップの例は対象のクロップ領域を下回るアスペクト比を有する必要がある。図9cは、上記基準を満たす画像210のクロップ対の例970及び980を示す図である。第1のクロップの例970及び第2のクロップの例980は、1つの共通の対象、即ち男の子320の顔を含む。しかし、第2のクロップの例980が他方の対象460を含む一方、第1のクロップの例970は1つの対象320のみを含む。2つのクロップの例970及び980は、互いに重なり合う。第2のクロップの例980は、対象のクロップ領域930を下回るアスペクト比を有する。第1のクロップの例970は、対象のクロップ領域930を上回るアスペクト比を有する。
【0051】
2対以上のクロップの例がステップ840において示された条件を満たす場合、最も大きい重なり合った領域を有する1対が選択されることが望ましい。
【0052】
ステップ840において基準に一致するクロップ対の例が見つからなかったことがステップ890において判定されると、ステップ850が実行される。ステップ850において、対象のクロップ領域に最も近いか又はほぼ同様のアスペクト比を有するクロップの例を見つける。
【0053】
各テスト860,870,880及び890が満たされる(Yes)場合、ステップ850の後、ステップ899に進み、処理530Bは終了する。従って、処理530Bは、部分的に重なり合った基準の別の組を確立し、ユーザの要求に従って1つ以上のクロップの例を選択する。要求された場合、基準の順序は、図8に例示されたもの及び上述したものから変更されてもよい。
補間処理
クロップ対の例がステップ530において選択されると、ステップ540において、選択されたクロップの例の位置を補間することにより、対象のクロップウィンドウの位置を判定する。図10及び図11は、補間処理540を更に詳細に説明するフローチャートを示す。
【0054】
図10は、一実施例に従って2つのクロップの例の間を補間する一連のステップを示し、ユーザの要求により、対象のクロップ領域の高さ及び幅が指定される。
【0055】
ステップ1010において、選択されたクロップの例の横方向の位置を補間することにより、クロップウィンドウの横方向の位置を判定する。クロップウィンドウは、クロップの例の左端に対する左端の位置が右端の相対的な位置と同一であるように配置される。これは、図12を参照して以下に更に説明される。
【0056】
ステップ1020において、選択されたクロップの例の縦方向の位置を補間することにより、対象のクロップウィンドウの縦方向の位置を判定する。クロップウィンドウは、クロップの例の上端に対する上端の位置が下端の相対的な位置と同一であるように配置される。これは、図13を参照して以下に更に説明される。
【0057】
クロップウィンドウの最終的な位置は、ステップ1010において判定された横方向の位置及びステップ1020において判定された縦方向の位置により形成される。
【0058】
別の実施例において、図11に示された補間処理は、クロップウィンドウの位置を判定するだけでなく、クロップウィンドウのサイズも判定する。これは、選択されたクロップの例の角を4つの線分を使用して接続する第1のステップ1110により達成される。線分のうちの1つは2つのクロップの例の左上角を接続し、別の線分は右上角を接続し、更に別の線分は左下角を接続し、最後の線分は右下角を接続する。ステップ1120において、クロップウィンドウは、その四つの角がステップ1110において見つけられた4つの線分上に位置し且つ高さ対幅の比がユーザの指定したアスペクト比と同一であるように位置付けられ且つサイズが調整される。これは、図14を参照して更に説明される。
高さ及び幅による補間
図10の処理において、2つの矩形のクロップの例の横方向の位置及び縦方向の位置は、個別に補間される。
【0059】
図12は、対象のクロップ領域1250が幅E1290を有すると仮定して、画像210の第1のクロップの例1210及び第2のクロップの例1220の横方向の位置を補間する方法の一例を示す図である。幅E1290を有するクロップウィンドウの横方向の位置は、以下の式を満たすように判定される:
(C/A)=(D/B)
ここで、C1270は、第2のクロップの例1220の左端とクロップウィンドウの左端との間の距離である。A1260は、クロップの例1210及び1220の2つの左端間の距離である。D1230は、第2のクロップの例1220の右端とクロップウィンドウの右端との間の距離である。そしてB1240は、クロップの例1210及び1220の2つの右端間の距離である。
【0060】
同様に、図13に示されるように、クロップウィンドウの縦方向の位置は、第1のクロップの例1210及び第2のクロップの例1220の縦方向の位置を補間することにより判定される。対象のクロップ領域1360が高さL1350を有すると仮定して、同一の高さL1350を有するクロップウィンドウは、以下の式を満たすように2つのクロップの例1210と1220との間に位置付けられる:
(G/H)=(J/K)
ここで、G1320は、第2のクロップの例1220の上端とクロップウィンドウの上端との間の距離である。H1310は、クロップの例1210及び1220の2つの上端間の距離である。J1340は、第2のクロップの例1220の下端とクロップウィンドウの下端との間の距離である。そしてK1330は、クロップの例1210及び1220の2つの下端間の距離である。
【0061】
2つの矩形のクロップの例の横方向の位置及び縦方向の位置を個別に補間して、クロップウィンドウに対する横方向の位置及び縦方向の位置を生成した後、クロップウィンドウの最終的な位置は、横方向の座標及び縦方向の座標を合成したものとして解釈される。
アスペクト比による補間
図14は、互いに異なるアスペクト比を有する2つのクロップの例の間を補間して、ユーザの指定したアスペクト比を有するクロップウィンドウの位置を判定する方法を示す図である。ユーザの指定した対象の領域がアスペクト比ARを有すると仮定して、画像1400の2つのクロップの例1450及び1490は、一方のクロップの例1450が対象のアスペクト比ARを下回るアスペクト比を有し、且つ他方のクロップの例1490が対象のアスペクト比ARを上回るアスペクト比を有するように選択される。
【0062】
アスペクト比ARを有するクロップウィンドウ1410は、以下となるように変倍され且つ位置付けられる:
・左上の角1455が、2つのクロップの例1450及び1490の左上の角1445及び1465を接続する線分上に配置される;
・右上の角1430が、2つのクロップの例1450及び1490の右上の角1440及び1420を接続する線分上に配置される;
・左下の角1425が、2つのクロップの例1450及び1490の左下の角1435及び1415を接続する線分上に配置される;
・右下の角1470が、2つのクロップの例1450及び1490の右下の角1460及び1480を接続する線分上に配置される。
【0063】
上述の変倍及び位置決めにより、アスペクト比ARを有する対象のクロップ領域と実質的に同様のアスペクト比を有する補間されたクロップウィンドウ1410が得られる。
【0064】
図14の構成から、クロップウィンドウ1410のアスペクト比ARは、クロップウィンドウの例1450及び1490の各々のアスペクト比ARの間である必要があることが理解される。そうでない場合、適切なクロップウィンドウは、所望のアスペクト比ARに最も近いアスペクト比を有するクロップの例に基づいて計算される。別の実施例において、クロップの例からの外挿は、クロップウィンドウの範囲を判定するために使用されてもよい。しかし、外挿を使用する結果、原画像の範囲内に適合しないクロップウィンドウが得られる可能性があるため、更なる変倍が必要になる。
【産業上の利用可能性】
【0065】
上記構成はコンピュータ及びデータ処理産業に適用可能であり、特に文書レイアウトのための画像の支援又は自動クロッピングに対して適用可能である。
【0066】
上記では、本発明のいくつかの実施形態についてのみ説明した。実施形態は例示するものであって限定するものではなく、本発明の範囲及び趣旨から逸脱せずに変形及び/又は変更がなされてもよい。

【特許請求の範囲】
【請求項1】
対象のクロップ領域に対して原画像からクロップされた画像を生成する、コンピュータにより実行される方法であって、
(a)各々が少なくとも前記原画像の一部分に対応する複数のクロップの例を受信するステップと、
(b)少なくとも前記対象のクロップ領域の特性に基づいて2つのクロップの例を選択するステップと、
(c)クロップウィンドウを判定するために、前記選択されたクロップの例の間を補間するステップと、
(d)前記クロップされた画像を生成するために、前記判定されたクロップウィンドウを用いて前記原画像をクロップするステップと、
を有することを特徴とする方法。
【請求項2】
少なくとも1つの選択されたクロップの例が、別の選択されたクロップの例内に入れ子されることを特徴とする請求項1に記載の方法。
【請求項3】
前記選択されたクロップの例は、互いに異なるアスペクト比を有し、前記原画像の共通の部分に対応することを特徴とする請求項1に記載の方法。
【請求項4】
前記2つのクロップの例を選択するステップは、
(ba)前記対象のクロップ領域の少なくとも1つの寸法をそれぞれ上回る寸法を有する第1のクロップの例を選択するサブステップと、
(bb)前記対象のクロップ領域の少なくとも1つの寸法をそれぞれ下回る寸法を有する第2のクロップの例を選択するサブステップとを有することを特徴とする請求項1に記載の方法。
【請求項5】
前記2つのクロップの例を選択するステップは、
(ba)前記対象のクロップ領域のアスペクト比を上回るアスペクト比を有する第1のクロップの例を選択するサブステップと、
(bb)前記対象のクロップ領域のアスペクト比を下回るアスペクト比を有する第2のクロップの例を選択するサブステップとを有することを特徴とする請求項1に記載の方法。
【請求項6】
前記クロップウィンドウを判定するステップは、
前記選択されたクロップの例の前記少なくとも1つの横方向の位置及び縦方向の位置のそれぞれを補間することにより、前記対象の領域の少なくとも1つの横方向の位置及び縦方向の位置を判定するサブステップを含むことを特徴とする請求項1に記載の方法。
【請求項7】
前記クロップウィンドウを判定するステップは、
前記対象のクロップ領域の前記アスペクト比と実質的に同様のアスペクト比を有するクロップウィンドウを生成するために、前記選択されたクロップの例の間を補間するサブステップを含むことを特徴とする請求項1に記載の方法。
【請求項8】
(e)前記クロップされた画像をコンピュータ可読記憶媒体に格納するステップを更に有することを特徴とする請求項1に記載の方法。
【請求項9】
前記格納するステップは、前記クロップされた画像を文書に配置すること、及び前記文書を前記コンピュータ可読媒体に格納することを含むことを特徴とする請求項8に記載の方法。
【請求項10】
対象のクロップ領域に対して原画像からクロップされた画像を生成するようにコンピュータ装置により実行可能なコンピュータプログラムを記録したコンピュータ可読記憶媒体であって、前記プログラムは、
各々が少なくとも前記原画像の一部分に対応する複数のクロップの例を受信するコードと、
少なくとも前記対象のクロップ領域の特性に基づいて2つのクロップの例を選択するコードと、
クロップウィンドウを判定するために、前記選択されたクロップの例の間を補間するコードと、
前記クロップされた画像を生成するために、前記判定されたクロップウィンドウを用いて前記原画像をクロップするコードと、
を有することを特徴とするコンピュータ可読記憶媒体。
【請求項11】
少なくとも1つの選択されたクロップの例が別の選択されたクロップの例内に入れ子にされるか、
前記選択されたクロップの例が、異なるアスペクト比を有し、前記原画像の共通する部分に対応することを特徴とする請求項10に記載のコンピュータ可読記憶媒体。
【請求項12】
前記2つのクロップの例を選択するコードは、
前記対象のクロップ領域の少なくとも1つの寸法をそれぞれ上回る寸法を有する第1のクロップの例を選択するコードと、
前記対象のクロップ領域の少なくとも1つの寸法をそれぞれ下回る寸法を有する第2のクロップの例を選択するコードとを有することを特徴とする請求項10に記載のコンピュータ可読記憶媒体。
【請求項13】
前記2つのクロップの例を選択するコードは、
前記対象のクロップ領域の前記アスペクト比を上回るアスペクト比を有する第1のクロップの例を選択するコードと、
前記対象のクロップ領域の前記アスペクト比を下回るアスペクト比を有する第2のクロップの例を選択するコードとを含むことを特徴とする請求項10に記載のコンピュータ可読記憶媒体。
【請求項14】
前記クロップウィンドウを判定するコードは、
(i)前記選択されたクロップの例の前記少なくとも1つの横方向の位置及び縦方向の位置のそれぞれを補間することにより、前記対象の領域の少なくとも1つの横方向の位置及び縦方向の位置を判定するコードと、
(ii)前記対象のクロップ領域の前記アスペクト比と実質的に同様のアスペクト比を有するクロップウィンドウを生成するために、前記選択されたクロップの例の間を補間するコードのうちの少なくとも1つを含むことを特徴とする請求項10に記載のコンピュータ可読記憶媒体。
【請求項15】
前記クロップされた画像をコンピュータ可読記憶媒体に格納するコードを更に有することを特徴とする請求項10に記載のコンピュータ可読記憶媒体。
【請求項16】
前記プログラムが前記クロップされた画像を生成するように前記コンピュータ装置内で実行可能である請求項10に記載のコンピュータ可読記憶媒体を有するコンピュータ装置。
【請求項17】
対象のクロップ領域に対して原画像からクロップされた画像を生成するように構成されたコンピュータ装置であって、
各々が少なくとも前記原画像の一部分に対応する複数のクロップの例をメモリから受信する手段と、
少なくとも前記対象のクロップ領域の特性に基づいて2つのクロップの例を選択する手段と、
クロップウィンドウを判定するために、前記選択されたクロップの例の間を補間する手段と、
前記クロップされた画像を生成するために、前記判定されたクロップウィンドウを用いて前記原画像をクロップする手段と、
を有することを特徴とするコンピュータ装置。
【請求項18】
前記各々の手段が実行され、プロセッサにより、前記クロップされた画像が表示装置上に表示されるか、又は前記メモリに格納される出力手段を更に有することを特徴とする請求項17に記載のコンピュータ装置。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7a】
image rotate

【図7b】
image rotate

【図7c】
image rotate

【図8】
image rotate

【図9a】
image rotate

【図9b】
image rotate

【図9c】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−160790(P2010−160790A)
【公開日】平成22年7月22日(2010.7.22)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−279792(P2009−279792)
【出願日】平成21年12月9日(2009.12.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】