画像処理装置、画像処理装置の制御方法、プログラム、及び情報記憶媒体
【課題】対象画像の特徴部分を人間に選択させることなく、対象画像の特徴部分が含まれるようなトリミング画像を取得することが可能な画像処理装置を提供すること。
【解決手段】設定部(50)は対象画像内に複数のトリミング候補領域を設定する。算出部(52)は、複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する。決定部(54)は、複数のトリミング候補領域の各々の上記合計値に基づいて、複数のトリミング候補領域のうちからトリミング領域を決定する。取得部(56)はトリミング領域内の画像を取得する。
【解決手段】設定部(50)は対象画像内に複数のトリミング候補領域を設定する。算出部(52)は、複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する。決定部(54)は、複数のトリミング候補領域の各々の上記合計値に基づいて、複数のトリミング候補領域のうちからトリミング領域を決定する。取得部(56)はトリミング領域内の画像を取得する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置、画像処理装置の制御方法、プログラム、及び情報記憶媒体に関する。
【背景技術】
【0002】
複数の画像を並べて表示するインタフェースを採用したWebサービスが知られている。例えば、ユーザから投稿された料理の画像をレシピとともに公開するサービスや、ユーザから投稿された自動車の画像を公開するサービス等が知られている。
【0003】
上記のようなサービスにおいて複数の画像を並べて表示する場合には、元の画像の一部をトリミングすることによって作成されるサムネイル画像が用いられることが多い。従来、このようなサムネイル画像の作成は主に手動で行われていたが、近年、大量の画像を取り扱うWebサービスが増えてきており、大量の画像のサムネイル画像を効率的に生成するための技術が強く望まれている。
【0004】
上記のような技術としては、例えば、予め決められた固定位置でトリミングを行うことによって画像からサムネイル画像を自動的に生成する技術が知られている。
【0005】
また例えば、特許文献1には、ユーザが選択したキー被写体が中心に位置するようなトリミング画像を得られるようなトリミングを行うことが開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−289706号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
画像からサムネイル画像を生成する場合には、元の画像の特徴部分がサムネイル画像に含まれているのが望ましい。しかしながら、予め定められた固定位置でトリミングを行うことによって画像からサムネイル画像を作成する場合には、元の画像の内容に関係なく、予め定められた固定位置でトリミングが行われるため、元の画像の特徴部分がサムネイル画像に含まれない場合があり、望ましいサムネイル画像を得ることができない場合があった。また、特許文献1に記載された技術によれば、キー被写体が中心に位置しているようなトリミング画像を得ることができるが、特許文献1に記載された技術の場合、人間がキー被写体を選択しなければならなかった。
【0008】
本発明は上記課題に鑑みてなされたものであって、その目的は、対象画像の特徴部分を人間に選択させることなく、対象画像の特徴部分が含まれるようなトリミング画像を取得することが可能な画像処理装置、画像処理装置の制御方法、プログラム、及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明に係る画像処理装置は、対象画像内に複数のトリミング候補領域を設定する設定手段と、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段と、前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段と、前記トリミング領域内の画像を取得する取得手段と、を含むことを特徴とする。
【0010】
また、本発明に係る画像処理装置の制御方法は、対象画像内に複数のトリミング候補領域を設定する設定ステップと、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出ステップと、前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定ステップと、前記トリミング領域内の画像を取得する取得ステップと、を含むことを特徴とする。
【0011】
また、本発明に係るプログラムは、対象画像内に複数のトリミング候補領域を設定する設定手段、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段、前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段、及び、前記トリミング領域内の画像を取得する取得手段、としてコンピュータを機能させるためのプログラムである。
【0012】
また、本発明に係る情報記憶媒体は、対象画像内に複数のトリミング候補領域を設定する設定手段、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段、前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段、及び、前記トリミング領域内の画像を取得する取得手段、としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
【0013】
また、本発明の一態様では、前記決定手段は、前記複数のトリミング候補領域のうちで、前記合計値が最大であるトリミング候補領域を前記トリミング領域として決定する手段を含むようにしてもよい。
【0014】
また、本発明の一態様では、前記複数のトリミング候補領域の各々について、該トリミング候補領域の前記合計値を、該トリミング候補領域の少なくとも一つの境界部分の画素のエッジ量の合計値で除することによって得られる除算値又はその逆数を算出する第2算出手段を含み、前記決定手段は、前記複数のトリミング候補領域の各々の前記除算値又は前記逆数に基づいて、前記複数のトリミング候補領域のうちから前記トリミング領域を決定するようにしてもよい。
【0015】
また、本発明の一態様では、前記決定手段は、前記複数のトリミング候補領域のうちで、前記除算値が最大であるトリミング候補領域、又は前記逆数が最小であるトリミング候補領域を前記トリミング領域として決定する手段を含むようにしてもよい。
【0016】
また、本発明の一態様では、前記複数のトリミング候補領域の各々について、該トリミング候補領域の第1境界部分の画素のエッジ量の合計値を第1合計値として算出する手段と、前記複数のトリミング候補領域の各々について、該トリミング候補領域の、前記第1境界部分に対向する第2境界部分の画素のエッジ量の合計値を第2合計値として算出する手段と、を含み、前記第2算出手段は、前記複数のトリミング候補領域の各々について、該トリミング候補領域の前記合計値を、該トリミング候補領域の前記第1合計値及び前記2合計値のうちの大きい方で除することによって得られる除算値又はその逆数を算出するようにしてもよい。
【0017】
また、本発明の一態様では、前記算出手段は、前記トリミング候補領域内の画素のエッジ量の合計値として、前記トリミング候補領域内の画素のエッジ量の重み付き合計値を算出し、前記算出手段は、前記トリミング候補領域の中央部分の画素のエッジ量の重みを、前記トリミング候補領域の境界部分の画素のエッジ量の重みよりも高く設定するようにしてもよい。
【0018】
また、本発明の一態様では、前記エッジ量は、前記画素と該画素の周辺画素との間の輝度の差に関する量であってもよい。
【0019】
また、本発明の一態様では、前記エッジ量は、前記画素と該画素の周辺画素との間の色相の差に関する量であってもよい。
【0020】
また、本発明の一態様では、前記トリミング領域の画像の端から、基準量以上の前記エッジ量を有する画素が存在しない部分を取り除く手段を含むようにしてもよい。
【0021】
また、本発明の一態様では、前記複数のトリミング候補領域のうちから前記トリミング領域を決定するための複数種類のトリミング領域決定処理の各々に、画像のエッジ量の分布パターンに関する分布パターン情報を関連付けてなる関連付けデータを記憶する手段と、前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを、前記対象画像のエッジ量の分布パターンに関連づけられたトリミング領域決定処理によって実行するようにしてもよい。
【0022】
また、本発明の一態様では、前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを前記複数種類のトリミング領域決定処理の各々によって実行することによって、前記複数種類のトリミング領域決定処理にそれぞれ対応する複数のトリミング領域を決定する手段を含み、前記画像処理装置は、前記複数のトリミング領域の画像を表示手段に表示させる表示制御手段と、ユーザによる前記複数のトリミング領域の画像のうちの少なくとも1つの選択を受け付ける受付手段と、前記ユーザの選択結果に基づいて前記関連付けデータを更新する更新手段と、をさらに含むようにしてもよい。
【0023】
また、本発明の一態様では、前記画像処理装置は、前記複数のトリミング候補領域のうちから前記トリミング領域を決定するための複数種類のトリミング領域決定処理の各々に、画像のエッジ量の分布パターンに関する分布パターン情報を関連付けてなる関連付けデータを記憶する手段をさらに含み、前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを前記複数種類のトリミング領域決定処理の各々によって実行することによって、前記複数種類のトリミング領域決定処理にそれぞれ対応する複数のトリミング領域を決定する手段を含み、前記画像処理装置は、前記複数のトリミング領域の画像を表示手段に表示させる表示制御手段と、ユーザによる前記複数のトリミング領域の画像のうちの少なくとも1つの選択を受け付ける受付手段と、を含み、前記表示制御手段は、前記複数のトリミング領域の画像のうちの、前記対象画像のエッジ量の分布パターンに関連付けられたトリミング領域決定処理に対応するトリミング領域の画像を優先表示又は区別表示するようにしてもよい。
【0024】
また、本発明の一態様では、前記ユーザの選択結果に基づいて前記関連付けデータを更新する更新手段を含むようにしてもよい。
【0025】
また、本発明の一態様では、前記複数種類のトリミング領域決定処理は、前記複数のトリミング候補領域のうちで、前記合計値が最大であるトリミング候補領域を前記トリミング領域として決定するトリミング領域決定処理と、前記複数のトリミング候補領域のうちで、前記合計値を、該トリミング候補領域の少なくとも一つの境界部分の画素のエッジ量の合計値で除することによって得られる除算値が最大であるトリミング候補領域を前記トリミング領域として決定するトリミング領域決定処理と、を含むようにしてもよい。
【0026】
また、本発明の一態様では、前記算出手段は、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素の第1エッジ量の合計値を第1合計値として算出する第1算出手段と、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素の第2エッジ量の合計値を第2合計値として算出する第2算出手段と、を含み、前記第1エッジ量は、前記画素と該画素の周辺画素との間の色相の差に関する量であり、前記第2エッジ量は、前記画素と該画素の周辺画素との間の輝度の差に関する量であり、前記複数種類のトリミング領域決定処理は、前記複数のトリミング候補領域の各々の前記第1合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定するトリミング領域決定処理と、前記複数のトリミング候補領域の各々の前記第2合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定するトリミング領域決定処理と、を含むようにしてもよい。
【0027】
また、本発明の一態様では、前記設定手段は、前記対象画像内の一部領域をトリミング候補領域として設定し、前記トリミング候補領域を前記対象画像内で縦又は/及び横に移動させることによって、前記複数のトリミング候補領域を設定するようにしてもよい。
【発明の効果】
【0028】
本発明によれば、対象画像の特徴部分を人間に選択させることなく、対象画像の特徴部分が含まれるようなトリミング画像を取得することが可能になる。
【図面の簡単な説明】
【0029】
【図1】本発明の実施形態に係る画像処理装置のハードウェア構成の一例を示す図である。
【図2】料理画像の一例を示す図である。
【図3】料理画像の他の一例を示す図である。
【図4】トリミング画像の一例を示す図である。
【図5】トリミング画像の他の一例を示す図である。
【図6】料理画像の画素について説明するための図である。
【図7】画像処理装置の機能ブロック図である。
【図8】トリミング候補領域について説明するための図である。
【図9】トリミング候補領域について説明するための図である。
【図10】トリミング領域決定部について説明するための図である。
【図11】トリミング領域決定部について説明するための図である。
【図12】画像処理装置で実行される処理の一例を示すフロー図である。
【図13】画像処理装置で実行される処理の一例を示すフロー図である。
【図14】トリミング候補領域の境界部分について説明するための図である。
【図15】トリミング候補領域の境界部分について説明するための図である。
【図16】複数種類のトリミング領域決定処理について説明するための図である。
【図17】トリミング画像選択画面の一例を示す図である。
【図18】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図19】トリミング領域決定処理データの一例を示す図である。
【図20】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図21】選択結果データの一例を示す図である。
【図22】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図23】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図24】トリミング候補領域の他の一例を示すフロー図である。
【図25】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図26】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図27】トリミング画像取得部について説明するための図である。
【発明を実施するための形態】
【0030】
以下、本発明の実施形態の例について図面に基づき詳細に説明する。
【0031】
[第1実施形態]まず、本発明の第1実施形態について説明する。本発明の第1実施形態に係る画像処理装置は、例えばデスクトップ型コンピュータ、ラップトップ型コンピュータ、タブレット型コンピュータ、又はサーバコンピュータ等によって実現される。図1は、第1実施形態に係る画像処理装置10のハードウェア構成の一例を示す。
【0032】
図1に示すように、画像処理装置10は制御部11、記憶部12、光ディスクドライブ部13、通信インタフェース部14、操作部15、表示部16、及び音声出力部17を含む。
【0033】
制御部11は例えば1又は複数のマイクロプロセッサを含み、記憶部12に記憶されたオペレーティングシステム又はプログラムに従って情報処理を実行する。記憶部12は例えばRAM、ハードディスク、又はソリッドステートドライブを含む。光ディスクドライブ部13は、光ディスク(情報記憶媒体)に記憶されたプログラムやデータを読み取る。
【0034】
プログラムやデータは光ディスクを介して記憶部12に供給される。すなわち、プログラムやデータが記憶された光ディスクが光ディスクドライブ部13に装着され、プログラムやデータが光ディスクドライブ部13によって光ディスクから読み出され、記憶部12に記憶される。なお、光ディスクドライブ部13は必須の構成要素ではない。光ディスク以外の情報記憶媒体(例えばメモリカード)に記憶されたプログラム又はデータを読み取るための構成要素が光ディスクドライブ部13の代わりに含まれるようにしてもよい。そして、光ディスク以外の情報記憶媒体を介してプログラムやデータが記憶部12に供給されるようにしてもよい。
【0035】
通信インタフェース部14は画像処理装置10を通信ネットワークに接続するためのインタフェースである。画像処理装置10は通信ネットワークを介して他の装置(例えばサーバ等)とデータを授受できるようになっている。なお、プログラム及びデータが通信ネットワークを介して記憶部12に供給されるようにしてもよい。
【0036】
操作部15はユーザが操作を行うためのものである。例えば、キーボード、タッチパッド、マウス、タッチパネル、又はスティック(レバー)等が操作部15に相当する。表示部16は例えば液晶表示ディスプレイ等であり、音声出力部17は例えばスピーカ又はヘッドホン端子等である。
【0037】
画像処理装置10はデータベース20にアクセスできるようになっている。データベース20は、画像処理装置10以外の装置(例えばサーバ)において実現されていてもよいし、画像処理装置10において実現されていてもよい。
【0038】
データベース20には画像が記憶される。例えば、図示しないWebサーバによって提供されるサービスによって公開される画像がデータベース20に記憶される。例えば、投稿者によって投稿された料理画像を公開するサービスが提供される場合には、投稿者によって投稿された料理画像がデータベース20に記憶される。また例えば、投稿者によって投稿された自動車画像を公開するサービスが提供される場合には、投稿者によって投稿された自動車画像がデータベース20に記憶される。
【0039】
なお、以下では、投稿者によって投稿された料理画像がデータベース20に記憶されることとして説明する。図2及び図3はデータベース20に記憶される料理画像の例を示す。図2に示す料理画像30は、縦辺の長さ(画素数)が横辺の長さ(画素数)よりも長い縦長の画像になっている。一方、図3に示す料理画像30は、横辺の長さが縦辺の長さよりも長い横長の画像になっている。
【0040】
以下、投稿者によって投稿された料理画像30のうちの一部をトリミングすることによって該料理画像30のトリミング画像(サムネイル画像)を生成するための技術について説明する。特に、以下では、料理画像30の特徴部分を人間に選択させることなく、料理画像30の特徴部分が含まれるようなトリミング画像を生成するための技術について説明する。
【0041】
なお、以下では、一辺の長さが料理画像の短辺の長さと等しい正方形のトリミング画像を料理画像30から生成する場合について説明する。図4は、図2に示す料理画像30のトリミング画像の一例を示し、図5は、図3に示す料理画像30のトリミング画像の一例を示す。図4に示すトリミング画像40の各辺の長さは、図2に示す料理画像30の横辺の長さ(w)と等しくなっている。一方、図5に示すトリミング画像40の各辺の長さは、図3に示す料理画像30の縦辺の長さ(h)と等しくなっている。
【0042】
また、以下では、図6に示すように、料理画像30の左上画素を原点とし、右方向をX軸正方向とし、下方向をY軸正方向とした座標系によって、料理画像30の各画素を(x,y)のように表す。例えば、料理画像30の左上画素を(0,0)と記載し、右上画素を(w−1,0)と記載する。また例えば、料理画像30の左下画素を(0,h−1)と記載し、右下画素を(w−1,h−1)と記載する。
【0043】
図7は、第1実施形態に係る画像処理装置10において実現される機能ブロックのうち、本発明に関連する機能ブロックを示す機能ブロック図である。図7に示すように、画像処理装置10はトリミング候補領域設定部50、算出部52、トリミング領域決定部54、及びトリミング画像取得部56を含む。
【0044】
トリミング候補領域設定部50は、対象画像内に複数のトリミング候補領域を設定する。「対象画像」とは、トリミング処理の対象となる画像であり、本実施形態の場合、投稿者によって投稿された料理画像30が「対象画像」に相当する。
【0045】
図8及び図9はトリミング候補領域について説明するための図である。トリミング候補領域60の大きさは、生成しようとするトリミング画像40の大きさと同じ大きさに設定される。例えば、一辺の長さが料理画像30(対象画像)の短辺の長さと等しい正方形画像を料理画像30のトリミング画像40として生成する場合には、トリミング候補領域60は、一辺の長さが料理画像30の短辺の長さと等しい正方形領域に設定される。
【0046】
例えば、料理画像30が縦長の画像である場合、図8に示すように、トリミング候補領域60は、一辺の長さが料理画像30の横辺の長さ(w)と等しい正方形領域となる。一方、料理画像30が横長の画像である場合、図9に示すように、トリミング候補領域60は、一辺の長さが料理画像30の縦辺の長さ(h)と等しい正方形領域となる。
【0047】
トリミング候補領域設定部50は、料理画像30内の一部領域をトリミング候補領域60として設定し、トリミング候補領域60を料理画像30内で縦又は/及び横に移動させることによって、複数のトリミング候補領域60を設定する。
【0048】
例えば、料理画像30が縦長の画像である場合、図8に示すように、トリミング候補領域設定部50は、トリミング候補領域60の左上画素が料理画像30の左上画素と一致するようにして、トリミング候補領域60の初期位置を設定する(図8(A)参照)。言い換えれば、トリミング候補領域設定部50は、トリミング候補領域60の上側境界線62Uが料理画像30の上辺32Uと一致するようにして、トリミング候補領域60の初期位置を設定する。
【0049】
そして、トリミング候補領域設定部50はトリミング候補領域60を料理画像30内で下方に1画素移動させる(図8(B)参照)。さらに、トリミング候補領域設定部50はトリミング候補領域60を料理画像30内で下方に1画素移動させる(図8(C)参照)。このようにして、トリミング候補領域設定部50は、トリミング候補領域60の下側境界線62Dが料理画像30の下辺32Dと一致するまで、トリミング候補領域60を料理画像30内で下方に1画素ずつ移動させる(図8(D)参照)。トリミング候補領域60の下側境界線62Dが料理画像30の下辺32Dと一致した場合、トリミング候補領域60の左上画素は料理画像30の画素(0,h−w−1)に一致することになる。
【0050】
なお、トリミング候補領域設定部50は、トリミング候補領域60の左下画素が料理画像30の左下画素と一致するようにして、トリミング候補領域60の初期位置を設定するようにしてもよい。言い換えれば、トリミング候補領域設定部50は、トリミング候補領域60の下側境界線62Dが料理画像30の下辺32Dと一致するようにして、トリミング候補領域60の初期位置を設定するようにしてもよい。そして、トリミング候補領域設定部50は、トリミング候補領域60の上側境界線62Uが料理画像30の上辺32Uと一致するまで、トリミング候補領域60を料理画像30内で上方に1画素ずつ移動させるようにしてもよい。
【0051】
一方、料理画像30が横長の画像である場合、図9に示すように、トリミング候補領域設定部50は、トリミング候補領域60の左上画素が料理画像30の左上画素と一致するようにして、トリミング候補領域60の初期位置を設定する(図9(A)参照)。言い換えれば、トリミング候補領域設定部50は、トリミング候補領域60の左側境界線62Lが料理画像30の左辺32Lと一致するようにして、トリミング候補領域60の初期位置を設定する。
【0052】
そして、トリミング候補領域設定部50はトリミング候補領域60を料理画像30内で右方に1画素移動させる(図9(B)参照)。さらに、トリミング候補領域設定部50はトリミング候補領域60を料理画像30内で右方に1画素移動させる(図9(C)参照)。このようにして、トリミング候補領域設定部50は、トリミング候補領域60の右側境界線62Rが料理画像30の右辺32Rと一致するまで、トリミング候補領域60を料理画像30内で右方に1画素ずつ移動させる(図9(D)参照)。なお、トリミング候補領域60の右側境界線62Rが料理画像30の右辺32Rと一致した場合、トリミング候補領域60の左上画素は料理画像30の画素(w−h−1,0)に一致することになる。
【0053】
なお、トリミング候補領域設定部50は、トリミング候補領域60の右上画素が料理画像30の右上画素と一致するようにして、トリミング候補領域60の初期位置を設定するようにしてもよい。言い換えれば、トリミング候補領域設定部50は、トリミング候補領域60の右側境界線62Rが料理画像30の右辺32Rと一致するようにして、トリミング候補領域60の初期位置を設定するようにしてもよい。そして、トリミング候補領域設定部50は、トリミング候補領域60の左側境界線62Lが料理画像30の左辺32Lと一致するまで、トリミング候補領域60を料理画像30内で左方に1画素ずつ移動させるようにしてもよい。
【0054】
算出部52は、複数のトリミング候補領域60の各々について、該トリミング候補領域60内の画素のエッジ量の合計値を算出する。ここで、「エッジ」とは、対象画像中で色が変化する度合いのことを意味しており、「画素のエッジ量」とは、画素と該画素の周辺画素との間の色相の差に関する量である。
【0055】
画素のエッジ量を算出するための手法としては公知の手法を用いることができる。例えば、Sobelフィルタを用いることができる。画素(x,y)における画素値をIx,yとした場合、画素(x,y)のエッジ量Sx,yは下記の式(1)〜(3)によって算出される。
【0056】
【数1】
【0057】
なお、各画素の画素値Iは、各画素のRGB値をYCBCR値に変換することによって取得される。RGB値からYCBCR値への変換は下記の式(4)によって行われる。また、ここでは、画素と該画素の周辺画素との間の色相の差に関する量を「画素のエッジ量」として用いるため、各画素のCB,CR値に基づいて各画素の画素値Iが算出される。例えば下記の式(5)によって各画素の画素値Iが算出される。
【0058】
【数2】
【0059】
以上のようにして算出された料理画像30(対象画像)の各画素のエッジ量Sに基づいて、算出部52は、トリミング候補領域60内の画素のエッジ量Sの合計値Tを算出する。例えば、料理画像30が縦長の画像である場合、トリミング候補領域60の左上画素が(0,i)であるとすると、上記合計値Tは下記の式(6)によって算出される。一方、料理画像30が横長の画像である場合、トリミング候補領域60の左上画素が(i,0)であるとすると、上記合計値Tは下記の式(7)によって算出される。
【0060】
【数3】
【0061】
トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記合計値Tに基づいて、該複数のトリミング候補領域60のうちからトリミング領域を決定する。
【0062】
例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちで、上記合計値Tが最大であるトリミング候補領域60をトリミング領域として決定する。図10及び図11はトリミング領域決定部54について説明するための図である。図10及び図11では、各トリミング候補領域60の上記合計値Tを各トリミング候補領域60の位置に対応づけて表している。
【0063】
図10は、料理画像30(対象画像)が縦長の画像である場合について示しており、図10では、各トリミング候補領域60の上記合計値Tが各トリミング候補領域60の左上画素のY軸座標に対応づけられている。すなわち、図10において、Y軸座標(y)に対応づけられた合計値Tは、左上画素が(0,y)であるトリミング候補領域60内の画素のエッジ量の合計値Tを示している。
【0064】
図10に示す例の場合、Y軸座標(py)に対応づけられた上記合計値Tが最大になっている。この場合、トリミング領域決定部54は、左上画素が(0,py)であるトリミング候補領域60をトリミング領域として決定する。つまり、トリミング領域決定部54は、左上画素が(0,py)であり、かつ、一辺の長さが「w」である正方形領域をトリミング領域として決定する。
【0065】
図11は、料理画像30(対象画像)が横長の画像である場合について示しており、図11では、各トリミング候補領域60の上記合計値Tが各トリミング候補領域60の左上画素のX軸座標に対応づけられている。すなわち、図11において、X軸座標(x)に対応づけられた合計値Tは、左上画素が(x,0)であるトリミング候補領域60内の画素のエッジ量の合計値Tを示している。
【0066】
図11に示す例の場合、X軸座標(px)に対応づけられた上記合計値Tが最大になっている。この場合、トリミング領域決定部54は、左上画素が(px,0)であるトリミング候補領域60をトリミング領域として決定する。つまり、トリミング領域決定部54は、左上画素が(px,0)であり、かつ、一辺の長さが「h」である正方形領域をトリミング領域として決定する。
【0067】
要するに、トリミング領域決定部54は、左上画素が下記の式(8)及び(9)で示される画素(px,py)であり、かつ、一辺の長さがmin{w,h}である正方形領域をトリミング領域として決定する。
【0068】
【数4】
【0069】
トリミング画像取得部56はトリミング画像40を取得する。トリミング画像40は、対象画像(料理画像30)のうちのトリミング領域内の画像である。つまり、トリミング画像取得部56は、トリミング領域内の画像を料理画像30から切り出すことによってトリミング画像40を取得し、トリミング画像40を料理画像30と対応づけるようにしてデータベース20に保存する。
【0070】
次に、上記に説明した機能ブロックを実現するために画像処理装置10で実行される処理について説明する。図12及び図13は、対象画像(料理画像30)からトリミング画像40を取得するために画像処理装置10で実行される処理の一例を示すフロー図である。なお、図12及び図13に示す処理は、対象画像(料理画像30)が長方形画像であると前提している。制御部11が図12及び図13に示す処理をプログラムに従って実行することによって、制御部11が、トリミング候補領域設定部50、算出部52、トリミング領域決定部54、及びトリミング画像取得部56として機能するようになる。
【0071】
図12に示すように、まず、制御部11は対象画像をデータベース20から取得する(S101)。そして、制御部11は対象画像の各画素のエッジ量を上記の式(1)〜(5)に基づいて算出する(S102)。
【0072】
また、制御部11は対象画像の縦辺の長さ(h)が横辺の長さ(w)よりも長いか否かを判定する(S103)。そして、縦辺の長さ(h)が横辺の長さ(w)よりも長いと判定された場合、制御部11は変数i,px,py,Emaxをそれぞれ零に初期化する(S104)。
【0073】
ステップS104の処理が実行された後、制御部11は、左上画素が(0,i)であり、かつ、一辺の長さが「w」である正方形領域(トリミング候補領域60)の評価値Eを算出する(S105)。本実施形態の場合、制御部11は、上記の正方形領域内の画素のエッジ量の合計値Tを上記の式(6)によって算出し、該合計値Tを上記の正方形領域の評価値Eとして取得する。
【0074】
ステップS105の処理が実行された後、制御部11は、ステップS105で算出された評価値Eが変数Emaxよりも大きいか否かを判定する(S106)。評価値Eが変数Emaxよりも大きい場合、制御部11はステップS105で算出された評価値Eを変数Emaxにセットする(S107)。また、制御部11は変数iを変数pyにセットする(S108)。ステップS106〜S108の処理によって、変数Emaxは評価値Eの最大値を示し、変数pyは評価値Eの最大値となる場合の変数iの値を示すことになる。
【0075】
ステップS107,S108の処理が実行された場合、又はステップS106において評価値Eが変数Emaxよりも大きくないと判定された場合、制御部11は変数iに1を加算する(S109)。そして、制御部11は、変数iが値(h−w−1)以下であるか否かを判定する(S110)。変数iが値(h−w−1)以下である場合、制御部11はステップS105の処理を再実行する。一方、変数iが値(h−w−1)以下でない場合、図13に示すように、制御部11は、左上画素が(px,py)であり、かつ、一辺の長さが「w」である正方形領域をトリミング領域として決定する(S118)。
【0076】
なお、ステップS103において、縦辺の長さ(h)が横辺の長さ(w)よりも長くないと判定された場合、言い換えれば、横辺の長さ(w)が縦辺の長さ(h)よりも長い場合、制御部11は変数i,px,py,Emaxの値をそれぞれ0に初期化する(S111)。
【0077】
ステップS111の処理が実行された後、制御部11は、左上画素が(i,0)であり、かつ、一辺の画素数が「h」である正方形領域(トリミング候補領域60)の評価値Eを算出する(S112)。本実施形態の場合、制御部11は、上記の正方形領域内の画素のエッジ量の合計値Tを上記の式(7)によって算出し、該合計値Tを上記の正方形領域の評価値Eとして取得する。
【0078】
ステップS112の処理が実行された後、制御部11は、ステップS112で算出された評価値Eが変数Emaxよりも大きいか否かを判定する(S113)。評価値Eが変数Emaxよりも大きい場合、制御部11はステップS112で算出された評価値Eを変数Emaxにセットする(S114)。また、制御部11は変数iを変数pxにセットする(S115)。ステップS113〜S115の処理によって、変数Emaxは評価値Eの最大値を示し、変数pxは評価値Eの最大値となる場合の変数iの値を示すことになる。
【0079】
ステップS114,S115の処理が実行された場合、又はステップS113において評価値Eが変数Emaxよりも大きくないと判定された場合、制御部11は変数iに1を加算する(S116)。そして、制御部11は、変数iが値(w−h−1)以下であるか否かを判定する(S117)。変数iが値(w−h−1)以下である場合、制御部11はステップS112の処理を再実行する。一方、変数iが値(w−h−1)以下でない場合、図13に示すように、制御部11は、左上画素が(px,py)であり、かつ、一辺の画素数が「h」である正方形領域をトリミング領域として決定する(S119)。
【0080】
ステップS118又はS119の処理が実行された後、制御部11はトリミング画像40を取得する(S120)。すなわち、制御部11は、ステップS118又はS119で決定されたトリミング領域内の画像を対象画像から切り出すことによってトリミング画像40を取得し、該トリミング画像40を対象画像と対応づけるようにしてデータベース20に保存する。また、制御部11は、ステップS120で取得されたトリミング画像40を表示部16に表示する(S121)。以上で図12及び図13の処理の説明を終了する。
【0081】
以上説明した第1実施形態に係る画像処理装置10によれば、対象画像内の、エッジ量が高い部分がトリミング画像40として取得されるようになる。すなわち、対象画像内の、色相の変化の大きい部分がトリミング画像40として取得されるようになる。例えば、テーブル等の上に置かれた食器に盛り付けられた料理を写した料理画像の場合、料理が写っている部分では、他の部分(例えばテーブルが写っている部分等)と比較して、色相の変化が大きくなる。このため、第1実施形態に係る画像処理装置10によれば、料理が写っている部分をトリミング画像40として取得できるようになる。
【0082】
[第2実施形態]次に、本発明の第2実施形態について説明する。本発明の第2実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第2実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0083】
第1実施形態では、上記の式(8)及び(9)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域がトリミング領域として決定されるようになっていた。これに対し、第2実施形態では、下記の式(10)及び(11)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域がトリミング領域として決定されるようになっている。この点で第2実施形態に係る画像処理装置10は第1実施形態とは異なる。
【0084】
【数5】
【0085】
第2実施形態に係る画像処理装置10は第1実施形態と同様の機能ブロックを含む(図7参照)。トリミング候補領域設定部50、算出部52、及びトリミング画像取得部56の動作は第1実施形態と同様である。一方、トリミング領域決定部54の動作は、複数のトリミング候補領域60の各々の上記合計値Tに基づいて、該複数のトリミング候補領域60のうちからトリミング領域を決定する点で第1実施形態と共通しているが、下記に説明する点で第1実施形態とは異なる。
【0086】
第2実施形態の場合、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、該トリミング候補領域60の少なくとも一つの境界部分の画素のエッジ量の合計値を算出する。
【0087】
ここで、「少なくとも一つの境界部分」とは、トリミング候補領域60の上側境界部分、下側境界部分、左側境界部分、及び右側境界部分のうちの少なくとも一つである。
【0088】
図14は、トリミング候補領域60の上側境界部分及び下側境界部分について説明するための図である。なお、図14は、料理画像30が縦長の画像である場合について示している。
【0089】
上側境界部分70Uは、トリミング候補領域60の上側境界線62Uに対応する画素行を含む1又は複数の画素行である。
【0090】
例えば、上側境界部分70Uは、トリミング候補領域60の上側境界線62Uに対応する画素行である。すなわち、トリミング候補領域60の左上画素が(0,y)であるとすると、上側境界部分70Uは、画素(0,y)〜(w−1,y)の画素行である。なお、上側境界部分70Uは、画素(0,y)〜(w−1,y)の画素行から画素(0,y+n)〜(w−1,y+n)の画素行までの複数の画素行であってもよい(n:1以上の自然数)。
【0091】
同様に、下側境界部分70Dは、トリミング候補領域60の下側境界線62Dに対応する画素行を含む1又は複数の画素行である。
【0092】
例えば、下側境界部分70Dは、トリミング候補領域60の下側境界線62Dに対応する画素行である。すなわち、トリミング候補領域60の左上画素が(0,y)であるとすると、下側境界部分70Dは、画素(0,y+w−1)〜(w−1,y+w−1)の画素行である。なお、下側境界部分70Dは、画素(0,y+w−1)〜(w−1,y+w−1)の画素行から画素(0,y+w−1−n)〜(w−1,y+w−1−n)の画素行までの複数の画素行であってもよい(n:1以上の自然数)。
【0093】
なお、以下では、トリミング候補領域60の上側境界線62Uに対応する画素行が上側境界部分70Uに相当し、下側境界線62Dに対応する画素行が下側境界部分70Dに相当することとして説明する。
【0094】
図15は、トリミング候補領域60の左側境界部分及び右側境界部分について説明するための図である。なお、図15は、料理画像30が横長の画像である場合について示している。
【0095】
左側境界部分70Lは、トリミング候補領域60の左側境界線62Lに対応する画素列を含む1又は複数の画素列である。
【0096】
例えば、左側境界部分70Lは、トリミング候補領域60の左側境界線62Lに対応する画素列である。すなわち、トリミング候補領域60の左上画素が(x,0)であるとすると、左側境界部分70Lは、画素(x,0)〜(x,h−1)の画素列である。なお、左側境界部分70Lは、画素(x,0)〜(x,h−1)の画素列から画素(x+n,0)〜(x+n,h−1)の画素列までの複数の画素列であってもよい(n:1以上の自然数)。
【0097】
同様に、右側境界部分70Rは、トリミング候補領域60の右側境界線62Rに対応する画素列を含む1又は複数の画素列である。
【0098】
例えば、右側境界部分70Rは、トリミング候補領域60の右側境界線62Rに対応する画素列である。すなわち、トリミング候補領域60の左上画素が(x,0)であるとすると、右側境界部分70Rは、画素(x+h−1,0)〜(x+h−1,h−1)の画素列である。なお、右側境界部分70Rは、画素(x+h−1,0)〜(x+h−1,h−1)の画素列から画素(x+h−1−n,0)〜(x+h−1−n,h−1)の画素列までの複数の画素列であってもよい(n:1以上の自然数)。
【0099】
なお、以下では、トリミング候補領域60の左側境界線62Lに対応する画素列が左側境界部分70Lに相当し、右側境界線62Rに対応する画素列が右側境界部分70Rに相当することとして説明する。
【0100】
例えば、料理画像30が縦長の画像である場合、トリミング領域決定部54は、トリミング候補領域60の上側境界部分70U及び下側境界部分70Dの画素のエッジ量の合計値Taを算出する。トリミング候補領域60の左上画素が(0,i)であるとすると、上記の合計値Taは下記の式(12)によって算出される。
【0101】
一方、料理画像30が横長の画像である場合、トリミング領域決定部54は、トリミング候補領域60の左側境界部分70L及び右側境界部分70Rの画素のエッジ量の合計値Taを算出する。トリミング候補領域60の左上画素が(i,0)であるとすると、上記の合計値Taは下記の式(13)によって算出される。
【0102】
【数6】
【0103】
トリミング領域決定部54(第2算出手段)は、複数のトリミング候補領域60の各々について、上記合計値Tを上記合計値Taで除することによって得られる除算値(T/Ta)を算出する。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(T/Ta)に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定する。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(T/Ta)が最も大きいトリミング候補領域60をトリミング領域として決定する。
【0104】
なお、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、上記合計値Taを上記合計値Tで除することによって得られる除算値(Ta/T)を算出するようにしてもよい。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(Ta/T)に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定するようにしてもよい。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(Ta/T)が最も小さいトリミング候補領域60をトリミング領域として決定するようにしてもよい。
【0105】
以上のようにして、第2実施形態に係る画像処理装置10では、上記の式(10)及び(11)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域がトリミング領域として決定される。
【0106】
第2実施形態に係る画像処理装置10において実行される処理について説明する。第2実施形態に係る画像処理装置10でも第1実施形態と同様の処理が実行される(図12及び図13参照)。
【0107】
ただし、第2実施形態の場合、図12のステップS105において、制御部11は、上記の式(6)によって算出される合計値Tを上記の式(12)によって算出される合計値Taを除することによって算出される除算値(T/Ta)を、評価値Eとして取得する。
【0108】
また、ステップS112において、制御部11は、上記の式(7)によって算出される合計値Tを上記の式(13)によって算出される合計値Taを除することによって算出される除算値(T/Ta)を、評価値Eとして取得する。
【0109】
以上に説明した第2実施形態に係る画像処理装置10では、上記除算値(Ta/T)が最も大きいトリミング候補領域60がトリミング領域として決定される。トリミング候補領域60全体の画素のエッジ量の合計値Tが大きく、かつ、トリミング候補領域60の上側境界部分70U及び下側境界部分70Dの画素のエッジ量の合計値Taが小さい場合に、上記除算値(Ta/T)は大きくなる。トリミング候補領域60全体の画素のエッジ量の合計値Tが大きく、かつ、トリミング候補領域60の上側境界部分70U及び下側境界部分70Dの画素のエッジ量の合計値Taが小さい場合とは、上側境界部分70U及び下側境界部分70D以外の部分の画素のエッジ量が大きい場合である。すなわち、上側境界部分70U及び下側境界部分70Dに比べて、中央部分の画素のエッジ量が大きい場合である。
【0110】
第2実施形態に係る画像処理装置10によれば、対象画像内の、エッジ量が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。すなわち、対象画像内の、色相の変化が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。その結果、料理画像30内の、料理が写っている部分が中央に位置するようなトリミング画像40を取得できるようになる。
【0111】
ここで、第2実施形態の変形例について説明する。
【0112】
例えば、トリミング領域決定部54は、下記の式(14)及び(15)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域をトリミング領域として決定するようにしてもよい。
【0113】
【数7】
【0114】
この変形例では、料理画像30が縦長の画像である場合、トリミング領域決定部54は、トリミング候補領域60の上側境界部分70Uの画素のエッジ量の合計値Tu(第1合計値)と、トリミング候補領域60の下側境界部分70Dの画素のエッジ量の合計値Td(第2合計値)と、を算出する。トリミング候補領域60の左上画素が(0,i)であるとすると、上記合計値Tuは下記の式(16)によって算出され、上記合計値Tdは下記の式(17)によって算出される。
【0115】
【数8】
【0116】
そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、上記合計値Tを、上記合計値Tu,Tdのうちの大きい方で除することによって得られる除算値(T/max{Tu,Td})を算出する。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(T/max{Tu,Td})に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定する。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(T/max{Tu,Td})が最も大きいトリミング候補領域60をトリミング領域として決定する。
【0117】
なお、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、上記合計値Tu,Tdのうちの大きい方を、上記合計値Tで除することによって得られる除算値(max{Tu,Td}/T)を算出するようにしてもよい。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(max{Tu,Td}/T)に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定するようにしてもよい。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(max{Tu,Td}/T)が最も小さいトリミング候補領域60をトリミング領域として決定するようにしてもよい。
【0118】
一方、料理画像30が横長の画像である場合、トリミング領域決定部54は、トリミング候補領域60の左側境界部分70Lの画素のエッジ量の合計値Tl(第1合計値)と、トリミング候補領域60の右側境界部分70Rの画素のエッジ量の合計値Tr(第2合計値)と、を算出する。トリミング候補領域60の左上画素が(i,0)であるとすると、上記合計値Tlは下記の式(18)によって算出され、上記合計値Trは下記の式(19)によって算出される。
【0119】
【数9】
【0120】
そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、上記合計値Tを、上記合計値Tl,Trのうちの大きい方で除することによって得られる除算値(T/max{Tl,Tr})を算出する。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(T/max{Tl,Tr})に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定する。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(T/max{Tl,Tr})が最も大きいトリミング候補領域60をトリミング領域として決定する。
【0121】
なお、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、上記合計値Tl,Trのうちの大きい方を上記合計値Tで除することによって得られる除算値(max{Tl,Tr}/T)を算出するようにしてもよい。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(max{Tl,Tr}/T)に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定するようにしてもよい。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(max{Tl,Tr}/T)が最も小さいトリミング候補領域60をトリミング領域として決定するようにしてもよい。
【0122】
この変形例の場合、図12のステップS105及びS112において下記に説明するような処理が実行される。すなわち、ステップS105において、制御部11は、上記の式(6)によって算出される合計値Tを、上記の式(16)及び(17)によって算出される合計値Tu,Tdのうちの大きい方で除することによって算出される除算値(T/max{Tu,Td})を、評価値Eとして取得する。
【0123】
また、ステップS112において、制御部11は、上記の式(7)によって算出される合計値Tを、上記の式(18)及び(19)によって算出される合計値Tl,Trのうちの大きい方で除することによって算出される除算値(T/max{Tl,Tr})を、評価値Eとして取得する。
【0124】
以上のようにしても、対象画像内の、エッジ量が大きい部分が中央に位置するようなトリミング画像を取得できるようになる。すなわち、対象画像内の、色相の変化が大きい部分が中央に位置するようなトリミング画像を取得できるようになる。その結果、料理画像30内の、料理が写っている部分が中央に位置するようなトリミング画像を取得できるようになる。
【0125】
[第3実施形態]次に、本発明の第3実施形態について説明する。本発明の第3実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第3実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0126】
第1実施形態では、上記の式(8)及び(9)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域がトリミング領域として決定されるようになっていた。これに対し、第3実施形態では、下記の式(20)及び(21)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域がトリミング領域として決定されるようになっている。なお、下記の式(20)及び(21)において「G」は下記の式(22)に示すガウス関数を示している。
【0127】
【数10】
【0128】
第3実施形態に係る画像処理装置10は第1実施形態と同様の機能ブロックを含む(図7参照)。トリミング候補領域設定部50及びトリミング画像取得部56の動作は第1実施形態と同様である。一方、算出部52及びトリミング領域決定部54の動作は、下記に説明する点で第1実施形態と異なる。
【0129】
第3実施形態における算出部52は、複数のトリミング候補領域60の各々について、該トリミング候補領域60内の画素のエッジ量の重み付き合計値を算出する。
【0130】
例えば、料理画像30が縦長の画像である場合、トリミング候補領域60の左上画素が(0,i)であるとすると、上記の重み付き合計値Tは下記の式(23)によって算出される。一方、料理画像30が横長の画像である場合、トリミング候補領域60の左上画素が(i,0)であるとすると、上記の重み付き合計値Tは下記の式(24)によって算出される。
【0131】
なお、下記の式(23)及び(24)ではガウス関数Gが各画素のエッジ量に対する重みの役割を果たしている。この場合、トリミング候補領域60の中央部分の画素の重みが、トリミング候補領域60の境界部分の画素の重みよりも高く設定されるようになる。このため、トリミング候補領域60の中央部分の画素のエッジ量が大きいほど、重み付き合計値Tはより大きくなるようになっている。
【0132】
【数11】
【0133】
トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記の重み付き合計値Tに基づいて、該複数のトリミング候補領域60のうちからトリミング領域を決定する。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちで、上記の重み付き合計値Tが最も大きいトリミング候補領域60をトリミング領域として決定する。
【0134】
第3実施形態に係る画像処理装置10で実行される処理について説明する。第3実施形態に係る画像処理装置10でも第1実施形態と同様の処理が実行される(図12及び図13参照)。
【0135】
ただし、第3実施形態の場合、図12のステップS105において、制御部11は、上記の式(23)によって算出される重み付き合計値Tを評価値Eとして取得する。また、ステップS112において、制御部11は、上記の式(24)によって算出される重み付き合計値Tを評価値Eとして取得する。
【0136】
以上に説明した第3実施形態に係る画像処理装置10では、上記の重み付き合計値Tが最も大きいトリミング候補領域60がトリミング領域として決定される。上記の重み付き合計値Tは、トリミング候補領域60の中央部分の画素のエッジ量が大きい場合に大きくなる。このため、第3実施形態に係る画像処理装置10によれば、中央部分の画素のエッジ量が大きいトリミング候補領域60がトリミング領域として決定されるようになる。その結果、第3実施形態に係る画像処理装置10によれば、対象画像内の、エッジ量が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。すなわち、対象画像内の、色相の変化が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。その結果、料理画像30内の、料理が写っている部分が中央に位置するようなトリミング画像40を取得できるようになる。
【0137】
なお、第3実施形態の変形例について説明する。
【0138】
例えば、トリミング領域決定部54は、下記の式(25)及び(26)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域をトリミング領域として決定するようにしてもよい。
【0139】
【数12】
【0140】
この変形例では、料理画像30が縦長の画像である場合、トリミング候補領域60の左上画素が(0,i)であるとすると、上記の重み付き合計値Tが下記の式(27)によって算出される。
【0141】
なお、下記の式(27)ではガウス関数Gが各画素のエッジ量に対する重みの役割を果たしている。この場合、トリミング候補領域60の上側境界部分70U及び下側境界部分70Dの画素と比較して、トリミング候補領域60の中央部分の画素の重みが高く設定されるようになる。このため、トリミング候補領域60の中央部分の画素のエッジ量が大きいほど、重み付き合計値Tはより大きくなるようになっている。
【0142】
一方、料理画像30が横長の画像である場合、トリミング候補領域60の左上画素が(i,0)であるとすると、上記の重み付き合計値Tが下記の式(28)によって算出される。
【0143】
なお、下記の式(28)でもガウス関数Gが各画素のエッジ量に対する重みの役割を果たしている。この場合、トリミング候補領域60の左側境界部分70L及び右側境界部分70Rの画素と比較して、トリミング候補領域60の中央部分の画素の重みが高く設定されるようになる。このため、トリミング候補領域60の中央部分の画素のエッジ量が大きいほど、重み付き合計値Tはより大きくなるようになっている。
【0144】
【数13】
【0145】
この変形例の場合、図12のステップS105及びS112において下記に説明するような処理が実行される。すなわち、ステップS105において、制御部11は、上記の式(27)によって算出される重み付き合計値Tを評価値Eとして取得する。また、ステップS112において、制御部11は、上記の式(28)によって算出される重み付き合計値Tを評価値Eとして取得する。
【0146】
このようにしても、中央部分の画素のエッジ量が大きいトリミング候補領域60がトリミング領域として決定されるようになる。その結果、第3実施形態に係る画像処理装置10によれば、対象画像内の、エッジ量が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。すなわち、対象画像内の、色相の変化が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。その結果、料理画像30内の、料理が写っている部分が中央に位置するようなトリミング画像40を取得できるようになる。
【0147】
[第4実施形態]次に、本発明の第4実施形態について説明する。本発明の第4実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第4実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0148】
第1実施形態では、「エッジ」は、対象画像中で色が変化する度合いのことを意味し、「画素のエッジ量」は、画素と該画素の周辺画素との間の色相の差に関する量であることとして説明した。これに対して、第4実施形態では、「エッジ」は、対象画像中で輝度が変化する度合いのことを意味し、「画素のエッジ量」は、画素と該画素の周辺画素との間の輝度の差に関する量である点で第1実施形態と異なる。
【0149】
すなわち、第4実施形態に係る画像処理装置10では、上記の式(4)によって算出される各画素のY値が各画素の画素値Iとして用いられる。すなわち、第4実施形態では、各画素のY値が各画素の画素値Iとして上記の式(1)〜(3)に代入されることによって、各画素のエッジ量Sが算出される。
【0150】
なお、この第4実施形態は第2実施形態及び第3実施形態と組み合わせることが可能である。すなわち、第2実施形態及び第3実施形態においても、「画素のエッジ量」を画素と該画素の周辺画素との間の輝度の差に関する量としてもよい。
【0151】
以上に説明した第4実施形態に係る画像処理装置10によれば、対象画像内の、輝度の変化の大きい部分がトリミング画像40として取得されるようになる。例えば、テーブル等の上に置かれた食器に盛り付けられた料理を写した料理画像の場合、料理が写っている部分では、他の部分(例えばテーブルが写っている部分等)と比較して、輝度の変化が大きくなる。このため、第4実施形態に係る画像処理装置10によれば、料理が写っている部分をトリミング画像40として取得できるようになる。
【0152】
[第5実施形態]次に、本発明の第5実施形態について説明する。本発明の第5実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第5実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0153】
第5実施形態に係る画像処理装置10では、トリミング領域を決定するための処理(以下「トリミング領域決定処理」と呼ぶ。)として複数種類の処理が予め用意されており、それら複数種類のトリミング領域決定処理によって複数のトリミング領域が決定される。そして、それら複数のトリミング領域にそれぞれ対応する複数のトリミング画像40がユーザに提示され、ユーザがそれら複数のトリミング画像40のいずれかを選択できるようになっている。
【0154】
図16は複数種類のトリミング領域決定処理の一例を示す。図16では8種類のトリミング領域決定処理(第1〜第8のトリミング領域決定処理)が示されている。第1〜第8のトリミング領域決定処理は下記の点で異なっている。
(1)各画素のエッジ量を算出する際の基礎として色相又は輝度のいずれを用いるか
(2)トリミング領域の左上画素(px,py)をどのように定義するか
【0155】
第1のトリミング領域決定処理は第1実施形態に対応する。すなわち、第1のトリミング領域決定処理は、各画素のCB,CR値(色相)に基づいて各画素のエッジ量Sを算出し(上記の式(5)参照)、上記の式(8)及び(9)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0156】
第2のトリミング領域決定処理は第2実施形態に対応する。すなわち、第2のトリミング領域決定処理は、各画素のCB,CR値(色相)に基づいて各画素のエッジ量Sを算出し(上記の式(5)参照)、上記の式(10)及び(11)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0157】
第3のトリミング領域決定処理は第2実施形態の変形例に対応する。すなわち、第3のトリミング領域決定処理は、各画素のCB,CR値(色相)に基づいて各画素のエッジ量Sを算出し(上記の式(5)参照)、上記の式(14)及び(15)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0158】
第4のトリミング領域決定処理は第3実施形態に対応する。すなわち、第4のトリミング領域決定処理は、各画素のCB,CR値(色相)に基づいて各画素のエッジ量Sを算出し(上記の式(5)参照)、上記の式(20)及び(21)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0159】
なお、第4のトリミング領域決定処理は第3実施形態の変形例に対応するようにしてもよい。すなわち、第4のトリミング領域決定処理は、上記の式(25)及び(26)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理としてもよい。
【0160】
第5のトリミング領域決定処理は第4実施形態に対応する。すなわち、第5のトリミング領域決定処理は、各画素のY値(輝度)に基づいて各画素のエッジ量Sを算出し、上記の式(8)及び(9)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0161】
第6のトリミング領域決定処理は、第2実施形態及び第4実施形態の組み合わせに対応する。すなわち、第6のトリミング領域決定処理は、各画素のY値(輝度)に基づいて各画素のエッジ量Sを算出し、上記の式(10)及び(11)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0162】
第7のトリミング領域決定処理は、第2実施形態の変形例と第4実施形態との組み合わせに対応する。すなわち、第7のトリミング領域決定処理は、各画素のY値(輝度)に基づいて各画素のエッジ量Sを算出し、上記の式(14)及び(15)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域を決定する処理である。
【0163】
第8のトリミング領域決定処理は、第3実施形態及び第4実施形態の組み合わせに対応する。すなわち、第8のトリミング領域決定処理は、各画素のY値(輝度)に基づいて各画素のエッジ量Sを算出し、上記の式(20)及び(21)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0164】
なお、第8のトリミング領域決定処理は、第3実施形態の変形例と第4実施形態との組み合わせに対応するようにしてもよい。すなわち、第8のトリミング領域決定処理は、上記の式(25)及び(26)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理としてもよい。
【0165】
第5実施形態に係る画像処理装置10では、第1〜第8のトリミング領域決定処理の各々が実行されることによって、第1〜第8のトリミング領域が決定される。そして、第1〜第8のトリミング領域に対応する第1〜第8のトリミング画像40が取得される。また、第1〜第8のトリミング画像40のいずれかを選択するための画面(トリミング画像選択画面)が表示部16に表示される。
【0166】
図17はトリミング画像選択画面の一例を示す。トリミング画像選択画面には、第1のトリミング画像40a、第2のトリミング画像40b、第3のトリミング画像40c、第4のトリミング画像40d、第5のトリミング画像40e、第6のトリミング画像40f、第7のトリミング画像40g、及び第8のトリミング画像40hが表示されている。
【0167】
また、トリミング画像選択画面には、第1のオプションボタン80a、第2のオプションボタン80b、第3のオプションボタン80c、第4のオプションボタン80d、第5のオプションボタン80e、第6のオプションボタン80f、第7のオプションボタン80g、及び第8のオプションボタン80hが表示されている。第1のオプションボタン80aは第1のトリミング画像40aに関連付けられている。同様に、第2のオプションボタン80b〜第8のオプションボタン80hは、それぞれ、第2のトリミング画像40b〜第8のトリミング画像40hに関連付けられている。
【0168】
ユーザは第1のオプションボタン80a〜第8のオプションボタン80hのいずれかをクリックすることによって、第1のトリミング画像40a〜第8のトリミング画像40hのいずれかを選択し、決定ボタン82をクリックする。決定ボタン82がクリックされると、ユーザによって選択されたトリミング画像40が元の料理画像30に対応づけられるようにしてデータベース20に保存される。
【0169】
次に、第5実施形態に係る画像処理装置10で実行される処理について説明する。図18は、第5実施形態に係る画像処理装置10で実行される処理の一例を示すフロー図である。
【0170】
図18に示すように、まず、制御部11は対象画像をデータベース20から取得する(S201)。その後、制御部11は対象画像の各画素の第1のエッジ量及び第2のエッジ量を算出する(S202)。
【0171】
なお、「第1のエッジ量」は、画素のCB,CR値(色相)に基づいて算出されるエッジ量であり、上記の式(5)によって示される画素値Iに基づき上記の式(1)〜(3)によって算出されるエッジ量Sである。
【0172】
一方、「第2のエッジ量」は、画素のY値(輝度)に基づいて算出されるエッジ量であり、画素のY値を画素値Iとして用いて上記の式(1)〜(3)によって算出されるエッジ量Sである。
【0173】
また、制御部11は変数kを1に初期化する(S203)。そして、制御部11は、第kのトリミング領域決定処理を実行することによって、第kのトリミング領域を決定する(S204)。このステップS204の処理は図12及び図13のステップS103〜S119の処理と同様である。
【0174】
また、制御部11は、ステップS204で決定された第kのトリミング領域の画像を対象画像からトリミングすることによって、第kのトリミング画像40を取得する(S205)。取得された第kのトリミング画像40は記憶部12に保存される。
【0175】
ステップS205の処理が実行された後、制御部11は変数kに1を加算する(S206)。そして、制御部11は変数kが8以下であるか否かを判定する(S207)。ここで、「8」は、トリミング領域決定処理の種類の総数を示している。
【0176】
変数kが8以下である場合、制御部11はステップS204の処理を再実行する。一方、変数kが8以下でない場合、制御部11(表示制御手段)はトリミング画像選択画面を表示部16に表示する(S208)。図17に示したように、トリミング画像選択画面には第1のトリミング画像40a〜第8のトリミング画像40hが表示される。
【0177】
トリミング画像選択画面が表示されている場合、制御部11(受付手段)は、ユーザによって行われる第1のトリミング画像40a〜第8のトリミング画像40hのいずれかの選択を受け付ける。すなわち、制御部11は、第1のトリミング画像40a〜第8のトリミング画像40hのいずれかがユーザによって選択されたか否かを監視する(S209)。第1のオプションボタン80a〜第8のオプションボタン80hのいずれかがクリックされ、さらに、決定ボタン82が決定された場合、制御部11は、第1のトリミング画像40a〜第8のトリミング画像40hのいずれかがユーザによって選択されたと判定する。
【0178】
第1のトリミング画像40a〜第8のトリミング画像40hのいずれかがユーザによって選択された場合、制御部11は、ユーザによって選択されたトリミング画像40を、ステップS201で取得された対象画像(料理画像30)に対応づけるようにしてデータベース20に保存する(S210)。すなわち、ユーザによって選択されたトリミング画像40が、ステップS201で取得された対象画像(料理画像30)のサムネイル画像としてデータベース20に保存される。以上で図18に示す処理の説明を終了する。
【0179】
以上に説明した第5実施形態に係る画像処理装置10によれば、複数のトリミング領域決定処理に基づいて取得された複数のトリミング画像40のうちから所望のトリミング画像40をユーザが選択できるようになる。
【0180】
[第6実施形態]次に、本発明の第6実施形態について説明する。第6実施形態は第5実施形態の変形例に相当する。本発明の第6実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第6実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0181】
第5実施形態と同様、第6実施形態に係る画像処理装置10においても、複数種類のトリミング領域決定処理が予め用意されており、それら複数種類のトリミング領域決定処理によって複数のトリミング領域が決定される。そして、それら複数のトリミング領域にそれぞれ対応する複数のトリミング画像40がユーザに提示され、ユーザがそれら複数のトリミング画像40のいずれかを選択できるようになっている。
【0182】
ただし、第6実施形態に係る画像処理装置10では、複数種類のトリミング領域決定処理のうちから、対象画像(料理画像30)の特徴に合ったトリミング領域決定処理が選択され、そのトリミング領域決定処理に基づいて取得されたトリミング画像40がトリミング画像選択画面において優先表示又は区別表示されるようになっている。この点で第6実施形態に係る画像処理装置10は第5実施形態と異なっている。
【0183】
第6実施形態に係る画像処理装置10では、例えば図19に示すようなトリミング領域決定処理データ(関連付けデータ)が記憶部12に記憶される。図19に示すトリミング領域決定処理データは、エッジ量の分布パターン情報と、トリミング領域決定処理と、を関連付けたデータである。図19に示すトリミング領域決定処理データでは、第1〜第8のトリミング領域決定処理の各々に、エッジ量の分布パターン情報が関連付けられている。なお、第1〜第8のトリミング領域決定処理は図16と同様である。
【0184】
エッジ量の分布パターン情報は画像のエッジ量の分布パターンに関する情報である。例えば、分布パターン情報は、図10,11に示したような画像の縦方向又は横方向に対する上記合計値Tの変化パターンを示す情報である。すなわち、分布パターン情報は、各トリミング候補領域60の上記合計値Tを各トリミング候補領域60の位置(例えば左上画素のY軸座標又はX軸座標)に対応づけて表した場合の上記合計値Tの変化パターンを示す情報である。言い換えれば、分布パターン情報は、各トリミング候補領域60の位置に関する第1の軸(図10,11におけるY軸又はX軸)と、各トリミング候補領域60の上記合計値Tに関する第2の軸(図10,11におけるT軸)と、が互いに直交するようにして設定された平面上に表される上記合計値Tの変化パターンを示す情報である。例えば、分布パターン情報は、第1のエッジ量(すなわち、画素のCB,CR値に基づいて算出されるエッジ量)に基づいて算出される上記合計値Tの上記変化パターンと、第2のエッジ量(すなわち、画素のY値に基づいて算出されるエッジ量)に基づいて算出される上記合計値Tの上記変化パターンと、を示す情報である。
【0185】
また例えば、分布パターン情報は、画像の各画素行又は各画素列ごとのエッジ量の合計値のパターンを示す情報であってもよい。例えば、分布パターン情報は、画像の各画素行又は各画素列ごとの第1のエッジ量(すなわち、画素のCB,CR値(色相)に基づいて算出されるエッジ量)の合計値のパターンと、画像の各画素行又は各画素列ごとの第2のエッジ量(すなわち、画素のY値(輝度)に基づいて算出されるエッジ量)の合計値のパターンと、を示す情報であってもよい。
【0186】
第6実施形態に係る画像処理装置10で実行される処理について説明する。第6実施形態に係る画像処理装置10で実行される処理は第5実施形態と類似している。すなわち、第6実施形態に係る画像処理装置10においても、図18に示す処理と同様の処理が実行される。ただし、第6実施形態に係る画像処理装置10ではステップS208の処理が第5実施形態と異なっている。第6実施形態に係る画像処理装置10では、ステップS208において、例えば図20に示すような処理が実行される。
【0187】
すなわち、ステップS208において、制御部11は、ステップS201で取得された対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当するか否かを判定する(S301)。例えば、制御部11は、ステップS201で取得された対象画像の画素のエッジ量に基づいて、対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当するか否かを判定する。
【0188】
対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当すると判定された場合、制御部11(表示制御手段)はトリミング画像選択画面を表示部16に表示する(S302)。この場合、制御部11は、対象画像のエッジ量の分布パターンを示す分布パターン情報に対応するトリミング画像40をトリミング画像選択画面において優先表示する。
【0189】
ここで、「分布パターン情報に対応するトリミング画像40」とは、分布パターン情報に関連付けられたトリミング領域決定処理によって決定されたトリミング領域の画像である。例えば、図19に示すトリミング領域決定処理データでは、第4の分布パターン情報と第4のトリミング領域決定処理とが関連付けられている。このため、「第4の分布パターン情報に対応するトリミング画像40」とは、第4のトリミング領域決定処理によって決定されたトリミング領域(第4のトリミング領域)の画像、すなわち、第4のトリミング画像40dである。
【0190】
例えば、ステップS201で取得された対象画像のエッジ量の分布パターンが第4の分布パターン情報が示す分布パターンに相当すると判定された場合、制御部11は第4のトリミング画像40dをトリミング画像選択画面において優先表示させる。
【0191】
例えば、制御部11は、第4のトリミング画像40dが予め選択された状態でトリミング画像選択画面を表示させる。すなわち、制御部11は、第4のオプションボタン80dが予め選択された状態でトリミング画像選択画面を表示させる。
【0192】
また例えば、順序情報に従った表示順序で第1のトリミング画像40a〜第8のトリミング画像40hがトリミング画像選択画面に表示されるような場合であれば、制御部11は第4のトリミング画像40dの順位を第1番目に設定する。
【0193】
なお、ステップS201で取得された対象画像のエッジ量の分布パターンが第4の分布パターン情報が示す分布パターンに相当すると判定された場合、制御部11は第4のトリミング画像40dをトリミング画像選択画面において優先表示する代わりに、第4のトリミング画像40dをトリミング画像選択画面において区別表示するようにしてもよい。すなわち、制御部11は、第4のトリミング画像40dが他のトリミング画像40と区別されるようにしてトリミング画像選択画面を表示するようにしてもよい。
【0194】
例えば、制御部11は第4のトリミング画像40dの表示態様を他のトリミング画像40と異なる表示態様で表示させる。また例えば、制御部11は第4のトリミング画像40dのみに関連付けて所定の画像(例えば、枠画像、吹き出し画像、又は星画像等)を表示させることによって、第4のトリミング画像40dを他のトリミング画像40と区別表示する。
【0195】
なお、対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報が示す分布パターンのいずれにも相当しないと判定された場合、制御部11はトリミング画像選択画面を表示部16に表示する(S303)。この場合、制御部11は、いずれのトリミング画像40もトリミング画像選択画面において優先表示(区別表示)しない。
【0196】
ステップS302又はS303が実行された後、制御部11は図18のステップS209の処理を実行する。以上で図20に示す処理の説明を終了する。
【0197】
以上に説明した第6実施形態に係る画像処理装置10によれば、対象画像(料理画像30)の特徴(エッジ量の分布パターン)に合ったトリミング領域決定処理が選択され、そのトリミング領域決定処理に基づいて取得されたトリミング画像40がトリミング画像選択画面において優先表示又は区別表示される。その結果、対象画像(料理画像30)の特徴に合ったトリミング領域決定処理に基づいて取得されたトリミング画像40をユーザが選択し易くなるように図ることが可能になる。
【0198】
なお、第6実施形態に係る画像処理装置10では、トリミング画像選択画面においてユーザが行った選択結果に基づいて、トリミング領域決定処理データを更新するようにしてもよい。以下、このようなトリミング領域決定処理データを更新する構成について説明する。
【0199】
この変形例の場合、例えば図21に示すような選択結果データが記憶部12(又はデータベース20)に記憶される。図21に示す選択結果データでは、エッジ量の分布パターン情報と、選択結果情報と、が関連付けられている。なお、「エッジ量の分布パターン情報」は図19と同様である。
【0200】
「選択結果情報」は第1〜第8のトリミング画像40の選択回数を示している。図21に示す選択結果データにおいて、第1の分布パターン情報に対応づけられた選択結果情報は、対象画像のエッジ量の分布パターンが第1の分布パターンが示す分布パターンに相当する場合におけるトリミング画像選択画面でユーザが第1〜第8のトリミング画像40の各々を選択した回数を示している。第2〜第8の分布パターン情報に対応づけられた選択結果情報も同様である。
【0201】
また、この変形例の場合、図18のステップS210の処理が実行された後で制御部11は図22に示す処理を実行する。
【0202】
すなわち、制御部11は、ステップS201で取得された対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当するか否かを判定する(S401)。このステップS401の処理は図20のステップS301の処理と同様である。
【0203】
対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当すると判定された場合、制御部11は、その分布パターン情報に対応づけられた選択結果情報を更新する(S402)。例えば、トリミング画像選択画面においてユーザによって選択されたトリミング画像40が第1のトリミング画像40aであり、かつ、ステップS401において対象画像のエッジ量の分布パターンが第4の分布パターン情報が示す分布パターンに相当すると判定された場合、制御部11は、第4の分布パターン情報に対応づけられた「第1のトリミング画像40aの選択回数」を1増加させる。
【0204】
ステップS402の処理が実行された後、制御部11(更新手段)は選択結果データに基づいてトリミング領域決定処理データを更新する(S403)。
【0205】
例えば、図21に示す例では、対象画像のエッジ量の分布パターンが第7の分布パターン情報が示す分布パターンに相当する場合における選択回数が最も多いトリミング画像40が第8のトリミング画像40hであるため、制御部11は、第7の分布パターン情報に対応づけられたトリミング領域決定処理が、第8のトリミング画像40hに対応するトリミング領域決定処理(すなわち、第8のトリミング領域決定処理)となるように、トリミング領域決定処理データを更新する。
【0206】
また例えば、図21に示す例では、対象画像のエッジ量の分布パターンが第8の分布パターン情報が示す分布パターンに相当する場合における選択回数が最も多いトリミング画像40が第7のトリミング画像40gであるため、制御部11は、第8の分布パターン情報に対応づけられたトリミング領域決定処理が、第7のトリミング画像40gに対応するトリミング領域決定処理(すなわち、第7のトリミング領域決定処理)となるように、トリミング領域決定処理データを更新する。
【0207】
なお、ステップS401において、対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報が示す分布パターンのいずれにも相当しないと判定された場合、制御部11はステップS402,S403の処理を実行することなく、本処理を終了する。以上で図22の処理の説明を終了する。
【0208】
以上のようにすれば、ユーザの選択結果を考慮して、画像のエッジ量の分布パターンとトリミング領域決定処理との関連付けを見直すことが可能になる。
【0209】
[第7実施形態]次に、本発明の第7実施形態について説明する。第7実施形態は第5実施形態の変形例に相当する。本発明の第7実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第7実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0210】
第5実施形態と同様、第7実施形態に係る画像処理装置10においても、複数種類のトリミング領域決定処理が予め用意されている(図16,19参照)。ただし、第7実施形態に係る画像処理装置10では、複数種類のトリミング領域決定処理のうちから、対象画像(料理画像30)の特徴に合ったトリミング領域決定処理が選択され、そのトリミング領域決定処理に基づいて取得されたトリミング画像40が対象画像のサムネイル画像として保存されるようになっている。この点で第7実施形態に係る画像処理装置10は第5実施形態と異なっている。
【0211】
第7実施形態に係る画像処理装置10で実行される処理について説明する。図23は、第7実施形態に係る画像処理装置10で実行される処理の一例を示すフロー図である。第5実施形態と同様、第7実施形態に係る画像処理装置10においても、図19に示すトリミング領域決定処理データが記憶されており、図23に示す処理は図19に示すトリミング領域決定処理データに基づいて実行される。
【0212】
図23に示すように、制御部11は対象画像をデータベース20から取得する(S501)。また、制御部11は対象画像の各画素の第1のエッジ量及び第2のエッジ量を算出する(S502)。このステップS502の処理は図18のステップS202の処理と同様である。
【0213】
そして、制御部11は、ステップS501において取得された対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当するか否かを判定する(S503)。このステップS503の処理は図20のステップS301の処理と同様である。
【0214】
対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当する場合、制御部11は、その分布パターン情報に関連付けられたトリミング領域決定処理を実行することによって、トリミング領域を決定する(S504)。このステップS504の処理は図12及び図13のステップS103〜S119の処理と同様である。
【0215】
一方、対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報が示す分布パターンのいずれにも相当しない場合、制御部11は、第1〜第8のトリミング領域決定処理のうちの所定のトリミング領域決定処理(例えば、第1のトリミング領域決定処理)を実行することによって、トリミング領域を決定する(S505)。このステップS505の処理は図12及び図13のステップS103〜S119の処理と同様である。
【0216】
ステップS504又はS505の処理が実行された後、制御部11はステップS504又はS505において決定されたトリミング領域の画像を対象画像からトリミングすることによってトリミング画像40を取得し、該トリミング画像40を対象画像と対応づけてデータベース20に保存する(S506)。また、制御部11はトリミング画像40を表示部16に表示する(S507)。以上で図23に示す処理の説明を終了する。
【0217】
以上説明した第7実施形態に係る画像処理装置10によれば、対象画像(料理画像30)にの特徴(エッジ量の分布パターン)に合ったトリミング領域決定処理が選択され、そのトリミング領域決定処理に基づいて取得されたトリミング画像40が対象画像のサムネイル画像として保存されるようになる。
【0218】
なお、第7実施形態に係る画像処理装置10は、オプションモードとして、第5実施形態及び第6実施形態において説明した構成を備えるようにしてもよい。すなわち、第7実施形態に係る画像処理装置10では、図23に示す処理と図18に示す処理とのいずれかをユーザを選択できるようにしてもよい。そして、図18に示す処理がユーザによって選択された場合には、図22に示す処理(すなわち、トリミング領域決定処理データの更新処理)が実行されるようにしてもよい。
【0219】
なお、本発明は以上に説明した第1〜第7実施形態に限定されるものではない。
【0220】
[1]例えば、以上では、対象画像のトリミング画像40として、一辺の長さが対象画像の短辺の長さと等しい正方形画像を取得することとして説明した。すなわち、一辺の長さが対象画像の短辺の長さと等しい正方形領域をトリミング候補領域60として設定することとして説明した。
【0221】
しかしながら、対象画像のトリミング画像40として、一辺の長さが対象画像の短辺の長さと異なる正方形画像を取得するようにしてもよい。すなわち、一辺の長さが対象画像の短辺の長さと異なる正方形領域をトリミング候補領域60として設定するようにしてもよい。また、対象画像のトリミング画像40として長方形画像を取得するようにしてもよい。すなわち、長方形領域をトリミング候補領域60として設定するようにしてもよい。
【0222】
ここで、縦辺の長さがhaであり、横辺の長さがwaである矩形画像をトリミング画像40として対象画像から取得する場合について説明する。すなわち、図24に示すような、縦辺の長さがhaであり、横辺の長さがwaである矩形領域をトリミング候補領域60として設定する場合について説明する。図25及び図26は、上記のような矩形画像をトリミング画像と40して取得する場合に画像処理装置10で実行される処理の一例を示すフロー図である。
【0223】
図25に示すように、まず、制御部11は対象画像をデータベース20から取得する(S601)。その後、制御部11は対象画像の各画素のエッジ量を算出する(S602)。ステップS601,S602の処理は図12のステップS101,S102と同様である。
【0224】
また、制御部11は変数i,j,px,py,Emaxをそれぞれ零に初期化する(S603)。そして、制御部11は、左上画素が(i,j)であり、かつ、縦辺及び横辺の長さがそれぞれha,waである矩形領域(トリミング候補領域60)の評価値Eを算出する(S604)。ステップS604の処理は図12のステップS105,S112と同様である。
【0225】
ステップS604の処理が実行された後、制御部11は、ステップS604で算出された評価値Eが変数Emaxよりも大きいか否かを判定する(S605)。評価値Eが変数Emaxよりも大きい場合、制御部11はステップS604で算出された評価値Eを変数Emaxにセットする(S606)。また、制御部11は変数i,jを変数px,pyにそれぞれセットする(S607)。ステップS605〜S607の処理によって、変数Emaxは評価値Eの最大値を示し、変数px,pyは評価値Eの最大値となる場合の変数i,jの値を示すことになる。
【0226】
ステップS606,S607の処理が実行された場合、又はステップS605において評価値Eが変数Emaxよりも大きくないと判定された場合、制御部11は変数jに1を加算する(S608)。そして、制御部11は、変数jが値(h−ha−1)以下であるか否かを判定する(S609)。
【0227】
変数jが値(h−ha−1)以下である場合、制御部11はステップS604の処理を再実行する。一方、変数jが値(h−ha−1)以下でない場合、制御部11は変数iに1を加算する(S610)。そして、制御部11は、変数iが値(w−wa−1)以下であるか否かを判定する(S611)。
【0228】
変数iが値(w−wa−1)以下である場合、制御部11は変数jを零に初期化し(S612)、ステップS604の処理を再実行する。一方、変数iが値(w−wa−1)以下でない場合、制御部11は、左上画素が(px,py)であり、かつ、縦辺及び横辺がそれぞれha,waである矩形領域をトリミング領域として決定する(S613)。
【0229】
そして、制御部11はトリミング画像40を取得する(S614)。すなわち、制御部11は、ステップS613で決定されたトリミング領域内の画像を対象画像から切り出すことによって、トリミング画像40を取得する。そして、制御部11はトリミング画像40を対象画像と対応づけるようにしてデータベース20に保存する。また、制御部11は、ステップS614で取得されたトリミング画像40を表示部16に表示する(S615)。以上で図25及び図26の処理の説明を終了する。
【0230】
[2]また例えば、トリミング画像取得部56によって取得されたトリミング画像40の端から、基準量以上のエッジ量を有する画素が存在しない部分が存在する場合、トリミング画像取得部56はその部分を取り除くようにしてもよい。
【0231】
図27はトリミング画像40の一例を示す。図27において、符号90aはトリミング画像40の第1の辺を示している。また、符号90b,90cは、第1の辺90aと直交するトリミング画像40の第2の辺及び第3の辺を示している。また、符号90dは、第1の辺90aと平行な直線であって、かつ、第2の辺90b及び第3の辺90cと直交する直線を示している。また、トリミング画像40内の斜線領域92は、第1の辺90aと第2の辺90bと第3の辺90cと直線90dとに囲まれた領域である。例えば、基準量以上のエッジ量を有する画素が斜線領域92内に存在しない場合、トリミング画像取得部56はトリミング画像40から斜線領域92を取り除くようにしてもよい。
【0232】
例えば、料理画像30から取得されたトリミング画像40の斜線領域92内に基準量以上のエッジ量を有する画素が存在しない場合、斜線領域92は、料理が写っている領域ではなく、例えばテーブル等が写っている領域である場合が多い。このため、以上のようにすれば、不要な領域を取り除くことが可能になる。
【0233】
[3]また例えば、以上では、投稿者によって投稿された料理画像30がデータベース20に記憶されていることとして説明したが、データベース20に記憶される画像は料理画像30に限られない。本発明は、料理画像30以外の画像からトリミング画像(サムネイル画像)を生成する場合にも適用することが可能である。
【符号の説明】
【0234】
10 画像処理装置、11 制御部、12 記憶部、13 光ディスクドライブ部、14 通信インタフェース部、15 操作部、16 表示部、17 音声出力部、20 データベース、30 料理画像、40 トリミング画像、40a 第1のトリミング画像、40b 第2のトリミング画像、40c 第3のトリミング画像、40d 第4のトリミング画像、40e 第5のトリミング画像、40f 第6のトリミング画像、40g 第7のトリミング画像、40h 第8のトリミング画像、50 トリミング候補領域設定部、52 算出部、54 トリミング領域決定部、56 トリミング画像取得部、60 トリミング候補領域、80a 第1のオプションボタン、80b 第2のオプションボタン、80c 第3のオプションボタン、80d 第4のオプションボタン、80e 第5のオプションボタン、80f 第6のオプションボタン、80g 第7のオプションボタン、80h 第8のオプションボタン、82 決定ボタン。
【技術分野】
【0001】
本発明は画像処理装置、画像処理装置の制御方法、プログラム、及び情報記憶媒体に関する。
【背景技術】
【0002】
複数の画像を並べて表示するインタフェースを採用したWebサービスが知られている。例えば、ユーザから投稿された料理の画像をレシピとともに公開するサービスや、ユーザから投稿された自動車の画像を公開するサービス等が知られている。
【0003】
上記のようなサービスにおいて複数の画像を並べて表示する場合には、元の画像の一部をトリミングすることによって作成されるサムネイル画像が用いられることが多い。従来、このようなサムネイル画像の作成は主に手動で行われていたが、近年、大量の画像を取り扱うWebサービスが増えてきており、大量の画像のサムネイル画像を効率的に生成するための技術が強く望まれている。
【0004】
上記のような技術としては、例えば、予め決められた固定位置でトリミングを行うことによって画像からサムネイル画像を自動的に生成する技術が知られている。
【0005】
また例えば、特許文献1には、ユーザが選択したキー被写体が中心に位置するようなトリミング画像を得られるようなトリミングを行うことが開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−289706号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
画像からサムネイル画像を生成する場合には、元の画像の特徴部分がサムネイル画像に含まれているのが望ましい。しかしながら、予め定められた固定位置でトリミングを行うことによって画像からサムネイル画像を作成する場合には、元の画像の内容に関係なく、予め定められた固定位置でトリミングが行われるため、元の画像の特徴部分がサムネイル画像に含まれない場合があり、望ましいサムネイル画像を得ることができない場合があった。また、特許文献1に記載された技術によれば、キー被写体が中心に位置しているようなトリミング画像を得ることができるが、特許文献1に記載された技術の場合、人間がキー被写体を選択しなければならなかった。
【0008】
本発明は上記課題に鑑みてなされたものであって、その目的は、対象画像の特徴部分を人間に選択させることなく、対象画像の特徴部分が含まれるようなトリミング画像を取得することが可能な画像処理装置、画像処理装置の制御方法、プログラム、及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明に係る画像処理装置は、対象画像内に複数のトリミング候補領域を設定する設定手段と、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段と、前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段と、前記トリミング領域内の画像を取得する取得手段と、を含むことを特徴とする。
【0010】
また、本発明に係る画像処理装置の制御方法は、対象画像内に複数のトリミング候補領域を設定する設定ステップと、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出ステップと、前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定ステップと、前記トリミング領域内の画像を取得する取得ステップと、を含むことを特徴とする。
【0011】
また、本発明に係るプログラムは、対象画像内に複数のトリミング候補領域を設定する設定手段、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段、前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段、及び、前記トリミング領域内の画像を取得する取得手段、としてコンピュータを機能させるためのプログラムである。
【0012】
また、本発明に係る情報記憶媒体は、対象画像内に複数のトリミング候補領域を設定する設定手段、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段、前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段、及び、前記トリミング領域内の画像を取得する取得手段、としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
【0013】
また、本発明の一態様では、前記決定手段は、前記複数のトリミング候補領域のうちで、前記合計値が最大であるトリミング候補領域を前記トリミング領域として決定する手段を含むようにしてもよい。
【0014】
また、本発明の一態様では、前記複数のトリミング候補領域の各々について、該トリミング候補領域の前記合計値を、該トリミング候補領域の少なくとも一つの境界部分の画素のエッジ量の合計値で除することによって得られる除算値又はその逆数を算出する第2算出手段を含み、前記決定手段は、前記複数のトリミング候補領域の各々の前記除算値又は前記逆数に基づいて、前記複数のトリミング候補領域のうちから前記トリミング領域を決定するようにしてもよい。
【0015】
また、本発明の一態様では、前記決定手段は、前記複数のトリミング候補領域のうちで、前記除算値が最大であるトリミング候補領域、又は前記逆数が最小であるトリミング候補領域を前記トリミング領域として決定する手段を含むようにしてもよい。
【0016】
また、本発明の一態様では、前記複数のトリミング候補領域の各々について、該トリミング候補領域の第1境界部分の画素のエッジ量の合計値を第1合計値として算出する手段と、前記複数のトリミング候補領域の各々について、該トリミング候補領域の、前記第1境界部分に対向する第2境界部分の画素のエッジ量の合計値を第2合計値として算出する手段と、を含み、前記第2算出手段は、前記複数のトリミング候補領域の各々について、該トリミング候補領域の前記合計値を、該トリミング候補領域の前記第1合計値及び前記2合計値のうちの大きい方で除することによって得られる除算値又はその逆数を算出するようにしてもよい。
【0017】
また、本発明の一態様では、前記算出手段は、前記トリミング候補領域内の画素のエッジ量の合計値として、前記トリミング候補領域内の画素のエッジ量の重み付き合計値を算出し、前記算出手段は、前記トリミング候補領域の中央部分の画素のエッジ量の重みを、前記トリミング候補領域の境界部分の画素のエッジ量の重みよりも高く設定するようにしてもよい。
【0018】
また、本発明の一態様では、前記エッジ量は、前記画素と該画素の周辺画素との間の輝度の差に関する量であってもよい。
【0019】
また、本発明の一態様では、前記エッジ量は、前記画素と該画素の周辺画素との間の色相の差に関する量であってもよい。
【0020】
また、本発明の一態様では、前記トリミング領域の画像の端から、基準量以上の前記エッジ量を有する画素が存在しない部分を取り除く手段を含むようにしてもよい。
【0021】
また、本発明の一態様では、前記複数のトリミング候補領域のうちから前記トリミング領域を決定するための複数種類のトリミング領域決定処理の各々に、画像のエッジ量の分布パターンに関する分布パターン情報を関連付けてなる関連付けデータを記憶する手段と、前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを、前記対象画像のエッジ量の分布パターンに関連づけられたトリミング領域決定処理によって実行するようにしてもよい。
【0022】
また、本発明の一態様では、前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを前記複数種類のトリミング領域決定処理の各々によって実行することによって、前記複数種類のトリミング領域決定処理にそれぞれ対応する複数のトリミング領域を決定する手段を含み、前記画像処理装置は、前記複数のトリミング領域の画像を表示手段に表示させる表示制御手段と、ユーザによる前記複数のトリミング領域の画像のうちの少なくとも1つの選択を受け付ける受付手段と、前記ユーザの選択結果に基づいて前記関連付けデータを更新する更新手段と、をさらに含むようにしてもよい。
【0023】
また、本発明の一態様では、前記画像処理装置は、前記複数のトリミング候補領域のうちから前記トリミング領域を決定するための複数種類のトリミング領域決定処理の各々に、画像のエッジ量の分布パターンに関する分布パターン情報を関連付けてなる関連付けデータを記憶する手段をさらに含み、前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを前記複数種類のトリミング領域決定処理の各々によって実行することによって、前記複数種類のトリミング領域決定処理にそれぞれ対応する複数のトリミング領域を決定する手段を含み、前記画像処理装置は、前記複数のトリミング領域の画像を表示手段に表示させる表示制御手段と、ユーザによる前記複数のトリミング領域の画像のうちの少なくとも1つの選択を受け付ける受付手段と、を含み、前記表示制御手段は、前記複数のトリミング領域の画像のうちの、前記対象画像のエッジ量の分布パターンに関連付けられたトリミング領域決定処理に対応するトリミング領域の画像を優先表示又は区別表示するようにしてもよい。
【0024】
また、本発明の一態様では、前記ユーザの選択結果に基づいて前記関連付けデータを更新する更新手段を含むようにしてもよい。
【0025】
また、本発明の一態様では、前記複数種類のトリミング領域決定処理は、前記複数のトリミング候補領域のうちで、前記合計値が最大であるトリミング候補領域を前記トリミング領域として決定するトリミング領域決定処理と、前記複数のトリミング候補領域のうちで、前記合計値を、該トリミング候補領域の少なくとも一つの境界部分の画素のエッジ量の合計値で除することによって得られる除算値が最大であるトリミング候補領域を前記トリミング領域として決定するトリミング領域決定処理と、を含むようにしてもよい。
【0026】
また、本発明の一態様では、前記算出手段は、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素の第1エッジ量の合計値を第1合計値として算出する第1算出手段と、前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素の第2エッジ量の合計値を第2合計値として算出する第2算出手段と、を含み、前記第1エッジ量は、前記画素と該画素の周辺画素との間の色相の差に関する量であり、前記第2エッジ量は、前記画素と該画素の周辺画素との間の輝度の差に関する量であり、前記複数種類のトリミング領域決定処理は、前記複数のトリミング候補領域の各々の前記第1合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定するトリミング領域決定処理と、前記複数のトリミング候補領域の各々の前記第2合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定するトリミング領域決定処理と、を含むようにしてもよい。
【0027】
また、本発明の一態様では、前記設定手段は、前記対象画像内の一部領域をトリミング候補領域として設定し、前記トリミング候補領域を前記対象画像内で縦又は/及び横に移動させることによって、前記複数のトリミング候補領域を設定するようにしてもよい。
【発明の効果】
【0028】
本発明によれば、対象画像の特徴部分を人間に選択させることなく、対象画像の特徴部分が含まれるようなトリミング画像を取得することが可能になる。
【図面の簡単な説明】
【0029】
【図1】本発明の実施形態に係る画像処理装置のハードウェア構成の一例を示す図である。
【図2】料理画像の一例を示す図である。
【図3】料理画像の他の一例を示す図である。
【図4】トリミング画像の一例を示す図である。
【図5】トリミング画像の他の一例を示す図である。
【図6】料理画像の画素について説明するための図である。
【図7】画像処理装置の機能ブロック図である。
【図8】トリミング候補領域について説明するための図である。
【図9】トリミング候補領域について説明するための図である。
【図10】トリミング領域決定部について説明するための図である。
【図11】トリミング領域決定部について説明するための図である。
【図12】画像処理装置で実行される処理の一例を示すフロー図である。
【図13】画像処理装置で実行される処理の一例を示すフロー図である。
【図14】トリミング候補領域の境界部分について説明するための図である。
【図15】トリミング候補領域の境界部分について説明するための図である。
【図16】複数種類のトリミング領域決定処理について説明するための図である。
【図17】トリミング画像選択画面の一例を示す図である。
【図18】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図19】トリミング領域決定処理データの一例を示す図である。
【図20】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図21】選択結果データの一例を示す図である。
【図22】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図23】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図24】トリミング候補領域の他の一例を示すフロー図である。
【図25】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図26】画像処理装置で実行される処理の他の一例を示すフロー図である。
【図27】トリミング画像取得部について説明するための図である。
【発明を実施するための形態】
【0030】
以下、本発明の実施形態の例について図面に基づき詳細に説明する。
【0031】
[第1実施形態]まず、本発明の第1実施形態について説明する。本発明の第1実施形態に係る画像処理装置は、例えばデスクトップ型コンピュータ、ラップトップ型コンピュータ、タブレット型コンピュータ、又はサーバコンピュータ等によって実現される。図1は、第1実施形態に係る画像処理装置10のハードウェア構成の一例を示す。
【0032】
図1に示すように、画像処理装置10は制御部11、記憶部12、光ディスクドライブ部13、通信インタフェース部14、操作部15、表示部16、及び音声出力部17を含む。
【0033】
制御部11は例えば1又は複数のマイクロプロセッサを含み、記憶部12に記憶されたオペレーティングシステム又はプログラムに従って情報処理を実行する。記憶部12は例えばRAM、ハードディスク、又はソリッドステートドライブを含む。光ディスクドライブ部13は、光ディスク(情報記憶媒体)に記憶されたプログラムやデータを読み取る。
【0034】
プログラムやデータは光ディスクを介して記憶部12に供給される。すなわち、プログラムやデータが記憶された光ディスクが光ディスクドライブ部13に装着され、プログラムやデータが光ディスクドライブ部13によって光ディスクから読み出され、記憶部12に記憶される。なお、光ディスクドライブ部13は必須の構成要素ではない。光ディスク以外の情報記憶媒体(例えばメモリカード)に記憶されたプログラム又はデータを読み取るための構成要素が光ディスクドライブ部13の代わりに含まれるようにしてもよい。そして、光ディスク以外の情報記憶媒体を介してプログラムやデータが記憶部12に供給されるようにしてもよい。
【0035】
通信インタフェース部14は画像処理装置10を通信ネットワークに接続するためのインタフェースである。画像処理装置10は通信ネットワークを介して他の装置(例えばサーバ等)とデータを授受できるようになっている。なお、プログラム及びデータが通信ネットワークを介して記憶部12に供給されるようにしてもよい。
【0036】
操作部15はユーザが操作を行うためのものである。例えば、キーボード、タッチパッド、マウス、タッチパネル、又はスティック(レバー)等が操作部15に相当する。表示部16は例えば液晶表示ディスプレイ等であり、音声出力部17は例えばスピーカ又はヘッドホン端子等である。
【0037】
画像処理装置10はデータベース20にアクセスできるようになっている。データベース20は、画像処理装置10以外の装置(例えばサーバ)において実現されていてもよいし、画像処理装置10において実現されていてもよい。
【0038】
データベース20には画像が記憶される。例えば、図示しないWebサーバによって提供されるサービスによって公開される画像がデータベース20に記憶される。例えば、投稿者によって投稿された料理画像を公開するサービスが提供される場合には、投稿者によって投稿された料理画像がデータベース20に記憶される。また例えば、投稿者によって投稿された自動車画像を公開するサービスが提供される場合には、投稿者によって投稿された自動車画像がデータベース20に記憶される。
【0039】
なお、以下では、投稿者によって投稿された料理画像がデータベース20に記憶されることとして説明する。図2及び図3はデータベース20に記憶される料理画像の例を示す。図2に示す料理画像30は、縦辺の長さ(画素数)が横辺の長さ(画素数)よりも長い縦長の画像になっている。一方、図3に示す料理画像30は、横辺の長さが縦辺の長さよりも長い横長の画像になっている。
【0040】
以下、投稿者によって投稿された料理画像30のうちの一部をトリミングすることによって該料理画像30のトリミング画像(サムネイル画像)を生成するための技術について説明する。特に、以下では、料理画像30の特徴部分を人間に選択させることなく、料理画像30の特徴部分が含まれるようなトリミング画像を生成するための技術について説明する。
【0041】
なお、以下では、一辺の長さが料理画像の短辺の長さと等しい正方形のトリミング画像を料理画像30から生成する場合について説明する。図4は、図2に示す料理画像30のトリミング画像の一例を示し、図5は、図3に示す料理画像30のトリミング画像の一例を示す。図4に示すトリミング画像40の各辺の長さは、図2に示す料理画像30の横辺の長さ(w)と等しくなっている。一方、図5に示すトリミング画像40の各辺の長さは、図3に示す料理画像30の縦辺の長さ(h)と等しくなっている。
【0042】
また、以下では、図6に示すように、料理画像30の左上画素を原点とし、右方向をX軸正方向とし、下方向をY軸正方向とした座標系によって、料理画像30の各画素を(x,y)のように表す。例えば、料理画像30の左上画素を(0,0)と記載し、右上画素を(w−1,0)と記載する。また例えば、料理画像30の左下画素を(0,h−1)と記載し、右下画素を(w−1,h−1)と記載する。
【0043】
図7は、第1実施形態に係る画像処理装置10において実現される機能ブロックのうち、本発明に関連する機能ブロックを示す機能ブロック図である。図7に示すように、画像処理装置10はトリミング候補領域設定部50、算出部52、トリミング領域決定部54、及びトリミング画像取得部56を含む。
【0044】
トリミング候補領域設定部50は、対象画像内に複数のトリミング候補領域を設定する。「対象画像」とは、トリミング処理の対象となる画像であり、本実施形態の場合、投稿者によって投稿された料理画像30が「対象画像」に相当する。
【0045】
図8及び図9はトリミング候補領域について説明するための図である。トリミング候補領域60の大きさは、生成しようとするトリミング画像40の大きさと同じ大きさに設定される。例えば、一辺の長さが料理画像30(対象画像)の短辺の長さと等しい正方形画像を料理画像30のトリミング画像40として生成する場合には、トリミング候補領域60は、一辺の長さが料理画像30の短辺の長さと等しい正方形領域に設定される。
【0046】
例えば、料理画像30が縦長の画像である場合、図8に示すように、トリミング候補領域60は、一辺の長さが料理画像30の横辺の長さ(w)と等しい正方形領域となる。一方、料理画像30が横長の画像である場合、図9に示すように、トリミング候補領域60は、一辺の長さが料理画像30の縦辺の長さ(h)と等しい正方形領域となる。
【0047】
トリミング候補領域設定部50は、料理画像30内の一部領域をトリミング候補領域60として設定し、トリミング候補領域60を料理画像30内で縦又は/及び横に移動させることによって、複数のトリミング候補領域60を設定する。
【0048】
例えば、料理画像30が縦長の画像である場合、図8に示すように、トリミング候補領域設定部50は、トリミング候補領域60の左上画素が料理画像30の左上画素と一致するようにして、トリミング候補領域60の初期位置を設定する(図8(A)参照)。言い換えれば、トリミング候補領域設定部50は、トリミング候補領域60の上側境界線62Uが料理画像30の上辺32Uと一致するようにして、トリミング候補領域60の初期位置を設定する。
【0049】
そして、トリミング候補領域設定部50はトリミング候補領域60を料理画像30内で下方に1画素移動させる(図8(B)参照)。さらに、トリミング候補領域設定部50はトリミング候補領域60を料理画像30内で下方に1画素移動させる(図8(C)参照)。このようにして、トリミング候補領域設定部50は、トリミング候補領域60の下側境界線62Dが料理画像30の下辺32Dと一致するまで、トリミング候補領域60を料理画像30内で下方に1画素ずつ移動させる(図8(D)参照)。トリミング候補領域60の下側境界線62Dが料理画像30の下辺32Dと一致した場合、トリミング候補領域60の左上画素は料理画像30の画素(0,h−w−1)に一致することになる。
【0050】
なお、トリミング候補領域設定部50は、トリミング候補領域60の左下画素が料理画像30の左下画素と一致するようにして、トリミング候補領域60の初期位置を設定するようにしてもよい。言い換えれば、トリミング候補領域設定部50は、トリミング候補領域60の下側境界線62Dが料理画像30の下辺32Dと一致するようにして、トリミング候補領域60の初期位置を設定するようにしてもよい。そして、トリミング候補領域設定部50は、トリミング候補領域60の上側境界線62Uが料理画像30の上辺32Uと一致するまで、トリミング候補領域60を料理画像30内で上方に1画素ずつ移動させるようにしてもよい。
【0051】
一方、料理画像30が横長の画像である場合、図9に示すように、トリミング候補領域設定部50は、トリミング候補領域60の左上画素が料理画像30の左上画素と一致するようにして、トリミング候補領域60の初期位置を設定する(図9(A)参照)。言い換えれば、トリミング候補領域設定部50は、トリミング候補領域60の左側境界線62Lが料理画像30の左辺32Lと一致するようにして、トリミング候補領域60の初期位置を設定する。
【0052】
そして、トリミング候補領域設定部50はトリミング候補領域60を料理画像30内で右方に1画素移動させる(図9(B)参照)。さらに、トリミング候補領域設定部50はトリミング候補領域60を料理画像30内で右方に1画素移動させる(図9(C)参照)。このようにして、トリミング候補領域設定部50は、トリミング候補領域60の右側境界線62Rが料理画像30の右辺32Rと一致するまで、トリミング候補領域60を料理画像30内で右方に1画素ずつ移動させる(図9(D)参照)。なお、トリミング候補領域60の右側境界線62Rが料理画像30の右辺32Rと一致した場合、トリミング候補領域60の左上画素は料理画像30の画素(w−h−1,0)に一致することになる。
【0053】
なお、トリミング候補領域設定部50は、トリミング候補領域60の右上画素が料理画像30の右上画素と一致するようにして、トリミング候補領域60の初期位置を設定するようにしてもよい。言い換えれば、トリミング候補領域設定部50は、トリミング候補領域60の右側境界線62Rが料理画像30の右辺32Rと一致するようにして、トリミング候補領域60の初期位置を設定するようにしてもよい。そして、トリミング候補領域設定部50は、トリミング候補領域60の左側境界線62Lが料理画像30の左辺32Lと一致するまで、トリミング候補領域60を料理画像30内で左方に1画素ずつ移動させるようにしてもよい。
【0054】
算出部52は、複数のトリミング候補領域60の各々について、該トリミング候補領域60内の画素のエッジ量の合計値を算出する。ここで、「エッジ」とは、対象画像中で色が変化する度合いのことを意味しており、「画素のエッジ量」とは、画素と該画素の周辺画素との間の色相の差に関する量である。
【0055】
画素のエッジ量を算出するための手法としては公知の手法を用いることができる。例えば、Sobelフィルタを用いることができる。画素(x,y)における画素値をIx,yとした場合、画素(x,y)のエッジ量Sx,yは下記の式(1)〜(3)によって算出される。
【0056】
【数1】
【0057】
なお、各画素の画素値Iは、各画素のRGB値をYCBCR値に変換することによって取得される。RGB値からYCBCR値への変換は下記の式(4)によって行われる。また、ここでは、画素と該画素の周辺画素との間の色相の差に関する量を「画素のエッジ量」として用いるため、各画素のCB,CR値に基づいて各画素の画素値Iが算出される。例えば下記の式(5)によって各画素の画素値Iが算出される。
【0058】
【数2】
【0059】
以上のようにして算出された料理画像30(対象画像)の各画素のエッジ量Sに基づいて、算出部52は、トリミング候補領域60内の画素のエッジ量Sの合計値Tを算出する。例えば、料理画像30が縦長の画像である場合、トリミング候補領域60の左上画素が(0,i)であるとすると、上記合計値Tは下記の式(6)によって算出される。一方、料理画像30が横長の画像である場合、トリミング候補領域60の左上画素が(i,0)であるとすると、上記合計値Tは下記の式(7)によって算出される。
【0060】
【数3】
【0061】
トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記合計値Tに基づいて、該複数のトリミング候補領域60のうちからトリミング領域を決定する。
【0062】
例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちで、上記合計値Tが最大であるトリミング候補領域60をトリミング領域として決定する。図10及び図11はトリミング領域決定部54について説明するための図である。図10及び図11では、各トリミング候補領域60の上記合計値Tを各トリミング候補領域60の位置に対応づけて表している。
【0063】
図10は、料理画像30(対象画像)が縦長の画像である場合について示しており、図10では、各トリミング候補領域60の上記合計値Tが各トリミング候補領域60の左上画素のY軸座標に対応づけられている。すなわち、図10において、Y軸座標(y)に対応づけられた合計値Tは、左上画素が(0,y)であるトリミング候補領域60内の画素のエッジ量の合計値Tを示している。
【0064】
図10に示す例の場合、Y軸座標(py)に対応づけられた上記合計値Tが最大になっている。この場合、トリミング領域決定部54は、左上画素が(0,py)であるトリミング候補領域60をトリミング領域として決定する。つまり、トリミング領域決定部54は、左上画素が(0,py)であり、かつ、一辺の長さが「w」である正方形領域をトリミング領域として決定する。
【0065】
図11は、料理画像30(対象画像)が横長の画像である場合について示しており、図11では、各トリミング候補領域60の上記合計値Tが各トリミング候補領域60の左上画素のX軸座標に対応づけられている。すなわち、図11において、X軸座標(x)に対応づけられた合計値Tは、左上画素が(x,0)であるトリミング候補領域60内の画素のエッジ量の合計値Tを示している。
【0066】
図11に示す例の場合、X軸座標(px)に対応づけられた上記合計値Tが最大になっている。この場合、トリミング領域決定部54は、左上画素が(px,0)であるトリミング候補領域60をトリミング領域として決定する。つまり、トリミング領域決定部54は、左上画素が(px,0)であり、かつ、一辺の長さが「h」である正方形領域をトリミング領域として決定する。
【0067】
要するに、トリミング領域決定部54は、左上画素が下記の式(8)及び(9)で示される画素(px,py)であり、かつ、一辺の長さがmin{w,h}である正方形領域をトリミング領域として決定する。
【0068】
【数4】
【0069】
トリミング画像取得部56はトリミング画像40を取得する。トリミング画像40は、対象画像(料理画像30)のうちのトリミング領域内の画像である。つまり、トリミング画像取得部56は、トリミング領域内の画像を料理画像30から切り出すことによってトリミング画像40を取得し、トリミング画像40を料理画像30と対応づけるようにしてデータベース20に保存する。
【0070】
次に、上記に説明した機能ブロックを実現するために画像処理装置10で実行される処理について説明する。図12及び図13は、対象画像(料理画像30)からトリミング画像40を取得するために画像処理装置10で実行される処理の一例を示すフロー図である。なお、図12及び図13に示す処理は、対象画像(料理画像30)が長方形画像であると前提している。制御部11が図12及び図13に示す処理をプログラムに従って実行することによって、制御部11が、トリミング候補領域設定部50、算出部52、トリミング領域決定部54、及びトリミング画像取得部56として機能するようになる。
【0071】
図12に示すように、まず、制御部11は対象画像をデータベース20から取得する(S101)。そして、制御部11は対象画像の各画素のエッジ量を上記の式(1)〜(5)に基づいて算出する(S102)。
【0072】
また、制御部11は対象画像の縦辺の長さ(h)が横辺の長さ(w)よりも長いか否かを判定する(S103)。そして、縦辺の長さ(h)が横辺の長さ(w)よりも長いと判定された場合、制御部11は変数i,px,py,Emaxをそれぞれ零に初期化する(S104)。
【0073】
ステップS104の処理が実行された後、制御部11は、左上画素が(0,i)であり、かつ、一辺の長さが「w」である正方形領域(トリミング候補領域60)の評価値Eを算出する(S105)。本実施形態の場合、制御部11は、上記の正方形領域内の画素のエッジ量の合計値Tを上記の式(6)によって算出し、該合計値Tを上記の正方形領域の評価値Eとして取得する。
【0074】
ステップS105の処理が実行された後、制御部11は、ステップS105で算出された評価値Eが変数Emaxよりも大きいか否かを判定する(S106)。評価値Eが変数Emaxよりも大きい場合、制御部11はステップS105で算出された評価値Eを変数Emaxにセットする(S107)。また、制御部11は変数iを変数pyにセットする(S108)。ステップS106〜S108の処理によって、変数Emaxは評価値Eの最大値を示し、変数pyは評価値Eの最大値となる場合の変数iの値を示すことになる。
【0075】
ステップS107,S108の処理が実行された場合、又はステップS106において評価値Eが変数Emaxよりも大きくないと判定された場合、制御部11は変数iに1を加算する(S109)。そして、制御部11は、変数iが値(h−w−1)以下であるか否かを判定する(S110)。変数iが値(h−w−1)以下である場合、制御部11はステップS105の処理を再実行する。一方、変数iが値(h−w−1)以下でない場合、図13に示すように、制御部11は、左上画素が(px,py)であり、かつ、一辺の長さが「w」である正方形領域をトリミング領域として決定する(S118)。
【0076】
なお、ステップS103において、縦辺の長さ(h)が横辺の長さ(w)よりも長くないと判定された場合、言い換えれば、横辺の長さ(w)が縦辺の長さ(h)よりも長い場合、制御部11は変数i,px,py,Emaxの値をそれぞれ0に初期化する(S111)。
【0077】
ステップS111の処理が実行された後、制御部11は、左上画素が(i,0)であり、かつ、一辺の画素数が「h」である正方形領域(トリミング候補領域60)の評価値Eを算出する(S112)。本実施形態の場合、制御部11は、上記の正方形領域内の画素のエッジ量の合計値Tを上記の式(7)によって算出し、該合計値Tを上記の正方形領域の評価値Eとして取得する。
【0078】
ステップS112の処理が実行された後、制御部11は、ステップS112で算出された評価値Eが変数Emaxよりも大きいか否かを判定する(S113)。評価値Eが変数Emaxよりも大きい場合、制御部11はステップS112で算出された評価値Eを変数Emaxにセットする(S114)。また、制御部11は変数iを変数pxにセットする(S115)。ステップS113〜S115の処理によって、変数Emaxは評価値Eの最大値を示し、変数pxは評価値Eの最大値となる場合の変数iの値を示すことになる。
【0079】
ステップS114,S115の処理が実行された場合、又はステップS113において評価値Eが変数Emaxよりも大きくないと判定された場合、制御部11は変数iに1を加算する(S116)。そして、制御部11は、変数iが値(w−h−1)以下であるか否かを判定する(S117)。変数iが値(w−h−1)以下である場合、制御部11はステップS112の処理を再実行する。一方、変数iが値(w−h−1)以下でない場合、図13に示すように、制御部11は、左上画素が(px,py)であり、かつ、一辺の画素数が「h」である正方形領域をトリミング領域として決定する(S119)。
【0080】
ステップS118又はS119の処理が実行された後、制御部11はトリミング画像40を取得する(S120)。すなわち、制御部11は、ステップS118又はS119で決定されたトリミング領域内の画像を対象画像から切り出すことによってトリミング画像40を取得し、該トリミング画像40を対象画像と対応づけるようにしてデータベース20に保存する。また、制御部11は、ステップS120で取得されたトリミング画像40を表示部16に表示する(S121)。以上で図12及び図13の処理の説明を終了する。
【0081】
以上説明した第1実施形態に係る画像処理装置10によれば、対象画像内の、エッジ量が高い部分がトリミング画像40として取得されるようになる。すなわち、対象画像内の、色相の変化の大きい部分がトリミング画像40として取得されるようになる。例えば、テーブル等の上に置かれた食器に盛り付けられた料理を写した料理画像の場合、料理が写っている部分では、他の部分(例えばテーブルが写っている部分等)と比較して、色相の変化が大きくなる。このため、第1実施形態に係る画像処理装置10によれば、料理が写っている部分をトリミング画像40として取得できるようになる。
【0082】
[第2実施形態]次に、本発明の第2実施形態について説明する。本発明の第2実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第2実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0083】
第1実施形態では、上記の式(8)及び(9)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域がトリミング領域として決定されるようになっていた。これに対し、第2実施形態では、下記の式(10)及び(11)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域がトリミング領域として決定されるようになっている。この点で第2実施形態に係る画像処理装置10は第1実施形態とは異なる。
【0084】
【数5】
【0085】
第2実施形態に係る画像処理装置10は第1実施形態と同様の機能ブロックを含む(図7参照)。トリミング候補領域設定部50、算出部52、及びトリミング画像取得部56の動作は第1実施形態と同様である。一方、トリミング領域決定部54の動作は、複数のトリミング候補領域60の各々の上記合計値Tに基づいて、該複数のトリミング候補領域60のうちからトリミング領域を決定する点で第1実施形態と共通しているが、下記に説明する点で第1実施形態とは異なる。
【0086】
第2実施形態の場合、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、該トリミング候補領域60の少なくとも一つの境界部分の画素のエッジ量の合計値を算出する。
【0087】
ここで、「少なくとも一つの境界部分」とは、トリミング候補領域60の上側境界部分、下側境界部分、左側境界部分、及び右側境界部分のうちの少なくとも一つである。
【0088】
図14は、トリミング候補領域60の上側境界部分及び下側境界部分について説明するための図である。なお、図14は、料理画像30が縦長の画像である場合について示している。
【0089】
上側境界部分70Uは、トリミング候補領域60の上側境界線62Uに対応する画素行を含む1又は複数の画素行である。
【0090】
例えば、上側境界部分70Uは、トリミング候補領域60の上側境界線62Uに対応する画素行である。すなわち、トリミング候補領域60の左上画素が(0,y)であるとすると、上側境界部分70Uは、画素(0,y)〜(w−1,y)の画素行である。なお、上側境界部分70Uは、画素(0,y)〜(w−1,y)の画素行から画素(0,y+n)〜(w−1,y+n)の画素行までの複数の画素行であってもよい(n:1以上の自然数)。
【0091】
同様に、下側境界部分70Dは、トリミング候補領域60の下側境界線62Dに対応する画素行を含む1又は複数の画素行である。
【0092】
例えば、下側境界部分70Dは、トリミング候補領域60の下側境界線62Dに対応する画素行である。すなわち、トリミング候補領域60の左上画素が(0,y)であるとすると、下側境界部分70Dは、画素(0,y+w−1)〜(w−1,y+w−1)の画素行である。なお、下側境界部分70Dは、画素(0,y+w−1)〜(w−1,y+w−1)の画素行から画素(0,y+w−1−n)〜(w−1,y+w−1−n)の画素行までの複数の画素行であってもよい(n:1以上の自然数)。
【0093】
なお、以下では、トリミング候補領域60の上側境界線62Uに対応する画素行が上側境界部分70Uに相当し、下側境界線62Dに対応する画素行が下側境界部分70Dに相当することとして説明する。
【0094】
図15は、トリミング候補領域60の左側境界部分及び右側境界部分について説明するための図である。なお、図15は、料理画像30が横長の画像である場合について示している。
【0095】
左側境界部分70Lは、トリミング候補領域60の左側境界線62Lに対応する画素列を含む1又は複数の画素列である。
【0096】
例えば、左側境界部分70Lは、トリミング候補領域60の左側境界線62Lに対応する画素列である。すなわち、トリミング候補領域60の左上画素が(x,0)であるとすると、左側境界部分70Lは、画素(x,0)〜(x,h−1)の画素列である。なお、左側境界部分70Lは、画素(x,0)〜(x,h−1)の画素列から画素(x+n,0)〜(x+n,h−1)の画素列までの複数の画素列であってもよい(n:1以上の自然数)。
【0097】
同様に、右側境界部分70Rは、トリミング候補領域60の右側境界線62Rに対応する画素列を含む1又は複数の画素列である。
【0098】
例えば、右側境界部分70Rは、トリミング候補領域60の右側境界線62Rに対応する画素列である。すなわち、トリミング候補領域60の左上画素が(x,0)であるとすると、右側境界部分70Rは、画素(x+h−1,0)〜(x+h−1,h−1)の画素列である。なお、右側境界部分70Rは、画素(x+h−1,0)〜(x+h−1,h−1)の画素列から画素(x+h−1−n,0)〜(x+h−1−n,h−1)の画素列までの複数の画素列であってもよい(n:1以上の自然数)。
【0099】
なお、以下では、トリミング候補領域60の左側境界線62Lに対応する画素列が左側境界部分70Lに相当し、右側境界線62Rに対応する画素列が右側境界部分70Rに相当することとして説明する。
【0100】
例えば、料理画像30が縦長の画像である場合、トリミング領域決定部54は、トリミング候補領域60の上側境界部分70U及び下側境界部分70Dの画素のエッジ量の合計値Taを算出する。トリミング候補領域60の左上画素が(0,i)であるとすると、上記の合計値Taは下記の式(12)によって算出される。
【0101】
一方、料理画像30が横長の画像である場合、トリミング領域決定部54は、トリミング候補領域60の左側境界部分70L及び右側境界部分70Rの画素のエッジ量の合計値Taを算出する。トリミング候補領域60の左上画素が(i,0)であるとすると、上記の合計値Taは下記の式(13)によって算出される。
【0102】
【数6】
【0103】
トリミング領域決定部54(第2算出手段)は、複数のトリミング候補領域60の各々について、上記合計値Tを上記合計値Taで除することによって得られる除算値(T/Ta)を算出する。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(T/Ta)に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定する。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(T/Ta)が最も大きいトリミング候補領域60をトリミング領域として決定する。
【0104】
なお、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、上記合計値Taを上記合計値Tで除することによって得られる除算値(Ta/T)を算出するようにしてもよい。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(Ta/T)に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定するようにしてもよい。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(Ta/T)が最も小さいトリミング候補領域60をトリミング領域として決定するようにしてもよい。
【0105】
以上のようにして、第2実施形態に係る画像処理装置10では、上記の式(10)及び(11)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域がトリミング領域として決定される。
【0106】
第2実施形態に係る画像処理装置10において実行される処理について説明する。第2実施形態に係る画像処理装置10でも第1実施形態と同様の処理が実行される(図12及び図13参照)。
【0107】
ただし、第2実施形態の場合、図12のステップS105において、制御部11は、上記の式(6)によって算出される合計値Tを上記の式(12)によって算出される合計値Taを除することによって算出される除算値(T/Ta)を、評価値Eとして取得する。
【0108】
また、ステップS112において、制御部11は、上記の式(7)によって算出される合計値Tを上記の式(13)によって算出される合計値Taを除することによって算出される除算値(T/Ta)を、評価値Eとして取得する。
【0109】
以上に説明した第2実施形態に係る画像処理装置10では、上記除算値(Ta/T)が最も大きいトリミング候補領域60がトリミング領域として決定される。トリミング候補領域60全体の画素のエッジ量の合計値Tが大きく、かつ、トリミング候補領域60の上側境界部分70U及び下側境界部分70Dの画素のエッジ量の合計値Taが小さい場合に、上記除算値(Ta/T)は大きくなる。トリミング候補領域60全体の画素のエッジ量の合計値Tが大きく、かつ、トリミング候補領域60の上側境界部分70U及び下側境界部分70Dの画素のエッジ量の合計値Taが小さい場合とは、上側境界部分70U及び下側境界部分70D以外の部分の画素のエッジ量が大きい場合である。すなわち、上側境界部分70U及び下側境界部分70Dに比べて、中央部分の画素のエッジ量が大きい場合である。
【0110】
第2実施形態に係る画像処理装置10によれば、対象画像内の、エッジ量が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。すなわち、対象画像内の、色相の変化が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。その結果、料理画像30内の、料理が写っている部分が中央に位置するようなトリミング画像40を取得できるようになる。
【0111】
ここで、第2実施形態の変形例について説明する。
【0112】
例えば、トリミング領域決定部54は、下記の式(14)及び(15)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域をトリミング領域として決定するようにしてもよい。
【0113】
【数7】
【0114】
この変形例では、料理画像30が縦長の画像である場合、トリミング領域決定部54は、トリミング候補領域60の上側境界部分70Uの画素のエッジ量の合計値Tu(第1合計値)と、トリミング候補領域60の下側境界部分70Dの画素のエッジ量の合計値Td(第2合計値)と、を算出する。トリミング候補領域60の左上画素が(0,i)であるとすると、上記合計値Tuは下記の式(16)によって算出され、上記合計値Tdは下記の式(17)によって算出される。
【0115】
【数8】
【0116】
そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、上記合計値Tを、上記合計値Tu,Tdのうちの大きい方で除することによって得られる除算値(T/max{Tu,Td})を算出する。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(T/max{Tu,Td})に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定する。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(T/max{Tu,Td})が最も大きいトリミング候補領域60をトリミング領域として決定する。
【0117】
なお、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、上記合計値Tu,Tdのうちの大きい方を、上記合計値Tで除することによって得られる除算値(max{Tu,Td}/T)を算出するようにしてもよい。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(max{Tu,Td}/T)に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定するようにしてもよい。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(max{Tu,Td}/T)が最も小さいトリミング候補領域60をトリミング領域として決定するようにしてもよい。
【0118】
一方、料理画像30が横長の画像である場合、トリミング領域決定部54は、トリミング候補領域60の左側境界部分70Lの画素のエッジ量の合計値Tl(第1合計値)と、トリミング候補領域60の右側境界部分70Rの画素のエッジ量の合計値Tr(第2合計値)と、を算出する。トリミング候補領域60の左上画素が(i,0)であるとすると、上記合計値Tlは下記の式(18)によって算出され、上記合計値Trは下記の式(19)によって算出される。
【0119】
【数9】
【0120】
そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、上記合計値Tを、上記合計値Tl,Trのうちの大きい方で除することによって得られる除算値(T/max{Tl,Tr})を算出する。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(T/max{Tl,Tr})に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定する。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(T/max{Tl,Tr})が最も大きいトリミング候補領域60をトリミング領域として決定する。
【0121】
なお、トリミング領域決定部54は、複数のトリミング候補領域60の各々について、上記合計値Tl,Trのうちの大きい方を上記合計値Tで除することによって得られる除算値(max{Tl,Tr}/T)を算出するようにしてもよい。そして、トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記除算値(max{Tl,Tr}/T)に基づいて、複数のトリミング候補領域60のうちからトリミング領域を決定するようにしてもよい。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちの、上記除算値(max{Tl,Tr}/T)が最も小さいトリミング候補領域60をトリミング領域として決定するようにしてもよい。
【0122】
この変形例の場合、図12のステップS105及びS112において下記に説明するような処理が実行される。すなわち、ステップS105において、制御部11は、上記の式(6)によって算出される合計値Tを、上記の式(16)及び(17)によって算出される合計値Tu,Tdのうちの大きい方で除することによって算出される除算値(T/max{Tu,Td})を、評価値Eとして取得する。
【0123】
また、ステップS112において、制御部11は、上記の式(7)によって算出される合計値Tを、上記の式(18)及び(19)によって算出される合計値Tl,Trのうちの大きい方で除することによって算出される除算値(T/max{Tl,Tr})を、評価値Eとして取得する。
【0124】
以上のようにしても、対象画像内の、エッジ量が大きい部分が中央に位置するようなトリミング画像を取得できるようになる。すなわち、対象画像内の、色相の変化が大きい部分が中央に位置するようなトリミング画像を取得できるようになる。その結果、料理画像30内の、料理が写っている部分が中央に位置するようなトリミング画像を取得できるようになる。
【0125】
[第3実施形態]次に、本発明の第3実施形態について説明する。本発明の第3実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第3実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0126】
第1実施形態では、上記の式(8)及び(9)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域がトリミング領域として決定されるようになっていた。これに対し、第3実施形態では、下記の式(20)及び(21)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域がトリミング領域として決定されるようになっている。なお、下記の式(20)及び(21)において「G」は下記の式(22)に示すガウス関数を示している。
【0127】
【数10】
【0128】
第3実施形態に係る画像処理装置10は第1実施形態と同様の機能ブロックを含む(図7参照)。トリミング候補領域設定部50及びトリミング画像取得部56の動作は第1実施形態と同様である。一方、算出部52及びトリミング領域決定部54の動作は、下記に説明する点で第1実施形態と異なる。
【0129】
第3実施形態における算出部52は、複数のトリミング候補領域60の各々について、該トリミング候補領域60内の画素のエッジ量の重み付き合計値を算出する。
【0130】
例えば、料理画像30が縦長の画像である場合、トリミング候補領域60の左上画素が(0,i)であるとすると、上記の重み付き合計値Tは下記の式(23)によって算出される。一方、料理画像30が横長の画像である場合、トリミング候補領域60の左上画素が(i,0)であるとすると、上記の重み付き合計値Tは下記の式(24)によって算出される。
【0131】
なお、下記の式(23)及び(24)ではガウス関数Gが各画素のエッジ量に対する重みの役割を果たしている。この場合、トリミング候補領域60の中央部分の画素の重みが、トリミング候補領域60の境界部分の画素の重みよりも高く設定されるようになる。このため、トリミング候補領域60の中央部分の画素のエッジ量が大きいほど、重み付き合計値Tはより大きくなるようになっている。
【0132】
【数11】
【0133】
トリミング領域決定部54は、複数のトリミング候補領域60の各々の上記の重み付き合計値Tに基づいて、該複数のトリミング候補領域60のうちからトリミング領域を決定する。例えば、トリミング領域決定部54は、複数のトリミング候補領域60のうちで、上記の重み付き合計値Tが最も大きいトリミング候補領域60をトリミング領域として決定する。
【0134】
第3実施形態に係る画像処理装置10で実行される処理について説明する。第3実施形態に係る画像処理装置10でも第1実施形態と同様の処理が実行される(図12及び図13参照)。
【0135】
ただし、第3実施形態の場合、図12のステップS105において、制御部11は、上記の式(23)によって算出される重み付き合計値Tを評価値Eとして取得する。また、ステップS112において、制御部11は、上記の式(24)によって算出される重み付き合計値Tを評価値Eとして取得する。
【0136】
以上に説明した第3実施形態に係る画像処理装置10では、上記の重み付き合計値Tが最も大きいトリミング候補領域60がトリミング領域として決定される。上記の重み付き合計値Tは、トリミング候補領域60の中央部分の画素のエッジ量が大きい場合に大きくなる。このため、第3実施形態に係る画像処理装置10によれば、中央部分の画素のエッジ量が大きいトリミング候補領域60がトリミング領域として決定されるようになる。その結果、第3実施形態に係る画像処理装置10によれば、対象画像内の、エッジ量が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。すなわち、対象画像内の、色相の変化が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。その結果、料理画像30内の、料理が写っている部分が中央に位置するようなトリミング画像40を取得できるようになる。
【0137】
なお、第3実施形態の変形例について説明する。
【0138】
例えば、トリミング領域決定部54は、下記の式(25)及び(26)によって示される画素(px,py)が左上画素であり、かつ、一辺の長さがmin{w,h}である正方形領域をトリミング領域として決定するようにしてもよい。
【0139】
【数12】
【0140】
この変形例では、料理画像30が縦長の画像である場合、トリミング候補領域60の左上画素が(0,i)であるとすると、上記の重み付き合計値Tが下記の式(27)によって算出される。
【0141】
なお、下記の式(27)ではガウス関数Gが各画素のエッジ量に対する重みの役割を果たしている。この場合、トリミング候補領域60の上側境界部分70U及び下側境界部分70Dの画素と比較して、トリミング候補領域60の中央部分の画素の重みが高く設定されるようになる。このため、トリミング候補領域60の中央部分の画素のエッジ量が大きいほど、重み付き合計値Tはより大きくなるようになっている。
【0142】
一方、料理画像30が横長の画像である場合、トリミング候補領域60の左上画素が(i,0)であるとすると、上記の重み付き合計値Tが下記の式(28)によって算出される。
【0143】
なお、下記の式(28)でもガウス関数Gが各画素のエッジ量に対する重みの役割を果たしている。この場合、トリミング候補領域60の左側境界部分70L及び右側境界部分70Rの画素と比較して、トリミング候補領域60の中央部分の画素の重みが高く設定されるようになる。このため、トリミング候補領域60の中央部分の画素のエッジ量が大きいほど、重み付き合計値Tはより大きくなるようになっている。
【0144】
【数13】
【0145】
この変形例の場合、図12のステップS105及びS112において下記に説明するような処理が実行される。すなわち、ステップS105において、制御部11は、上記の式(27)によって算出される重み付き合計値Tを評価値Eとして取得する。また、ステップS112において、制御部11は、上記の式(28)によって算出される重み付き合計値Tを評価値Eとして取得する。
【0146】
このようにしても、中央部分の画素のエッジ量が大きいトリミング候補領域60がトリミング領域として決定されるようになる。その結果、第3実施形態に係る画像処理装置10によれば、対象画像内の、エッジ量が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。すなわち、対象画像内の、色相の変化が大きい部分が中央に位置するようなトリミング画像40を取得できるようになる。その結果、料理画像30内の、料理が写っている部分が中央に位置するようなトリミング画像40を取得できるようになる。
【0147】
[第4実施形態]次に、本発明の第4実施形態について説明する。本発明の第4実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第4実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0148】
第1実施形態では、「エッジ」は、対象画像中で色が変化する度合いのことを意味し、「画素のエッジ量」は、画素と該画素の周辺画素との間の色相の差に関する量であることとして説明した。これに対して、第4実施形態では、「エッジ」は、対象画像中で輝度が変化する度合いのことを意味し、「画素のエッジ量」は、画素と該画素の周辺画素との間の輝度の差に関する量である点で第1実施形態と異なる。
【0149】
すなわち、第4実施形態に係る画像処理装置10では、上記の式(4)によって算出される各画素のY値が各画素の画素値Iとして用いられる。すなわち、第4実施形態では、各画素のY値が各画素の画素値Iとして上記の式(1)〜(3)に代入されることによって、各画素のエッジ量Sが算出される。
【0150】
なお、この第4実施形態は第2実施形態及び第3実施形態と組み合わせることが可能である。すなわち、第2実施形態及び第3実施形態においても、「画素のエッジ量」を画素と該画素の周辺画素との間の輝度の差に関する量としてもよい。
【0151】
以上に説明した第4実施形態に係る画像処理装置10によれば、対象画像内の、輝度の変化の大きい部分がトリミング画像40として取得されるようになる。例えば、テーブル等の上に置かれた食器に盛り付けられた料理を写した料理画像の場合、料理が写っている部分では、他の部分(例えばテーブルが写っている部分等)と比較して、輝度の変化が大きくなる。このため、第4実施形態に係る画像処理装置10によれば、料理が写っている部分をトリミング画像40として取得できるようになる。
【0152】
[第5実施形態]次に、本発明の第5実施形態について説明する。本発明の第5実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第5実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0153】
第5実施形態に係る画像処理装置10では、トリミング領域を決定するための処理(以下「トリミング領域決定処理」と呼ぶ。)として複数種類の処理が予め用意されており、それら複数種類のトリミング領域決定処理によって複数のトリミング領域が決定される。そして、それら複数のトリミング領域にそれぞれ対応する複数のトリミング画像40がユーザに提示され、ユーザがそれら複数のトリミング画像40のいずれかを選択できるようになっている。
【0154】
図16は複数種類のトリミング領域決定処理の一例を示す。図16では8種類のトリミング領域決定処理(第1〜第8のトリミング領域決定処理)が示されている。第1〜第8のトリミング領域決定処理は下記の点で異なっている。
(1)各画素のエッジ量を算出する際の基礎として色相又は輝度のいずれを用いるか
(2)トリミング領域の左上画素(px,py)をどのように定義するか
【0155】
第1のトリミング領域決定処理は第1実施形態に対応する。すなわち、第1のトリミング領域決定処理は、各画素のCB,CR値(色相)に基づいて各画素のエッジ量Sを算出し(上記の式(5)参照)、上記の式(8)及び(9)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0156】
第2のトリミング領域決定処理は第2実施形態に対応する。すなわち、第2のトリミング領域決定処理は、各画素のCB,CR値(色相)に基づいて各画素のエッジ量Sを算出し(上記の式(5)参照)、上記の式(10)及び(11)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0157】
第3のトリミング領域決定処理は第2実施形態の変形例に対応する。すなわち、第3のトリミング領域決定処理は、各画素のCB,CR値(色相)に基づいて各画素のエッジ量Sを算出し(上記の式(5)参照)、上記の式(14)及び(15)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0158】
第4のトリミング領域決定処理は第3実施形態に対応する。すなわち、第4のトリミング領域決定処理は、各画素のCB,CR値(色相)に基づいて各画素のエッジ量Sを算出し(上記の式(5)参照)、上記の式(20)及び(21)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0159】
なお、第4のトリミング領域決定処理は第3実施形態の変形例に対応するようにしてもよい。すなわち、第4のトリミング領域決定処理は、上記の式(25)及び(26)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理としてもよい。
【0160】
第5のトリミング領域決定処理は第4実施形態に対応する。すなわち、第5のトリミング領域決定処理は、各画素のY値(輝度)に基づいて各画素のエッジ量Sを算出し、上記の式(8)及び(9)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0161】
第6のトリミング領域決定処理は、第2実施形態及び第4実施形態の組み合わせに対応する。すなわち、第6のトリミング領域決定処理は、各画素のY値(輝度)に基づいて各画素のエッジ量Sを算出し、上記の式(10)及び(11)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0162】
第7のトリミング領域決定処理は、第2実施形態の変形例と第4実施形態との組み合わせに対応する。すなわち、第7のトリミング領域決定処理は、各画素のY値(輝度)に基づいて各画素のエッジ量Sを算出し、上記の式(14)及び(15)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域を決定する処理である。
【0163】
第8のトリミング領域決定処理は、第3実施形態及び第4実施形態の組み合わせに対応する。すなわち、第8のトリミング領域決定処理は、各画素のY値(輝度)に基づいて各画素のエッジ量Sを算出し、上記の式(20)及び(21)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理である。
【0164】
なお、第8のトリミング領域決定処理は、第3実施形態の変形例と第4実施形態との組み合わせに対応するようにしてもよい。すなわち、第8のトリミング領域決定処理は、上記の式(25)及び(26)によって示される画素(px,py)を左上画素とする正方形領域をトリミング領域として決定する処理としてもよい。
【0165】
第5実施形態に係る画像処理装置10では、第1〜第8のトリミング領域決定処理の各々が実行されることによって、第1〜第8のトリミング領域が決定される。そして、第1〜第8のトリミング領域に対応する第1〜第8のトリミング画像40が取得される。また、第1〜第8のトリミング画像40のいずれかを選択するための画面(トリミング画像選択画面)が表示部16に表示される。
【0166】
図17はトリミング画像選択画面の一例を示す。トリミング画像選択画面には、第1のトリミング画像40a、第2のトリミング画像40b、第3のトリミング画像40c、第4のトリミング画像40d、第5のトリミング画像40e、第6のトリミング画像40f、第7のトリミング画像40g、及び第8のトリミング画像40hが表示されている。
【0167】
また、トリミング画像選択画面には、第1のオプションボタン80a、第2のオプションボタン80b、第3のオプションボタン80c、第4のオプションボタン80d、第5のオプションボタン80e、第6のオプションボタン80f、第7のオプションボタン80g、及び第8のオプションボタン80hが表示されている。第1のオプションボタン80aは第1のトリミング画像40aに関連付けられている。同様に、第2のオプションボタン80b〜第8のオプションボタン80hは、それぞれ、第2のトリミング画像40b〜第8のトリミング画像40hに関連付けられている。
【0168】
ユーザは第1のオプションボタン80a〜第8のオプションボタン80hのいずれかをクリックすることによって、第1のトリミング画像40a〜第8のトリミング画像40hのいずれかを選択し、決定ボタン82をクリックする。決定ボタン82がクリックされると、ユーザによって選択されたトリミング画像40が元の料理画像30に対応づけられるようにしてデータベース20に保存される。
【0169】
次に、第5実施形態に係る画像処理装置10で実行される処理について説明する。図18は、第5実施形態に係る画像処理装置10で実行される処理の一例を示すフロー図である。
【0170】
図18に示すように、まず、制御部11は対象画像をデータベース20から取得する(S201)。その後、制御部11は対象画像の各画素の第1のエッジ量及び第2のエッジ量を算出する(S202)。
【0171】
なお、「第1のエッジ量」は、画素のCB,CR値(色相)に基づいて算出されるエッジ量であり、上記の式(5)によって示される画素値Iに基づき上記の式(1)〜(3)によって算出されるエッジ量Sである。
【0172】
一方、「第2のエッジ量」は、画素のY値(輝度)に基づいて算出されるエッジ量であり、画素のY値を画素値Iとして用いて上記の式(1)〜(3)によって算出されるエッジ量Sである。
【0173】
また、制御部11は変数kを1に初期化する(S203)。そして、制御部11は、第kのトリミング領域決定処理を実行することによって、第kのトリミング領域を決定する(S204)。このステップS204の処理は図12及び図13のステップS103〜S119の処理と同様である。
【0174】
また、制御部11は、ステップS204で決定された第kのトリミング領域の画像を対象画像からトリミングすることによって、第kのトリミング画像40を取得する(S205)。取得された第kのトリミング画像40は記憶部12に保存される。
【0175】
ステップS205の処理が実行された後、制御部11は変数kに1を加算する(S206)。そして、制御部11は変数kが8以下であるか否かを判定する(S207)。ここで、「8」は、トリミング領域決定処理の種類の総数を示している。
【0176】
変数kが8以下である場合、制御部11はステップS204の処理を再実行する。一方、変数kが8以下でない場合、制御部11(表示制御手段)はトリミング画像選択画面を表示部16に表示する(S208)。図17に示したように、トリミング画像選択画面には第1のトリミング画像40a〜第8のトリミング画像40hが表示される。
【0177】
トリミング画像選択画面が表示されている場合、制御部11(受付手段)は、ユーザによって行われる第1のトリミング画像40a〜第8のトリミング画像40hのいずれかの選択を受け付ける。すなわち、制御部11は、第1のトリミング画像40a〜第8のトリミング画像40hのいずれかがユーザによって選択されたか否かを監視する(S209)。第1のオプションボタン80a〜第8のオプションボタン80hのいずれかがクリックされ、さらに、決定ボタン82が決定された場合、制御部11は、第1のトリミング画像40a〜第8のトリミング画像40hのいずれかがユーザによって選択されたと判定する。
【0178】
第1のトリミング画像40a〜第8のトリミング画像40hのいずれかがユーザによって選択された場合、制御部11は、ユーザによって選択されたトリミング画像40を、ステップS201で取得された対象画像(料理画像30)に対応づけるようにしてデータベース20に保存する(S210)。すなわち、ユーザによって選択されたトリミング画像40が、ステップS201で取得された対象画像(料理画像30)のサムネイル画像としてデータベース20に保存される。以上で図18に示す処理の説明を終了する。
【0179】
以上に説明した第5実施形態に係る画像処理装置10によれば、複数のトリミング領域決定処理に基づいて取得された複数のトリミング画像40のうちから所望のトリミング画像40をユーザが選択できるようになる。
【0180】
[第6実施形態]次に、本発明の第6実施形態について説明する。第6実施形態は第5実施形態の変形例に相当する。本発明の第6実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第6実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0181】
第5実施形態と同様、第6実施形態に係る画像処理装置10においても、複数種類のトリミング領域決定処理が予め用意されており、それら複数種類のトリミング領域決定処理によって複数のトリミング領域が決定される。そして、それら複数のトリミング領域にそれぞれ対応する複数のトリミング画像40がユーザに提示され、ユーザがそれら複数のトリミング画像40のいずれかを選択できるようになっている。
【0182】
ただし、第6実施形態に係る画像処理装置10では、複数種類のトリミング領域決定処理のうちから、対象画像(料理画像30)の特徴に合ったトリミング領域決定処理が選択され、そのトリミング領域決定処理に基づいて取得されたトリミング画像40がトリミング画像選択画面において優先表示又は区別表示されるようになっている。この点で第6実施形態に係る画像処理装置10は第5実施形態と異なっている。
【0183】
第6実施形態に係る画像処理装置10では、例えば図19に示すようなトリミング領域決定処理データ(関連付けデータ)が記憶部12に記憶される。図19に示すトリミング領域決定処理データは、エッジ量の分布パターン情報と、トリミング領域決定処理と、を関連付けたデータである。図19に示すトリミング領域決定処理データでは、第1〜第8のトリミング領域決定処理の各々に、エッジ量の分布パターン情報が関連付けられている。なお、第1〜第8のトリミング領域決定処理は図16と同様である。
【0184】
エッジ量の分布パターン情報は画像のエッジ量の分布パターンに関する情報である。例えば、分布パターン情報は、図10,11に示したような画像の縦方向又は横方向に対する上記合計値Tの変化パターンを示す情報である。すなわち、分布パターン情報は、各トリミング候補領域60の上記合計値Tを各トリミング候補領域60の位置(例えば左上画素のY軸座標又はX軸座標)に対応づけて表した場合の上記合計値Tの変化パターンを示す情報である。言い換えれば、分布パターン情報は、各トリミング候補領域60の位置に関する第1の軸(図10,11におけるY軸又はX軸)と、各トリミング候補領域60の上記合計値Tに関する第2の軸(図10,11におけるT軸)と、が互いに直交するようにして設定された平面上に表される上記合計値Tの変化パターンを示す情報である。例えば、分布パターン情報は、第1のエッジ量(すなわち、画素のCB,CR値に基づいて算出されるエッジ量)に基づいて算出される上記合計値Tの上記変化パターンと、第2のエッジ量(すなわち、画素のY値に基づいて算出されるエッジ量)に基づいて算出される上記合計値Tの上記変化パターンと、を示す情報である。
【0185】
また例えば、分布パターン情報は、画像の各画素行又は各画素列ごとのエッジ量の合計値のパターンを示す情報であってもよい。例えば、分布パターン情報は、画像の各画素行又は各画素列ごとの第1のエッジ量(すなわち、画素のCB,CR値(色相)に基づいて算出されるエッジ量)の合計値のパターンと、画像の各画素行又は各画素列ごとの第2のエッジ量(すなわち、画素のY値(輝度)に基づいて算出されるエッジ量)の合計値のパターンと、を示す情報であってもよい。
【0186】
第6実施形態に係る画像処理装置10で実行される処理について説明する。第6実施形態に係る画像処理装置10で実行される処理は第5実施形態と類似している。すなわち、第6実施形態に係る画像処理装置10においても、図18に示す処理と同様の処理が実行される。ただし、第6実施形態に係る画像処理装置10ではステップS208の処理が第5実施形態と異なっている。第6実施形態に係る画像処理装置10では、ステップS208において、例えば図20に示すような処理が実行される。
【0187】
すなわち、ステップS208において、制御部11は、ステップS201で取得された対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当するか否かを判定する(S301)。例えば、制御部11は、ステップS201で取得された対象画像の画素のエッジ量に基づいて、対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当するか否かを判定する。
【0188】
対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当すると判定された場合、制御部11(表示制御手段)はトリミング画像選択画面を表示部16に表示する(S302)。この場合、制御部11は、対象画像のエッジ量の分布パターンを示す分布パターン情報に対応するトリミング画像40をトリミング画像選択画面において優先表示する。
【0189】
ここで、「分布パターン情報に対応するトリミング画像40」とは、分布パターン情報に関連付けられたトリミング領域決定処理によって決定されたトリミング領域の画像である。例えば、図19に示すトリミング領域決定処理データでは、第4の分布パターン情報と第4のトリミング領域決定処理とが関連付けられている。このため、「第4の分布パターン情報に対応するトリミング画像40」とは、第4のトリミング領域決定処理によって決定されたトリミング領域(第4のトリミング領域)の画像、すなわち、第4のトリミング画像40dである。
【0190】
例えば、ステップS201で取得された対象画像のエッジ量の分布パターンが第4の分布パターン情報が示す分布パターンに相当すると判定された場合、制御部11は第4のトリミング画像40dをトリミング画像選択画面において優先表示させる。
【0191】
例えば、制御部11は、第4のトリミング画像40dが予め選択された状態でトリミング画像選択画面を表示させる。すなわち、制御部11は、第4のオプションボタン80dが予め選択された状態でトリミング画像選択画面を表示させる。
【0192】
また例えば、順序情報に従った表示順序で第1のトリミング画像40a〜第8のトリミング画像40hがトリミング画像選択画面に表示されるような場合であれば、制御部11は第4のトリミング画像40dの順位を第1番目に設定する。
【0193】
なお、ステップS201で取得された対象画像のエッジ量の分布パターンが第4の分布パターン情報が示す分布パターンに相当すると判定された場合、制御部11は第4のトリミング画像40dをトリミング画像選択画面において優先表示する代わりに、第4のトリミング画像40dをトリミング画像選択画面において区別表示するようにしてもよい。すなわち、制御部11は、第4のトリミング画像40dが他のトリミング画像40と区別されるようにしてトリミング画像選択画面を表示するようにしてもよい。
【0194】
例えば、制御部11は第4のトリミング画像40dの表示態様を他のトリミング画像40と異なる表示態様で表示させる。また例えば、制御部11は第4のトリミング画像40dのみに関連付けて所定の画像(例えば、枠画像、吹き出し画像、又は星画像等)を表示させることによって、第4のトリミング画像40dを他のトリミング画像40と区別表示する。
【0195】
なお、対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報が示す分布パターンのいずれにも相当しないと判定された場合、制御部11はトリミング画像選択画面を表示部16に表示する(S303)。この場合、制御部11は、いずれのトリミング画像40もトリミング画像選択画面において優先表示(区別表示)しない。
【0196】
ステップS302又はS303が実行された後、制御部11は図18のステップS209の処理を実行する。以上で図20に示す処理の説明を終了する。
【0197】
以上に説明した第6実施形態に係る画像処理装置10によれば、対象画像(料理画像30)の特徴(エッジ量の分布パターン)に合ったトリミング領域決定処理が選択され、そのトリミング領域決定処理に基づいて取得されたトリミング画像40がトリミング画像選択画面において優先表示又は区別表示される。その結果、対象画像(料理画像30)の特徴に合ったトリミング領域決定処理に基づいて取得されたトリミング画像40をユーザが選択し易くなるように図ることが可能になる。
【0198】
なお、第6実施形態に係る画像処理装置10では、トリミング画像選択画面においてユーザが行った選択結果に基づいて、トリミング領域決定処理データを更新するようにしてもよい。以下、このようなトリミング領域決定処理データを更新する構成について説明する。
【0199】
この変形例の場合、例えば図21に示すような選択結果データが記憶部12(又はデータベース20)に記憶される。図21に示す選択結果データでは、エッジ量の分布パターン情報と、選択結果情報と、が関連付けられている。なお、「エッジ量の分布パターン情報」は図19と同様である。
【0200】
「選択結果情報」は第1〜第8のトリミング画像40の選択回数を示している。図21に示す選択結果データにおいて、第1の分布パターン情報に対応づけられた選択結果情報は、対象画像のエッジ量の分布パターンが第1の分布パターンが示す分布パターンに相当する場合におけるトリミング画像選択画面でユーザが第1〜第8のトリミング画像40の各々を選択した回数を示している。第2〜第8の分布パターン情報に対応づけられた選択結果情報も同様である。
【0201】
また、この変形例の場合、図18のステップS210の処理が実行された後で制御部11は図22に示す処理を実行する。
【0202】
すなわち、制御部11は、ステップS201で取得された対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当するか否かを判定する(S401)。このステップS401の処理は図20のステップS301の処理と同様である。
【0203】
対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当すると判定された場合、制御部11は、その分布パターン情報に対応づけられた選択結果情報を更新する(S402)。例えば、トリミング画像選択画面においてユーザによって選択されたトリミング画像40が第1のトリミング画像40aであり、かつ、ステップS401において対象画像のエッジ量の分布パターンが第4の分布パターン情報が示す分布パターンに相当すると判定された場合、制御部11は、第4の分布パターン情報に対応づけられた「第1のトリミング画像40aの選択回数」を1増加させる。
【0204】
ステップS402の処理が実行された後、制御部11(更新手段)は選択結果データに基づいてトリミング領域決定処理データを更新する(S403)。
【0205】
例えば、図21に示す例では、対象画像のエッジ量の分布パターンが第7の分布パターン情報が示す分布パターンに相当する場合における選択回数が最も多いトリミング画像40が第8のトリミング画像40hであるため、制御部11は、第7の分布パターン情報に対応づけられたトリミング領域決定処理が、第8のトリミング画像40hに対応するトリミング領域決定処理(すなわち、第8のトリミング領域決定処理)となるように、トリミング領域決定処理データを更新する。
【0206】
また例えば、図21に示す例では、対象画像のエッジ量の分布パターンが第8の分布パターン情報が示す分布パターンに相当する場合における選択回数が最も多いトリミング画像40が第7のトリミング画像40gであるため、制御部11は、第8の分布パターン情報に対応づけられたトリミング領域決定処理が、第7のトリミング画像40gに対応するトリミング領域決定処理(すなわち、第7のトリミング領域決定処理)となるように、トリミング領域決定処理データを更新する。
【0207】
なお、ステップS401において、対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報が示す分布パターンのいずれにも相当しないと判定された場合、制御部11はステップS402,S403の処理を実行することなく、本処理を終了する。以上で図22の処理の説明を終了する。
【0208】
以上のようにすれば、ユーザの選択結果を考慮して、画像のエッジ量の分布パターンとトリミング領域決定処理との関連付けを見直すことが可能になる。
【0209】
[第7実施形態]次に、本発明の第7実施形態について説明する。第7実施形態は第5実施形態の変形例に相当する。本発明の第7実施形態に係る画像処理装置10のハードウェア構成は第1実施形態と同様である(図1参照)。第7実施形態に係る画像処理装置10においても、データベース20に記憶された画像(料理画像30)のトリミング画像40が生成される。
【0210】
第5実施形態と同様、第7実施形態に係る画像処理装置10においても、複数種類のトリミング領域決定処理が予め用意されている(図16,19参照)。ただし、第7実施形態に係る画像処理装置10では、複数種類のトリミング領域決定処理のうちから、対象画像(料理画像30)の特徴に合ったトリミング領域決定処理が選択され、そのトリミング領域決定処理に基づいて取得されたトリミング画像40が対象画像のサムネイル画像として保存されるようになっている。この点で第7実施形態に係る画像処理装置10は第5実施形態と異なっている。
【0211】
第7実施形態に係る画像処理装置10で実行される処理について説明する。図23は、第7実施形態に係る画像処理装置10で実行される処理の一例を示すフロー図である。第5実施形態と同様、第7実施形態に係る画像処理装置10においても、図19に示すトリミング領域決定処理データが記憶されており、図23に示す処理は図19に示すトリミング領域決定処理データに基づいて実行される。
【0212】
図23に示すように、制御部11は対象画像をデータベース20から取得する(S501)。また、制御部11は対象画像の各画素の第1のエッジ量及び第2のエッジ量を算出する(S502)。このステップS502の処理は図18のステップS202の処理と同様である。
【0213】
そして、制御部11は、ステップS501において取得された対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当するか否かを判定する(S503)。このステップS503の処理は図20のステップS301の処理と同様である。
【0214】
対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報のいずれかが示す分布パターンに相当する場合、制御部11は、その分布パターン情報に関連付けられたトリミング領域決定処理を実行することによって、トリミング領域を決定する(S504)。このステップS504の処理は図12及び図13のステップS103〜S119の処理と同様である。
【0215】
一方、対象画像のエッジ量の分布パターンが第1〜第8の分布パターン情報が示す分布パターンのいずれにも相当しない場合、制御部11は、第1〜第8のトリミング領域決定処理のうちの所定のトリミング領域決定処理(例えば、第1のトリミング領域決定処理)を実行することによって、トリミング領域を決定する(S505)。このステップS505の処理は図12及び図13のステップS103〜S119の処理と同様である。
【0216】
ステップS504又はS505の処理が実行された後、制御部11はステップS504又はS505において決定されたトリミング領域の画像を対象画像からトリミングすることによってトリミング画像40を取得し、該トリミング画像40を対象画像と対応づけてデータベース20に保存する(S506)。また、制御部11はトリミング画像40を表示部16に表示する(S507)。以上で図23に示す処理の説明を終了する。
【0217】
以上説明した第7実施形態に係る画像処理装置10によれば、対象画像(料理画像30)にの特徴(エッジ量の分布パターン)に合ったトリミング領域決定処理が選択され、そのトリミング領域決定処理に基づいて取得されたトリミング画像40が対象画像のサムネイル画像として保存されるようになる。
【0218】
なお、第7実施形態に係る画像処理装置10は、オプションモードとして、第5実施形態及び第6実施形態において説明した構成を備えるようにしてもよい。すなわち、第7実施形態に係る画像処理装置10では、図23に示す処理と図18に示す処理とのいずれかをユーザを選択できるようにしてもよい。そして、図18に示す処理がユーザによって選択された場合には、図22に示す処理(すなわち、トリミング領域決定処理データの更新処理)が実行されるようにしてもよい。
【0219】
なお、本発明は以上に説明した第1〜第7実施形態に限定されるものではない。
【0220】
[1]例えば、以上では、対象画像のトリミング画像40として、一辺の長さが対象画像の短辺の長さと等しい正方形画像を取得することとして説明した。すなわち、一辺の長さが対象画像の短辺の長さと等しい正方形領域をトリミング候補領域60として設定することとして説明した。
【0221】
しかしながら、対象画像のトリミング画像40として、一辺の長さが対象画像の短辺の長さと異なる正方形画像を取得するようにしてもよい。すなわち、一辺の長さが対象画像の短辺の長さと異なる正方形領域をトリミング候補領域60として設定するようにしてもよい。また、対象画像のトリミング画像40として長方形画像を取得するようにしてもよい。すなわち、長方形領域をトリミング候補領域60として設定するようにしてもよい。
【0222】
ここで、縦辺の長さがhaであり、横辺の長さがwaである矩形画像をトリミング画像40として対象画像から取得する場合について説明する。すなわち、図24に示すような、縦辺の長さがhaであり、横辺の長さがwaである矩形領域をトリミング候補領域60として設定する場合について説明する。図25及び図26は、上記のような矩形画像をトリミング画像と40して取得する場合に画像処理装置10で実行される処理の一例を示すフロー図である。
【0223】
図25に示すように、まず、制御部11は対象画像をデータベース20から取得する(S601)。その後、制御部11は対象画像の各画素のエッジ量を算出する(S602)。ステップS601,S602の処理は図12のステップS101,S102と同様である。
【0224】
また、制御部11は変数i,j,px,py,Emaxをそれぞれ零に初期化する(S603)。そして、制御部11は、左上画素が(i,j)であり、かつ、縦辺及び横辺の長さがそれぞれha,waである矩形領域(トリミング候補領域60)の評価値Eを算出する(S604)。ステップS604の処理は図12のステップS105,S112と同様である。
【0225】
ステップS604の処理が実行された後、制御部11は、ステップS604で算出された評価値Eが変数Emaxよりも大きいか否かを判定する(S605)。評価値Eが変数Emaxよりも大きい場合、制御部11はステップS604で算出された評価値Eを変数Emaxにセットする(S606)。また、制御部11は変数i,jを変数px,pyにそれぞれセットする(S607)。ステップS605〜S607の処理によって、変数Emaxは評価値Eの最大値を示し、変数px,pyは評価値Eの最大値となる場合の変数i,jの値を示すことになる。
【0226】
ステップS606,S607の処理が実行された場合、又はステップS605において評価値Eが変数Emaxよりも大きくないと判定された場合、制御部11は変数jに1を加算する(S608)。そして、制御部11は、変数jが値(h−ha−1)以下であるか否かを判定する(S609)。
【0227】
変数jが値(h−ha−1)以下である場合、制御部11はステップS604の処理を再実行する。一方、変数jが値(h−ha−1)以下でない場合、制御部11は変数iに1を加算する(S610)。そして、制御部11は、変数iが値(w−wa−1)以下であるか否かを判定する(S611)。
【0228】
変数iが値(w−wa−1)以下である場合、制御部11は変数jを零に初期化し(S612)、ステップS604の処理を再実行する。一方、変数iが値(w−wa−1)以下でない場合、制御部11は、左上画素が(px,py)であり、かつ、縦辺及び横辺がそれぞれha,waである矩形領域をトリミング領域として決定する(S613)。
【0229】
そして、制御部11はトリミング画像40を取得する(S614)。すなわち、制御部11は、ステップS613で決定されたトリミング領域内の画像を対象画像から切り出すことによって、トリミング画像40を取得する。そして、制御部11はトリミング画像40を対象画像と対応づけるようにしてデータベース20に保存する。また、制御部11は、ステップS614で取得されたトリミング画像40を表示部16に表示する(S615)。以上で図25及び図26の処理の説明を終了する。
【0230】
[2]また例えば、トリミング画像取得部56によって取得されたトリミング画像40の端から、基準量以上のエッジ量を有する画素が存在しない部分が存在する場合、トリミング画像取得部56はその部分を取り除くようにしてもよい。
【0231】
図27はトリミング画像40の一例を示す。図27において、符号90aはトリミング画像40の第1の辺を示している。また、符号90b,90cは、第1の辺90aと直交するトリミング画像40の第2の辺及び第3の辺を示している。また、符号90dは、第1の辺90aと平行な直線であって、かつ、第2の辺90b及び第3の辺90cと直交する直線を示している。また、トリミング画像40内の斜線領域92は、第1の辺90aと第2の辺90bと第3の辺90cと直線90dとに囲まれた領域である。例えば、基準量以上のエッジ量を有する画素が斜線領域92内に存在しない場合、トリミング画像取得部56はトリミング画像40から斜線領域92を取り除くようにしてもよい。
【0232】
例えば、料理画像30から取得されたトリミング画像40の斜線領域92内に基準量以上のエッジ量を有する画素が存在しない場合、斜線領域92は、料理が写っている領域ではなく、例えばテーブル等が写っている領域である場合が多い。このため、以上のようにすれば、不要な領域を取り除くことが可能になる。
【0233】
[3]また例えば、以上では、投稿者によって投稿された料理画像30がデータベース20に記憶されていることとして説明したが、データベース20に記憶される画像は料理画像30に限られない。本発明は、料理画像30以外の画像からトリミング画像(サムネイル画像)を生成する場合にも適用することが可能である。
【符号の説明】
【0234】
10 画像処理装置、11 制御部、12 記憶部、13 光ディスクドライブ部、14 通信インタフェース部、15 操作部、16 表示部、17 音声出力部、20 データベース、30 料理画像、40 トリミング画像、40a 第1のトリミング画像、40b 第2のトリミング画像、40c 第3のトリミング画像、40d 第4のトリミング画像、40e 第5のトリミング画像、40f 第6のトリミング画像、40g 第7のトリミング画像、40h 第8のトリミング画像、50 トリミング候補領域設定部、52 算出部、54 トリミング領域決定部、56 トリミング画像取得部、60 トリミング候補領域、80a 第1のオプションボタン、80b 第2のオプションボタン、80c 第3のオプションボタン、80d 第4のオプションボタン、80e 第5のオプションボタン、80f 第6のオプションボタン、80g 第7のオプションボタン、80h 第8のオプションボタン、82 決定ボタン。
【特許請求の範囲】
【請求項1】
対象画像内に複数のトリミング候補領域を設定する設定手段と、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段と、
前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段と、
前記トリミング領域内の画像を取得する取得手段と、
を含むことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記決定手段は、前記複数のトリミング候補領域のうちで、前記合計値が最大であるトリミング候補領域を前記トリミング領域として決定する手段を含むことを特徴とする画像処理装置。
【請求項3】
請求項1又は2に記載の画像処理装置において、
前記複数のトリミング候補領域の各々について、該トリミング候補領域の前記合計値を、該トリミング候補領域の少なくとも一つの境界部分の画素のエッジ量の合計値で除することによって得られる除算値又はその逆数を算出する第2算出手段を含み、
前記決定手段は、前記複数のトリミング候補領域の各々の前記除算値又は前記逆数に基づいて、前記複数のトリミング候補領域のうちから前記トリミング領域を決定する、
ことを特徴とする画像処理装置。
【請求項4】
請求項3に記載の画像処理装置において、
前記決定手段は、前記複数のトリミング候補領域のうちで、前記除算値が最大であるトリミング候補領域、又は前記逆数が最小であるトリミング候補領域を前記トリミング領域として決定する手段を含むことを特徴とする画像処理装置。
【請求項5】
請求項3又は4に記載の画像処理装置において、
前記複数のトリミング候補領域の各々について、該トリミング候補領域の第1境界部分の画素のエッジ量の合計値を第1合計値として算出する手段と、
前記複数のトリミング候補領域の各々について、該トリミング候補領域の、前記第1境界部分に対向する第2境界部分の画素のエッジ量の合計値を第2合計値として算出する手段と、を含み、
前記第2算出手段は、前記複数のトリミング候補領域の各々について、該トリミング候補領域の前記合計値を、該トリミング候補領域の前記第1合計値及び前記2合計値のうちの大きい方で除することによって得られる除算値又はその逆数を算出する、
ことを特徴とする画像処理装置。
【請求項6】
請求項1乃至5のいずれかに記載の画像処理装置において、
前記算出手段は、前記トリミング候補領域内の画素のエッジ量の合計値として、前記トリミング候補領域内の画素のエッジ量の重み付き合計値を算出し、
前記算出手段は、前記トリミング候補領域の中央部分の画素のエッジ量の重みを、前記トリミング候補領域の境界部分の画素のエッジ量の重みよりも高く設定する、
ことを特徴とする画像処理装置。
【請求項7】
請求項1乃至6のいずれかに記載の画像処理装置において、
前記エッジ量は、前記画素と該画素の周辺画素との間の輝度の差に関する量であることを特徴とする画像処理装置。
【請求項8】
請求項1乃至6のいずれかに記載の画像処理装置において、
前記エッジ量は、前記画素と該画素の周辺画素との間の色相の差に関する量であることを特徴とする画像処理装置。
【請求項9】
請求項1乃至8のいずれかに記載の画像処理装置において、
前記トリミング領域の画像の端から、基準量以上の前記エッジ量を有する画素が存在しない部分を取り除く手段を含むことを特徴とする画像処理装置。
【請求項10】
請求項1に記載の画像処理装置において、
前記複数のトリミング候補領域のうちから前記トリミング領域を決定するための複数種類のトリミング領域決定処理の各々に、画像のエッジ量の分布パターンに関する分布パターン情報を関連付けてなる関連付けデータを記憶する手段と、
前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを、前記対象画像のエッジ量の分布パターンに関連づけられたトリミング領域決定処理によって実行する、
ことを特徴とする画像処理装置。
【請求項11】
請求項10に記載の画像処理装置において、
前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを前記複数種類のトリミング領域決定処理の各々によって実行することによって、前記複数種類のトリミング領域決定処理にそれぞれ対応する複数のトリミング領域を決定する手段を含み、
前記画像処理装置は、
前記複数のトリミング領域の画像を表示手段に表示させる表示制御手段と、
ユーザによる前記複数のトリミング領域の画像のうちの少なくとも1つの選択を受け付ける受付手段と、
前記ユーザの選択結果に基づいて前記関連付けデータを更新する更新手段と、をさらに含む、
ことを特徴とする画像処理装置。
【請求項12】
請求項1に記載の画像処理装置において、
前記画像処理装置は、前記複数のトリミング候補領域のうちから前記トリミング領域を決定するための複数種類のトリミング領域決定処理の各々に、画像のエッジ量の分布パターンに関する分布パターン情報を関連付けてなる関連付けデータを記憶する手段をさらに含み、
前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを前記複数種類のトリミング領域決定処理の各々によって実行することによって、前記複数種類のトリミング領域決定処理にそれぞれ対応する複数のトリミング領域を決定する手段を含み、
前記画像処理装置は、
前記複数のトリミング領域の画像を表示手段に表示させる表示制御手段と、
ユーザによる前記複数のトリミング領域の画像のうちの少なくとも1つの選択を受け付ける受付手段と、を含み、
前記表示制御手段は、前記複数のトリミング領域の画像のうちの、前記対象画像のエッジ量の分布パターンに関連付けられたトリミング領域決定処理に対応するトリミング領域の画像を優先表示又は区別表示する、
ことを特徴とする画像処理装置。
【請求項13】
請求項12に記載の画像処理装置において、
前記ユーザの選択結果に基づいて前記関連付けデータを更新する更新手段を含むことを特徴とする画像処理装置。
【請求項14】
請求項10乃至13のいずれかに記載の画像処理装置において、
前記複数種類のトリミング領域決定処理は、
前記複数のトリミング候補領域のうちで、前記合計値が最大であるトリミング候補領域を前記トリミング領域として決定するトリミング領域決定処理と、
前記複数のトリミング候補領域のうちで、前記合計値を、該トリミング候補領域の少なくとも一つの境界部分の画素のエッジ量の合計値で除することによって得られる除算値が最大であるトリミング候補領域を前記トリミング領域として決定するトリミング領域決定処理と、を含む、
ことを特徴とする画像処理装置。
【請求項15】
請求項10乃至14のいずれかに記載の画像処理装置において、
前記算出手段は、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素の第1エッジ量の合計値を第1合計値として算出する第1算出手段と、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素の第2エッジ量の合計値を第2合計値として算出する第2算出手段と、を含み、
前記第1エッジ量は、前記画素と該画素の周辺画素との間の色相の差に関する量であり、
前記第2エッジ量は、前記画素と該画素の周辺画素との間の輝度の差に関する量であり、
前記複数種類のトリミング領域決定処理は、
前記複数のトリミング候補領域の各々の前記第1合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定するトリミング領域決定処理と、
前記複数のトリミング候補領域の各々の前記第2合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定するトリミング領域決定処理と、を含む、
ことを特徴とする画像処理装置。
【請求項16】
請求項1乃至15のいずれかに記載の画像処理装置において、
前記設定手段は、前記対象画像内の一部領域をトリミング候補領域として設定し、前記トリミング候補領域を前記対象画像内で縦又は/及び横に移動させることによって、前記複数のトリミング候補領域を設定することを特徴とする画像処理装置。
【請求項17】
対象画像内に複数のトリミング候補領域を設定する設定ステップと、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出ステップと、
前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定ステップと、
前記トリミング領域内の画像を取得する取得ステップと、
を含むことを特徴とする画像処理装置の制御方法。
【請求項18】
対象画像内に複数のトリミング候補領域を設定する設定手段、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段、
前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段、及び、
前記トリミング領域内の画像を取得する取得手段、
としてコンピュータを機能させるためのプログラム。
【請求項19】
対象画像内に複数のトリミング候補領域を設定する設定手段、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段、
前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段、及び、
前記トリミング領域内の画像を取得する取得手段、
としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な情報記憶媒体。
【請求項1】
対象画像内に複数のトリミング候補領域を設定する設定手段と、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段と、
前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段と、
前記トリミング領域内の画像を取得する取得手段と、
を含むことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記決定手段は、前記複数のトリミング候補領域のうちで、前記合計値が最大であるトリミング候補領域を前記トリミング領域として決定する手段を含むことを特徴とする画像処理装置。
【請求項3】
請求項1又は2に記載の画像処理装置において、
前記複数のトリミング候補領域の各々について、該トリミング候補領域の前記合計値を、該トリミング候補領域の少なくとも一つの境界部分の画素のエッジ量の合計値で除することによって得られる除算値又はその逆数を算出する第2算出手段を含み、
前記決定手段は、前記複数のトリミング候補領域の各々の前記除算値又は前記逆数に基づいて、前記複数のトリミング候補領域のうちから前記トリミング領域を決定する、
ことを特徴とする画像処理装置。
【請求項4】
請求項3に記載の画像処理装置において、
前記決定手段は、前記複数のトリミング候補領域のうちで、前記除算値が最大であるトリミング候補領域、又は前記逆数が最小であるトリミング候補領域を前記トリミング領域として決定する手段を含むことを特徴とする画像処理装置。
【請求項5】
請求項3又は4に記載の画像処理装置において、
前記複数のトリミング候補領域の各々について、該トリミング候補領域の第1境界部分の画素のエッジ量の合計値を第1合計値として算出する手段と、
前記複数のトリミング候補領域の各々について、該トリミング候補領域の、前記第1境界部分に対向する第2境界部分の画素のエッジ量の合計値を第2合計値として算出する手段と、を含み、
前記第2算出手段は、前記複数のトリミング候補領域の各々について、該トリミング候補領域の前記合計値を、該トリミング候補領域の前記第1合計値及び前記2合計値のうちの大きい方で除することによって得られる除算値又はその逆数を算出する、
ことを特徴とする画像処理装置。
【請求項6】
請求項1乃至5のいずれかに記載の画像処理装置において、
前記算出手段は、前記トリミング候補領域内の画素のエッジ量の合計値として、前記トリミング候補領域内の画素のエッジ量の重み付き合計値を算出し、
前記算出手段は、前記トリミング候補領域の中央部分の画素のエッジ量の重みを、前記トリミング候補領域の境界部分の画素のエッジ量の重みよりも高く設定する、
ことを特徴とする画像処理装置。
【請求項7】
請求項1乃至6のいずれかに記載の画像処理装置において、
前記エッジ量は、前記画素と該画素の周辺画素との間の輝度の差に関する量であることを特徴とする画像処理装置。
【請求項8】
請求項1乃至6のいずれかに記載の画像処理装置において、
前記エッジ量は、前記画素と該画素の周辺画素との間の色相の差に関する量であることを特徴とする画像処理装置。
【請求項9】
請求項1乃至8のいずれかに記載の画像処理装置において、
前記トリミング領域の画像の端から、基準量以上の前記エッジ量を有する画素が存在しない部分を取り除く手段を含むことを特徴とする画像処理装置。
【請求項10】
請求項1に記載の画像処理装置において、
前記複数のトリミング候補領域のうちから前記トリミング領域を決定するための複数種類のトリミング領域決定処理の各々に、画像のエッジ量の分布パターンに関する分布パターン情報を関連付けてなる関連付けデータを記憶する手段と、
前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを、前記対象画像のエッジ量の分布パターンに関連づけられたトリミング領域決定処理によって実行する、
ことを特徴とする画像処理装置。
【請求項11】
請求項10に記載の画像処理装置において、
前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを前記複数種類のトリミング領域決定処理の各々によって実行することによって、前記複数種類のトリミング領域決定処理にそれぞれ対応する複数のトリミング領域を決定する手段を含み、
前記画像処理装置は、
前記複数のトリミング領域の画像を表示手段に表示させる表示制御手段と、
ユーザによる前記複数のトリミング領域の画像のうちの少なくとも1つの選択を受け付ける受付手段と、
前記ユーザの選択結果に基づいて前記関連付けデータを更新する更新手段と、をさらに含む、
ことを特徴とする画像処理装置。
【請求項12】
請求項1に記載の画像処理装置において、
前記画像処理装置は、前記複数のトリミング候補領域のうちから前記トリミング領域を決定するための複数種類のトリミング領域決定処理の各々に、画像のエッジ量の分布パターンに関する分布パターン情報を関連付けてなる関連付けデータを記憶する手段をさらに含み、
前記決定手段は、前記複数のトリミング候補領域のうちから前記トリミング領域を前記複数のトリミング候補領域の各々の前記合計値に基づいて決定することを前記複数種類のトリミング領域決定処理の各々によって実行することによって、前記複数種類のトリミング領域決定処理にそれぞれ対応する複数のトリミング領域を決定する手段を含み、
前記画像処理装置は、
前記複数のトリミング領域の画像を表示手段に表示させる表示制御手段と、
ユーザによる前記複数のトリミング領域の画像のうちの少なくとも1つの選択を受け付ける受付手段と、を含み、
前記表示制御手段は、前記複数のトリミング領域の画像のうちの、前記対象画像のエッジ量の分布パターンに関連付けられたトリミング領域決定処理に対応するトリミング領域の画像を優先表示又は区別表示する、
ことを特徴とする画像処理装置。
【請求項13】
請求項12に記載の画像処理装置において、
前記ユーザの選択結果に基づいて前記関連付けデータを更新する更新手段を含むことを特徴とする画像処理装置。
【請求項14】
請求項10乃至13のいずれかに記載の画像処理装置において、
前記複数種類のトリミング領域決定処理は、
前記複数のトリミング候補領域のうちで、前記合計値が最大であるトリミング候補領域を前記トリミング領域として決定するトリミング領域決定処理と、
前記複数のトリミング候補領域のうちで、前記合計値を、該トリミング候補領域の少なくとも一つの境界部分の画素のエッジ量の合計値で除することによって得られる除算値が最大であるトリミング候補領域を前記トリミング領域として決定するトリミング領域決定処理と、を含む、
ことを特徴とする画像処理装置。
【請求項15】
請求項10乃至14のいずれかに記載の画像処理装置において、
前記算出手段は、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素の第1エッジ量の合計値を第1合計値として算出する第1算出手段と、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素の第2エッジ量の合計値を第2合計値として算出する第2算出手段と、を含み、
前記第1エッジ量は、前記画素と該画素の周辺画素との間の色相の差に関する量であり、
前記第2エッジ量は、前記画素と該画素の周辺画素との間の輝度の差に関する量であり、
前記複数種類のトリミング領域決定処理は、
前記複数のトリミング候補領域の各々の前記第1合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定するトリミング領域決定処理と、
前記複数のトリミング候補領域の各々の前記第2合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定するトリミング領域決定処理と、を含む、
ことを特徴とする画像処理装置。
【請求項16】
請求項1乃至15のいずれかに記載の画像処理装置において、
前記設定手段は、前記対象画像内の一部領域をトリミング候補領域として設定し、前記トリミング候補領域を前記対象画像内で縦又は/及び横に移動させることによって、前記複数のトリミング候補領域を設定することを特徴とする画像処理装置。
【請求項17】
対象画像内に複数のトリミング候補領域を設定する設定ステップと、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出ステップと、
前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定ステップと、
前記トリミング領域内の画像を取得する取得ステップと、
を含むことを特徴とする画像処理装置の制御方法。
【請求項18】
対象画像内に複数のトリミング候補領域を設定する設定手段、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段、
前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段、及び、
前記トリミング領域内の画像を取得する取得手段、
としてコンピュータを機能させるためのプログラム。
【請求項19】
対象画像内に複数のトリミング候補領域を設定する設定手段、
前記複数のトリミング候補領域の各々について、該トリミング候補領域内の画素のエッジ量の合計値を算出する算出手段、
前記複数のトリミング候補領域の各々の前記合計値に基づいて、前記複数のトリミング候補領域のうちからトリミング領域を決定する決定手段、及び、
前記トリミング領域内の画像を取得する取得手段、
としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な情報記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【公開番号】特開2013−102396(P2013−102396A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2011−245871(P2011−245871)
【出願日】平成23年11月9日(2011.11.9)
【特許番号】特許第5000781号(P5000781)
【特許公報発行日】平成24年8月15日(2012.8.15)
【出願人】(399037405)楽天株式会社 (416)
【Fターム(参考)】
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願日】平成23年11月9日(2011.11.9)
【特許番号】特許第5000781号(P5000781)
【特許公報発行日】平成24年8月15日(2012.8.15)
【出願人】(399037405)楽天株式会社 (416)
【Fターム(参考)】
[ Back to top ]