以下に、本願の開示する画像処理装置、画像処理方法および画像処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例に係る画像処理装置の構成について説明する。図1は、本実施例に係る画像処理装置の構成を示す機能ブロック図である。図1に示すように、この画像処理装置100は、画像入力部105、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
画像入力部105は、画像データを入力する装置である。例えば、画像入力部105は、デジタルカメラやメモリカード等に接続するインタフェースに対応する。画像入力部105は、デジタルカメラやメモリカードから画像データを取得し、取得した画像データを制御部150に出力する。
通信部110は、ネットワークを介して他の装置とデータ通信を実行する処理部である。例えば、通信部110は、通信装置に対応する。
入力部120は、各種の情報を画像処理装置100に入力するための入力装置である。例えば、入力部120は、キーボードやマウス、タッチパネル、入力ボタン等に対応する。表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、タッチパネル等に対応する。
記憶部140は、画像データ141、画面アスペクト比データ142、トリミング画像データ143、基本背景画像データ144、合成用背景画像データ145、合成画像データ146を有する。記憶部140は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子などの記憶装置に対応する。
画像データ141は、デジタルカメラに撮影された画像データや、図面の画像データ等に対応する画像データであり、トリミングの対象となる。
画面アスペクト比データ142は、トリミング後の画像データを配置する画面領域のアスペクト比を示すデータであり、この画面領域の長辺と短辺の比率を示す。VGA(Video Graphics Array)やXGA(eXtended Graphics Array)規格サイズでは、画面アスペクト比は「4:3」となる。ハイビジョンサイズでは、画面アスペクト比は「16:9」となる。
トリミング画像データ143、基本背景画像データ144、合成用背景画像データ145、合成画像データ146に関する説明は後述する。
制御部150は、取得部151、トリミング画像生成部152、生成部153、合成部154を有する。制御部150は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、制御部150は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。
取得部151は、画像入力部105から画像データを取得し、取得した画像データを記憶部140に格納する。取得部151が記憶部140に格納した画像データは、画像データ141となる。ここでは一例として、取得部151は、画像入力部105から画像データを取得する場合について説明したが、取得部151は、通信部110を介して、他の装置から画像データを取得してもよい。
また、取得部151は、入力部120から画面アスペクト比データを取得し、取得した画面アスペクト比データを記憶部140に格納する。取得部151が記憶部140に格納した画面アスペクト比データは、画面アスペクト比データ142となる。ここでは一例として、取得部151は、入力部120から画面アスペクト比データを取得する場合について説明したが、画面処理装置100で動作する所定のアプリケーションから、画面アスペクト比データを取得してもよい。
トリミング画像生成部152は、入力部120から画像上でトリミングを行う位置の情報を受け付け、受け付けた位置の情報を基にして、画像データ141からトリミング画像データ143を生成する処理部である。以下において、トリミング画像生成部152の処理の一例について説明する。
図2は、トリミング画像生成部の処理を説明するための図である。トリミング画像生成部152は、表示部130にフォーム画面10を表示させる。例えば、トリミング画像生成部152は、選択画面表示エリア10aに、画像データ141に対応するイメージ画像を表示させる。ユーザは、フォーム画面10を参照しつつ、入力部120を操作して、二箇所のトリミング位置11a,11bを指定する。
トリミング画像生成部152は、トリミング位置11a,11bが指定された後に、保存ボタン12が押下された場合には、トリミング位置11aを左上、トリミング位置11bを右下とする領域11cのイメージ画像を切り出す。トリミング画像生成部152は、切り出したイメージ画像の画像データを、トリミング画像データ143として記憶部140に格納する。
ユーザは入力部120を操作して、フォーム画面10において、「右90°回転」、「左90°回転」、「180°回転」の回転補正を行ってもよい。また、ユーザは、トリミングした画像に余白が付与されるように指示を行ってもよい。
生成部153は、トリミング画像データ143と画面アスペクト比データ142とを基にして、トリミング画像データ143を包含し、かつ、画面アスペクト比データ142に対応した大きさの基本背景画像データ144を生成する処理部である。以下において、生成部153の処理の一例について説明する。
ここで、トリミング画像データ143の横サイズを「W」、縦サイズを「H」と定義する。図3は、トリミング画像データの横サイズと縦サイズを説明するための図である。図3に示すイメージ画像143aは、トリミング画像データ143に対応する画像である。
基本背景画像データ144の横サイズを「HW」、縦サイズを「HH」と定義する。図4は、基本背景画像データの横サイズと縦サイズを説明するための図である。図4に示すイメージ画像144aは、基本背景画像データ144に対応する画像である。
合成用背景画像データ145の横サイズを「BW」、縦サイズを「BH」と定義する。図5は、合成用背景画像データの横サイズと縦サイズを説明するための図である。図5に示すイメージ画像145aは、合成用背景画像データ145に対応する画像である。
生成部153は、トリミング画像データ143の横サイズWおよび縦サイズHを算出し、縦サイズHの方が横サイズWよりも大きいか以下かを判定する。まず、縦サイズHが、横サイズWよりも大きい場合の生成部153の処理を説明した後に、縦サイズHが、横サイズW以下である場合の生成部153の処理を説明する。
生成部153は、トリミング画像データ143の縦サイズHが横サイズWよりも大きいと判定した場合には、縦サイズHを基準にし、画面アスペクト比データ142に従って、基本背景画像データ144を生成する。具体的に、生成部153は、画面アスペクト比データ142に含まれる横縦比が「X:Y」となる場合には、式(1)に基づいて、基本背景画像データ144の横サイズHWを算出する。生成部153は、式(2)に基づいて、基本背景画像データ144の縦サイズHHを算出する。
HW=Y/X×H・・・(1)
HH=H・・・(2)
生成部153は、基本背景画像データ144の横サイズHWと縦サイズHHを算出した後に、この横サイズHWと縦サイズHHを基にして、合成用背景画像データ145の横サイズBWと縦サイズBHを特定する。生成部153は、式(3)に基づいて、合成用背景画像データ145の横サイズBWを算出する。生成部153は、式(4)に基づいて、合成用背景画像データ145の縦サイズBHを算出する。
BW=HW・・・(3)
BH=H・・・(4)
図6は、トリミング画像データの縦サイズHが横サイズWよりも大きい場合の処理を説明するための図である。図6では一例として、画面アスペクト比データ142の横縦比を「4:3」としているがこれに限定されるものではない。図6に示すように、トリミング画像データ143の縦サイズHが横サイズWよりも大きい場合には、合成用背景画像データ145の横サイズBWはHWと等しくなり、縦サイズBHはHと等しくなる。
生成部153は、合成用背景画像データ145の横サイズBWおよび縦サイズBHを算出した後に、係る横サイズBW、縦サイズBHに基づいて、合成用背景画像データ145を生成する。生成部153は、合成用背景画像データ145に対応する画像の色を、予めユーザに設定された色に設定する。
続いて、生成部153が、トリミング画像データ143の縦サイズHが横サイズW以下であると判定した場合の処理について説明する。生成部153は、横サイズWを基準にし、画面アスペクト比データ142に従って、基本背景画像データ144を生成する。具体的に、生成部153は、画面アスペクト比データ142に含まれる横縦比が「X:Y」となる場合には、式(5)に基づいて、基本背景画像データ144の横サイズHWを算出する。生成部153は、式(6)に基づいて、基本背景画像データ144の縦サイズHHを算出する。
HW=W・・・(5)
HH=Y/X×W・・・(6)
生成部153は、基本背景画像データ144の横サイズHWと縦サイズHHとを算出した後に、基本背景画像データ144の縦サイズHHと、トリミング画像データ143の縦サイズHとを比較する。まず、縦サイズHHが縦サイズHよりも大きい場合の生成部153の処理を説明した後に、縦サイズHHが縦サイズH以下である場合の生成部153の処理について説明する。
生成部153は、縦サイズHHが縦サイズHよりも大きい場合には、式(7)に基づいて、合成用背景画像データ145の横サイズBWを算出する。生成部153は、式(8)に基づいて、合成用背景画像データ145の縦サイズBHを算出する。
BW=W・・・(7)
BH=HH・・・(8)
図7は、トリミング画像データの縦サイズHが横サイズW以下で、縦サイズHHが縦サイズHよりも大きい場合の処理を説明するための図である。図7では一例として、画面アスペクト比データ142の横縦比を「4:3」としているがこれに限定されるものではない。図7に示すように、トリミング画像データの縦サイズHが横サイズW以下で、縦サイズHHが縦サイズHよりも大きい場合には、合成用背景画像データ145の横サイズBWはWと等しくなり、縦サイズBHはHHと等しくなる。
生成部153は、合成用背景画像データ145の横サイズBWおよび縦サイズBHを算出した後に、係る横サイズBW、縦サイズBHに基づいて、合成用背景画像データ145を生成する。生成部153は、合成用背景画像データ145に対応する画像の色を、予めユーザに設定された色に設定する。
一方、生成部153は、縦サイズHHが縦サイズH以下である場合には、式(9)に基づいて、合成用背景画像データ145の横サイズBWを算出する。生成部153は、式(10)に基づいて、合成用背景画像データ145の縦サイズBHを算出する。ここで、画面アスペクト比データ142による横縦比を「X:Y」とする。
BW=X/Y×H・・・(9)
BH=H・・・(10)
図8は、トリミング画像データの縦サイズHが横サイズW以下で、縦サイズHHが縦サイズH以下である場合の処理を説明するための図である。図8では一例として、画面アスペクト比データ142の横縦比を「4:3」としているがこれに限定されるものではない。図8に示すように、トリミング画像データ143の縦サイズHが横サイズW以下で、縦サイズHHが縦サイズH以下である場合には、イメージ画像143aの形が正方形に近い形となっている。このような場合には、生成部153は、トリミング画像データ143の縦サイズHと画面アスペクトデータ142とを基に、合成用背景画像データ145の横サイズBWおよび縦サイズBHを算出する。
生成部153は、合成用背景画像データ145の横サイズBWおよび縦サイズBHを算出した後に、係る横サイズBW、縦サイズBHに基づいて、合成用背景画像データ145を生成する。生成部153は、合成用背景画像データ145に対応する画像の色を、予めユーザに設定された色に設定する。
ここでまとめとして、生成部153が合成用背景画像データ145の横サイズBW及び縦サイズBHを算出する処理を、図9を用いて説明する。図9は、生成部が合成用背景画像データの横サイズBW及び縦サイズBHを算出する処理を説明するための図である。図9では一例として、画面アスペクト比データ142の横縦比を「4:3」としているがこれに限定されるものではない。
図9において、線分20aは、横縦比が「1:1」となる領域の左下端点と右上端点を通る線分である。線分20bは、横縦比が「4:3(X:Y)」となる領域の左下端点と右上端点を通る線分である。枠21は、基本背景画像データ144に対応する枠である。
トリミング画像データ143の縦サイズHが横サイズWよりも大きい場合には、トリミング画像データ143に対応するイメージ画像143aは、領域30aに入る。この場合には、生成部153は、長手方向である縦サイズHを基準に、横サイズを算出し、合成用背景画像データ145の横サイズBWとする。具体的には、上述したように、生成部153は、式(3)に基づいて、合成用背景画像データ145の横サイズBWを算出する。生成部153は、式(4)に基づいて、合成用背景画像データ145の縦サイズBHを算出する。
トリミング画像データ143の縦サイズHが横サイズW以下であり、かつ、縦サイズHHが縦サイズHよりも大きい場合には、トリミング画像データ143に対応するイメージ画像143aは、領域30bに入る。この場合には、生成部153は、長手方向である横サイズWを基準に、縦サイズを算出し、合成用背景画像データ145の縦サイズBHとする。具体的には、上述したように、生成部153は、式(7)に基づいて、合成用背景画像データ145の横サイズBWを算出する。生成部153は、式(8)に基づいて、合成用背景画像データ145の縦サイズBHを算出する。
トリミング画像データ143の縦サイズHが横サイズW以下であり、かつ、縦サイズHHが縦サイズH以下の場合には、トリミング画像データ143の縦比が「3(Y)」を超えており、枠21に収まらず、領域30cに達する。このため、画面アスペクト比データ142の横縦比「4:3(X:Y)」に対応した画像を、式(7)、式(8)を用いて算出することができなくなる。この場合、生成部153は、式(9)、式(10)を用いて、縦サイズHを基準に、合成用背景画像データ145の横サイズBW、縦サイズBHを算出する。式(9)、式(10)を用いて算出した横サイズBW、縦サイズBHの領域は、領域30cを包含しつつ、横縦比が「4:3(X:Y)」となる。
図1の説明に戻る。合成部154は、トリミング画像データ143と、合成用背景画像データ145とを合成することで、合成画像データ146を生成する処理部である。図10は、合成部の処理を説明するための図(1)である。図10において、イメージ画像143aは、トリミング画像データ143に対応する画像である。イメージ画像145aは、合成用背景画像データ145に対応する画像である。イメージ画像146aは、合成画像データ146に対応する画像である。
図10に示すように、合成部154は、イメージ画像143aの中心位置40aと、イメージ画像145aの中心位置40bとを重ね合わせることで、イメージ画像146aを生成する。合成部154は、上記の処理を実行することで、合成画像データ146を生成する。
合成部154は、合成画像データ146をアプリケーションの固定領域に合わせて伸縮する。図11は、合成部の処理を説明するための図(2)である。図11において、枠50は、トリミング画像を配置するアプリケーションの固定領域に対応するものであり、画像アスペクト比データ142と同様の横縦比となる。合成部154は、枠50に合わせて、イメージ画像146aを伸縮して固定領域にイメージ画像146aを配置する。合成部154は、画面60を、表示部130に表示させる。
次に、本実施例に係る画像処理装置100の処理手順について説明する。図12および図13は、本実施例に係る画像処理装置の処理手順を示すフローチャートである。図12に示すように、画像処理装置100の取得部151は、画面アスペクト比データ142を取得する(ステップS101)。画像処理装置100のトリミング画像生成部152は、画面上の2箇所の位置情報を受け付け、画像データ141をトリミングする(ステップS102)。
画像処理装置100の生成部153は、トリミング画像データ143から横サイズWおよび縦サイズHを算出する(ステップS103)。生成部153は、サイズHがサイズWよりも大きいか否かを判定する(ステップS104)。
生成部153は、サイズHがサイズWよりも大きい場合には(ステップS104,Yes)、基本背景画像データ144の横サイズHWと縦サイズHHを算出する(ステップS105)。ステップS105において、生成部153は、式(1)に基づいて横サイズHWを算出し、式(2)に基づいて縦サイズHHを算出する。
生成部153は、合成用背景画像データの横サイズBWと縦サイズBHを算出する(ステップS106)。ステップS106において、生成部153は、式(3)に基づいて、横サイズBWを算出し、式(4)に基づいて、縦サイズBHを算出する。
生成部153は、合成用背景画像データ145を生成し(ステップS107)、図13のステップS112に移行する。
ところで、生成部153は、ステップS104において、サイズHがサイズWよりも大きくない場合には(ステップS104,No)、基本背景画像データ144の横サイズHWと縦サイズHHを算出する(ステップS108)。ステップS108において、生成部153は、式(5)に基づいて横サイズHWを算出し、式(6)に基づいて、縦サイズHHを算出する。
生成部153は、サイズHHがサイズHよりも大きいか否かを判定する(ステップS109)。生成部153は、サイズHHがサイズHよりも大きい場合には(ステップS109,Yes)、合成用背景画像データ145の横サイズBWと縦サイズBHを算出し(ステップS110)、ステップS107に移行する。ステップS110において、生成部153は、式(7)に基づいて、横サイズBWを算出し、式(8)に基づいて、縦サイズBHを算出する。
生成部153は、サイズHHがサイズHよりも大きくない場合には(ステップS109,No)、合成用背景画像データ145の横サイズBWと縦サイズBHを算出し(ステップS111)、ステップS107に移行する。ステップS111において、生成部153は、式(9)に基づいて、横サイズBWを算出し、式(10)に基づいて、縦サイズBHを算出する。
図13の説明に移行する。画像処理装置100の合成部154は、トリミング画像データ143を合成背景画像データ145に重ねる(ステップS112)。合成部154は、トリミング画像データ143の中央位置を、合成用背景画像データ145の中央位置に配置する(ステップS113)。
合成部154は、トリミング画像データ143と合成用背景画像データ145とを合成した合成画像データ145を生成する(ステップS114)。合成部154は、合成画像データを保存し(ステップS115)、アプリケーションの固定領域に合成画像データ146を配置する(ステップS116)。ステップS116において、合成部154は、固定領域の大きさに応じて、合成画像データ146を伸縮する。
次に、本実施例に係る画像処理装置100の効果について説明する。画像処理装置100は、トリミング画像データ143を包含し、画面アスペクト比データ142の横縦比に対応した合成用背景画像データ145を生成する。そして、画像処理装置100は、トリミング画像データ143と合成用背景画像データ145とを合成することで、合成画像データ146を生成する。かかる合成画像データ146は、トリミング画像データ142を有し、かつ、横縦比が画像アスペクト比データ142の横縦比と同一であるため、画像の変形を防ぎつつ所定の画面アスペクト比で画像を伸縮することができる。
画像処理装置100は、トリミング画像データ143の長手方向の長さと、この長手方向の長さに所定のアスペクト比に基づく値を乗算した長さとをそれぞれの辺の長さとする基本背景画像データ144を生成する。そして、画像処理装置100は、基本背景画像データ144よりもトリミング画像データ143が大きいか否かを判定し、判定結果に応じて合成用背景画像データ145の大きさを決定する。このため、簡易的な方法で、合成画像データ146を効率的に作成することができる。
画像処理装置100は、基本背景画像データ144よりもトリミング画像データ143が大きい場合には、トリミング画像データ143の短手方向の長さと、この長さに画面アスペクト比データ142に基づく値を乗算した長さとをそれぞれの辺とする背景画像を生成する。このため、トリミング画像データ143が正方形に近い形であっても、横縦比が画像アスペクト比データ142の横縦比と同一となる合成画像データ146を生成することができる。
ところで、本実施例に係る画像処理装置100は、画像データ141に対してトリミング処理を実行し、合成画像データ146を生成していたが、これに限定されない。例えば、画像処理装置100は、複数の画像データに対してそれぞれトリミングを行い、トリミングした各トリミング画像データ143を一括して、画面アスペクト比データ142の横縦比に対応した合成画像データ146を生成してもよい。
図14は、画像処理装置のその他の処理を説明するための図である。図14のトリミング画像データ70a〜70eは、それぞれある画像データに対してトリミング処理を行った結果得られる画像データである。画像処理装置100は、各トリミング画像データ70a〜70eに対して、上述した生成部153および合成部154の処理を実行することで、合成画像データ71a〜71eをそれぞれ生成する。ここで、画像処理装置100は、単一の画面アスペクト比データを用意して、各合成画像データ71a〜71eの横縦比を合わせてもよいし、複数種類の画面アスペクト比データを用意して、それぞれ横縦比の異なる各合成画像データ71a〜71eを生成してもよい。また、画像処理装置100は、トリミング画像データ71a〜71eに対応するサムネイル画像72a〜72eを同時に生成してもよい。
次に、上記実施例に示した画像処理装置100と同様の機能を実現する画像処理プログラムを実行するコンピュータの一例について説明する。図15は、画像処理プログラムを実行するコンピュータの一例を示す図である。
図15に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読取る読み取り装置204と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201〜207は、バス208に接続される。
ハードディスク装置207は、生成プログラム207a、合成プログラム207bを有する。CPU201は、生成プログラム207a、合成プログラム207bを読み出してRAM206に展開する。生成プログラム207aは、生成プロセス206aとして機能する。合成プログラム207bは、合成プロセス206bとして機能する。
例えば、生成プロセス206aは、生成部153に対応する。合成プロセス206bは、合成部154に対応する。
なお、生成プログラム207a、合成プログラム207bについては、必ずしも最初からハードディスク装置207に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が生成プログラム207a、合成プログラム207bを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)ユーザに指定された範囲のトリミング画像と所定のアスペクト比とを基にして、前記トリミング画像を包含し、かつ、前記所定のアスペクト比に対応した大きさの背景画像を生成する生成部と、
前記背景画像と前記トリミング画像とを重ね合わせた合成画像を生成する合成部と、
を有することを特徴とする画像処理装置。
(付記2)前記生成部は、前記トリミング画像の長手方向の第1長さと、前記第1長さに前記所定のアスペクト比に基づく値を乗算した第2長さとをそれぞれの辺の長さとする背景画像を生成し、前記背景画像よりも前記トリミング画像が大きいか否かを判定し、判定結果に応じて前記背景画像の大きさを決定することを特徴とする付記1に記載の画像処理装置。
(付記3)前記生成部は、前記背景画像よりも前記トリミング画像が大きいか否かを判定し、前記背景画像よりも前記トリミング画像の方が大きい場合には、前記トリミング画像の短手方向の第3長さと、前記第3長さに前記所定のアスペクト比に基づく値を乗算した第4長さとをそれぞれの辺とする背景画像を生成することを特徴とする付記2に記載の画像処理装置。
(付記4)コンピュータが実行する画像処理方法であって、
ユーザに指定された範囲のトリミング画像と所定のアスペクト比とを基にして、前記トリミング画像を包含し、かつ、前記所定のアスペクト比に対応した大きさの背景画像を生成し、
前記背景画像と前記トリミング画像とを重ね合わせた合成画像を生成する
処理を実行することを特徴とする画像処理方法。
(付記5)前記生成する処理は、前記トリミング画像の長手方向の第1長さと、前記第1長さに前記所定のアスペクト比に基づく値を乗算した第2長さとをそれぞれの辺の長さとする背景画像を生成し、前記背景画像よりも前記トリミング画像が大きいか否かを判定し、判定結果に応じて前記背景画像の大きさを決定することを特徴とする付記4に記載の画像処理方法。
(付記6)前記生成する処理は、前記背景画像よりも前記トリミング画像が大きいか否かを判定し、前記背景画像よりも前記トリミング画像の方が大きい場合には、前記トリミング画像の短手方向の第3長さと、前記第3長さに前記所定のアスペクト比に基づく値を乗算した第4長さとをそれぞれの辺とする背景画像を生成することを特徴とする付記4に記載の画像処理方法。
(付記7)コンピュータに、
ユーザに指定された範囲のトリミング画像と所定のアスペクト比とを基にして、前記トリミング画像を包含し、かつ、前記所定のアスペクト比に対応した大きさの背景画像を生成し、
前記背景画像と前記トリミング画像とを重ね合わせた合成画像を生成する
処理を実行させることを特徴とする画像処理プログラム。
(付記8)前記生成する処理は、前記トリミング画像の長手方向の第1長さと、前記第1長さに前記所定のアスペクト比に基づく値を乗算した第2長さとをそれぞれの辺の長さとする背景画像を生成し、前記背景画像よりも前記トリミング画像が大きいか否かを判定し、判定結果に応じて前記背景画像の大きさを決定することを特徴とする付記7に記載の画像処理プログラム。
(付記9)前記生成する処理は、前記背景画像よりも前記トリミング画像が大きいか否かを判定し、前記背景画像よりも前記トリミング画像の方が大きい場合には、前記トリミング画像の短手方向の第3長さと、前記第3長さに前記所定のアスペクト比に基づく値を乗算した第4長さとをそれぞれの辺とする背景画像を生成することを特徴とする付記8に記載の画像処理プログラム。