説明

画像処理装置

【課題】適切に画像ファイルを生成する技術を提供する。
【解決手段】受付部102が画像データの取得指示を受け付けると、画像データ取得部104は、メモリ部130から画像データを取得し、JPEG形式で圧縮する。姿勢特定部122は、加速度センサの検出値を用いて画像処理装置10の姿勢情報を特定する。方向特定部124は、地磁気センサの検出値と、姿勢特定部122により特定された姿勢情報とを用いて、レンズ光軸の方位角を特定する。姿勢特定部122により画像処理装置10が水平姿勢にあることが判定された場合、方向特定部124は、レンズ光軸方向を用いず、画像処理装置10における所定の方向と、地磁気センサの検出値とから、レンズ光軸の方位角を特定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像ファイルを生成する技術に関する。
【背景技術】
【0002】
スマートフォンや携帯型ゲーム機などの小型電子機器が普及している。近年の電子機器は撮像制御部を搭載して、いわゆるデジタルカメラの機能を備えたものも多い。一般に、デジタルカメラで撮影された画像は、JPEG(Joint Photographic Experts Group)ファイルフォーマットで圧縮されて記録される。デジタルカメラは、撮像データを記録する際、撮影時の様々な付属情報を含むExif(Exchangeable Image File Format)ファイルを、撮像データとともに画像ファイルに含める。ビューワは、Exifファイルに含まれる付属情報を解析して、画像を表示部に表示する。Exif規格は、デジタルカメラ用の画像ファイルフォーマットとして策定された経緯をもっている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】「Exchangeabe image file format for digital still cameras: Exif Unified Version 2.3」、Japan Electronics and Information Technology Industries Association (JEITA) and Camera & Imaging Products Association、2010年4月、インターネット<URL : http://www.jeita.or.jp/cgi-bin/standard_e/pdfpage.cgi?jk_n=47>
【発明の概要】
【発明が解決しようとする課題】
【0004】
Exifファイルフォーマットには、画像データの構成に関する情報として、GPS(Global Positioning System)の測定情報を格納する領域(GPSInfoIFD)が設けられている。この領域には、レンズの光軸が向いている方向(方位角)を示す撮影方向(GPSImgDirection)のタグが規定されており、このタグには、北を基準(0度)としたときの撮影方向が0〜360度の範囲で入力される。
【0005】
撮影時に、レンズの光軸が略鉛直方向を向いている場合、撮影方向のタグに入力される値(撮影方向情報)は、地磁気センサの精度により、ばらつきが生じる。そのため、デジタルカメラの姿勢にほとんど変化がなくても、複数枚の写真を撮影したとき、それぞれの撮影方向のタグに異なる撮影方向情報が入力されることがあり、撮影方向情報を精度よく入力できる技術の登場が望まれている。
【0006】
また電子機器の中には、表示部の全面または一部に表示された画像を撮影する、いわゆる「スクリーンショット」撮影機能を有するものがある。たとえば、ゲーム画面をスクリーンショットで撮影して記録しておくことで、ユーザは、後から、そのゲームシーンを見返すことができる。スクリーンショットで撮影された画像データは、再生時に撮影条件などの情報を必要としないことが多く、これまでExifファイルが生成される必要性に乏しいとされてきた。またExifファイルが生成されても、タグには基準値の情報が入力されていた。そのためビューワが、適切な状態でスクリーンショットを再生することができない場合も生じていた。
【0007】
そこで本発明は、適切に画像ファイルを生成する技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明のある態様の画像処理装置は、画像ファイルを生成する画像処理装置であって、画像データの取得指示を受け付ける受付部と、受付部が取得指示を受け付けた場合に、画像データを取得する取得部と、加速度センサの検出値を用いて、当該画像処理装置の姿勢を特定する姿勢特定部と、地磁気センサの検出値と、姿勢特定部により特定された姿勢情報とを用いて、当該画像処理装置の向きを特定する方向特定部と、方向特定部により特定された方向情報を、画像データに関連づけた画像ファイルを生成するファイル生成部と、を備える。
【0009】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0010】
本発明の画像処理技術によると、適切に画像ファイルを生成することが可能となる。
【図面の簡単な説明】
【0011】
【図1】実施例にかかる画像処理装置の外観の一例を示す図である。
【図2】画像処理装置の機能ブロック図である。
【図3】画像処理装置における画像ファイル生成機能を実現するための機能ブロックを示す図である。
【図4】画像処理装置の姿勢を説明するための図である。
【図5】姿勢特定部による姿勢特定処理を説明するための図である。
【図6】姿勢特定部が実行する姿勢特定処理のフローチャートである。
【発明を実施するための形態】
【0012】
図1は、実施例にかかる画像処理装置10の外観の一例を示す。画像処理装置10は、横長および薄厚で、略四辺形の外郭形状の筐体をもつ。画像処理装置10の表面には、指示入力ボタン21、方向キー22、Rボタン23、Lボタン24などの入力装置20と、表示部68が備えられている。表示部68には、ユーザの指やスタイラスペンなどによる接触を検知するためのタッチパネル69が併設されている。また画像処理装置10の裏面にも、タッチパネルが備えられる。画像処理装置10の側面には、メモリカードなどの記録メディアを装着するための第1スロットと、ゲームプログラムを記録したゲームカートリッジを装着するための第2スロットとが設けられる。画像処理装置10の内部には、画像処理装置10の動きを検知するモーションセンサ25が備えられる。
【0013】
ユーザは、画像処理装置10を両手で把持した状態で、例えば、右手親指で指示入力ボタン21を操作し、左手親指で方向キー22を操作し、右手人差し指又は中指でRボタン23を操作し、左手人差し指又は中指でLボタン24を操作することができる。またタッチパネル69を操作する場合には、画像処理装置10を両手で把持した状態で、それぞれの親指でタッチパネル69を操作してもよく、また画像処理装置10を左手で把持した状態で、右手でタッチパネル69を操作してもよい。
【0014】
本実施例の画像処理装置10は撮像制御部を備え、被写体を撮影するカメラ機能を有する。画像処理装置10の裏面に、被写体を撮影するための撮像部のレンズが設けられ、画像処理装置10が撮影モードにある場合、表示部68には被写体が表示され、入力装置20の所定のボタン(たとえば、Rボタン23)には、シャッタボタンの機能が割り当てられる。なお撮像部は、画像処理装置10の表面にも設けられてよい。ユーザがRボタン23を押すと、撮像部が被写体を撮像し、撮像部により撮像された画像データは、撮影時の様々な付属情報を含むExifファイルとともに、1つの画像ファイルとして、第1スロットに装着された記録メディアに記録される。
【0015】
また本実施例の画像処理装置10は、第2スロットに装着されたゲームカートリッジからゲームプログラムを読み出して実行する機能を有する。ユーザが、ゲームをプレイしている際、HOMEボタンを押すと、「スクリーンショット」の項目を含むメニューが表示部68に表示される。ユーザにより「スクリーンショット」の項目がタップされると、ゲーム画面のスクリーンショットが撮影される。なお、たとえば指示入力ボタン21の2つのボタンにシャッタボタンの機能が割り当てられ、2つのボタンが同時に押された場合に、ゲーム画面のスクリーンショットが撮影されるようにしてもよい。
【0016】
図2は、画像処理装置10の機能ブロック図である。各機能ブロックはバス90によって互いに接続されている。表示部68は、液晶表示装置であってもよいし、有機EL表示装置であってもよい。タッチパネル69は、表示部68の上に重ね合わせて設けられ、ユーザの指やペンなどによる接触を検知する。タッチパネル69は、抵抗膜方式、表面型静電容量方式、投影型静電容量方式など、いずれの方式のものであってもよい。表示部68およびタッチパネル69は、四辺形のディスプレイを構成する。
【0017】
無線通信モジュール30はIEEE802.11b/g等の通信規格に準拠した無線LANモジュールによって構成され、AP(アクセスポイント)2を介して、外部ネットワークに接続する。携帯電話モジュール32は、ITU(International Telecommunication Union;国際電気通信連合)によって定められたIMT−2000(International Mobile Telecommunication 2000)規格に準拠した第3世代(3rd Generation)デジタル携帯電話方式に対応し、携帯電話網6に接続する。携帯電話モジュール32には、携帯電話の電話番号を特定するための固有のID番号が記録されたSIMカードが挿入される。
【0018】
インタフェース50において、LED(Light Emitting Diode)51は、無線通信モジュール30や携帯電話モジュール32などがデータの送受信をしている際に点滅する。モーションセンサ25は、画像処理装置10の動きを検出し、地磁気センサ26は、3軸方向の地磁気を検出する。マイク52は、画像処理装置10の周辺の音声を入力する。スピーカ53は、画像処理装置10の各機能により生成される音声を出力する。ステレオ入出力端子54は、外部のマイクからステレオ音声を入力し、外部のヘッドフォンなどへステレオ音声を出力する。入力装置20は、前述した操作キーなどを含み、ユーザの操作入力を受け付ける。
【0019】
CPU(Central Processing Unit)40は、メインメモリ44にロードされたプログラムなどを実行し、本実施例では写真撮影アプリケーションや、スクリーンショット撮影アプリケーション、ゲームなどを実行する。GPU(Graphics Processing Unit)42は、画像処理に必要な計算を実行する。メインメモリ44は、RAM(Random Access Memory)などにより構成され、CPU40が使用するプログラムやデータなどを記憶する。ストレージ46は、NAND型フラッシュメモリ(NAND-type flash memory)などにより構成され、内蔵型の補助記憶装置として利用される。
【0020】
GPS制御部60は、GPS衛星からの信号を受信し、現在位置を算出する。USB制御部61は、USB(Universal Serial Bus)で接続された周辺装置との間の通信を制御する。ビデオ出力制御部64は、HDMIなどの規格に基づいて、外部表示装置へビデオ信号を出力する。メモリカード制御部62は、第1スロットに装着されたフラッシュメモリなどの記録メディア80との間のデータの読み書きを制御する。リムーバブルな記録メディア80が第1スロットに装着されると、記録メディア80は、外付け型の補助記憶装置として利用される。メディアドライブ63は、ゲームファイルを記録したゲームカートリッジ70が装着される第2スロットに設けられ、ゲームカートリッジ70との間のデータの読み書きを制御する。撮像制御部65は被写体を撮像して、デジタル画像データを生成する。
【0021】
図3は、画像処理装置10における画像ファイル生成機能を実現するための機能ブロックを示す。図3に示す構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0022】
画像処理装置10は、表示部68に表示する画像を生成するための構成として、撮像制御部65およびアプリケーション実行部100を備える。撮影モードが設定されている場合、撮像制御部65が、カメラ機能を実現し、画像処理装置10がデジタルカメラとして動作する。またアプリケーションモードが設定されている場合、アプリケーション実行部100がゲームなどのアプリケーションを実行する。メモリ部130は、メインメモリ44およびフレームバッファ112を有する。表示制御部110は、フレームバッファ112にバッファされた画像データを表示部68に出力する。
【0023】
撮像制御部65は、レンズ、光量を調節する絞り、CCDやCMOS等から構成される撮像素子を含む撮像部を備える。撮像素子の受光面にはフォトセンサが平面的に配列されており、撮像素子の受光面に結像された被写体像は、各フォトセンサによって入射光量に応じた量の信号電荷に変換される。撮像素子は、蓄積した信号電荷をアナログ信号処理部に出力し、アナログ信号処理部は、R,G,Bの各色信号の画像データを生成して、A/D変換器に出力する。A/D変換器でデジタル信号に変換された画像データは、ガンマ補正等のデジタル処理を施された後、メインメモリ44に記憶される。撮像制御部65は、メインメモリ44に記憶された画像データから、表示用の画像データを生成してフレームバッファ112に供給する。フレームバッファ112に記憶された画像データは、表示制御部110から表示部68に出力され表示される。
【0024】
撮像制御部65は、以上の処理を、所定の周期で実行する。表示用の画像データが所定の周期で表示部68に供給されることで、撮像部で撮像した被写体像が、動画像として表示部68に表示されることになる。このとき、ユーザが所定のシャッタボタンを押すと、画像データ取得部104が、メインメモリ44上に展開されている画像データを取得し、たとえばJPEGの形式にしたがって圧縮する。なお画像データ取得部104は、フレームバッファ112上に展開されている画像データを取得して圧縮してもよい。画像データ取得部104は、撮像制御部65の一機能として構成されてもよい。
【0025】
アプリケーション実行部100は、ゲームプログラムを実行して、ユーザの操作入力に応じたゲーム画像を生成する。具体的にアプリケーション実行部100は、仮想3次元ゲーム空間内に仮想カメラを設置して、ユーザの操作入力にしたがって仮想カメラを動かし、仮想カメラから仮想スクリーンに投影されるゲーム画像を生成する。生成されたゲーム画像データは、フレームバッファ112に供給されて、表示制御部110から表示部68に出力され、動画像としてユーザに提供される。このとき、ユーザが「スクリーンショット」の項目を含むメニューを表示部68に表示させて、「スクリーンショット」の項目をタップすると、画像データ取得部104が、フレームバッファ112上に展開されている画像データを取得し、JPEGの形式にしたがって圧縮する。
【0026】
センサ情報処理部120は、各種センサの検出値をもとに、画像処理装置10の姿勢や、撮像部の撮影方向(レンズ光軸方向の方位角)を特定する。センサ情報処理部120は、画像処理装置10の姿勢を特定する姿勢特定部122と、撮像部の撮影方向を特定する方向特定部124とを少なくとも備える。姿勢特定部122は、写真撮影モードまたはスクリーンショット撮影モードにおいて、モーションセンサ25に含まれる3軸加速度センサの検出値を用いて、画像処理装置10の姿勢を特定する。
【0027】
図4(a)〜図4(f)は、画像処理装置10の6つの基本姿勢を示す。図中、下から上に向かう方向が、鉛直上方向を示す。姿勢特定部122は、加速度センサの検出値を用いて、画像処理装置10の姿勢を、図4(a)〜図4(f)に示す6つの姿勢のいずれかに特定する。図4(a)は、横向き(LANDSCAPE)姿勢を示し、図4(b)は、横向き天地逆(LANDSCAPE_UPSIDE_DOWN)姿勢を示し、図4(c)は、縦向き左下(PORTRAIT_LEFT_DOWN)姿勢を示し、図4(d)は、縦向き右下(PORTRAIT_RIGHT_DOWN)姿勢を示す。通常の使用状態では、ユーザは、画像処理装置10を図4(a)に示す横向き姿勢で把持して操作する。姿勢特定部122は、図4(a)〜図4(d)に示す姿勢を、「傾斜姿勢」として判定する。なお傾斜姿勢は、筐体表面に垂直な方向が鉛直方向に直交する直立姿勢も含んでいる。
【0028】
また図4(e)は、表向き(FACE_UP)姿勢を示し、図4(f)は、裏向き(FACE_DOWN)姿勢を示す。たとえば、画像処理装置10がテーブルに置かれた状態では、画像処理装置10は、表向き姿勢または裏向き姿勢をとることになる。姿勢特定部122は、図4(e)、図4(f)に示す姿勢を、「水平姿勢」として判定する。
【0029】
姿勢特定部122は、3軸加速度センサの検出値を用いて、画像処理装置10が水平姿勢にあるか、または傾斜姿勢にあるか判定する。姿勢特定部122は、画像処理装置10が水平姿勢にあることを判定すると、水平姿勢のうち、表向き姿勢であるか、または裏向き姿勢であるかを特定する。また姿勢特定部122は、画像処理装置10が傾斜姿勢にあることを判定すると、傾斜姿勢のうち、横向き姿勢であるか、横向き天地逆姿勢であるか、縦向き左下姿勢であるか、または縦向き右下姿勢であるかを特定する。
【0030】
図5は、姿勢特定部122による姿勢特定処理を説明するための図である。図5(a)は、画像処理装置10に対して設定されるXYZ軸を示し、この例では、画像処理装置10の長手方向にX軸、短手方向にY軸、表面に垂直な方向にZ軸が設定されている。X軸の正方向は、画像処理装置10の左辺から右辺に向かう方向、Y軸の正方向は、画像処理装置10の下辺から上辺へ向かう方向、Z軸の正方向は、画像処理装置10の表から裏へ向かう方向に設定される。なおZ軸は、撮像部(レンズ)の光軸に平行である。
【0031】
図5(a)に示すGは、画像処理装置10にかかる重力加速度ベクトルを示す。重力加速度ベクトルは鉛直下方向を向いており、モーションセンサ25の3軸加速度センサは、重力加速度ベクトルGのX軸成分、Y軸成分、Z軸成分を検出する。以下、重力加速度ベクトルGの3軸成分を、(gx,gy,gz)と表現する。また、重力加速度ベクトルGと、Z軸とのなす角度を、(angle_z)と表現し、また重力加速度ベクトルGをXY平面に写像したベクトルaccel_xyとX軸とのなす角度を、(angle_x)、ベクトルaccel_xyとY軸とのなす角度を、(angle_y)と表現する。なお、angle_x、angle_y、angle_zは、それぞれ0度以上、90度以下の値をとる。
【0032】
図6は、姿勢特定部122が実行する姿勢特定処理のフローチャートである。姿勢特定部122は、2段階の姿勢判定を行う。第1段階では、画像処理装置10の姿勢が、水平姿勢であるか判定される。画像処理装置10の姿勢が、水平姿勢でなければ、第2段階に進む。第2段階では、画像処理装置10の姿勢が、傾斜姿勢のうち、図4(a)に示す横向き(LANDSCAPE)姿勢、図4(b)に示す横向き天地逆(LANDSCAPE_UPSIDE_DOWN)姿勢、図4(c)に示す縦向き左下(PORTRAIT_LEFT_DOWN)姿勢、または図4(d)に示す縦向き右下(PORTRAIT_RIGHT_DOWN)姿勢のどれであるか判定される。図6に示すフローチャートにおいて、横向き天地逆(LANDSCAPE_UPSIDE_DOWN)姿勢を「UPSIDE_DOWN」、縦向き左下(PORTRAIT_LEFT_DOWN)姿勢を「LEFT_DOWN」、縦向き右下(PORTRAIT_RIGHT_DOWN)姿勢を「RIGHT_DOWN」と表記している。姿勢特定処理は、所定の周期で繰り返し実行される。
【0033】
図5(b)は、第1段階の判定処理を説明するための図である。第1段階において、姿勢特定部122は、ベクトルGとZ軸のなす角度(angle_z)が角度B以下であるか判定する(S10)。角度Bは、たとえば10度に設定されている。angle_zが角度B以下であれば(S10のY)、画像処理装置10が水平姿勢にあることが特定される。続いて姿勢特定部122は、ベクトルGのZ軸成分(gz)の正負を判定し(S12)、gzが正であれば(S12のY)、現在の姿勢(ori)が表向き(FACE_UP)姿勢であることを特定し(S14)、gzが負であれば(S12のN)、現在の姿勢(ori)が裏向き(FACE_DOWN)姿勢であることを特定する(S16)。特定された姿勢(ori)は、次回の姿勢特定処理のために、直前の姿勢(prev_ori)として記憶される(S50)。この場合、第1段階で当回の姿勢特定処理は終了し、次回の姿勢特定処理がS10から開始される。
【0034】
angle_zが角度Bより大きい場合(S10のN)、第2段階の判定処理に移行する。図5(b)には、angle_zが角度Bよりも大きい様子が示されている。図5(c)は、第2段階の判定処理を説明するための図である。
【0035】
第2段階において、姿勢特定部122が、angle_zが角度E以上であるか判定する(S18)。角度Eは、たとえば20度に設定されている(角度Aは70度)。angle_zが角度E以上であれば(S18のY)、画像処理装置10が傾斜姿勢にあることが特定される。続いて姿勢特定部122は、ベクトルaccel_xyとY軸とのなす角度(angle_y)が角度D以下であるか判定する(S20)。角度Dは、たとえば25度に設定されている。angle_yが角度D以下であれば(S20のY)、ベクトルGのY軸成分(gy)の正負を判定し(S22)、gyが正であれば(S22のY)、現在の姿勢(ori)が横向き天地逆(LANDSCAPE_UPSIDE_DOWN)姿勢であることを特定し(S24)、gyが負であれば(S22のN)、現在の姿勢(ori)が横向き(LANDSCAPE)姿勢であることを特定する(S26)。特定された姿勢(ori)は、次回の姿勢特定処理のために、直前の姿勢(prev_ori)として記憶される(S50)。
【0036】
一方で、angle_yが角度Dより大きい場合(S20のN)、ベクトルaccel_xyとX軸とのなす角度(angle_x)が角度C以下であるか判定する(S28)。角度Cは、たとえば25度に設定されている。angle_xが角度C以下であれば(S28のY)、ベクトルGのX軸成分(gx)の正負を判定し(S30)、gyが正であれば(S30のY)、現在の姿勢(ori)が縦向き右下(PORTRAIT_RIGHT_DOWN)姿勢であることを特定し(S32)、gxが負であれば(S30のN)、現在の姿勢(ori)が縦向き左下(PORTRAIT_LEFT_DOWN)姿勢であることを特定する(S34)。特定された姿勢(ori)は、次回の姿勢特定処理のために、直前の姿勢(prev_ori)として記憶される(S50)。
【0037】
図5(b)を参照して、angle_zが角度Bよりも大きく、角度Eよりも小さい場合(S18のN)、直前の姿勢(prev_ori)が、水平姿勢であったか判定される(S36)。つまりS36では、angle_zが角度B以下であった状態から、角度Eに到達する過程にあるか否かが判定される。直前の姿勢が水平姿勢であった場合(S36のY)、現在の姿勢(ori)は、引き続き、直前の姿勢(prev_ori)に設定される(S38)。したがって、angle_zが角度B以下であった状態から、角度Bより大きくなったが、まだ角度Eよりも小さければ、現在の姿勢は、直前の姿勢と同一であると特定される。このように、角度Bから角度Eの間に中立区域を形成し、S10とS18における判定の境界を連続させないことで、特定される姿勢が水平姿勢と傾斜姿勢の間で頻繁に入れ替わる事態を回避できる。一方、直前の姿勢(prev_ori)が、水平姿勢でなかった場合(S36のN)、S20からの第2段階の判定処理が実行される。
【0038】
図5(c)を参照して、angle_yが角度Dよりも大きく、angle_xが角度Cよりも大きい場合(S28のN)、直前の姿勢(prev_ori)が、水平姿勢であったか判定される(S40)。直前の姿勢(prev_ori)が、水平姿勢でなかった場合(S40のN)、現在の姿勢(ori)は、引き続き、直前の姿勢(prev_ori)に設定される(S38)。したがって、angle_yが角度D以下であった直前の状態(横向き天地逆(LANDSCAPE_UPSIDE_DOWN)姿勢または横向き(LANDSCAPE)姿勢)から、角度Dよりも大きくなった場合には、現在の姿勢は、直前の姿勢と同一であると特定される。同じく、angle_xが角度C以下であった直前の状態(縦向き右下(PORTRAIT_RIGHT_DOWN)姿勢または縦向き左下(PORTRAIT_LEFT_DOWN)姿勢)から、角度Cよりも大きくなった場合には、現在の姿勢は、直前の姿勢と同一であると特定される。このように、中立区域を形成し、S20とS28における判定の境界を連続させないことで、特定される姿勢が頻繁に入れ替わる事態を回避できる。
【0039】
一方で、直前の姿勢(prev_ori)が、水平姿勢であった場合(S40のY)、現在の姿勢が水平姿勢でないことは既に判明しているため、姿勢特定部122は、画像処理装置10の姿勢を傾斜姿勢のいずれかに特定する必要がある。そのため、S20とS28における判定の境界を連続させ、つまり角度Cおよび角度Dを、それぞれ一時的に45度に設定して、S20からのステップを再実行する。これにより、姿勢特定部122は、現在の姿勢を特定する。なお姿勢を特定した後、角度Cおよび角度Dは、元の値(25度)に戻される。
【0040】
以上のようにして、姿勢特定部122は、画像処理装置10の姿勢を特定する。なお、姿勢特定部122は、画像処理装置10が傾斜姿勢から水平姿勢に変化したとき、水平姿勢に変化する直前の傾斜姿勢情報を、メインメモリ44に保持する。直前傾斜姿勢情報は、傾斜姿勢のうち、横向き姿勢、横向き天地逆姿勢、縦向き左下姿勢、または縦向き右下姿勢のいずれかを特定する情報である。たとえば、水平姿勢に変化する直前の傾斜姿勢が横向き姿勢であれば、姿勢特定部122は、水平姿勢が維持される間、直前の傾斜姿勢が横向き姿勢であったことを示す情報(直前傾斜姿勢情報)をメインメモリ44に保持し続ける。画像処理装置10が水平姿勢から傾斜姿勢に変化すると、姿勢特定部122は、直前傾斜姿勢情報を、メインメモリ44から削除する。なお、カメラ起動時には、横向き姿勢が、直前傾斜姿勢情報の初期値として設定される。
【0041】
方向特定部124は、地磁気センサ26の検出値を用いて、画像処理装置10の向きを特定し、具体的には撮像部の撮影方向、すなわち撮像部の光軸と北方向とのなす角度を特定する。地磁気センサ26は、3軸の磁気ベクトルを検出し、各軸は加速度センサの各軸と同じである。方向特定部124は、地磁気センサ26の検出値から北方向を導出し、北方向を基準としたレンズ光軸の方向(方位角)を特定する。具体的に方向特定部124は、北を基準(0度)としたときのレンズ光軸の方位角(撮影方向)を、0〜360度の範囲で特定する。レンズ光軸は、地磁気センサ26(加速度センサ)のZ軸方向に対応する。
【0042】
このとき、レンズ光軸が略鉛直方向を向いていると、導出した基準方向(北)と、レンズ光軸とが略垂直となるため、方向特定部124が、レンズ光軸方向の方位角を安定して特定することが難しい。この場合、方向特定部124が地磁気センサ26の検出値のみからレンズ光軸の方位角を特定すると、画像処理装置10の姿勢がほとんど変化しなくても、地磁気センサ26の検出値ばらつきにより、あるタイミングでは西であると特定し、また次のタイミングでは東であると特定することも生じうる。そこで方向特定部124は、姿勢特定部122により特定された姿勢情報も用いて、レンズ光軸方向の方位角を特定する。
【0043】
具体的に方向特定部124は、画像処理装置10が水平姿勢にあるか、または傾斜姿勢にあるかに応じて、基準方向(北)に対する方位角を定めるための方向を設定する。画像処理装置10が傾斜姿勢にある場合、加速度センサで検出されるZ軸成分は、水平方向成分を含んでいるため、Z軸方向を用いてレンズ光軸の方位角を特定する。
【0044】
一方で、画像処理装置10が水平姿勢にある場合、方向特定部124は、Z軸方向を用いずに、姿勢特定部122によりメインメモリ44に保持されている直前の傾斜姿勢情報を用いて、レンズ光軸の方位角を特定する。以下、図4(a)に示す横向き姿勢において、ディスプレイの四辺を定義すると、ディスプレイは、上側長辺、右側短辺、下側長辺、左側短辺で囲まれている。
【0045】
たとえば、直前傾斜姿勢情報が、横向き姿勢または横向き天地逆姿勢であることを示す場合、方向特定部124は、図5に示すY軸方向を、レンズ光軸に代用して、Y軸と北とのなす角度を導出する。画像処理装置10が横向き姿勢にある場合(図4(a)参照)、ディスプレイの上側長辺が上辺となる。そのため、画像処理装置10が水平姿勢になる前に、横向き姿勢をとっていた場合には、ディスプレイの上側長辺から垂直に延びる方向(Y軸正方向)を方位角の基準として設定する。また画像処理装置10が横向き天地逆姿勢にある場合(図4(b)参照)、ディスプレイの下側長辺が上辺となる。そのため、画像処理装置10が水平姿勢になる前に、横向き天地逆姿勢をとっていた場合には、ディスプレイの下側長辺に垂直から延びる方向(Y軸負方向)を方位角の基準として設定する。以上のように、水平姿勢になる前に、横向き姿勢または横向き天地逆姿勢をとっていた場合には、ディスプレイの長辺に垂直な方向(Y軸方向)を方位角導出の基準として設定することで、方向特定部124は、安定してレンズ光軸の方位角を特定できる。
【0046】
また直前傾斜姿勢情報が、縦向き左下姿勢または縦向き右下姿勢であることを示す場合、方向特定部124は、図5に示すX軸を、レンズ光軸に代用して、X軸と北とのなす角度を導出する。画像処理装置10が縦向き左下姿勢にある場合(図4(c)参照)、ディスプレイの右側短辺が上辺となる。そのため、画像処理装置10が水平姿勢になる前に、縦向き左下姿勢をとっていた場合には、ディスプレイの右側短辺から垂直に延びる方向(X軸正方向)を方位角の基準として設定する。また画像処理装置10が縦向き右下姿勢にある場合(図4(d)参照)、ディスプレイの左側短辺が上辺となる。そのため、画像処理装置10が水平姿勢になる前に、縦向き右下姿勢をとっていた場合には、ディスプレイの左側短辺から垂直に延びる方向(X軸負方向)を方位角の基準として設定する。以上のように、水平姿勢になる前に、縦向き左下姿勢または縦向き右下姿勢をとっていた場合には、ディスプレイの短辺に垂直な方向(X軸方向)を方位角導出の基準として設定することで、方向特定部124は、安定してレンズ光軸の方位角を特定できる。
【0047】
以上のように、画像処理装置10が水平姿勢にある場合、方向特定部124が、メインメモリ44に保持された直前傾斜姿勢情報を用いて、画像処理装置10の向きを特定する。具体的に方向特定部124は、直前傾斜姿勢情報により特定されるディスプレイの上辺に垂直な方向に基づいて、画像処理装置10の向きを特定する。直前傾斜姿勢情報はメインメモリ44に保持されると、画像処理装置10の姿勢が水平姿勢から傾斜姿勢に変化するまで、変更されない。そのため、水平姿勢にある間は、方位角導出の基準が変更されないため、レンズ光軸の方位角を安定して特定できるようになる。したがって、画像処理装置10の姿勢に多少の変化があったとしても、水平姿勢を維持している間は、方位角導出の基準方向に変更がないため、信頼性が高く、また写真閲覧時にユーザが納得感を持てる方位角を導出できる。
【0048】
撮影モードにおいて、受付部102が、入力装置20およびタッチパネル69から入力されるユーザによる画像データの取得指示を受け付けると、画像データ取得部104およびセンサ情報処理部120に、動作指示を発行する。動作指示を受けて、画像データ取得部104は、メインメモリ44上に展開されている画像データを取得して、JPEG形式で圧縮する。
【0049】
撮影モードにおいて、姿勢特定部122は、3軸加速度センサの検出値を用いて、姿勢特定処理を周期的に実行する。姿勢特定部122は、画像処理装置10の所定の周期で姿勢を特定し、動作指示を受けた時点の姿勢情報を付属情報生成部108に供給する。なお、特定した姿勢が水平姿勢を示す場合には、メインメモリ44に保持している直前傾斜姿勢情報を付属情報生成部108に供給する。
【0050】
また、方向特定部124は、地磁気センサ26の検出値と、姿勢特定部122により特定された姿勢情報とを用いて、画像処理装置10の向きを特定し、特定した方向情報を、付属情報生成部108に供給する。
【0051】
付属情報生成部108は、センサ情報処理部120から供給される姿勢情報、方向情報や、GPS制御部60で測定されたGPS測定情報などを用いて、Exifファイルを生成する。Exifファイルフォーマットには、画像データの構成に関するタグの1つとして、画像方向(Orientation)が規定されている。画像方向は、画像データがどこを起点として、どの向きで記録されているかを示す情報である。付属情報生成部108は、姿勢情報または直前傾斜姿勢情報をもとに、画像方向のタグ値を設定する。また付属情報生成部108は、方向情報をもとに、撮影方向(GPSImgDirection)のタグ値を設定する。
【0052】
画像ファイル生成部106は、画像データ取得部104で圧縮された画像データと、付属情報生成部108で生成されたExifファイルとまとめて、1つの画像ファイルを生成する。これにより、姿勢特定部122で特定された姿勢情報、および方向特定部124で特定された方向情報が画像データに関連付けられた画像ファイルが生成される。画像ファイル生成部106は、生成した画像ファイルを、記録メディア80に記録する。
【0053】
以上は、撮影モードにおける画像ファイルの生成処理であるが、以下、アプリケーションモードにおける画像ファイルの生成処理を説明する。
【0054】
アプリケーションモードにおいて、アプリケーション実行部100がゲームプログラムを実行し、表示制御部110がフレームバッファ112にバッファされるゲーム画像データを表示部68に表示させる。受付部102が、ユーザからスクリーンショットの生成指示を受け付けると、画像データ取得部104およびセンサ情報処理部120に、動作指示を発行する。動作指示を受けて、画像データ取得部104は、フレームバッファ112上に展開されている画像データを取得して、JPEG形式で圧縮する。
【0055】
センサ情報処理部120において、姿勢特定部122は、3軸加速度センサの検出値を用いて、姿勢特定処理を実行する。姿勢特定部122は、画像処理装置10の姿勢を特定し、特定した姿勢情報を付属情報生成部108に供給する。なお、特定した姿勢が水平姿勢を示す場合には、メインメモリ44に保持している直前傾斜姿勢情報を付属情報生成部108に供給する。
【0056】
また、方向特定部124は、地磁気センサ26の検出値と、姿勢特定部122により特定された姿勢情報とを用いて、画像処理装置10の向きを特定し、特定した方向情報を、付属情報生成部108に供給する。
【0057】
付属情報生成部108は、センサ情報処理部120から供給される姿勢情報、方向情報や、GPS制御部60で測定されたGPS測定情報などを用いて、Exifファイルを生成する。画像ファイル生成部106は、画像データ取得部104で圧縮された画像データと、付属情報生成部108で生成されたExifファイルとまとめて、1つの画像ファイルを生成する。これにより、姿勢特定部122で特定された姿勢情報、および方向特定部124で特定された方向情報が画像データに関連付けられた画像ファイルが生成される。画像ファイル生成部106は、生成した画像ファイルを、記録メディア80に記録する。
【0058】
従来、スクリーンショットの画像データには、スクリーンショット撮影時の付属情報が関連付けられていなかった。特にゲーム機のような電子機器は、ユーザにより把持される姿勢がほぼ固定されているため、スクリーンショットに、Exifファイルの画像方向(Orientation)を含ませる必要性も乏しかった。しかしながら、本実施例の画像処理装置10は、スクリーンショットのExifファイルに、姿勢特定部122で特定される姿勢情報を含ませることで、ユーザが画像処理装置10を縦持ちしてプレイするゲームが登場した場合でも、ビューワは、スクリーンショット撮影時の画像方向で、スクリーンショットの画像データを適切に再生することが可能となる。
【0059】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0060】
実施例において姿勢特定部122は、図6に示す手順で画像処理装置10が水平姿勢にあるか、または傾斜姿勢にあるか特定した。変形例では、姿勢特定部122は、単純に、S10の判定ステップの結果のみに基づいて、水平姿勢であるか否かを判定してもよい。
【符号の説明】
【0061】
10・・・画像処理装置、25・・・モーションセンサ、26・・・地磁気センサ、44・・・メインメモリ、65・・・撮像制御部、68・・・表示部、69・・・タッチパネル、80・・・記録メディア、100・・・アプリケーション実行部、102・・・受付部、104・・・画像データ取得部、106・・・画像ファイル生成部、108・・・付属情報生成部、110・・・表示制御部、112・・・フレームバッファ、120・・・センサ情報処理部、122・・・姿勢特定部、124・・・方向特定部、130・・・メモリ部。

