以下に、本発明を実施するための形態について、添付の図面を用いて詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態は適宜組み合わされることも可能である。
[第1の実施形態]
<デジタルカメラ100の内部構成>
図1は、本実施形態の画像処理装置の一例であるデジタルカメラ100の構成例を示すブロック図である。なお、ここでは画像処理装置の一例としてデジタルカメラについて述べるが、画像処理装置はこれに限られない。例えば画像処理装置は、携帯電話や、タブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよいし、カメラ付き携帯電話等の撮像装置であってもよい。
制御部101は、入力された信号や、後述のプログラムに従ってデジタルカメラ100の各部を制御する。なお、制御部101が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
撮像部102は、撮像部102に含まれるレンズで結像された被写体光を電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとして出力する。撮像した画像データはバッファメモリに蓄えられた後、制御部101にて所定の演算を行い、記録媒体110に記録される。
不揮発性メモリ103は、電気的に消去・記録可能な不揮発性のメモリであり、制御部101で実行される後述のプログラム等が格納される。
作業用メモリ104は、撮像部102で撮像された画像データを一時的に保持するバッファメモリや、表示部106の画像表示用メモリ、制御部101の作業領域等として使用される。
操作部105は、ユーザがデジタルカメラ100に対する指示をユーザから受け付けるために用いられる。操作部105は例えば、ユーザがデジタルカメラ100の電源のON/OFFを指示するための電源ボタンや、撮像を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンなどの操作部材を含む。また、後述する表示部106に形成されるタッチパネルも操作部105に含まれる。なお、不図示のレリーズスイッチは、SW1およびSW2を有する。レリーズスイッチが、いわゆる半押し状態となることにより、SW1がONとなる。これにより、例えばAF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等、静止画像の撮像準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、SW2がONとなる。これにより、例えば静止画像の撮像を行うための指示を受け付ける。
表示部106は、撮像の際のビューファインダー画像の表示、撮像した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部106は必ずしもデジタルカメラ100が備える必要はない。デジタルカメラ100はカメラの背面等に設けた表示部106だけでなく、カメラの外部の表示部106と接続することができ、表示部106の表示を制御する表示制御機能を少なくとも有していればよい。
RealTimeClock(RTC)107は、計時を行う計時部である。RTC107は制御部101の要求に応じて日時を示す日時情報を出力する。RTC107は内部に電源を有し、デジタルカメラ100本体の電源がOFFの状態でも、計時動作を継続することができる。
記録媒体110は、撮像部102から出力された画像を記録することができる。本実施形態では、画像を、Exchangeable image file format(Exif)によって規定されるフォーマットの一つであるExif−jpegの形式で扱う。記録媒体110は、デジタルカメラ100に着脱可能なよう構成してもよいし、デジタルカメラ100に内蔵されていてもよい。すなわち、デジタルカメラ100は少なくとも記録媒体110にアクセスする手段を有していればよい。
接続部111は、外部装置と接続するためのインターフェースである。本実施形態のデジタルカメラ100は、接続部111を介して、通信装置とデータのやりとりを行うことができる。なお、本実施形態では、接続部111はアンテナであり、制御部101は、アンテナを介して、通信装置と接続することができる。データを通信するためのプロトコルとしては、例えば無線LAN(Local Area Network)を通じたPTP/IP(Picture Transfer Protocol over Internet Protocol)を用いることができる。なお、デジタルカメラ100の通信はこれに限られるものではない。例えば、接続部111は、赤外線通信モジュール、Bluetooth(登録商標)通信モジュール、Wireless USB等の無線通信モジュールを含むことができる。さらには、USBケーブルやHDMI(登録商標)、IEEE1394など、有線接続を採用してもよい。
<携帯電話200の内部構成>
図2は、本実施形態の通信装置の一例である携帯電話200の構成例を示すブロック図である。なお、ここでは通信装置の一例として携帯電話について述べるが、通信装置はこれに限られない。例えば通信装置は、無線機能付きのデジタルカメラ、タブレットデバイス、あるいはパーソナルコンピュータなどの情報処理装置であってもよい。
制御部201は、入力された信号や、後述のプログラムに従って携帯電話200の各部を制御する。なお、制御部201が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
撮像部202は、撮像部202に含まれるレンズで結像された被写体光を電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとして出力する。撮像した画像データはバッファメモリに蓄えられた後、制御部201にて所定の演算を行い、記録媒体210に記録される。
不揮発性メモリ203は、電気的に消去・記録可能な不揮発性のメモリであり、制御部201で実行される後述のプログラム等が格納される。
作業用メモリ204は、表示部206の画像表示用メモリや、制御部201の作業領域等として使用される。
操作部205は、携帯電話200に対する指示をユーザから受け付けるために用いられる。操作部205は例えば、ユーザが携帯電話200の電源のON/OFFを指示するための電源ボタンや、表示部206に形成されるタッチパネルなどの操作部材を含む。
表示部206は、画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部206は必ずしも携帯電話200が備える必要はない。携帯電話200は表示部206と接続することができ、表示部206の表示を制御する表示制御機能を少なくとも有していればよい。
ログ取得部208は、測位処理を行う。測位処理とは、GPS衛星から信号を受信し、受信した信号から携帯電話200の位置を示す位置情報を算出する処理である。本実施形態では、位置情報は、緯度・経度の座標で表される。また、ログ取得部208は、この測位処理により位置情報を算出した日時を示す日時情報も取得する。具体的な取得の方法を以下に述べる。GPS衛星から受信した信号には、いわゆるGPS時という日時情報が含まれる。この信号に含まれるGPS時は、信号がGPS衛星から出力された日時を示す。なお、GPS時はUTC(世界協定時:Universal Time,Coordinated)に同期するものである。
更に、GPS衛星から受信した信号にはGPS時のUTCとのずれを示す情報が含まれる。ログ取得部208は、この情報を用いてGPS時からUTCを算出する。これにより、ログ取得部208は、位置情報を算出した日時を示す日時情報としてUTCを取得する。この位置情報および日時情報は、必要に応じて制御部201に提供される。なお、本実施形態ではログ取得部208としてGPSを用いる例について述べるが、ログ取得部208はGPSに限定されるものではない。例えば携帯電話の基地局といった外部装置などから位置情報や日時情報を取得する装置であってもよい。あるいは、後述の接続部211を介して、公衆無線LANアクセスポイントから位置情報や日時情報を取得する装置であってもよい。このログ取得部208は、位置取得手段や日時取得手段の一例である。
記録媒体210は、撮像部202から出力された画像データを記録することができる。記録媒体210は、携帯電話200に着脱可能なよう構成してもよいし、携帯電話200に内蔵されていてもよい。すなわち、携帯電話200は少なくとも記録媒体210にアクセスする手段を有していればよい。
接続部211は、外部装置と接続するためのインターフェースである。本実施形態の携帯電話200は、接続部211を介して、デジタルカメラ100とデータのやりとりを行うことができる。本実施形態では、接続部211はアンテナであり、制御部201は、アンテナを介して、デジタルカメラ100と接続することができる。なお、デジタルカメラ100との接続では、直接接続してもよいしアクセスポイントを介して接続してもよい。データを通信するためのプロトコルとしては、例えば無線LANを通じたPTP/IP(Picture Transfer Protocol over Internet Protocol)を用いることができる。なお、デジタルカメラ100との通信はこれに限られるものではない。例えば、接続部211は、赤外線通信モジュール、Bluetooth(登録商標)通信モジュール、WirelessUSB等の無線通信モジュールを含むことができる。さらには、USBケーブルやHDMI(登録商標)、IEEE1394など、有線接続を採用してもよい。
公衆網接続部212は、公衆無線通信を行う際に用いられるインターフェースである。携帯電話200は、公衆網接続部212を介して、他の機器と通話することができる。この際、制御部201はマイク213およびスピーカ214を介して音声信号の入力と出力を行うことで、通話を実現する。本実施形態では、公衆網接続部212はアンテナであり、制御部101は、アンテナを介して、公衆網に接続することができる。なお、接続部211および公衆網接続部212は、一つのアンテナで兼用することも可能である。また、接続部211で行う通信を、公衆網により実現することも可能である。例えば、接続部211を介して他機から受信した画像データや動画データ、音声データ等を、公衆網接続部212を介して、公衆網に出力することができる。また、例えば、マイク213を介して生成される音声データ、あるいは撮像部202と協働して生成される動画データ等を、公衆網接続部212を介して、公衆網に出力することができる。
<携帯電話200におけるログデータの生成>
次に、携帯電話200においてログデータを生成する処理について説明する。本実施形態の携帯電話200には、ログデータを生成するためのアプリケーション(以下ログアプリ)が予め記録媒体210にインストールしてあるものとする。携帯電話200は、このログアプリの実行により、自機の移動軌跡を示すログデータを生成する。
図3(a)は、ログアプリを実行中の携帯電話200の表示部206に表示される画面の一例を示す図である。この画面300は、ログアプリの動作が開始することに応じて、表示部206に表示される。また、図3(a)の例では携帯電話200が未だデジタルカメラ100と接続していない。そのため、デジタルカメラ100と接続していないことを示すメッセージ302が表示されている。バー301は携帯電話200が接続可能な通信網の電波状況、時刻、電池の充電状況などを表示している。また、ボタン303はログデータの生成を開始するためのボタンである。ユーザは、ボタン303を操作部205を介して選択することにより、ログデータの生成を開始する指示を入力することができる。
なお、ログデータの生成が実行されている間は、図3(b)のように、ボタン303の代わりにボタン304を表示する。ボタン304はログデータの生成を終了するためのボタンである。ユーザは、ボタン304を操作部205を介して選択することにより、ログデータの生成を終了する指示を入力することができる。
次に、ログデータが生成される手順について述べる。ボタン303の選択が検知されると、制御部201は、ログ取得部208により取得された位置情報および日時情報を一定の時間間隔で読み出し、ログデータとして記録媒体210に記録する。
ここで生成されるログデータには、ユーザが図3(b)のボタン304を選択してログデータの生成の終了を指示するか、携帯電話200の電池残量が所定値以下になるまで、位置情報と日時情報とが定期的に追記される。このようにして生成されるログデータに含まれる複数の位置情報および日時情報は、携帯電話200の移動軌跡を示すことになる。
図4に、この手順により生成されるログデータの一例を示す。図4の例は、5分間隔で位置情報および日時情報をログデータとして記録した場合の例である。記録媒体210の記録領域の一部401には二つのログデータが記録されている。例えばユーザは、8時50分に緯度35.680969、経度139.766006の位置でログデータの生成開始の指示を入力し、11時50分に緯度35.466066、経度139.623055の位置でログデータの生成を一旦終了する指示を入力する。そして、再び19時59分にログデータの生成を開始する指示を入力し、23時54分にログデータの生成を終了する指示を入力する。
このような操作を行った結果として、図4のようにログデータ1とログデータ2が生成されることになる。なお、図4の例は、説明のために示す概念図であり、ログデータは位置情報および日時情報以外の情報を含むフォーマットで記録されてもよい。例えば、米国海洋電子機器協会(National Marine Electronics Association)により定められるNMEAフォーマットに従った形式で記録されてもよい。
また、ログデータの生成方法に関しては、上記の方法で限定されるものではない。例えば、一定の時間間隔でログデータを追記するのではなく、ログデータ追記後に所定距離以上移動した際に、位置情報と日時情報を追記するような方法でもよい。この場合、移動しなければ新たな位置情報と日時情報が追記されることがないため、ログデータのサイズを抑えることができる。また、本実施形態では、位置情報は緯度、経度で取り扱う例について述べるが、方位情報を含めたり、精度の情報(例えば測位に使用した衛星の数など)を含めてもよい。
以上が、ログデータを生成する手順の説明である。
<デジタルカメラ100における画像の生成>
続いて、図5を用いて、本実施例におけるデジタルカメラ100における画像の生成について説明する。図5は、画像を生成する際のデジタルカメラ100の動作を示すフローチャートである。このフローチャートに示される処理は、デジタルカメラ100の電源がONとなることに応じて開始される。なお、この状態では、表示部106には、撮像部102から入力されるスルー画像が表示されており、ユーザは表示部106に映し出される映像を確認しながら撮像を行うことが可能である。
まず、ステップS501では、制御部101はSW1がONとなったか否かを判断する。SW1がONとなっていないと判断された場合は、本ステップの処理を繰り返す。一方、SW1がONとなったと判断された場合、処理はステップS502に進む。
ステップS502では、制御部101はRTC107から日時情報を取得する。
ステップS503では、制御部101は撮像部102により静止画像の撮像準備動作を行うよう制御する。
次に、ステップS504では、制御部101はSW2がONとなったか否かを判断する。SW2がONとなっていないと判断された場合、処理はステップS501に戻る。一方、SW2がONとなったと判断された場合、処理はステップS505に進む。
ステップS505では、制御部101は、撮像部102により静止画像の撮像動作を行い画像を取得する。
続くステップS506では、制御部101は、ステップS505で取得した画像をステップS502で取得した日時情報と共に記録媒体110に記録する。この際、画像と共に記録される日時情報は、画像の撮像日時として、画像のヘッダ領域に記録される。また、制御部101はこれに併せて時差情報も画像のヘッダ領域に記録する。ここで、時差情報について説明する。本実施形態のデジタルカメラ100では、タイムゾーンを設定することができる。タイムゾーンとは、共通の地方標準時を利用する地域のことであり、ユーザはメニュー操作等によりタイムゾーンを設定することで、UTCとの時差を示す時差情報を予め設定することができる。
例えば、日本ではUTCを9時間進めた日時を地方標準時として扱っており、このタイムゾーンをUTC+9と表す。そして、タイムゾーンを日本と設定した状態で得られた画像には、時差情報としてUTC+9という情報が付加される。
本実施形態のデジタルカメラ100では、RTC107の出力する日時情報は、タイムゾーンに応じた時刻が予めユーザのメニュー操作等により設定されているものとして扱う。つまり、制御部101は、このRTC107の出力がタイムゾーンに応じた地方標準時を示すものとして扱う。したがって、RTC107の出力に対して時差情報の示す時差を加算すれば、UTCを算出することができる。UTCの利用については、後述の画像への位置情報の付加の説明で詳述する。
また時差情報は、ヘッダ領域のうち、いわゆるメーカーノートと呼ばれる領域に記録される。また、メーカーノートには、後述する位置情報の付加を行うための領域およびその領域に位置情報がまだ付加されていないという情報が記録される。
このステップの処理により画像が記録された記録媒体110の記録領域の一部を図6に示す。図6において、記録領域の一部601には、10個の画像が撮像日時、時差情報および位置がまだ付加されていないことを示す情報と共に記録されている。また、本実施形態では、制御部101は、記録媒体110に記録されている画像の一つ一つに対して管理用の識別情報、すなわちIDを割り振る。
制御部101は、このIDを用いてそれぞれの画像を特定することができる。このIDは、記録媒体110ではなく、作業用メモリ104に一時的に保持されるものであり、電源がONになったことにより記録媒体110に記録されている画像が走査され、それぞれの画像にユニークな値が割り振られる。そして、本ステップで新たに画像が記録される度に、対応するIDが新たに記録された画像に割り振られることになる。図6は、作業用メモリ104の記録領域の一部602に、img0001.jpgから順に割り振られているID1〜ID10が記録されている様子を示している。
ステップS507では、制御部101は、他のモードに遷移する指示を受け付けたか否かを判断する。例えば、操作部105に含まれる再生ボタンの押下が検知された場合、再生モードに遷移する指示を受け付けたと判断する。他のモードに遷移する指示を受け付けていないと判断した場合、処理はステップS501に戻る。一方、他のモードに遷移する指示を受け付けたと判断した場合、処理を終了する。
以上が、本実施例におけるデジタルカメラ100における画像の生成の説明である。
<携帯電話200によるデジタルカメラ100内の画像の閲覧処理の概要>
次に、携帯電話200のログアプリを利用して、上述のデジタルカメラ100で生成した画像を閲覧する処理について説明する。
まず、処理に先立って、デジタルカメラ100と携帯電話200とが、接続部111および接続部211を介して接続し、互いの通信をアプリケーションレベルで確立する。本実施形態では、ログアプリは、デジタルカメラ100との通信を確立するための機能を有しており、携帯電話200はログアプリの動作によりデジタルカメラ100との通信を確立することができる。
通信が確立している状態において、ログアプリを実行中の携帯電話200の表示部206に表示される画面の一例を図7(a)に示す。図7(a)の画面においては、携帯電話200がデジタルカメラ100と接続中であることを示すメッセージが画面下端に表示されている。
また、ボタン701は、接続したデジタルカメラ100内の画像を、携帯電話200側から閲覧するためのボタンである。このボタン701は、デジタルカメラ100と携帯電話200とが接続している間のみ表示される。ユーザは、操作部205を介してこのボタン701を選択することにより、デジタルカメラ100の記録媒体110に記録されている画像を閲覧するための処理を開始する指示を入力することができる。
続いて、この指示の入力を受け付けることにより開始される、閲覧処理について概要を説明する。
図8は、上記処理の概要を説明するためのシーケンス図である。
ボタン701が選択されると、まずステップS801で、携帯電話200は、画像データをデジタルカメラ100に要求する。これに対しステップS802でデジタルカメラ100は、記録媒体110に記録されている画像データのヘッダ領域からサムネイルを読み出し、携帯電話200に送信する。
なお、本実施形態では、携帯電話200は、デジタルカメラ100から取得する際に、デジタルカメラ100に記録されている画像データの全てを要求する。しかしながら、デジタルカメラ100では、作業用メモリ104の容量に限界があるため、一度に送信できるサムネイルの数には限りがある。そこで、携帯電話200からの要求と、それに応答したデジタルカメラ100のサムネイルの送信とを繰り返す。これにより、携帯電話200は、デジタルカメラ100の記録媒体110に記録されている全ての画像データのサムネイルを受信する。
また、携帯電話200の表示部206の表示領域にユーザが視認可能なように表示できるサムネイルの数およびサイズにも限界がある。そのため、それ以上のサムネイルを受信しても表示することができない。そこで、例えば携帯電話200での操作によって、更なるサムネイルの表示が必要になったことに応じてステップS801とステップS802の処理を繰り返してもよい。
ステップS803では、携帯電話200は、受信したサムネイルを一覧表示する。この結果、携帯電話200の表示部206には、例えば図7(b)のような画面が表示される。この画面では、ユーザは操作部205を介して、所望のサムネイルを選択することができる。具体的には、表示部206の表示面上に配されるタッチパネルを介して、サムネイルの表示領域にタッチすることで、タッチした領域に対応するサムネイルを選択することができる。
例えば、図7(b)のサムネイル703を選択した場合、表示部206に表示される画面は、図7(c)のようになる。すなわち、選択したサムネイルを、より大きなサイズで表示させる(サムネイル704)。この時、前の画面(図7(b)の画面)で表示されていた他のサムネイルに重ねてサムネイル704を表示させてもよいし、他のサムネイルを非表示にしてもよい。あるいは、サムネイル704を表示した後の余白部分に並べて表示してもよい。また、このサムネイル704は、サムネイル703を伸張して表示させてもよいし、より大きなサイズのサムネイル画像をデジタルカメラ100から取得して表示させてもよい。
更に、図7(c)の画面には、表示中のサムネイル704に対応する画像データを受信するための受信ボタン705が表示されている。ユーザはこのボタンを選択することにより、表示中のサムネイル704に対応する画像データを受信する指示を入力することができる。この指示の入力を受け付けることに応じて携帯電話200はステップS804で、表示中のサムネイル704に対応する画像データをデジタルカメラ100に要求する。
これに対して、デジタルカメラ100はステップS805で、要求に応じた画像データを携帯電話200に送信する。この画像データを受信している最中は、携帯電話200では、例えば図7(d)のような画面が表示され、現在画像データを受信中であることをユーザに知らしめる。なお、本実施形態では、サムネイル704に対応する画像データが、図6のimg0009.jpgである場合を例に挙げて説明する。
デジタルカメラ100から送信された画像データを受信すると、携帯電話200はステップS806で、受信した画像データに対応するデジタルカメラ100に記録されている画像データに、ログデータを利用して位置情報を付加できるか否かを判断する。具体的には、受信した画像データのヘッダ領域に記録されている撮像日時が、保持しているログデータの記録期間内かどうかの判定を行う。
図4の例では、2012年6月5日8時50分から11時50分までの時間、および2012年6月5日19時59分から23時54分までの時間のログデータが保持されている。なお、前述のようにログデータの記録期間はUTCで表されたものである。一方、受信した画像データの撮像日時は地方標準時で記録されている。
そこで、画像のヘッダ領域に記録されている時差情報を用いてUTCの時刻系に変換する。ここでは、携帯電話200は、受信した画像であるimg0009.jpgのヘッダ領域を解析し、地方標準時で記述された撮像日時および図5で説明した時差情報からUTCへの変換を行う。この結果、img0009.jpgの撮像日時(UTC)は、6月5日の9時56分に変換される。以下、UTCに変換する前の撮像日時と区別するため、UTCに変換した撮像日時を「撮像日時(UTC)」と記載する。
ステップS806の判定では、撮像日時(UTC)と、記録媒体に記録されている各ログデータの記録期間を示す情報である記録開始日時および記録終了日時とがそれぞれ比較される。比較の結果、撮像日時(UTC)が、記録開始日時より後の日時、かつ記録終了日時より前の日時を示すと判断された場合、撮像日時がログデータの記録期間内であると判断される。
例えば、図4の例では、ログデータ1の記録開始日時2012年6月5日8時50分、および記録終了日時2012年6月5日11時50分を示す値が、それぞれimg0009.jpgの撮像日時(UTC)6月5日9時56分を示す値と比較される。ログデータ2についても同様である。この結果、img0009.jpgの撮像日時(UTC)は、ログデータ1の記録期間内であると判断されることになる。
図8では、ステップS806の判定の結果、受信した画像データの撮像日時が、保持しているログデータの記録期間内であった場合について図示している。この場合、携帯電話200はステップS807で、受信した画像データに対応するデジタルカメラ100に記録されている画像データ(受信した画像データの元の画像データ)に位置情報を付加できることをユーザに対して通知する。またこの通知に併せて、画像データへ位置情報を付加するか否かの選択をユーザに促す。例えば図7(e)のような画面を表示することで、デジタルカメラ100に記録されている画像データに位置情報が付加できることを通知し、画像データへ位置情報を付加するか否かの選択をユーザに促す。ユーザは、図7(e)のOKボタンを選択することで、画像データに位置情報を付加する指示を入力することができる。なお、画像データへ位置情報を付加するか否かの選択をユーザに促すだけでもよく、それによって位置情報が付加できることをユーザに通知することができる。また、ユーザは、図7(e)のキャンセルボタンを選択することで、画像データに位置情報を付加しない指示を入力することができる。図8の例では、OKボタンが選択された場合について図示している。
OKボタンが選択されると、携帯電話200はステップS808で、時間の情報をキーとしてマッチング処理を行う。ここでは、ログデータの日時情報と、撮像日時(UTC)とを比較し、差が一定の閾値以下の組み合わせのうち、最も差が小さい組み合わせの日時情報に対応する位置情報を決定する。一定の閾値には、ロギング間隔と同じ値あるいはそれよりも小さな値が設定される(例えば1分)。そして、決定された位置情報と、撮像日時(UTC)に対応する画像のIDとを対応づける。これにより、画像のIDとログデータの位置情報とが対応づけられたセットが生成されることになる。例えば、img0009.jpgのID9には6月5日の9時55分に取得された位置情報が対応づけられて、一組のセットとなる。
なお、本実施形態のマッチングでは、日時の差が小さい組み合わせが優先される場合を例に挙げて説明するが、これに限られるものではない。例えば、撮像日時(UTC)よりも早い日時を示す日時情報のうち、最も日時の差が小さい日時情報との組み合わせが優先されるようにしてもよい。あるいは、撮像日時(UTC)よりも遅い日時を示す日時情報のうち、最も日時の差が小さい日時情報との組み合わせが優先されるようにしてもよい。
デジタルカメラ100から受信した画像に対してマッチングの処理を終えると、次に、ステップS809で携帯電話200はステップS808で生成したセットをデジタルカメラ100に送信する。
デジタルカメラ100では、このセットを受信すると、ステップS810にて、IDに対応する画像に、IDに対応する位置情報を付加する。
以上が、携帯電話200のログアプリを利用して、上述のデジタルカメラ100で生成した画像を閲覧する処理の概要である。なお、デジタルカメラ100内の画像データのみならず、受信した画像データにも位置情報を付加するようにしてもよい。
<デジタルカメラ100内の画像の閲覧処理の際の各機器の動作>
次に、上述した動作を実現するための、携帯電話200とデジタルカメラ100の詳細な動作についてそれぞれ説明する。
まず、携帯電話200の動作について説明する。図9は、デジタルカメラ100との通信を確立後、位置情報を付加する際の携帯電話200の動作を示すフローチャートである。このフローチャートに示される各処理は、携帯電話200の制御部201が、不揮発性メモリ203に記録されているプログラムを実行し、プログラムに従い携帯電話200の各部を制御することにより実現される。以降の携帯電話200で実行されるフローチャートについても同様である。また、このフローチャートに示される処理は、デジタルカメラ100とのアプリケーションレベルの通信が確立することに応じて開始される。
デジタルカメラ100と通信を確立すると、携帯電話の制御部201は、図7(a)に示すカメラ通信アプリケーションのメニュー画面を表示部206に表示する。
ステップS901で、制御部201は閲覧ボタン701が選択されたか否かを判断する。閲覧ボタン701が選択されたと判断した場合にはステップS902に進む。閲覧ボタン701が選択されていないと判断した場合は本ステップの処理を繰り返す。
ステップS902で、制御部201はデジタルカメラ100に対して、デジタルカメラ100が有する画像データのサムネイルを要求する。この処理は図8のステップS801の処理に相当する。この要求に応答して、デジタルカメラ100は要求されたサムネイルを携帯電話200に送信する。このデジタルカメラ100の応答は、図8のステップS802の処理に相当する。
ステップS903で、携帯電話200は接続部211を介してデジタルカメラ100から送信されたサムネイルを受信する。前述したように、デジタルカメラ100が一度に送信可能な画像の枚数には限りがある。そのため、一度の送信で必要なサムネイルを受信しきれなかった場合、制御部201はステップS902およびステップS903の処理を繰り返す。
続いて、ステップS904では、制御部201は受信したサムネイルを表示部206に一覧表示する。これにより、例えば図7(b)のような画面が表示部206に表示される。図7(b)の例では、サムネイルが4列に表示されており、上下方向へのスクロール操作によりさらに他の画像のサムネイル表示が可能である。本ステップの処理は図8のステップS803の処理に相当する。
ステップS905では、制御部201は、一覧表示されたサムネイルの中からいずれかのサムネイルが選択されたか否かを判断する。サムネイルが選択されていないと判断した場合、処理はステップS918に進み、制御部201は、アプリを終了する指示が入力されたか否かを判断する。ユーザは、本フローチャートの実行中に、例えば操作部205に含まれるホームキーの押下等によって、本フローチャートの処理を実現するアプリの実行を中断する指示を入力することができる。制御部201が、終了の指示が入力されたと判断した場合、本フローチャートの処理を終了する。一方、終了の指示が入力されていないと判断した場合、処理はステップS904に戻る。
ステップS905にて制御部201が、サムネイルが選択されたと判断した場合には、ステップS906に進む。
ステップS906では、制御部201は選択されたサムネイルを大きなサイズで表示する。例えば、図7(c)のような画面が表示部206に表示される。図7(c)に示すように、選択されたサムネイルが図7(b)と比べてより大きなサイズで表示される。なお、ステップS906では選択されたサムネイルをそのまま大きなサイズで表示しているが、大きなサイズで表示することに鑑みて、より大きなサムネイルもしくは本画像データを再度デジタルカメラ100に要求してもよい。
また、図7(c)に示す画面には受信ボタン705が含まれる。受信ボタン705は、表示されているサムネイルに対応する本画像データをデジタルカメラから受信して携帯電話200の記録媒体210に記録するためのボタンである。
続いてステップS907で、制御部201は受信ボタン705が選択されたか否かを判断する。受信ボタン705が選択されたと判断した場合はステップS908に進む。受信ボタン705が選択されていないと判断した場合には、ステップS918に進む。ステップS918の処理は上記で説明したとおりである。
ステップS908に進むと、制御部201は、ステップS905で選択したサムネイルに対応する画像データをデジタルカメラ100に要求する。本ステップの処理は、図8のステップS804の処理に相当する。
続くステップS909で、制御部201は接続部211を介して受信した画像データを作業用メモリ204に保持する。画像データの受信中は表示部206に図7(d)の画面を表示する。なお、携帯電話200のユーザはプログレスバー711の表示により、要求した画像データのデータ量全体のうち、どの程度の量を受信したかを把握することができる。またユーザは、ボタン712を選択することにより、受信を中止することができる。受信が中止された場合、途中まで受信して作業用メモリ204に保持していた画像データの一部については削除される。
次に、ステップS910では、制御部201は作業用メモリ204に保持された画像データに位置情報が含まれているかどうかを判断する。
まず、ステップS910で、画像データに位置情報が含まれていると判断された場合について説明する。この場合、処理はステップS912に進む。この場合、デジタルカメラ100内の対応する画像データには既に位置情報が対応づけられているため、新たに位置情報を対応づける必要はない。そのため、マッチングや、位置情報のデジタルカメラ100への送信を行うことなく、処理はステップS912に進む。ステップS912では、制御部201は、ステップS909で受信した画像データを記録媒体210に保存する。このようにして保存された画像データは、例えば他のメニュー操作を受け付けることに応じて、携帯電話200で再生したり、他の装置に転送したりすることができる。
その後、処理はステップS904に戻る。
一方、ステップS910で、画像データに位置情報が含まれていないと判断した場合について説明する。この場合、処理はステップS913に進む。
ステップS913では、制御部201は、ステップS909で受信した画像の撮像日時(UTC)が記録媒体210に記録されたログデータの記録時間の範囲内かどうかを判定する。この判定は、図8のステップS806の処理に相当する。受信した画像の撮像日時(UTC)の示す日時がログデータの記録時間の範囲内でない場合は、ログデータを用いてデジタルカメラ100内の対応する画像データに位置情報を付加することはできない。そのため、制御部201が、受信した画像の撮像日時(UTC)の示す日時が、ログデータの記録時間の範囲内でないと判断した場合は、マッチングや、位置情報のデジタルカメラ100への送信を行うことなく、処理はステップS912に進む。
一方、制御部201が、受信した画像の撮像日時(UTC)の示す日時がログデータの記録時間の範囲内であると判断した場合、処理はステップS914に進む。
ステップS914では、制御部201は、図7(e)のようにダイアログ713を表示する。これにより、受信した画像データに対応するデジタルカメラ100内の画像データ(すなわち、デジタルカメラ100からコピーしたコピー元の画像データ)に位置情報を付加できることを示す情報をユーザに対して通知する。本ステップの処理は、図8のステップS807の処理に相当する。
続くステップS915では、制御部201は、操作部205を介して、ダイアログ713内のOKボタンおよびキャンセルボタンの選択を検知することにより、位置情報の付加を指示されたか否かを判断する。ユーザによりキャンセルボタンが選択されたことを検知した場合、制御部201は、位置情報を付加する必要はないと判断し、処理はステップS912に進む。一方、ユーザによりOKボタンが選択されたことを検知した場合、制御部201は、位置情報の付加を指示されたと判断し、処理はステップS916に進む。
ステップS916では、制御部201は、時刻の情報をキーとしてマッチングの処理を行う。この処理は、図8のステップS808の処理に対応する。このマッチングの結果、受信した画像のIDと位置情報のセットを生成する。
続いてステップS917では、制御部201は、ステップS916で生成した画像のIDと位置情報のセットをデジタルカメラ100に接続部211を介して送信する。このステップの処理は図8のステップS809の処理に相当する。その後、処理はステップS912に進む。ステップS912の処理は上述のとおりである。
以上が、携帯電話200の動作の説明である。
次に、上述の携帯電話200の動作に対応するデジタルカメラ100の動作について説明する。
図10は、位置情報を付加する際のデジタルカメラ100の動作を示すフローチャートである。このフローチャートに示される各処理は、デジタルカメラ100の制御部101が、不揮発性メモリ103に記録されているプログラムを実行し、プログラムに従いデジタルカメラ100の各部を制御することにより実現される。以降のデジタルカメラ100で実行されるフローチャートについても同様である。また、このフローチャートに示される処理は、携帯電話200とのアプリケーションレベルの通信が確立することに応じて開始される。
まず、ステップS1001では、制御部101は、接続部111を介して接続した携帯電話200からサムネイル送信の要求を受信したか否かを判断する。サムネイル送信の要求を受信したと判断した場合、処理はステップS1002に進み、サムネイル送信の要求を受信していないと判断した場合はステップS1004に進む。
まず、サムネイル送信の要求を受信したと判断した場合について説明する。ここで受信するサムネイル送信の要求とは、例えば図9のステップS902で携帯電話200から送信される要求である。
ステップS1002で、制御部101は、記録媒体110に記録されている画像のうち、要求されたサムネイルに対応する画像のヘッダ領域を解析し、サムネイルを読み出す。続くステップS1003で、読み出したサムネイルおよび画像のIDのセットを接続部111を通して携帯電話200に送信する。ステップS1002およびステップS1003の処理は、図8のステップS802の処理に相当する。その後処理は、ステップS1001に戻る。
次に、ステップS1001で、制御部101が、サムネイル送信の要求を受信していないと判断した場合について説明する。
ステップS1004で、制御部101は、画像送信の要求を受信したか否かを判断する。制御部101が、画像送信の要求を受信したと判断した場合には、ステップS1005に進み、そうでない場合は、ステップS1007に進む。
まず、画像送信の要求を受信したと判断した場合について説明する。ここで受信する画像送信の要求とは、例えば図9のステップS908で携帯電話200から送信される要求である。
ステップS1005で、制御部101は、記録媒体110に記録されている画像のうち、要求された画像のIDに基づき、要求に対応する画像を特定し、記録媒体110から読み出す。そして、ステップS1006で、制御部101は、ステップS1005で読み出した画像を接続部111を介して携帯電話200に送信し、ステップS1001に戻る。ステップS1005およびステップS1006の処理は、図8のステップS805の処理に相当する。
次に、ステップS1004で、制御部101が、画像送信の要求を受信していないと判断した場合について説明する。
ステップ1007で、制御部101は、画像のIDと位置情報のセットを受信したか否かを判断する。画像のIDと位置情報のセットを受信したと判断した場合には、ステップS1008に進み、そうでない場合は、ステップS1001に戻る。
ステップS1008では、制御部101は、受信したセットに含まれるIDに対応する画像に、セットに含まれる位置情報を付加する。具体的には、IDに対応する画像のヘッダ領域に、セットに含まれる位置情報を記録する。
ステップS1009では、制御部101は、ステップS1009での位置情報の付加が、受信したセットに含まれるIDに対応する画像の全てについて実行されたか否かを判断する。制御部101が、まだ実行されていない画像があると判断した場合、処理はステップS1008に戻り、残りの画像に対して位置情報の付加を実行する。一方、制御部101が、全ての画像について位置情報の付加の処理が実行されたと判断した場合、処理はステップS1001に戻る。
なお、本フローチャートは、例えばデジタルカメラ100の電源の残容量が所定量以下になったことや、ユーザ操作によって電源をOFFにする指示が入力されたこと、携帯電話200から電源をOFFにする指示を受け付けたことなどをトリガとして終了する。また、終了のトリガが割り込んできた場合には、処理が実行途中であった場合であっても、処理を中断して終了する。
以上が、デジタルカメラ100の動作の説明である。
上述したように、本実施形態では、デジタルカメラ100と携帯電話200とが協働することにより、ログデータや画像そのものをPCに送信することなく、位置情報を画像に付加することができる。
また、本実施形態では、ログデータを記録する携帯電話200でデジタルカメラ100内の画像を閲覧するタイミングで、ユーザに位置情報を付加できる状態にあることを通知する。これにより、ユーザが特に位置情報を画像に付加しようと意識していなくとも、画像に位置情報を付加し得ることに気づくことができるため、画像に位置情報を付加する機会を逃す可能性を低減することができる。
また、本実施形態では、ログデータの生成とマッチングの処理の両方を携帯電話200で動作するログアプリにより実行する。このようにするのは以下の理由による。携帯電話200でマッチングの処理を行えば、例えば精度の低いログデータはロギングやマッチングの対象から外すなど、柔軟な処理を行うことができる。それに対し、カメラ側でマッチングを行うようにした場合、ログデータの精度等の情報を携帯電話から取得する必要がある。以上の理由から、ログデータの生成とマッチングの処理の両方を携帯電話200で行うようにした。これにより、ログデータの生成の特性に合わせたマッチングを行うことが容易となる。さらに、デジタルカメラ100は、単に受信したセットに含まれるIDに対応する画像に、セットに含まれる位置情報を付加する機能だけを有していればよい。そのため、マッチングをデジタルカメラで行う場合やGPSをデジタルカメラに搭載する場合にくらべて、デジタルカメラのコストを低減することができる。
また、本実施形態では、マッチングを行う際にUTCを利用する。これにより、各機器で設定されたタイムゾーンが異なる状態でログデータや画像が取得された場合であっても、その影響を受けることなくマッチングを行うことができる。
[第2の実施形態]
第1の実施形態では、携帯電話200が要求したデジタルカメラ100の画像を受信した時点で位置情報の付加が可能かどうかの判断を行っていた。これに対し本実施例では、携帯電話200でサムネイル受信時に、サムネイルに対応する画像に位置情報が付加できるかどうかを判断する場合について述べる。なお、本実施形態では、第1の実施形態と共通する部分については説明を省略し、本実施形態に特有の部分を中心に説明する。
図11は、第2の実施施形態における携帯電話200の動作を示すフローチャートである。このフローチャートに示される処理は、デジタルカメラ100とのアプリケーションレベルの通信が確立することに応じて開始される。
ステップS1101では、図9のステップS901と同様の処理が実行される。
次に、ステップS1102では、制御部201は、デジタルカメラ100に対して、画像データのサムネイルおよび画像情報を要求する。ここで、画像情報とは、少なくともその画像に位置情報が関連付けられているか否かを示す情報、撮像日時、時差情報を含むものとする。この他に画像の縦横判定、画像サイズ、動画の場合は動画の再生時間などを含めてもよい。
また画像情報を含む画像のデータの一部を要求してもよい。この要求に応答して、デジタルカメラ100は要求されたサムネイルおよび画像情報を携帯電話200に送信する。なお、一般的に、サムネイルのデータサイズに対して、画像情報のデータサイズは、非常に小さい。そのため、サムネイルのみを送信する場合と、サムネイルと画像情報の両方を送信する場合との通信の負荷の差は無視できるレベルである。
続いてステップS1103では、制御部201は、接続部211を介してデジタルカメラ100から送信されたサムネイルおよび画像情報を受信し、作業用メモリ204に保持する。
次にステップS1104では、制御部201は、作業用メモリ204に保持した画像情報に含まれる、位置情報が関連付けられているか否かを示す情報を参照し、位置情報が関連付けられていない画像があるかどうかを判断する。制御部201が位置情報が関連付けられていない画像がないと判断した場合はステップS1110に進み、位置情報が関連付けられていない画像があると判断した場合には、ステップS1105に進む。
ステップS1105では、制御部201は、位置情報が関連付けられていない旨を示す情報を含む画像情報に含まれる撮像日時(すなわち位置情報が関連付けられていない画像の撮像日時)がログデータの記録期間の範囲内かどうかを判断する。撮像日時がログデータの記録期間の範囲内でない場合には位置情報を付加することはできないので、処理はステップS1110に進む。一方、ステップS1103で受信したサムネイルに対応する画像の撮像日時のうち、ひとつでもログデータの記録期間の範囲内のものがあると判断された場合には、処理はステップS1106に進む。
例として、図6の画像情報を受信し、図4のログデータを保持していた場合には、それぞれの画像情報内の撮像日時にについてログデータの記録期間の範囲内であるかどうかを判定する。つまり、図6の画像が、ログデータ1の2012年6月5日8:50から11:50までと、ログデータ2の2012年6月5日19:59から23:54までの間に撮影された画像であるかどうかを判定する。
このステップの処理では、第1の実施形態において図8を利用して説明した処理と同様に、UTCの時刻系で判定を行う。つまり、画像情報に含まれる時差情報に基づき、撮像日時をUTCに変換した上で、ログデータの記録期間の範囲内かどうかを判定する。図4と図6の例ではID9およびID10の画像の撮像日時がログデータ1の記録期間の範囲内であると判定されることになる。
ステップS1106では、制御部201は、図9のステップS914と同様に、受信したサムネイルに対応するデジタルカメラ100内の画像データに位置情報を付加できることをユーザに対して通知する。
続くステップS1107では、制御部201は、操作部205を介して、位置情報の付加を指示されたか否かを判断する。制御部201が、位置情報の付加を指示されていないと判断した場合、処理はステップS1110に進む。一方、位置情報の付加を指示されたと判断した場合、処理はステップS1008に進む。
続いてステップS1108では、制御部201は、図8のステップS808で説明したようにマッチングを行い、受信した画像のIDと位置情報のセットを生成する。図4と図6の例では、ID9、およびID10が対象となるため、これらの位置情報を特定し、それぞれのセットを生成する。
そして、ステップS1109で、制御部201は、ステップS1108で生成した画像のIDと位置情報のセットを接続部211を介して、デジタルカメラ100に送信する。デジタルカメラ100では、このデータを受け取り、対応する画像に位置情報を付加する。
ステップS1110〜ステップS1115は、図9のステップS904〜ステップS909と同様の処理が実行される。また、ステップS1116およびステップS1117では、図9のステップS912およびステップS918と同様の処理が実行される。
以上が、本実施形態における携帯電話200の動作の説明である。
次に、上記の携帯電話200の動作に対応するデジタルカメラ100の動作について説明する。図12は、第2の実施施形態におけるデジタルカメラ100の動作を示すフローチャートである。このフローチャートに示される処理は、携帯電話200とのアプリケーションレベルの通信が確立することに応じて開始される。
ステップS1201では、制御部101は、サムネイルと画像情報送信の要求を受信したか否かを判断する。サムネイルと画像情報送信の要求を受信したと判断した場合にはステップS1202に進み、サムネイルと画像情報送信の要求を受信していないと判断した場合はステップS1204に進む。
ステップS1202では、制御部101は、記録媒体110に記録されている画像データのうち、要求されたサムネイルに対応する画像のヘッダ領域を解析し、サムネイルおよび画像情報を読み出す。続くステップS1203で、読み出したサムネイル、画像情報および画像のIDのセットを接続部111を介して携帯電話200に送信する。この結果、携帯電話200にサムネイルと画像IDのみならず、画像情報も受け渡されることになる。
ステップS1204以降の処理では、図10のステップS1004以降の処理と同様の処理が実行される。
以上が、本実施形態におけるデジタルカメラ100の動作の説明である。
上述したように、本実施形態では、携帯電話200でデジタルカメラ100内の画像のサムネイル一覧を表示するタイミングで、受信したサムネイルに対応する画像のそれぞれに位置情報を付加可能であることをユーザに通知する。これにより、ユーザは、画像本体を受信することなく、位置情報の付加が可能であることを知ることができる。
[その他の実施形態]
なお、上述の実施形態に加えて、画像が書き込み不可(いわゆるプロテクト)の場合は、携帯電話200で記録時間に含まれていても通知対象としないようにしてもよい。すなわち、図6の画像情報に書き込み不可かどうかの情報を付加し、図9のステップS910とステップS914の間に、画像が書き込み不可(いわゆるプロテクト)か否かを判断する。そして、画像が書き込み不可(いわゆるプロテクト)であると判断した場合は、ステップS914を経ることなく、処理をステップS912に進める。つまり、その画像に位置情報が付加できることを通知する対象にしないようにする。これにより、位置情報の書き込みができない画像に対して位置情報が付加できることを通知してしまうという不都合が生じる可能性を防ぐことができる。
また、上述の実施形態に加えて、位置情報を付加する画像を、通信中のデジタルカメラ100で撮影した画像に限定するようにしてもよい。このようにするのは、以下の理由による。
上記の実施形態では、携帯電話200とデジタルカメラ100とは、同じユーザが持ち歩くことを想定している。故に、携帯電話200で生成したログデータを利用して、デジタルカメラ100で撮影した画像に正しい位置情報を付加することができる。
しかしながら、デジタルカメラ100の記録媒体110には、必ずしもデジタルカメラ100で撮影された画像だけが記録されているとは限らない。例えば、他人のカメラで撮影された画像が記録されている場合も考えられる。そして、その他人のカメラは、ログデータの記録期間の間、携帯電話200と同じ場所に存在しているとは限らない。このため、他のカメラで生成された画像に、携帯電話200で生成したログデータを利用して位置情報を付加しようとすると、実際の撮影場所とはまったく異なる場所を示す位置情報が付加されてしまう恐れがある。
このような理由から、位置情報を付加する画像を、接続中のデジタルカメラ100で撮影した画像に限定する。言い換えれば、接続中のデジタルカメラとは異なる他のカメラで生成された画像は、位置情報を付加する対象としない。
具体的には、デジタルカメラ100は、撮影した画像にはデジタルカメラ100と他の機器とを区別するためのユニークなIDを対応づけて記録しておく。そして、デジタルカメラ100との通信を確立した際に、携帯電話200は、デジタルカメラ100のIDを取得する。この処理を実行する制御部201は、ID受信手段の一例である。この状態で携帯電話200がデジタルカメラ100から画像を受信した際には、携帯電話200は、受信した画像に対応づけられているIDと、接続時に取得した接続中のデジタルカメラのIDとを比較する。この比較により、画像が接続中のデジタルカメラで撮影したものかどうかを判断する。
IDが異なっていれば、現在接続中のカメラとは別のカメラで生成された画像であると判断されることになる。この場合、処理をステップS912に進める。つまり、その画像を位置情報を付加する対象画像にしないようにする。これにより、誤った位置情報を付加する可能性を低減することができる。
また、上述の実施形態では、デジタルカメラ100のRTC107の計時する時刻が正確であることを前提としてマッチングする例について述べた。しかしながら、一般的にRTCで計時される時刻は、GPSの信号から算出される時刻に比べて正確ではない。
そこで、マッチングの際に、携帯電話200のログデータに利用する時刻系と、デジタルカメラ100のRTC107が計時する時刻系との差を考慮するようにしてもよい。この場合、例えば、ログアプリが起動され、携帯電話200とデジタルカメラ100との通信が確立することに応じて、携帯電話200の制御部201は、デジタルカメラ100に対して、RTC107が計時する時刻を要求する。
これに応答してデジタルカメラ100は、RTC107の計時する時刻を、自機に予め設定されているタイムゾーンに応じた時差情報に従ってUTCに変換し、携帯電話200に送信する。このデジタルカメラ100から返される、UTCに変換済みの時刻を受信すると、制御部201は、GPSから得られるUTCと比較して、その差分を算出する。
なお、この差分を算出するための一連の処理は、例えば図7(a)や図7(b)の画面を表示している間、並行してバックグラウンドで実行される。また、この差分を算出する制御部201は、時差取得手段の一例である。
その後、画像に位置情報を付加可能であるという通知を受けたユーザによって、画像に位置情報を付加する指示が入力されると、制御部201は、マッチングの前に、予め算出しておいた差分を用いて、画像の撮像日時を修正する。そして、修正後の撮像日時とログデータの日時情報とを用いてマッチングを行う。このようにすることで、より正確な位置情報を付加することができる。
また、第1の実施形態では、携帯電話200は、対象とした画像のみに関して位置情報が付加可能であることを通知した。しかしながら、一枚の画像に位置情報を付加できる場合には、その前後に撮影した画像にも、同じログデータを利用して位置情報を付加できる可能性が高いと考えられる。
そこで、受信した画像の撮像日時がログデータの記録範囲内であれば、そのログデータの記録範囲に含まれる他の画像にも位置情報を付加できるかどうかを判断してもよい。例えば、図8のステップS806で、受信した画像の撮像日時がログデータの記録範囲内であると判断された場合、更に、そのログデータの記録期間に対応する他の画像のIDと撮像日時もデジタルカメラ100に要求する。この要求では、ログデータの記録期間を示す情報として、ログデータの生成を開始した日時を示す日時情報とログデータの生成を終了した日時を示す日時情報を、デジタルカメラ100に送信する。
第1の実施形態の例で言えば、図4のログデータ1の2012年6月5日8時50分から11時50分までの間に撮像された画像のIDと撮像日時を要求することになる。この結果、デジタルカメラ100は、新たにimg0010.jpgの画像のIDとUTCに変換された撮像日時を、携帯電話200に送信する。なお、既に送信済みのimg0009.jpgについてはここでは送信する必要はないので、除外する。
これらの処理が完了すると、携帯電話200では、ステップS807にて、図7(e)の画面の代わりに、図7(f)のような画面を表示し、ユーザに対して、他の画像にも位置情報を付加できることを通知する。これにより、他の画像を閲覧する度に位置情報が付加できることを通知されてしまいユーザに煩わしさを感じさせる可能性を、低減することができる。
なお、ユーザの嗜好によっては、閲覧している画像にのみ位置情報を付加したい場合も考えられる。そこで、図7(f)では、受信した画像に対応するデジタルカメラ100内の画像にのみ位置情報を付加するためのボタン714と、他の画像にも位置情報を付加するボタン715とを表示させている。ユーザはこれらのボタンを選択することで、好みに応じた処理を実行させることができる。
また、上述の実施形態では、撮像日時がログデータの記録期間内に含まれるかどうかを、ログデータの記録を開始した日時を示す日時情報および記録を終了した日時を示す日時情報との比較によって判断する場合を例に挙げて説明した。この判断の目的は、カメラ内の画像に対応する位置情報がログデータに含まれるか否か、すなわちログデータを利用してカメラ内の画像に位置情報を付加できるか否かを判断することにある。そのため、厳密に記録期間内である必要はない。例えば、図4のログデータ1の記録開始日時は、2012年6月5日8時50分である。これに対し、例えば2012年6月5日8時49分に撮像された画像データがあった場合、その画像データは、ログデータ1の記録期間には含まれない。しかしながら、ログデータに含まれる日時情報(ここでは記録開始日時)との差が、所定の閾値以下の範囲に含まれている。そのため、位置情報を付加できるようにする方が、よりユーザにとって利便性が高まるものと考えられる。そこで、例えば記録開始日時および記録終了日時を、記録期間が広がる方向に、それぞれ所定の閾値の分だけ拡張して判断してもよい。例えば、撮像日時が、ログデータ1の記録期間内に含まれるかどうか判断する際に利用する記録開始日時を、2012年6月5日8時50分でなく、2012年6月5日8時49分として所定の閾値(この例では1分)だけ前の日時に変更する。同様にログデータ1の記録終了日時を、2012年6月5日11時51分として1分だけ後の日時に変更して判断に利用する。これにより、より適切な判断を行うことができる。
あるいは、マッチングを実行することを以て、撮像日時がログデータの記録期間内に含まれるかどうかを判断してもよい。具体的には、マッチングにおける撮像日時と、ログデータに含まれる各日時情報との比較により、対応する位置情報を決定することができれば、すなわち撮像日時との差が所定の差以下である日時情報がログデータ内に含まれるということになる。このことから、撮像日時はログデータの記録期間内であると判断できる。一方、位置情報が決定できなければ、すなわち撮像日時との差が大きな日時情報しかログデータに含まれていないことになる。このことから、ログデータの記録期間外であると判断できる。
また、上述の実施形態に加えて、携帯電話200は、デジタルカメラ100から受信した画像データを他の装置(例えばインターネットを介して接続される、オンラインアルバム等のサービスを提供する他のサーバ)に自動的に転送する機能を備えていてもよい。このような機能では、携帯電話200のユーザは、デジタルカメラ100内の画像データのサムネイル一覧を見ながら、転送する画像データを選択することができる。ここで注意すべきは、受信した画像データを携帯電話200の記録媒体210に記録するまでに留まる処理とは異なり、画像データが不特定多数に公開される恐れがあることである。そこで、このような処理を行うためのシーケンスでは、たとえサムネイル一覧の閲覧中に画像データに位置情報を付加できる状況にあったとしても、携帯電話200はユーザにそのことを通知しない。また、受信した画像データに位置情報が付加されていた場合は、その位置情報を削除した上で他の装置に転送する。これにより、ユーザのプライバシーを守ることができる。
また本発明は、以下の処理を実行することによっても実現される。即ち上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。