【特許請求の範囲】
【請求項1】
画像ファイルを生成する画像処理装置であって、
画像データの取得指示を受け付ける受付部と、
前記受付部が取得指示を受け付けた場合に、画像データを取得する取得部と、
加速度センサの検出値を用いて、当該画像処理装置の姿勢を特定する姿勢特定部と、
地磁気センサの検出値と、前記姿勢特定部により特定された姿勢情報とを用いて、当該画像処理装置の向きを特定する方向特定部と、
前記方向特定部により特定された方向情報を、前記画像データに関連づけた画像ファイルを生成するファイル生成部と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記方向特定部は、当該画像処理装置の向きとして、レンズ光軸方向の方位角を特定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記姿勢特定部は、当該画像処理装置が水平姿勢にあるか、または傾斜姿勢にあるか判定し、
当該画像処理装置が傾斜姿勢にある場合に、前記方向特定部は、地磁気センサの検出値とレンズ光軸方向に基づいて、当該画像処理装置の向きを特定することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
当該画像処理装置が水平姿勢にある場合に、前記方向特定部は、地磁気センサの検出値と当該画像処理装置におけるレンズ光軸方向に垂直な所定の方向に基づいて、当該画像処理装置の向きを特定することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記姿勢特定部は、当該画像処理装置の姿勢が傾斜姿勢から水平姿勢に変化した場合、水平姿勢になる前の傾斜姿勢情報をメモリに保持しておき、
当該画像処理装置が水平姿勢にある場合に、前記方向特定部は、メモリに保持された傾斜姿勢情報を用いて、当該画像処理装置の向きを特定することを特徴とする請求項3または4に記載の画像処理装置。
【請求項6】
前記方向特定部は、メモリに保持された傾斜姿勢情報により特定されるディスプレイの上辺に垂直な方向に基づいて、当該画像処理装置の向きを特定することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記姿勢特定部は、当該画像処理装置の姿勢が水平姿勢から傾斜姿勢に変化するまで、傾斜姿勢情報を変更しないことを特徴とする請求項5または6に記載の画像処理装置。
【請求項8】
前記方向特定部は、当該画像処理装置の姿勢に変化があっても、水平姿勢を維持している間は、メモリに保持された傾斜姿勢情報を用いて、当該画像処理装置の向きを特定することを特徴とする請求項5から7のいずれかに記載の画像処理装置。
【請求項9】
筐体に搭載されたコンピュータに、
画像データの取得指示を受け付ける機能と、
取得指示を受け付けた場合に、画像データを取得する機能と、
加速度センサの検出値を用いて、筐体の姿勢を特定する機能と、
地磁気センサの検出値と、特定された姿勢情報とを用いて、筐体の向きを特定する機能と、
特定された方向情報を、画像データに関連づけた画像ファイルを生成する機能と、
を実現させるためのプログラム。
【請求項10】
請求項9に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−253620(P2012−253620A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−125654(P2011−125654)
【出願日】平成23年6月3日(2011.6.3)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】