画像制御装置及び画像制御方法、プログラム並びに記憶媒体
【課題】撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を表示できるようにする。
【解決手段】画像を地図上に表示するように制御する画像制御装置であって、前記画像の属性情報から位置情報を取得する取得手段と、前記画像を地図上に表示するときの表示精度を指定する指定手段と、前記取得手段により取得した位置情報と前記指定手段により指定された表示精度を用いて地図上に画像を表示するための表示データを作成する作成手段と、を備え、前記作成手段は、前記指定手段により指定された表示精度が、予め決められた地図の精度よりも低い場合には、前記画像を前記位置情報に対応する地図上の位置に配置し、予め決められた地図の精度よりも高い場合には、前記画像を前記位置情報に対応する地図上の位置には配置しないよう制御する。
【解決手段】画像を地図上に表示するように制御する画像制御装置であって、前記画像の属性情報から位置情報を取得する取得手段と、前記画像を地図上に表示するときの表示精度を指定する指定手段と、前記取得手段により取得した位置情報と前記指定手段により指定された表示精度を用いて地図上に画像を表示するための表示データを作成する作成手段と、を備え、前記作成手段は、前記指定手段により指定された表示精度が、予め決められた地図の精度よりも低い場合には、前記画像を前記位置情報に対応する地図上の位置に配置し、予め決められた地図の精度よりも高い場合には、前記画像を前記位置情報に対応する地図上の位置には配置しないよう制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子地図上に画像を表示する技術に関する。
【背景技術】
【0002】
デジタルスチルカメラや携帯電話で撮影した画像を撮影場所に対応する電子地図上に配置して公開することが日常的に行われるようになっている。このような状況の中で、プライバシーに関わる情報を守るため、インターネット等の通信網経由でファイルを転送するとき、ファイルに付加されている情報を自動的に削除するデジタルスチルカメラが提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−343627号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1において、ファイルの付加情報を削除してしまうと、地図上に画像を全く表示できなくなってしまうおそれがある。
【0005】
本発明は、上記課題に鑑みてなされ、その目的は、撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を表示できるようにすることである。
【課題を解決するための手段】
【0006】
上記課題を解決し、目的を達成するために、本発明の画像制御装置は、画像を地図上に表示するように制御する画像制御装置であって、前記画像の属性情報から位置情報を取得する取得手段と、前記画像を地図上に表示するときの表示精度を指定する指定手段と、前記取得手段により取得した位置情報と前記指定手段により指定された表示精度を用いて地図上に画像を表示するための表示データを作成する作成手段と、を備え、前記作成手段は、前記指定手段により指定された表示精度が、予め決められた地図の精度よりも低い場合には、前記画像を前記位置情報に対応する地図上の位置に配置し、予め決められた地図の精度よりも高い場合には、前記画像を前記位置情報に対応する地図上の位置には配置しないよう制御する。
【発明の効果】
【0007】
本発明によれば、撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を表示できるようになる。
【図面の簡単な説明】
【0008】
【図1】本発明に係る一実施形態の画像制御システムの構成図。
【図2】本実施形態のデジタルスチルカメラのブロック構成図。
【図3】本実施形態のデジタルスチルカメラを背面から見た様子を示す図。
【図4】本実施形態のサーバを示すブロック図。
【図5】本実施形態のクライアントを示すブロック図。
【図6】本実施形態の画像ファイルの概略構成図。
【図7】実施形態1の画像送信処理を示すフローチャート。
【図8】実施形態1の画像制御処理を示すフローチャート。
【図9】実施形態1の画像受信装置側におけるユーザインタフェースを例示する図。
【図10】実施形態1の画像受信装置側におけるユーザインタフェースを例示する図。
【図11】実施形態2の画像送信装置側におけるユーザインタフェースを例示する図。
【図12】実施形態2の画像受信処理を示すフローチャート。
【図13】実施形態2の画像受信装置側におけるユーザインタフェースを例示する図。
【図14】実施形態2の画像受信装置側におけるユーザインタフェースを例示する図。
【図15】実施形態3の画像送信装置側におけるユーザインタフェースを例示する図。
【図16】実施形態3の画像制御処理を示すフローチャート。
【図17】実施形態3の画像受信装置側におけるユーザインタフェースを例示する図。
【図18】実施形態3の画像受信装置側におけるユーザインタフェースを例示する図。
【発明を実施するための形態】
【0009】
以下に、本発明を実施するための最良の形態について詳細に説明する。尚、以下に説明する実施の形態は、本発明を実現するための一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。また、後述する各実施形態の一部を適宜組み合わせて構成しても良い。
【0010】
[実施形態1]本実施形態の画像制御装置は、固体撮像素子を用いて光学像を電気的な画像データに変換して撮影を行う、デジタルスチルカメラやデジタルビデオカメラ等の電子カメラにより得られた画像データを制御する。本実施形態では、デジタルスチルカメラで撮影した画像をサーバコンピュータに送信し、サーバコンピュータ上で配信する情報の制御を行う画像制御装置について説明する。
【0011】
<本明細書における用語の定義>
データを外部機器に通信回路経由で送信することを、「送信」と記す。例えば、送信とは、デジタルスチルカメラからインターネット経由でサーバコンピュータにデータを送ることである。
【0012】
送信された先の外部機器において、第三者に提供できる状態にすることを「配信」と記す。例えば、配信とは、サーバコンピュータにて、第三者に提供できる状態にすることである。
【0013】
サーバコンピュータを「サーバ」と記す。
【0014】
サーバからサービスを提供されるクライアントコンピュータをクライアントと記す。
【0015】
ユーザが画像を撮影場所と関連付けて地図上に配置すると設定した最大の縮尺を表示縮尺情報と記す。表示縮尺情報の決定方法、保持方法、利用方法の詳細については、本実施形態にて後述する。
【0016】
ユーザが画像を撮影場所と関連付けて地図上に配置すると設定した最大の地図の精度を表示精度情報と記す。表示精度情報の決定方法、保持方法、利用方法の詳細については、実施形態3にて後述する。
【0017】
N分の1を1/Nと記す。例えば100分の1の場合には1/100、500分の1の場合には1/500と記す。
【0018】
<システム構成>まず、図1を参照して、本実施形態の画像制御システムの構成について説明する。図1において、100はデジタルスチルカメラであり、画像送信装置として動作する。101はサーバであり、画像制御装置として動作する。102はクライアントであり、情報処理装置および画像受信装置として動作する。103はコンピュータネットワークであり、各種装置が通信回路を通じてコンピュータネットワーク103を介して互いにデータを送受信する。
【0019】
デジタルスチルカメラ100は、ユーザの操作に応じて画像データを生成し記録媒体に記録する。そして、デジタルスチルカメラ100は、ユーザの操作に応じて表示縮尺情報を作成し、画像データと関連付けてコンピュータネットワーク103経由でサーバ101に送信する。サーバ101は、表示縮尺情報に基づいて地図上に画像を配置するか否かの制御をし、地図データおよび画像データからなる表示データをコンピュータネットワーク103経由でクライアントに配信する。クライアント102は、サーバ101から受信した地図データおよび画像データを表示する。デジタルスチルカメラ100での表示縮尺情報の生成方法とサーバでの制御方法の詳細については後述する。
【0020】
<カメラ構成>次に、図2及び図3を参照して、本実施形態の画像送信装置として動作するデジタルスチルカメラ100の構成について説明する。
【0021】
本実施形態のデジタルスチルカメラ100は、所定の制御プログラムを実行することにより以下に説明する画像送信処理を実現し、画像送信装置として機能する。
【0022】
図2において、200は撮像装置であり、固体撮像素子を用いて光学像を電気的な画像データに変換して画像データを生成する。201はデジタルスチルカメラ全体の制御を司るCPUである。202はCPU201の動作処理手順(例えばデジタルスチルカメラの電源をONした時の処理や基本入出力処理等のプログラム)を記憶しているROMである。203はRAMであり、CPU201のメインメモリとして機能する。RAM203には後述の処理を実現するための制御プログラムを含む各種プログラムがROM202等からロードされCPU201によって実行される。また、RAM203はCPU201が各種処理を実行する際のワークエリアを提供する。
【0023】
204は図3に示すディスプレイ301でありCPU201の制御下で各種表示を行う。例えば、送信制御のための設定をする画面や記憶媒体に記憶されたデータの表示を行う。207は図3に示す各種操作を行うためのボタン等の入力装置である。ボタンの詳細については後述する。
【0024】
208は記憶媒体装着ユニット(メディアドライブ)であり、着脱可能な記憶媒体を装着し、データを記憶したり、記憶されたデータを読み出すことを可能とする。209はネットワークインタフェースであり、通信回線211を介してコンピュータネットワーク212と接続される。このネットワークインタフェースによりサーバやパーソナルコンピュータからデータを送受信する。また、位置情報を取得する際にも、CPU201は、通信回線211を介してコンピュータネットワーク212に接続し、衛星測位システム(以下、GPS)を利用して位置情報を算出するサーバと通信して取得する。CPU201は、記憶媒体装着ユニット208に装着された記憶媒体内のデータを通信回線211を介してコンピュータネットワーク212に接続し、サーバへ送信する。
【0025】
210は上述した各ユニット間を接続するシステムバス(アドレスバス、データバスおよび制御バスからなる)である。
【0026】
<サーバ構成>次に、図4を参照して、本実施形態の画像制御装置として動作するサーバ101の構成について説明する。
【0027】
本実施形態のサーバは、所定の制御プログラムを実行することにより以下に説明する画像制御処理を実現し、画像制御装置として機能する。
【0028】
図4において、401は本装置全体の制御を司るCPUである。402はCPU401の動作処理手順(例えばコンピュータの立ち上げ処理や基本入出力処理等のプログラム)を記憶しているROMである。403はRAMであり、CPU401のメインメモリとして機能する。RAM403には後述の処理を実現するための制御プログラムを含む各種プログラムがハードディスクドライブ405等からロードされCPU401によって実行される。また、RAM403はCPU401が各種処理を実行する際のワークエリアを提供する。404はディスプレイでありCPU401の制御下で各種表示を行う。
【0029】
405はハードディスクドライブ(以下、HDD)、406はDVDドライブ(以下、DVDD)をそれぞれ示し、それぞれのディスクはアプリケーションプログラムやデータ、ライブラリなどの保存及び読み込み用に用いられる。また、DVDDの替わりに、あるいは追加してCD−ROM、MO等の光(磁気)ディスクドライブや、テープストリーマ、DDSなどの磁気テープドライブ等を設けてもよい。
【0030】
407はキーボードやポインティングデバイス等の入力装置である。408はネットワークインタフェースであり、通信回線410を介してコンピュータネットワーク411と接続される。このネットワークインタフェース408により通信可能な機器からデータを送受信する。409は上述した各ユニット間を接続するシステムバス(アドレスバス、データバスおよび制御バスからなる)である。
【0031】
<クライアント構成>次に、図5を参照して、本実施形態の画像受信装置として動作するクライアント102の構成について説明する。
【0032】
本実施形態のクライアント102は、所定の制御プログラムを実行することにより以下に説明する画像受信処理を実現し、画像受信装置として機能する。なお、クライアント102の構成は、サーバ101と同じであり、ROM402およびHDD405に記憶している制御プログラムが異なるだけである。そこで、図4を参照しつつサーバ101と異なる点について説明する。
【0033】
図5において、501から507,509については、401から407,409にそれぞれ対応し、名称および機能は同じである。
【0034】
508は408と同様にネットワークインタフェースであり、通信回線510を介してコンピュータネットワーク511と接続される。このネットワークインタフェース508によりサーバ101から画像データを含む各種データを受信し、ユーザ操作に応じてディスプレイ504に受信したデータを表示する。
【0035】
<画像ファイル構成>次に、図6を参照して、本実施形態の画像ファイルの構成について説明する。
【0036】
図6において、600と601は共にExif規格に準じて画像属性情報を記録している領域である。600は、Exif規格の基本的な情報を記録している領域であり、画像データサイズ、撮影日時、撮影場所、撮影機種、フラッシュオン/オフ、など撮影時の情報および画像の読み出しや再生、制御に必要な情報を記憶する。
【0037】
601はExif規格に準じて、デジタルスチルカメラのメーカ独自の形で画像属性情報を記録している領域であり、送信済みフラグ、表示縮尺情報、表示精度情報など制御に必要な情報を記憶する領域である。送信済みフラグはサーバに送信済みか否かを示す。
【0038】
602は縮小画像データ領域で、一覧表示の際に表示する縮小画像データを記憶する領域である。603は画像データ領域であり、当該画像ファイルとして格納すべき全ての画像データを記憶する領域である。CPU201が撮像装置200を用いて画像データを生成した後に画像属性情報を付加して図6に示す構成の画像ファイルを生成し、記憶媒体装着ユニット208を介して記憶媒体に記憶する。これら一連の処理を「撮影」と表記する。
【0039】
画像ファイル生成時に、CPU201はGPSを利用して位置情報を取得し、撮影場所として緯度、経度、高度、測位時間などの情報をExif_Base属性情報領域600に記憶する。また、画像ファイル生成時に、CPU201は、Exif_MakerNote属性情報領域601の送信済みフラグにFALSEを、表示縮尺情報に0を、表示精度情報に0を書き込む。送信済みフラグと表示縮尺情報の使用方法については、後述する。表示精度情報については、実施形態3にて後述する。
【0040】
<画像の表示縮尺指定>次に、図3を参照して、本実施形態による画像送信装置として動作するデジタルスチルカメラの各種ボタンとユーザインタフェースの詳細について説明する。
【0041】
本実施形態のデジタルスチルカメラには4種類のモードがあり、各モードに応じた動作をする。第一に撮影を行う「撮影モード」、第二に記憶媒体内の画像データを表示する「再生モード」、第三に各種設定を行う「設定モード」、第四にサーバやパーソナルコンピュータにデータを送信する「送信モード」である。本実施形態で主に説明するモードは「設定モード」である。電源ボタン302以外の全てのボタンに関しては、デジタルスチルカメラに電源が入っているときの動作を説明する。
【0042】
図3において、300はレリーズボタンである。ユーザがレリーズボタン300を押下すると、CPU201がユーザから撮影指示があったと判定し、撮影モードへと切り替え、撮影処理を行う。
【0043】
301はディスプレイである。302は、電源のON/OFFを切り替える電源ボタンである。デジタルスチルカメラの電源が入っていない状態で、ユーザが電源ボタン302を押下するとCPU201はユーザから電源入力の指示があったと判定し、電源を入れる。電源が入っている状態で、ユーザが電源ボタン302を押下するとCPU201はユーザから電源切りの指示があったと判定し、電源を切る。
【0044】
303は撮影モードボタンである。ユーザが撮影モードボタン303を押下すると、CPU201がユーザから撮影モードへの切り替え指示があったと判定し、撮影モードへと切り替え、撮像装置200による撮影の準備をすると共に、結像した画像をディスプレイ301に表示する。
【0045】
304は再生ボタンである。ユーザが再生ボタン304を押下すると、CPU201がユーザから再生モードへの切り替え指示があったと判定し、記憶媒体から画像データを読み込みディスプレイ301に画像を表示する。
【0046】
305は設定ボタンである。設定ボタン305をユーザが押下すると、CPU201がユーザから設定モードへの切り替え指示があったと判定し、設定画面をディスプレイ301に表示する。図3のディスプレイ301は設定画面を表示している状態を示している。
【0047】
311は送信ボタンである。ユーザが送信ボタン311を押下すると、CPU201がユーザから送信モードへの切り替え指示があったと判定し、記憶媒体から画像データを読み込み、後述する画像属性情報の変更を行った後に設定モードで指定された送信先へ送信する。
【0048】
307、308、309、310は、それぞれ上矢印ボタン、下矢印ボタン、左矢印ボタン、右矢印ボタンである。ユーザがこれらのボタンを押下するとCPU201はユーザから設定画面における操作対象の切り替え指示があったと判定し、矢印の方向に応じて選択対象を切り替える。
【0049】
312は、選択状態を示す選択枠である。CPU201は矢印ボタン307,308,309,310の操作に応じて枠の位置を変更する。306は決定ボタンである。ユーザが決定ボタン306を押下すると、CPU201がユーザから操作対象として選択された操作部材の押下や決定指示があったと判定し、動作する。
【0050】
313は、送信先を表示する送信先エディットボックスである。314は、各種文字を入力する文字入力エリアである。ユーザが文字を選択し、決定ボタン306を押下することにより、文字を入力する。315は入力完了ボタンである。
【0051】
ユーザが送信先エディットボックス313を選択し、決定ボタン306を押下したときに、送信先の編集ができるようになる。それと同時に文字入力エリア314が操作可能になる。そして、ユーザが文字列を入力した後に、入力完了ボタン315を選択し、決定ボタン306を押下すると、CPU201はユーザからの文字列入力が完了したと判定し、送信先エディットボックス313に入力された文字列を表示する。
【0052】
操作部材316,317,318は、プライバシーに関わる属性情報を抽象化した情報に変換する際の設定に関わるものである。
【0053】
316は場所詳細非表示チェックボックスである。ユーザが場所詳細非表示チェックボックスを選択し、決定ボタン306を押下すると、CPU201は設定変更の操作があったと判定し、ON/OFF状態を切り替える。場所詳細非表示チェックボックスにチェックが入っている状態つまりONの状態で、ユーザが決定ボタン306を押下すると、CPU201はチェックを消しOFFの状態とする。チェックがない状態、つまりOFFの状態で、ユーザが決定ボタン306を押下すると、CPU201はチェックを表示しONの状態とする。CPU201はON/OFFの状態をメディアドライブ208を介して記憶媒体に保持する。
【0054】
317は表示縮尺設定ボックスである。ユーザが表示縮尺設定ボックスを選択し、決定ボタン306を押下すると、CPU201は設定変更の操作があったと判定し、プルダウン式のメニューを表示する。その際の表示するメニューの項目は、1/1000以下、1/2000以下、1/5000以下、1/10000以下、である。ユーザが矢印ボタン307,308を操作し、プルダウン式のメニューの中の選択を切り替え、決定ボタン306を押下すると、CPU201はユーザから、設定が選ばれたと判断し、プルダウンメニューを閉じる。
【0055】
設定モードにおいてユーザが設定した全ての情報は、ユーザが設定ボタン305を押下し、他のモードへ切り替えたとき、CPU201は、メディアドライブ208を介して記憶媒体に記憶する。そして、CPU201は必要に応じて情報を読み、画像送信処理に利用する。
【0056】
<画像送信処理>次に、本実施形態の画像送信装置として動作するデジタルスチルカメラ100において、画像送信時に画像のExif_MakerNote属性情報領域601に表示縮尺情報を書き込んでサーバ101に送信する処理について、図7を参照して説明する。尚、本処理は、CPU201がRAM203に格納された制御プログラムを実行することにより実行される。
【0057】
図7において、ステップS701にて、CPU201は、対象となる画像ファイルを抽出する。まず、記憶媒体に記憶されている画像ファイル全てについて、Exif_MakerNote属性情報領域601の送信済みフラグを参照する。そして、送信済みフラグがFALSEのものを対象であると判定し、抽出する。
【0058】
ステップS702にて、CPU201は、カウンタnに0を代入する。カウンタnは対象となる画像ファイル個々について、後述するステップS704からステップS708までの一連の処理をCPU201が実行するためのカウンタである。
【0059】
ステップS703にて、CPU201は、カウンタnが対象となる画像ファイルの数より少ないか判定をする。
【0060】
ステップS703にて、CPU201が、カウンタnが対象となる画像ファイルの数より少ないと判定した場合には、ステップS704へ進む。
【0061】
ステップS703にて、CPU201が、カウンタnが対象となる画像ファイルの数以上であると判定した場合には、対象となる全ての画像に対して一連の処理が完了したものと判断して、処理を終了する。
【0062】
ステップS704にて、CPU201は、記憶媒体からメディアドライブ208を介して場所詳細非表示チェックボックス316の状態を読み込む。そしてONか否かを判定する。
【0063】
ステップS704にて、CPU201が、場所詳細非表示チェックボックス316はON状態であると判定した場合には、ステップS705へ進む。
【0064】
ステップS704にて、CPU201が、場所詳細非表示チェックボックス316はOFF状態であると判定した場合には、ステップS707へ進む。
【0065】
ステップS705にて、CPU201は、記憶媒体からメディアドライブ208を介して表示縮尺設定ボックス317で設定された縮尺を読み込む。
【0066】
ステップS706にて、CPU201は、対象となるn番目の画像のExif_MakerNote属性情報領域601の表示縮尺情報に、ステップS705で読み込んだ縮尺を書き込む。縮尺が1/1000以下と指定されていた場合には、表示縮尺情報に分母の値、1000を書き込む。縮尺が1/5000以下と指定されていた場合には、表示縮尺情報に分母の値、5000を書き込む。
【0067】
ステップS707にて、CPU201は、ネットワークインタフェース209により通信回線211を介してコンピュータネットワーク212に接続し、設定した送信先のサーバへ送信する。送信先は、送信先エディットボックス412にてユーザが設定した送信先とする。もし、ユーザが設定していなければ既定の送信先としてもよいし、警告を表示し、ユーザに設定を促してもよい。
【0068】
ステップS708にて、CPU201は、CPU201は、対象となる画像ファイルの送信済みフラグをTRUEに書き換える。
【0069】
ステップS709にて、CPU201は、カウンタnをインクリメントする。
【0070】
<画像制御処理>本実施形態における画像制御装置として動作するサーバ101において、表示縮尺情報に基づいて地図上に画像を配置するか否かの制御をし、地図データおよび画像データをコンピュータネットワーク103経由でクライアントに配信する処理について、図8を参照して説明する。尚、本処理は、CPU401がRAM403に格納された制御プログラムを実行することにより実現される。予め、サーバ101のCPU401は、デジタルスチルカメラ100から送信された画像ファイルをコンピュータネットワーク411を介してネットワークインタフェース408により受信し、HDD405に保持しているものとする。また、サーバ101とクライアント102との間は、双方向にデータの送受信が可能な状態が確立できているものとする。図8の画像制御処理は複数のクライアントに対して同じデータを配信するのではなく、クライアント毎の表示条件に応じて個別に配信する。サーバ101は、HDD405に様々な縮尺に対応した全地域の地図データを保持しているものとする。
【0071】
図8において、ステップS800にて、CPU401は、クライアント102の表示条件をコンピュータネットワーク411を介してネットワークインタフェース408により受信する。表示条件とは、クライアント102にて表示する地図の緯度・経度の範囲、縮尺である。
【0072】
ステップS801にて、CPU401は、S801にて受信した表示条件の緯度・経度の範囲に撮影場所が含まれる画像を抽出する。まず、HDD405に記憶されている画像ファイル全てについて、Exif_Base属性情報領域600の撮影場所情報を参照する。そして、撮影場所情報が緯度・経度の範囲に含まれているものを対象であると判定し、抽出する。
【0073】
ステップS812にて、CPU401は、HDD405からクライアントの表示条件に対応する地図データをRAM403へ読み込み、コンピュータネットワーク411を介してクライアント102へ送信する。
【0074】
ステップS802にて、CPU401は、カウンタnに0を代入する。カウンタnは対象となる画像ファイル個々について、後述するステップS804からステップS807までの一連の処理をCPU401が実行するためのカウンタである。
【0075】
ステップS803にて、CPU401は、カウンタnが対象となる画像ファイルの数より少ないか判定をする。
【0076】
ステップS803にて、CPU401が、カウンタnが対象となる画像ファイルの数より少ないと判定した場合には、ステップS804へ進む。
【0077】
ステップS803にて、CPU401が、カウンタnが対象となる画像ファイルの数以上であると判定した場合には、ステップS808へ進む。
【0078】
ステップS813にて、CPU401は、n番目のファイルをHDD405からRAM403に対象ファイルとして読み込む。
【0079】
ステップS804にて、CPU401は、対象となるファイルのExif_MakerNote属性情報領域601内の表示縮尺情報が指定されているか否かを判定する。表示縮尺情報が0である場合には、表示縮尺情報は設定されていないものとする。1以上の値である場合には、表示縮尺情報が指定されていると判定する。
【0080】
ステップS804にて、CPU401が、表示縮尺情報が指定されていると判定した場合には、ステップS810へ進む。
【0081】
ステップS804にて、CPU401が、表示縮尺情報が指定されていないと判定した場合には、ステップS807へ進む。
【0082】
ステップS810にて、CPU401は、RAM403上の画像ファイルのExif_Base属性情報領域600の撮影場所情報を削除する。クライアントに画像ファイルを配信する際に、画像の属性情報から詳細な場所が特定されることを回避するためである。
【0083】
ステップS805にて、CPU401は、S801にて受信したクライアントの縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。表示縮尺情報の値が5000だった場合には、表示縮尺情報の示す縮尺は5000分の1とする。
【0084】
ステップS805にて、CPU401が、クライアントの縮尺が表示縮尺情報の示す縮尺よりも大きいと判定した場合には、ステップS806へ進む。
【0085】
ステップS805にて、CPU401が、クライアントの縮尺が表示縮尺情報の示す縮尺と同じか小さいと判定した場合には、ステップS807へ進む。
【0086】
ステップS806にて、CPU401は、周辺の画像として、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアント102へ配信する。
【0087】
ステップS807にて、CPU401は、地図における画像の配置位置と画像を関連付けて、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアント102へ配信する。地図における画像の配置位置算出方法については、後述する。
【0088】
ステップS811にて、CPU401は、カウンタnをインクリメントする。そして、ステップS803へ戻る。
【0089】
ステップS808にて、CPU401は、クライアントの表示条件が変更されているか否かを判定する。クライアントにおける表示条件変更方法については、後述する。
【0090】
ステップS808にて、CPU401が、クライアントの表示条件が変更されていると判定した場合には、ステップS801へ戻る。
【0091】
ステップS808にて、CPU401が、クライアントの表示条件が変更されていないと判定した場合には、ステップS809へ進む。
【0092】
ステップS809にて、CPU401は、ユーザから終了の指示があったか否かを判定する。ユーザからの終了指示方法については、後述する。
【0093】
ステップS809にて、CPU401が、終了の指示があったと判定した場合には、一連の処理を終了する。
【0094】
ステップS809にて、CPU401が、終了の指示がないと判定した場合には、ステップS808へ戻る。
【0095】
ここで、本実施形態において画像受信装置として動作するクライアントのユーザインタフェースについて、図9と図10を参照して説明する。なお、図9と図10で共通の操作部材については、同一の符号を付して説明を省略する。図9と図10は共に撮影者がサーバにて配信している画像を、閲覧者がコンピュータネットワーク経由でクライアントにダウンロードし、閲覧している状態を示す。撮影者は、画像をサーバに送信する際に、場所詳細非表示チェックボックスをONとし、表示縮尺情報を1/5000以下に設定していたものとする。
【0096】
図9において、900は地図表示領域である。地図情報を管理するサーバから所定の領域の地図をインターネット経由でダウンロードして表示する。所定の領域は、配信中の画像の撮影場所が含まれている範囲がサーバからダウンロードできるものとする。901は地図表示領域の左上端の座標である。表示中の地図の中では、北西の端である。902は地図表示領域の右下端の座標である。表示中の地図の中では、南東の端である。
【0097】
904から907までの操作部材は、ユーザが地図の縮尺や表示範囲を指定する際に使用する。そして、904から907までの操作部材でユーザが指定した表示条件は、CPU501がコンピュータネットワーク511を介して、サーバに送信する。
【0098】
904は、地図の縮尺を指定する地図縮尺設定ボックスである。ユーザが地図縮尺設定ボックスの右の下矢印ボタンを選択し、押下すると、CPU501は設定変更の操作があったと判定し、プルダウン式のメニューを表示する。その際の表示するメニューの項目は、1/1000、1/2000、1/5000、1/10000、1/50000である。ユーザが、プルダウン式のメニューの中から選択すると、CPU501はユーザから、設定が選ばれたと判断し、プルダウンメニューを閉じる。そして、CPU401は、地図縮尺設定ボックス904に選択された縮尺を表示する。
【0099】
905、906は、地図の縮尺を変更するボタンである。拡大ボタン905を押下すると、地図表示領域900の中心を基準として一段階縮尺を上げる。1/5000が設定されている状態で、拡大ボタンを押下すると一段階上の1/2000へと縮尺を変更する。縮尺が1/1000になった場合には、拡大ボタン905を無効にする。
【0100】
縮小ボタン906を押下すると、地図表示領域900の中心を基準として一段階縮尺を下げる。1/5000が設定されている状態で、縮小ボタン906を押下すると一段階下の1/10000へと縮尺を変更する。縮尺が1/50000になった場合には、縮小ボタン906を無効にする。
【0101】
907は、地図の表示領域を変更する手形トグルボタンである。手形トグルボタンが凸状態の時に押下するとCPU501は手形ツールが設定されたと判定し、カーソルの形を手形にすると共にボタンの表示を凹状態とする。手形トグルボタンが凹状態の時に押下するとCPU501は手形ツールが解除されたと判定し、カーソルの形を矢印にすると共にボタンの表示を凸状態とする。ポインティングデバイスがマウスである場合を例に、手形ツールの機能を説明する。手形ツールが設定されている状態で、地図表示領域900においてマウスをドラッグすると、CPU501は、地図の表示範囲を変更する指示があったと判定し、地図の表示範囲を変更する。右下方向にマウスをドラッグした場合には、地図の表示範囲を左上の方向に変更する。左上方向にマウスをドラッグした場合には、地図の表示範囲を右下方向に変更する。
【0102】
908は、終了ボタンである。ユーザが終了ボタンを押下すると、CPU501は、ユーザから終了指示があったと判定し、地図および画像の再生処理を終了する。それと共に、サーバに終了指示があったことを送信する。
【0103】
909は、サーバから地図上の撮影場所に対応付けて配信された画像データの縮小画像である。CPU501は、サーバから配置位置を受信し、その配置位置が縮小画像を構成する4つの頂点の内側に入るように配置する。もし、配置位置が常に縮小画像の中心になるようにすると、結局撮影場所が閲覧者に特定されてしまうため、わざと中心から位置をずらして配置する。
【0104】
図10において、1001は、周辺で撮影された画像を表示する地図領域外に設けられた周辺画像表示領域である。1002は、サーバから周辺の画像として配信された画像データの縮小画像である。
【0105】
<地図上の配置位置算出方法>ここで、変数に下記の値を保持しているものとして、ステップS807における、撮影場所の座標(shotX,shotY)の算出方法について説明する。地図表示領域内の座標を横方向X軸、縦方向Y軸、とし、901を原点とする。
mapN0:901の緯度(度)
mapE0:901の経度(度)
mapN1:902の緯度(度)
mapE1:902の経度(度)
shotN:画像の撮影場所の緯度(度)
shotE:画像の撮影場所の経度(度)
uiX0:地図表示領域内の901のX座標(pixel)
uiY0:地図表示領域内の901のY座標(pixel)
uiX1:地図表示領域内の902のX座標(pixel)
uiY1:地図表示領域内の902のY座標(pixel)
shotX:地図表示領域内の撮影場所のX座標(pixel)
shotY:地図表示領域内の撮影場所のY座標(pixel)
実際の撮影場所の位置と、地図表示領域内の撮影場所の位置とを一致させるために、式1、式2が共に真になるようにする。上記条件を満たす、撮影場所の座標の算出方法を式3、式4に示す。
(mapE0−mapE1):(shotE−mapE1)=(uiX0−uiX1):(shotX−uiX1)…(1)
(mapN0−mapN1):(shotN−mapN1)=(uiY0−uiY1):(shotY−uiY1)…(2)
shotX=((uiX0−uiX1)×(shotE−mapE1))÷(mapE0−mapE1)+uiX1…(3)
shotY=((uiY0−uiY1)×(shotN−mapN1))÷(mapN0−mapN1)+uiY1…(4)
<具体例>次に、ステップS807における撮影場所の座標(shotX,shotY)の算出方法の具体例を説明する。
【0106】
サーバから取得した地図の範囲の緯度経度は、緯度43.45度、経度142.25度から緯度43.25度、経度142.45度の範囲とする。画像の詳細な撮影場所は、緯度43.35度、経度142.35度とする。また、地図表示領域内の座標(uiX1,uiY1)を(0,0)、(uiX0,uiY0)を(1500,2000)とする。各変数に対応する値を式5に示す。
mapN0=43.45
mapE0=142.25
mapN1=43.25
mapE1=142.45
shotN=43.35
shotE=142.35
uiX0=0
uiY0=0
uiX1=2000
uiY1=1500…(5)
式3と式4に式5の値を代入して算出した結果を式6、式7に示す。
shotX=((uiX0−uiX1)×(shotE−mapE1))÷(mapE0−mapE1)+uiX1 =((0−2000)×(142.35−142.45))÷(142.25−142.45)+2000=1000…(6)
shotY=((uiY0−uiY1)×(shotN−mapN1))÷(mapN0−mapN1)+uiY1=((0−1500)×(43.35−43.25))÷(43.45−43.25)+1500=750…(7)
以上説明した方法で、撮影場所を算出する。式6、式7の結果となった場合には、原点701からX軸方向に1000pixel、Y軸方向に750pixelの位置を撮影場所とする。
【0107】
ここで、図8を参照しながら、画像制御装置として動作するサーバおよび画像受信装置として動作するクライアントにおける処理の具体例を説明する。
【0108】
撮影者は、画像をサーバに送信する際に、場所詳細非表示チェックボックスをONとし、表示縮尺情報の縮尺を1/5000以下に設定していたものとする。また、撮影場所は、緯度43.35度、経度142.35度とする。サーバのHDD405に前述の画像ファイルが1つ保持されているものとして説明する。
【0109】
まず、クライアント102において表示する地図の範囲が、緯度43.45度、経度142.25度から緯度43.25度、経度142.45度、地図の縮尺は1/10000である場合を説明する。
【0110】
ステップS800にて、CPU401は、クライアント102の表示条件を受信する。
【0111】
ステップS801にて、CPU401は、S801にて受信した表示条件の緯度・経度の範囲に撮影場所が含まれる画像を抽出する。緯度43.35度、経度142.35度で撮影した1つの画像ファイルをCPU401は抽出することになる。
【0112】
ステップS812にて、CPU401は、クライアント102の表示条件に対応した地図データを送信する。
【0113】
ステップS802にて、CPU401は、カウンタnに0を代入する。
【0114】
ステップS803にて、CPU401は、カウンタnが対象となる画像ファイルの数より少ないか判定をする。S801にて対象となる画像ファイルの数は、1なので、カウンタnが0の場合、ステップS804へ進む。
【0115】
ステップS804にて、CPU401は、対象となるファイルをHDD405からRAM403に読み込み、Exif_MakerNote属性情報領域601内の表示縮尺情報が指定されているか否かを判定する。表示縮尺情報の縮尺を1/5000以下に設定されている場合、表示縮尺情報は、5000となる。よって、表示縮尺情報が指定されていると判定して、ステップS810へ進む。
【0116】
ステップS810にて、CPU401は、RAM403上の画像ファイルの撮影場所情報である緯度43.35度、経度142.35度を削除する。
【0117】
ステップS805にて、CPU401は、ステップS801にて受信したクライアントの縮尺が、ステップS804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。表示縮尺情報の値が5000だった場合には、表示縮尺情報の示す縮尺は5000分の1となる。クライアントの縮尺は10000分の1なので、クライアントの縮尺が表示縮尺情報の示す縮尺より小さいと判定し、ステップS807へ進む。
【0118】
ステップS807にて、CPU401は、地図における画像の配置位置と画像を関連付けて、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアント102へ配信する。地図における画像の配置位置算出方法は、式3、式4に示した通りである。こうして、クライアント102では、図9に示す通り、地図に画像を配置して表示する。
【0119】
ステップS808にて、CPU401は、クライアントの表示条件が変更されているか否かを判定する。クライアントの表示条件が変更されていないと判定した場合には、ステップS809へ進む。
【0120】
ステップS809にて、CPU401は、ユーザから終了の指示があったか否かを判定する。CPU401が、終了の指示がないと判定した場合には、ステップS808へ戻る。
【0121】
次に、クライアント102において表示する地図の範囲が、緯度43.33度、経度142.33度から緯度43.37度、経度142.37度、地図の縮尺は1/2000に変更された場合を説明する。
【0122】
ステップS808にて、CPU401は、クライアントの表示条件が変更されていると判定し、ステップS801へ戻る。
【0123】
ステップS801にて、CPU401は、ステップS808にて受信した表示条件の緯度・経度の範囲に撮影場所が含まれる画像を抽出する。緯度43.35度、経度142.35度で撮影した画像をCPU401は抽出することになる。
【0124】
ステップS802からS810までは、地図の縮尺が1/10000の場合と同じ処理となる。
【0125】
ステップS805にて、CPU401は、S801にて受信したクライアントの縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。クライアントの縮尺は2000分の1、表示縮尺情報の示す縮尺は5000分の1なので、クライアントの縮尺が表示縮尺情報の示す縮尺と大きいと判定し、ステップS806へ進む。こうして、クライアント102では、図10に示す通り、地図に画像を配置せず、周辺の画像として表示する。
【0126】
ステップS808にて、CPU401は、クライアントの表示条件が変更されているか否かを判定する。クライアントの表示条件が変更されていないと判定した場合には、ステップS809へ進む。
【0127】
ステップS809にて、CPU401は、ユーザから終了の指示があったか否かを判定する。CPU401が、終了の指示があったと判定した場合には、一連の処理を終了する。
【0128】
本実施形態では、処理対象の画像ファイルが1つの場合を例に説明したが、複数ファイルの場合でも本発明を実現可能である。この場合、ファイル数分、ステップS803からS811までの処理を繰り返し実行すればよい。
【0129】
本実施形態において、表示縮尺情報や撮影場所の情報が画像ファイルの中に保持されていることを例に説明したたが、画像ファイルと関連付けられていれば、画像ファイルとは別のファイルであってもよい。
【0130】
本実施形態において、表示縮尺情報が個々の画像ファイルの中に保持されていることを例に説明したが、複数の画像ファイルについて、1つの表示縮尺情報を関連付けてもよい。
【0131】
<縮尺の決定方法の変形例>本実施形態において、デジタルスチルカメラの操作により画像を表示する地図の精度を縮尺で指定したが、個人情報の保護レベルで指定しても良い。その場合には、サーバにおいて保護レベルに対応付けた表示縮尺情報をHDD405内に保持しておく。具体的には縮尺1/1000であればレベル1、縮尺1/2000であればレベル2、縮尺1/5000であればレベル3というように対応付けて保持する。そして、ステップS810とS805の間で保護レベルから対応する表示縮尺情報を読み込む処理を行い、S805の判定処理を行えばよい。縮尺で指定する場合、どのくらいの精度で撮影場所が特定できてしまうかユーザが感覚的に分かりにくいことがある。そういった場合に保護レベルといった抽象的な値になっていると、ユーザは選択しやすくなる。
【0132】
本実施形態において、デジタルスチルカメラの操作により画像を表示する地図の精度を縮尺で指定したが、撮影場所が特定可能な距離で指定しても良い。その場合には、サーバにおいて距離に対応付けた表示縮尺情報をHDD405内に保持しておく。具体的には500mであれば縮尺1/1000、1kmであれば縮尺1/2000、2.5kmであれば縮尺1/5000というように対応付けて保持する。そして、ステップS810とS805の間で距離から対応する表示縮尺情報を読み込む処理を行い、S805の判定処理を行えばよい。縮尺で指定する場合、どのくらいの精度で撮影場所が特定できてしまうかユーザが感覚的に分かりにくいことがある。そういった場合に何m四方で特定できてしまうかということを示した方が、ユーザは選択しやすくなる。
【0133】
<縮尺が小さいときの表示方法の変形例>本実施形態の縮小画像909において、サーバから受信した配置位置が縮小画像を構成する4つの頂点の内側に入るように配置すると説明したが、予め、サーバ側で配置位置を撮影場所が特定しにくいように変更してもよい。詳細な情報で配置位置を算出し、その配置位置が縮小画像の中心にくるようにしてしまうと、結局撮影場所が閲覧者に特定されてしまうからである。配置位置を算出する際に、緯度経度の有効桁数を減らした場所を基点にする。そして、それをクライアントに配信する。こうすることにより、地図に対応付けて縮尺画像を配置したとしても、撮影場所を特定しにくくすることができる。有効桁数を減らす方法は、切り上げ、四捨五入、切り下げのいずれでもよい。緯度は切り上げ、経度は四捨五入という風に組み合わせてもよい。画像毎に、異なる方法で有効桁数を減らすと、更に、閲覧者は詳細な撮影場所を特定しにくくなる。
【0134】
<地図の端に位置する画像への対応>本実施形態のステップS801にて、撮影場所により表示範囲内の画像を抽出したが、表示縮尺情報が指定されている画像については、緯度経度の有効桁数を減らした撮影場所情報で判定を行うとよい。なぜならば、地図の表示範囲の変更に伴い周辺の画像として出てくるか否かによって、その画像が地図のどの場所にあるか判別できてしまう可能性があるからである。そこで、緯度経度の有効桁数を減らした撮影場所情報で判定することによって、詳細な撮影場所を特定できなくなる。
【0135】
<属性情報による撮影場所特定回避の変形例>本実施形態のステップS810において、画像ファイルの属性情報から撮影場所情報を削除したが、閲覧者が属性情報から詳細な撮影場所情報を特定できなければよい。撮影場所情報を暗号化してもよいし、クライアントにおける画像再生時に属性情報を削除したり暗号化してもよい。
【0136】
以上説明した通り、本実施形態によれば、撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を配信することができる。また、画像ファイルから撮影場所情報を取り除いて配信するため、詳細な撮影場所を属性情報の解析により閲覧者が知ることもできない。更に、地図の端に位置する場合にも、周辺の画像として出てくるか否かによって、詳細な撮影場所を閲覧者が特定することも避けることができる。
【0137】
[実施形態2]実施形態1では画像制御装置をサーバとして説明したが、実施形態2は、画像制御装置がクライアントである場合について説明する。また、実施形態1においては、画像送信装置をデジタルスチルカメラとしていたが、実施形態2は、画像送信装置もパーソナルコンピュータである場合について説明する。尚、画像制御装置と画像送信装置の構成は、実施形態1のクライアントと同じである。
【0138】
<画像の表示縮尺指定>まず、図11を参照して、画像送信装置として、動作するパーソナルコンピュータのユーザインタフェースについて説明する。
【0139】
図11は、本実施形態の画像送信装置におけるユーザインタフェースを例示しており、撮影者が未配信の画像を閲覧している状態を示している。
【0140】
図3と同じ機能を果たす操作部材があるため、図3も参照しつつ説明する。
【0141】
図11において、1101は、未配信の画像の縮小画像である。1102は、所詳細非表示チェックボックスである。316に対応している。ユーザが場所詳細非表示チェックボックスを押下すると、CPU501は設定変更の操作があったと判定し、ON/OFF状態を切り替える。場所詳細非表示チェックボックスにチェックが入っている状態、つまりONの状態で押下すると、CPU501はチェックを消しOFFの状態とする。チェックがない状態、つまりOFFの状態で押下すると、CPU501はチェックを表示しONの状態とする。
【0142】
1103は、表示縮尺設定ボックスである。317に対応している。ユーザが表示縮尺設定ボックスの下矢印ボタンを押下すると、CPU501は設定変更の操作があったと判定し、プルダウン式のメニューを表示する。その際の表示するメニューの項目は、1/1000以下、1/2000以下、1/5000以下、1/10000以下、である。ユーザがプルダウン式のメニューの中から選択すると、CPU501はユーザから、設定が選ばれたと判断し、プルダウンメニューを閉じる。そして、CPU501は、表示縮尺設定ボックス1103に選択された縮尺を表示する。
【0143】
1104は、終了ボタンである。ユーザが終了ボタンを押下すると、CPU501は、ユーザから終了指示があったと判定し、各操作部材の設定をHDD505に記憶し、送信処理を終了する。
【0144】
1105は、送信先を表示する送信先エディットボックスである。ユーザがマウス等のポインティングデバイスで送信先エディットボックス1105を選択すると、文字列を入力が可能となる。キーボード等の入力装置により送信先を指定した後、他の操作部材へと選択が切り替わったときに、CPU501はユーザからの文字列入力が完了したと判定し、送信先エディットボックス1105に入力された文字列を表示する。
【0145】
1106は、送信ボタンである。送信ボタン1106をユーザが押下すると、CPU501がユーザから送信指示があったと判定し、HDD505から画像データを読み込む。そして、各画像に指定された表示縮尺設定に応じて、Exif_MakerNote属性情報領域601内の表示精度情報を変更する。加えて、Exif_Base属性情報領域600の撮影場所情報を暗号化し、送信先エディットボックスで指定された送信先へ送信する。またクライアントにおける画像制御装置で場所情報を取得できるようにするために、復号化キーを送信する。暗号化するのは、不特定多数の閲覧者が、画像の属性情報から容易に詳細な撮影場所を特定することを回避するためである。
【0146】
画像送信処理については、実施形態1の図7で説明した通りである。ただし、実施形態1においては、未送信の画像について、同じ表示縮尺の設定を用いたが、実施形態2においては、各画像に設定された表示縮尺の設定を用いて、画像のExif_MakerNote属性情報領域601内の表示精度情報を変更した後、送信する。
【0147】
送信先は、送信先エディットボックスで指定されたサーバとする。サーバはパーソナルコンピュータから画像を受信すると同時に画像を配信する状態とするものとする。そして、クライアントにおいてサーバから受信した画像ファイルを画像ファイル個々の表示縮尺情報に応じて制御する。
【0148】
<画像再生処理>次に、図12を参照して、実施形態2における画像制御装置として動作するクライアントが、表示縮尺情報に基づいて地図上に画像を配置するか否かの制御を行い、再生する処理について説明する。尚、本処理は、CPU501がRAM503に格納された制御プログラムを実行することにより実行される。
【0149】
以下では、画像制御処理に焦点を絞って説明し、サーバからのデータ受信処理については説明を省略する。予め、クライアントのCPU501は、サーバから配信された画像ファイルをコンピュータネットワーク511を介してネットワークインタフェース508により受信し、HDD505に保持しているものとする。
【0150】
また、図12において、図8と共通する処理には同一の符号を付して説明を省略する。図8のCPU401は図12のCPU501に対応し、RAM403はRAM503に、HDD405はHDD505にそれぞれ対応する。
【0151】
図12において、ステップS1201にて、CPU501は、表示する地図の縮尺を決定する。HDD505に記憶されている画像ファイル全てについて、Exif_MakerNote属性情報領域601内の表示精度情報を参照する。そして、表示縮小情報の示す縮尺の中で一番小さい縮尺を選択する。
【0152】
ステップS1202にて、CPU501は、表示する地図の範囲を決定する。HDD505に記憶されている画像ファイルの撮影場所が集中している場所が中心になる位置とする。
【0153】
ステップS1202にて、CPU501は、表示条件に対応する地図データをコンピュータネットワーク511を介して地図情報を保持するサーバに要求し、サーバから受信する。
【0154】
ステップS1203にて、CPU501は、表示条件の緯度・経度の範囲に撮影場所が含まれる画像を抽出する。まず、HDD505に記憶されている画像ファイル全てについて、Exif_Base属性情報領域600の撮影場所情報を参照する。もし、暗号化されている場合には、復号化する。そして、撮影場所情報が緯度・経度の範囲に含まれているものを対象であると判定し、抽出する。ただし、ステップS1203にて復号した撮影場所情報は、表示しないようにする。詳細な撮影場所を閲覧者が知ることができないようにするためである。
【0155】
ステップS1204にて、CPU501は、ユーザから指定されている縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。
【0156】
ステップS1204にて、CPU501が、クライアントの縮尺が表示縮尺情報の示す縮尺よりも大きいと判定した場合には、ステップS1205へ進む。
【0157】
ステップS1204にて、CPU501が、クライアントの縮尺が表示縮尺情報の示す縮尺と同じか小さいと判定した場合には、ステップS1208へ進む。
【0158】
ステップS1205にて、CPU501は、周辺の画像として、画像ファイルを表示する。
【0159】
ステップS1206にて、CPU501は、地図における画像の配置位置を算出する。配置位置の算出方法については、式3、式4で説明した通りである。
【0160】
ステップS1207にて、CPU501は、地図上に撮影場所と対応付けて縮小画像を表示する。ステップS1206もしくはステップS1209にて算出した配置位置が縮小画像の中心になるように表示する。
【0161】
ステップS1208にて、CPU501は、ステップS1206と同様に地図における画像の配置位置を算出する。
【0162】
ステップS1209にて、CPU501は、ステップS1208で算出した配置位置からずらした位置を算出する。ずらした位置の算出方法については、後述する。
【0163】
ステップS1210にて、CPU501は、表示条件が変更されているか否かを判定する。表示条件変更方法については、後述する。
【0164】
ステップS1210にて、CPU501が、表示条件が変更されていると判定した場合には、ステップS1201へ戻る。
【0165】
ステップS1210にて、CPU501が、表示条件が変更されていないと判定した場合には、ステップS1211へ進む。
【0166】
ステップS1211にて、CPU501は、ユーザから終了の指示があったか否かを判定する。ユーザからの終了指示方法については、後述する。
【0167】
ステップS1211にて、CPU501が、終了の指示があったと判定した場合には、一連の処理を終了する。
【0168】
ステップS1211にて、CPU501が、終了の指示がないと判定した場合には、ステップS1210へ戻る。
【0169】
<ずらした位置の算出方法>ここで、変数に下記の値を保持しているものとして、ステップS1209における、ずらした位置の座標(newShotX,newShotY)の算出方法について説明する。地図表示領域内の座標を横方向X軸、縦方向Y軸、とし、901を原点とする。
shotX:ステップS1208で算出したX座標(pixel)
shotY:ステップS1208で算出したY座標(pixel)
newShotX:ずらした位置のX座標(pixel)
newShotY:ずらした位置のY座標(pixel)
thumbWidth:縮小画像の幅(pixel)
thumbHeight:縮小画像の幅(pixel)…(8)
また、rand()が乱数、%が剰余を示すものとして、ずらした位置の座標算出方法を式9、式10に示す。
newShotX=shotX+rand()%thumbWidth−thumbWidth…(9)
newShotY=shotY+rand()%thumbHeight−thumbHeight…(10)
<ユーザインタフェースの遷移>次に、図13と図14を参照して、画像制御装置として動作するクライアントのユーザインタフェースについて説明する。
【0170】
図13と図14において、図9と共通する操作部材については、同一の符号を付して説明を省略する。図13と図14は共に撮影者がサーバにて配信している画像を、閲覧者がコンピュータネットワーク経由でクライアントにダウンロードし、閲覧している状態を示している。尚、実施形態1においては、904から907の操作部材の操作により表示条件変更があった場合には、その都度サーバに表示条件を送信していたのに対して、実施形態2では、画像制御処理をクライアントで行うため、表示条件をRAM503に保持し、CPU501が制御に必要な際にRAM503から読み込んで使うものとする。
【0171】
1301から1306は、サーバから配信されている画像の縮小画像である。各画像の表示縮尺情報は、画像1301と1302は0、画像1303は5000、画像1304は10000、画像1305は2000として、図12を参照しながら、ユーザインタフェースの遷移について説明する。画像ごとにどのように処理が変わるかを説明するため、ステップS813、ステップS804、ステップS1204からステップ1209までの処理を説明する。
【0172】
地図の範囲は、緯度43.45度、経度142.25度から緯度43.25度、経度142.45度、地図の縮尺は1/10000であるものとする。
【0173】
対象画像が画像1301である場合を説明する。
【0174】
ステップS813において、CPU501は、画像1301をHDD405からRAM403に対象ファイルとして読み込む。
【0175】
ステップS804において、CPU501は、画像1301について表示縮尺情報が設定されていないと判定し、ステップS1206へ進む。
【0176】
ステップS1206において、CPU501は、画像1301の配置位置を算出する。算出方法は式3、式4で示した通りである。
【0177】
ステップS1207において、CPU501は、ステップS1206で算出した配置位置が縮小画像の中心になるように画像を配置する。
【0178】
画像1302についても、画像1301と同じく表示縮尺情報が設定されていないので、同様の処理となる
続いて、対象の画像が画像1303である場合を説明する。
【0179】
ステップS813において、CPU501は、画像1303をHDD405からRAM403に対象ファイルとして読み込む。
【0180】
ステップS804において、CPU501は、画像1303について表示縮尺情報が設定されていると判定し、ステップS1204へ進む。
【0181】
ステップS1204において、CPU501は、地図縮尺設定ボックス904に設定されている地図の縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。地図の縮尺は1/10000、画像1301の表示縮尺情報が示す縮尺は1/5000。よって、地図の縮尺の方が小さいと判定して、ステップS1208へ進む。
【0182】
ステップS1208において、CPU501は、ステップS1206と同様の方法で配置位置を算出する。
【0183】
ステップS1209において、CPU501は、ずらした位置を算出する。算出方法は式9、式10で示した通りである。
【0184】
ステップS1207において、CPU501は、ステップS1209で算出した配置位置が縮小画像の中心になるように画像を配置する。
【0185】
画像1304、画像1305についても、ステップS1204において、地図の縮尺の方が小さいもしくは等しいと判定されるので、画像1303と同様の処理となる。
【0186】
上述した処理により、地図の縮尺が1/10000の場合、ユーザインタフェースは図13に示す状態となる。
【0187】
次に、地図の範囲が、緯度43.4度、経度142.3度から緯度43.3度、経度142.4度、地図の縮尺は1/5000に変更された場合について説明する。
画像1301と1302は、地図の縮尺が1/10000の時と同じ処理になるため、説明を省略する。
【0188】
対象の画像が画像1303である場合を説明する。
【0189】
ステップS813において、CPU501は、画像1303をHDD405からRAM403に対象ファイルとして読み込む。
【0190】
ステップS804において、CPU501は、画像1303について表示縮尺情報が設定されていると判定し、ステップS1204へ進む。
【0191】
ステップS1204において、CPU501は、地図縮尺設定ボックス904に設定されている地図の縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。地図の縮尺は1/5000、画像1301の表示縮尺情報が示す縮尺は1/5000。よって地図の縮尺と同じと判定して、ステップS1208へ進む。
【0192】
ステップS1208において、CPU501は、画像1303の配置位置を算出する。算出方法は式3、式4で示した通りである。
【0193】
ステップS1209において、CPU501は、ずらした位置を算出する。算出方法は式9、式10で示した通りである。
【0194】
ステップS1207において、CPU501は、ステップS1209で算出した配置位置が縮小画像の中心になるように画像を配置する。
【0195】
画像1305についても、ステップS1204において、ユーザから指定されている縮尺の方が小さいもしくは等しいと判定されるので、画像1303と同様の処理となる。
【0196】
対象画像が画像1304である場合を説明する。
【0197】
ステップS813において、CPU501は、画像1304をHDD405からRAM403に対象ファイルとして読み込む。
【0198】
ステップS804において、CPU501は、画像1303について表示縮尺情報が設定されていると判定し、ステップS1204へ進む。
【0199】
ステップS1204において、CPU501は、地図縮尺設定ボックス904に設定されている地図の縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。地図の縮尺は1/5000、画像1301の表示縮尺情報が示す縮尺は1/10000。よって、地図の縮尺の方が大きいと判定して、ステップS1205へ進む。
【0200】
ステップS1205において、周辺の画像として、画像ファイルを表示する。
【0201】
上述した処理により、地図の縮尺が1/5000の場合、ユーザインタフェースは図14に示す状態となる。
【0202】
図13の1301は1401に、1302は1402に、1303は1403に、1304は1404に、1305は1405にそれぞれ対応する。
【0203】
<倍率が大きいときの表示方法の変形例>ステップS1205では、図10および図14の周辺画像表示領域1001に表示する例を説明したが、撮影場所に対応付けして表示しなければよいので、画像自体を表示しなくてもよい。また、図10および図14の地図表示領域900内を縮小画像の表示位置を再描画のたびに変えながら表示してもよいし、一定時間毎に表示位置を変えながら表示してもよい。
【0204】
以上説明した通り、本実施形態によれば、最初に画像の表示縮尺情報の示す縮尺の一番低い縮尺で地図上に画像を配置して表示する。よって、最初に閲覧者は画像の大まかな場所を把握することができる。
【0205】
更に、縮尺を変更した場合も、撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を表示することができる。また、画像ファイルの撮影場所情報暗号化して配信するため、詳細な撮影場所を属性情報の解析により閲覧者が容易に知ることもできない。
【0206】
地図の縮尺が表示縮尺情報の縮尺よりも小さい場合でも、撮影場所が画像の中心の位置に対応しないようにずらして表示することにより、詳細な撮影場所を閲覧者が特定することも避けることができる。
【0207】
[実施形態3]実施形態1,2では、縮尺に応じて画像を地図に配置して表示するか否かを切り替えたが、実施形態3では、地図の精度と地域を指定し、その地図の精度に応じて画像を地図に配置して表示するか否かを切り替える場合について説明する。地図の精度とは、町、区、市、都道府県、地方、国といった行政区画の大きさを示す情報である。実施形態3では、画像制御装置をサーバとし、画像送信装置をパーソナルコンピュータとする。画像制御装置の構成は、実施形態1のサーバと同じである。画像送信装置の構成は、実施形態1のクライアントと同じである。
【0208】
<画像の表示精度指定>図15は、本実施形態の画像送信装置におけるユーザインタフェースを例示し、撮影者が未配信の画像を閲覧している状態を示している。上述した図11と共通する操作部材については、同一の符号を付して説明を省略する。
【0209】
図15において、1501は、表示精度設定ボックスである。ユーザが表示精度設定ボックスの下矢印ボタンを押下すると、CPU501は設定変更の操作があったと判定し、プルダウン式のメニューを表示する。その際の表示するメニューの項目は、国まで、地方まで、都道府県まで、市まで、区まで、町まで、である。ユーザがプルダウン式のメニューの中から選択すると、CPU501はユーザから、設定が選ばれたと判断し、プルダウンメニューを閉じる。そして、CPU501は、表示精度設定ボックス1501に選択された精度を表示する。
【0210】
画像送信処理については、実施形態1の図7で説明した通りである。ただし、実施形態1では、ステップS705において表示縮尺情報を読み込んだが、実施形態3では表示精度情報を読み込む。また、実施形態1では、ステップS706において対象画像の表示縮尺情報を変更したが、実施形態3では対象画像の表示精度情報を変更する。表示精度情報には、項目に対応した数値を書き込む。町までであれば6、区までであれば5、市までであれば4、都道府県までであれば3、地方までであれば2、国までであれば1を書き込む。
【0211】
<画像再生処理>ここで、図16を参照して、本実施形態における画像制御装置として動作するサーバにおいて、表示精度情報に基づいて地図上に画像を配置するか否かの制御を行い、再生する処理ついて説明する。尚、本処理は、CPU401がRAM403に格納された制御プログラムを実行することにより実行される。予め、サーバのCPU401は、パーソナルコンピュータから送信された画像ファイルをコンピュータネットワーク411を介してネットワークインタフェース408により受信し、HDD405に保持しているものとする。また、サーバとクライアント間は、双方向にデータの送受信が可能な状態が確立できているものとする。
【0212】
また、図16において、上述した図8と共通する処理には同一の符号を付して説明を省略する。
【0213】
図16において、ステップS1600にて、CPU401は、クライアントの表示条件をコンピュータネットワーク411を介してネットワークインタフェース408により受信する。表示条件とは、クライアントにて表示する地図の緯度・経度の範囲、地図の精度である。地図の精度は、項目に対応した数値で受信するものとする。町あれば6、区あれば5、市であれば4、都道府県であれば3、地方であれば2、国であれば1を受信する。
【0214】
ステップS1601において、CPU401は対象となるファイルについてExif_MakerNote属性情報領域601内の表示精度情報が指定されているか否かを判定する。表示精度情報が0である場合には、表示精度情報は設定されていないものとする。1以上の値である場合には、表示精度情報が指定されていると判定する。
【0215】
ステップS1602において、CPU401は、S1600にて受信したクライアントの地図の精度が、S1601で取得した表示精度情報の示す精度よりも大きいか否か判定する。
【0216】
ステップS1602にて、CPU401が、クライアントの地図の精度が表示精度情報の値よりも大きいと判定した場合には、ステップS806へ進む。
【0217】
ステップS805にて、CPU401が、クライアントの地図の精度が表示精度情報の値と同じか小さいと判定した場合には、ステップS807へ進む。
【0218】
<ユーザインタフェースの遷移>図17と図18を参照して、実施形態3による画像受信装置として動作するクライアントにおけるユーザインタフェースについて説明する。
【0219】
尚、図17と図18で共通の操作部材については、同一の符号を付して説明を省略する。図17と図18は共に撮影者がサーバにて配信している画像を、閲覧者がコンピュータネットワーク経由でクライアントにダウンロードし、閲覧している状態を示している。
【0220】
図17において、1705は、地図の精度を指定する地図精度設定ボックスである。ユーザが地図精度設定ボックスの右の下矢印ボタンを選択し、押下すると、CPU501は設定変更の操作があったと判定し、プルダウン式のメニューを表示する。その際の表示するメニューの項目は、町、区、市、都道府県、地方、国である。ユーザが、プルダウン式のメニューの中から選択すると、CPU501はユーザから、設定が選ばれたと判断し、プルダウンメニューを閉じる。そして、CPU501は、地図精度設定ボックス1705に選択された精度を表示する。
【0221】
1705は、地域を指定する地域設定エディットボックスである。ユーザがマウス等のポインティングデバイスで地域設定エディットボックス1705を選択すると、文字列を入力が可能となる。キーボード等の入力装置により地域の名前を入力した後、他の操作部材へと選択が切り替わったときに、CPU501はユーザからの文字列入力が完了したと判定し、地域設定エディットボックス1705に入力された文字列を表示する。
【0222】
1707は、終了ボタンである。機能は、図9の908と同じである。
【0223】
1701から1704は、サーバから配信されている画像の縮小画像である。
【0224】
各画像に設定されている表示精度情報は、画像1701は0、画像1702は2、画像1703は5、画像1704は6、であるものとして、図16を参照しながら、UIの遷移を説明する。
【0225】
画像ごとにどのように処理が変わるかを説明するため、ステップS1601、ステップS1602、ステップS810、ステップS807、ステップS806の処理を説明する。
【0226】
地図の範囲が、緯度37度、経度136度から緯度34度、経度142度、地図の精度は地方の場合を説明する。地図の精度の値は、地方なので、2となる。
【0227】
まず、対象画像が画像1701の場合を説明する。
【0228】
ステップS1601において、CPU401は、画像1701について表示精度情報が設定されていないと判定し、ステップS807へ進む。
【0229】
ステップS807において、CPU401は、地図における画像の配置位置と画像を関連付けて、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアントへ配信する。配置位置の算出方法は式3、式4で示した通りである。
【0230】
続いて、対象の画像が画像1702の場合を説明する。
【0231】
ステップS1601において、CPU401は、画像1702について表示精度情報が設定されていると判定し、ステップS810へ進む。
【0232】
ステップS810にて、CPU401は、RAM403上の画像ファイルのExif_Base属性情報領域600の撮影場所情報を削除する。
【0233】
ステップS1602にて、CPU401は、クライアントの地図の精度の値が、S1601で取得した表示精度情報よりも大きいか否か判定する。地図の精度の値は2、画像1701の表示精度情報の値も2なので、同じと判定し、ステップS807へ進む。
【0234】
ステップS807において、CPU401は、地図における画像の配置位置と画像を関連付けて、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアントへ配信する。配置位置の算出方法は式3、式4で示した通りである。
【0235】
画像1703、画像1704についても、ステップS1602において、地図の精度の値よりも各画像の表示精度情報の値の方が小さいと判定されるので、画像1702と同じ処理となる。
【0236】
上述した処理により、地図の精度が地方の場合、ユーザインタフェースは図17に示す状態となる。
【0237】
次に、地図の範囲が、緯度34度、経度139.2度から緯度35.3度、経度139.8度、地図の精度が都道府県に変更された場合を説明する。地図の精度の値は、都道府県なので、3となる。
【0238】
画像1701は、地図の精度が地方の時と、都道府県の時と同じ処理になるため、説明を省略する。
【0239】
まず、対象の画像が画像1702の場合を説明する。
【0240】
ステップS1601において、CPU401は、画像1702について表示精度情報が設定されていると判定し、ステップS810へ進む。
【0241】
ステップS810にて、CPU401は、RAM403上の画像ファイルのExif_Base属性情報領域600の撮影場所情報を削除する。
【0242】
ステップS1602にて、CPU401は、クライアントの地図の精度の値が、S1601で取得した表示精度情報よりも大きいか否か判定する。地図の精度の値は3、画像1701の表示精度情報の値は2なので、大きいと判定し、ステップS806へ進む。
【0243】
ステップS806にて、CPU401は、周辺の画像として、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアントへ配信する。
【0244】
次に、対象画像が画像1703の場合を説明する。
【0245】
ステップS1601において、CPU401は、画像1703について表示精度情報が設定されていると判定し、ステップS810へ進む。
【0246】
ステップS810にて、CPU401は、RAM403上の画像ファイルのExif_Base属性情報領域600の撮影場所情報を削除する。
【0247】
ステップS1602にて、CPU401は、クライアントの地図の精度の値が、S1601で取得した表示精度情報よりも大きいか否か判定する。地図の精度の値は3、画像1703の表示精度情報の値は5なので、小さいと判定し、ステップS807へ進む。
【0248】
ステップS807において、CPU401は、地図における画像の配置位置と画像を関連付けて、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアントへ配信する。配置位置の算出方法は式3、式4で示した通りである。
【0249】
画像1704についてもステップS1602において、地図の精度の値よりも各画像の表示精度情報の値の方が小さいと判定されるので、画像1703と同じ処理となる。
【0250】
上述の処理により、地図の精度が地方の場合、ユーザインタフェースは図18に示す状態となる。図17の画像1701は画像1801に、画像1702は画像1802に、画像1703は画像1803に、画像1704は画像1804に、それぞれ対応する。
【0251】
図18において、1805は周辺画像表示領域であり、機能は1001と同じである。
【0252】
以上説明した通り、本実施形態によれば、縮尺以外の地図の表示精度でも、撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を配信することができる。
【0253】
[他の実施形態]本発明は、以下の処理を実行することによっても実現される。即ち、上記実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【技術分野】
【0001】
本発明は、電子地図上に画像を表示する技術に関する。
【背景技術】
【0002】
デジタルスチルカメラや携帯電話で撮影した画像を撮影場所に対応する電子地図上に配置して公開することが日常的に行われるようになっている。このような状況の中で、プライバシーに関わる情報を守るため、インターネット等の通信網経由でファイルを転送するとき、ファイルに付加されている情報を自動的に削除するデジタルスチルカメラが提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−343627号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1において、ファイルの付加情報を削除してしまうと、地図上に画像を全く表示できなくなってしまうおそれがある。
【0005】
本発明は、上記課題に鑑みてなされ、その目的は、撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を表示できるようにすることである。
【課題を解決するための手段】
【0006】
上記課題を解決し、目的を達成するために、本発明の画像制御装置は、画像を地図上に表示するように制御する画像制御装置であって、前記画像の属性情報から位置情報を取得する取得手段と、前記画像を地図上に表示するときの表示精度を指定する指定手段と、前記取得手段により取得した位置情報と前記指定手段により指定された表示精度を用いて地図上に画像を表示するための表示データを作成する作成手段と、を備え、前記作成手段は、前記指定手段により指定された表示精度が、予め決められた地図の精度よりも低い場合には、前記画像を前記位置情報に対応する地図上の位置に配置し、予め決められた地図の精度よりも高い場合には、前記画像を前記位置情報に対応する地図上の位置には配置しないよう制御する。
【発明の効果】
【0007】
本発明によれば、撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を表示できるようになる。
【図面の簡単な説明】
【0008】
【図1】本発明に係る一実施形態の画像制御システムの構成図。
【図2】本実施形態のデジタルスチルカメラのブロック構成図。
【図3】本実施形態のデジタルスチルカメラを背面から見た様子を示す図。
【図4】本実施形態のサーバを示すブロック図。
【図5】本実施形態のクライアントを示すブロック図。
【図6】本実施形態の画像ファイルの概略構成図。
【図7】実施形態1の画像送信処理を示すフローチャート。
【図8】実施形態1の画像制御処理を示すフローチャート。
【図9】実施形態1の画像受信装置側におけるユーザインタフェースを例示する図。
【図10】実施形態1の画像受信装置側におけるユーザインタフェースを例示する図。
【図11】実施形態2の画像送信装置側におけるユーザインタフェースを例示する図。
【図12】実施形態2の画像受信処理を示すフローチャート。
【図13】実施形態2の画像受信装置側におけるユーザインタフェースを例示する図。
【図14】実施形態2の画像受信装置側におけるユーザインタフェースを例示する図。
【図15】実施形態3の画像送信装置側におけるユーザインタフェースを例示する図。
【図16】実施形態3の画像制御処理を示すフローチャート。
【図17】実施形態3の画像受信装置側におけるユーザインタフェースを例示する図。
【図18】実施形態3の画像受信装置側におけるユーザインタフェースを例示する図。
【発明を実施するための形態】
【0009】
以下に、本発明を実施するための最良の形態について詳細に説明する。尚、以下に説明する実施の形態は、本発明を実現するための一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。また、後述する各実施形態の一部を適宜組み合わせて構成しても良い。
【0010】
[実施形態1]本実施形態の画像制御装置は、固体撮像素子を用いて光学像を電気的な画像データに変換して撮影を行う、デジタルスチルカメラやデジタルビデオカメラ等の電子カメラにより得られた画像データを制御する。本実施形態では、デジタルスチルカメラで撮影した画像をサーバコンピュータに送信し、サーバコンピュータ上で配信する情報の制御を行う画像制御装置について説明する。
【0011】
<本明細書における用語の定義>
データを外部機器に通信回路経由で送信することを、「送信」と記す。例えば、送信とは、デジタルスチルカメラからインターネット経由でサーバコンピュータにデータを送ることである。
【0012】
送信された先の外部機器において、第三者に提供できる状態にすることを「配信」と記す。例えば、配信とは、サーバコンピュータにて、第三者に提供できる状態にすることである。
【0013】
サーバコンピュータを「サーバ」と記す。
【0014】
サーバからサービスを提供されるクライアントコンピュータをクライアントと記す。
【0015】
ユーザが画像を撮影場所と関連付けて地図上に配置すると設定した最大の縮尺を表示縮尺情報と記す。表示縮尺情報の決定方法、保持方法、利用方法の詳細については、本実施形態にて後述する。
【0016】
ユーザが画像を撮影場所と関連付けて地図上に配置すると設定した最大の地図の精度を表示精度情報と記す。表示精度情報の決定方法、保持方法、利用方法の詳細については、実施形態3にて後述する。
【0017】
N分の1を1/Nと記す。例えば100分の1の場合には1/100、500分の1の場合には1/500と記す。
【0018】
<システム構成>まず、図1を参照して、本実施形態の画像制御システムの構成について説明する。図1において、100はデジタルスチルカメラであり、画像送信装置として動作する。101はサーバであり、画像制御装置として動作する。102はクライアントであり、情報処理装置および画像受信装置として動作する。103はコンピュータネットワークであり、各種装置が通信回路を通じてコンピュータネットワーク103を介して互いにデータを送受信する。
【0019】
デジタルスチルカメラ100は、ユーザの操作に応じて画像データを生成し記録媒体に記録する。そして、デジタルスチルカメラ100は、ユーザの操作に応じて表示縮尺情報を作成し、画像データと関連付けてコンピュータネットワーク103経由でサーバ101に送信する。サーバ101は、表示縮尺情報に基づいて地図上に画像を配置するか否かの制御をし、地図データおよび画像データからなる表示データをコンピュータネットワーク103経由でクライアントに配信する。クライアント102は、サーバ101から受信した地図データおよび画像データを表示する。デジタルスチルカメラ100での表示縮尺情報の生成方法とサーバでの制御方法の詳細については後述する。
【0020】
<カメラ構成>次に、図2及び図3を参照して、本実施形態の画像送信装置として動作するデジタルスチルカメラ100の構成について説明する。
【0021】
本実施形態のデジタルスチルカメラ100は、所定の制御プログラムを実行することにより以下に説明する画像送信処理を実現し、画像送信装置として機能する。
【0022】
図2において、200は撮像装置であり、固体撮像素子を用いて光学像を電気的な画像データに変換して画像データを生成する。201はデジタルスチルカメラ全体の制御を司るCPUである。202はCPU201の動作処理手順(例えばデジタルスチルカメラの電源をONした時の処理や基本入出力処理等のプログラム)を記憶しているROMである。203はRAMであり、CPU201のメインメモリとして機能する。RAM203には後述の処理を実現するための制御プログラムを含む各種プログラムがROM202等からロードされCPU201によって実行される。また、RAM203はCPU201が各種処理を実行する際のワークエリアを提供する。
【0023】
204は図3に示すディスプレイ301でありCPU201の制御下で各種表示を行う。例えば、送信制御のための設定をする画面や記憶媒体に記憶されたデータの表示を行う。207は図3に示す各種操作を行うためのボタン等の入力装置である。ボタンの詳細については後述する。
【0024】
208は記憶媒体装着ユニット(メディアドライブ)であり、着脱可能な記憶媒体を装着し、データを記憶したり、記憶されたデータを読み出すことを可能とする。209はネットワークインタフェースであり、通信回線211を介してコンピュータネットワーク212と接続される。このネットワークインタフェースによりサーバやパーソナルコンピュータからデータを送受信する。また、位置情報を取得する際にも、CPU201は、通信回線211を介してコンピュータネットワーク212に接続し、衛星測位システム(以下、GPS)を利用して位置情報を算出するサーバと通信して取得する。CPU201は、記憶媒体装着ユニット208に装着された記憶媒体内のデータを通信回線211を介してコンピュータネットワーク212に接続し、サーバへ送信する。
【0025】
210は上述した各ユニット間を接続するシステムバス(アドレスバス、データバスおよび制御バスからなる)である。
【0026】
<サーバ構成>次に、図4を参照して、本実施形態の画像制御装置として動作するサーバ101の構成について説明する。
【0027】
本実施形態のサーバは、所定の制御プログラムを実行することにより以下に説明する画像制御処理を実現し、画像制御装置として機能する。
【0028】
図4において、401は本装置全体の制御を司るCPUである。402はCPU401の動作処理手順(例えばコンピュータの立ち上げ処理や基本入出力処理等のプログラム)を記憶しているROMである。403はRAMであり、CPU401のメインメモリとして機能する。RAM403には後述の処理を実現するための制御プログラムを含む各種プログラムがハードディスクドライブ405等からロードされCPU401によって実行される。また、RAM403はCPU401が各種処理を実行する際のワークエリアを提供する。404はディスプレイでありCPU401の制御下で各種表示を行う。
【0029】
405はハードディスクドライブ(以下、HDD)、406はDVDドライブ(以下、DVDD)をそれぞれ示し、それぞれのディスクはアプリケーションプログラムやデータ、ライブラリなどの保存及び読み込み用に用いられる。また、DVDDの替わりに、あるいは追加してCD−ROM、MO等の光(磁気)ディスクドライブや、テープストリーマ、DDSなどの磁気テープドライブ等を設けてもよい。
【0030】
407はキーボードやポインティングデバイス等の入力装置である。408はネットワークインタフェースであり、通信回線410を介してコンピュータネットワーク411と接続される。このネットワークインタフェース408により通信可能な機器からデータを送受信する。409は上述した各ユニット間を接続するシステムバス(アドレスバス、データバスおよび制御バスからなる)である。
【0031】
<クライアント構成>次に、図5を参照して、本実施形態の画像受信装置として動作するクライアント102の構成について説明する。
【0032】
本実施形態のクライアント102は、所定の制御プログラムを実行することにより以下に説明する画像受信処理を実現し、画像受信装置として機能する。なお、クライアント102の構成は、サーバ101と同じであり、ROM402およびHDD405に記憶している制御プログラムが異なるだけである。そこで、図4を参照しつつサーバ101と異なる点について説明する。
【0033】
図5において、501から507,509については、401から407,409にそれぞれ対応し、名称および機能は同じである。
【0034】
508は408と同様にネットワークインタフェースであり、通信回線510を介してコンピュータネットワーク511と接続される。このネットワークインタフェース508によりサーバ101から画像データを含む各種データを受信し、ユーザ操作に応じてディスプレイ504に受信したデータを表示する。
【0035】
<画像ファイル構成>次に、図6を参照して、本実施形態の画像ファイルの構成について説明する。
【0036】
図6において、600と601は共にExif規格に準じて画像属性情報を記録している領域である。600は、Exif規格の基本的な情報を記録している領域であり、画像データサイズ、撮影日時、撮影場所、撮影機種、フラッシュオン/オフ、など撮影時の情報および画像の読み出しや再生、制御に必要な情報を記憶する。
【0037】
601はExif規格に準じて、デジタルスチルカメラのメーカ独自の形で画像属性情報を記録している領域であり、送信済みフラグ、表示縮尺情報、表示精度情報など制御に必要な情報を記憶する領域である。送信済みフラグはサーバに送信済みか否かを示す。
【0038】
602は縮小画像データ領域で、一覧表示の際に表示する縮小画像データを記憶する領域である。603は画像データ領域であり、当該画像ファイルとして格納すべき全ての画像データを記憶する領域である。CPU201が撮像装置200を用いて画像データを生成した後に画像属性情報を付加して図6に示す構成の画像ファイルを生成し、記憶媒体装着ユニット208を介して記憶媒体に記憶する。これら一連の処理を「撮影」と表記する。
【0039】
画像ファイル生成時に、CPU201はGPSを利用して位置情報を取得し、撮影場所として緯度、経度、高度、測位時間などの情報をExif_Base属性情報領域600に記憶する。また、画像ファイル生成時に、CPU201は、Exif_MakerNote属性情報領域601の送信済みフラグにFALSEを、表示縮尺情報に0を、表示精度情報に0を書き込む。送信済みフラグと表示縮尺情報の使用方法については、後述する。表示精度情報については、実施形態3にて後述する。
【0040】
<画像の表示縮尺指定>次に、図3を参照して、本実施形態による画像送信装置として動作するデジタルスチルカメラの各種ボタンとユーザインタフェースの詳細について説明する。
【0041】
本実施形態のデジタルスチルカメラには4種類のモードがあり、各モードに応じた動作をする。第一に撮影を行う「撮影モード」、第二に記憶媒体内の画像データを表示する「再生モード」、第三に各種設定を行う「設定モード」、第四にサーバやパーソナルコンピュータにデータを送信する「送信モード」である。本実施形態で主に説明するモードは「設定モード」である。電源ボタン302以外の全てのボタンに関しては、デジタルスチルカメラに電源が入っているときの動作を説明する。
【0042】
図3において、300はレリーズボタンである。ユーザがレリーズボタン300を押下すると、CPU201がユーザから撮影指示があったと判定し、撮影モードへと切り替え、撮影処理を行う。
【0043】
301はディスプレイである。302は、電源のON/OFFを切り替える電源ボタンである。デジタルスチルカメラの電源が入っていない状態で、ユーザが電源ボタン302を押下するとCPU201はユーザから電源入力の指示があったと判定し、電源を入れる。電源が入っている状態で、ユーザが電源ボタン302を押下するとCPU201はユーザから電源切りの指示があったと判定し、電源を切る。
【0044】
303は撮影モードボタンである。ユーザが撮影モードボタン303を押下すると、CPU201がユーザから撮影モードへの切り替え指示があったと判定し、撮影モードへと切り替え、撮像装置200による撮影の準備をすると共に、結像した画像をディスプレイ301に表示する。
【0045】
304は再生ボタンである。ユーザが再生ボタン304を押下すると、CPU201がユーザから再生モードへの切り替え指示があったと判定し、記憶媒体から画像データを読み込みディスプレイ301に画像を表示する。
【0046】
305は設定ボタンである。設定ボタン305をユーザが押下すると、CPU201がユーザから設定モードへの切り替え指示があったと判定し、設定画面をディスプレイ301に表示する。図3のディスプレイ301は設定画面を表示している状態を示している。
【0047】
311は送信ボタンである。ユーザが送信ボタン311を押下すると、CPU201がユーザから送信モードへの切り替え指示があったと判定し、記憶媒体から画像データを読み込み、後述する画像属性情報の変更を行った後に設定モードで指定された送信先へ送信する。
【0048】
307、308、309、310は、それぞれ上矢印ボタン、下矢印ボタン、左矢印ボタン、右矢印ボタンである。ユーザがこれらのボタンを押下するとCPU201はユーザから設定画面における操作対象の切り替え指示があったと判定し、矢印の方向に応じて選択対象を切り替える。
【0049】
312は、選択状態を示す選択枠である。CPU201は矢印ボタン307,308,309,310の操作に応じて枠の位置を変更する。306は決定ボタンである。ユーザが決定ボタン306を押下すると、CPU201がユーザから操作対象として選択された操作部材の押下や決定指示があったと判定し、動作する。
【0050】
313は、送信先を表示する送信先エディットボックスである。314は、各種文字を入力する文字入力エリアである。ユーザが文字を選択し、決定ボタン306を押下することにより、文字を入力する。315は入力完了ボタンである。
【0051】
ユーザが送信先エディットボックス313を選択し、決定ボタン306を押下したときに、送信先の編集ができるようになる。それと同時に文字入力エリア314が操作可能になる。そして、ユーザが文字列を入力した後に、入力完了ボタン315を選択し、決定ボタン306を押下すると、CPU201はユーザからの文字列入力が完了したと判定し、送信先エディットボックス313に入力された文字列を表示する。
【0052】
操作部材316,317,318は、プライバシーに関わる属性情報を抽象化した情報に変換する際の設定に関わるものである。
【0053】
316は場所詳細非表示チェックボックスである。ユーザが場所詳細非表示チェックボックスを選択し、決定ボタン306を押下すると、CPU201は設定変更の操作があったと判定し、ON/OFF状態を切り替える。場所詳細非表示チェックボックスにチェックが入っている状態つまりONの状態で、ユーザが決定ボタン306を押下すると、CPU201はチェックを消しOFFの状態とする。チェックがない状態、つまりOFFの状態で、ユーザが決定ボタン306を押下すると、CPU201はチェックを表示しONの状態とする。CPU201はON/OFFの状態をメディアドライブ208を介して記憶媒体に保持する。
【0054】
317は表示縮尺設定ボックスである。ユーザが表示縮尺設定ボックスを選択し、決定ボタン306を押下すると、CPU201は設定変更の操作があったと判定し、プルダウン式のメニューを表示する。その際の表示するメニューの項目は、1/1000以下、1/2000以下、1/5000以下、1/10000以下、である。ユーザが矢印ボタン307,308を操作し、プルダウン式のメニューの中の選択を切り替え、決定ボタン306を押下すると、CPU201はユーザから、設定が選ばれたと判断し、プルダウンメニューを閉じる。
【0055】
設定モードにおいてユーザが設定した全ての情報は、ユーザが設定ボタン305を押下し、他のモードへ切り替えたとき、CPU201は、メディアドライブ208を介して記憶媒体に記憶する。そして、CPU201は必要に応じて情報を読み、画像送信処理に利用する。
【0056】
<画像送信処理>次に、本実施形態の画像送信装置として動作するデジタルスチルカメラ100において、画像送信時に画像のExif_MakerNote属性情報領域601に表示縮尺情報を書き込んでサーバ101に送信する処理について、図7を参照して説明する。尚、本処理は、CPU201がRAM203に格納された制御プログラムを実行することにより実行される。
【0057】
図7において、ステップS701にて、CPU201は、対象となる画像ファイルを抽出する。まず、記憶媒体に記憶されている画像ファイル全てについて、Exif_MakerNote属性情報領域601の送信済みフラグを参照する。そして、送信済みフラグがFALSEのものを対象であると判定し、抽出する。
【0058】
ステップS702にて、CPU201は、カウンタnに0を代入する。カウンタnは対象となる画像ファイル個々について、後述するステップS704からステップS708までの一連の処理をCPU201が実行するためのカウンタである。
【0059】
ステップS703にて、CPU201は、カウンタnが対象となる画像ファイルの数より少ないか判定をする。
【0060】
ステップS703にて、CPU201が、カウンタnが対象となる画像ファイルの数より少ないと判定した場合には、ステップS704へ進む。
【0061】
ステップS703にて、CPU201が、カウンタnが対象となる画像ファイルの数以上であると判定した場合には、対象となる全ての画像に対して一連の処理が完了したものと判断して、処理を終了する。
【0062】
ステップS704にて、CPU201は、記憶媒体からメディアドライブ208を介して場所詳細非表示チェックボックス316の状態を読み込む。そしてONか否かを判定する。
【0063】
ステップS704にて、CPU201が、場所詳細非表示チェックボックス316はON状態であると判定した場合には、ステップS705へ進む。
【0064】
ステップS704にて、CPU201が、場所詳細非表示チェックボックス316はOFF状態であると判定した場合には、ステップS707へ進む。
【0065】
ステップS705にて、CPU201は、記憶媒体からメディアドライブ208を介して表示縮尺設定ボックス317で設定された縮尺を読み込む。
【0066】
ステップS706にて、CPU201は、対象となるn番目の画像のExif_MakerNote属性情報領域601の表示縮尺情報に、ステップS705で読み込んだ縮尺を書き込む。縮尺が1/1000以下と指定されていた場合には、表示縮尺情報に分母の値、1000を書き込む。縮尺が1/5000以下と指定されていた場合には、表示縮尺情報に分母の値、5000を書き込む。
【0067】
ステップS707にて、CPU201は、ネットワークインタフェース209により通信回線211を介してコンピュータネットワーク212に接続し、設定した送信先のサーバへ送信する。送信先は、送信先エディットボックス412にてユーザが設定した送信先とする。もし、ユーザが設定していなければ既定の送信先としてもよいし、警告を表示し、ユーザに設定を促してもよい。
【0068】
ステップS708にて、CPU201は、CPU201は、対象となる画像ファイルの送信済みフラグをTRUEに書き換える。
【0069】
ステップS709にて、CPU201は、カウンタnをインクリメントする。
【0070】
<画像制御処理>本実施形態における画像制御装置として動作するサーバ101において、表示縮尺情報に基づいて地図上に画像を配置するか否かの制御をし、地図データおよび画像データをコンピュータネットワーク103経由でクライアントに配信する処理について、図8を参照して説明する。尚、本処理は、CPU401がRAM403に格納された制御プログラムを実行することにより実現される。予め、サーバ101のCPU401は、デジタルスチルカメラ100から送信された画像ファイルをコンピュータネットワーク411を介してネットワークインタフェース408により受信し、HDD405に保持しているものとする。また、サーバ101とクライアント102との間は、双方向にデータの送受信が可能な状態が確立できているものとする。図8の画像制御処理は複数のクライアントに対して同じデータを配信するのではなく、クライアント毎の表示条件に応じて個別に配信する。サーバ101は、HDD405に様々な縮尺に対応した全地域の地図データを保持しているものとする。
【0071】
図8において、ステップS800にて、CPU401は、クライアント102の表示条件をコンピュータネットワーク411を介してネットワークインタフェース408により受信する。表示条件とは、クライアント102にて表示する地図の緯度・経度の範囲、縮尺である。
【0072】
ステップS801にて、CPU401は、S801にて受信した表示条件の緯度・経度の範囲に撮影場所が含まれる画像を抽出する。まず、HDD405に記憶されている画像ファイル全てについて、Exif_Base属性情報領域600の撮影場所情報を参照する。そして、撮影場所情報が緯度・経度の範囲に含まれているものを対象であると判定し、抽出する。
【0073】
ステップS812にて、CPU401は、HDD405からクライアントの表示条件に対応する地図データをRAM403へ読み込み、コンピュータネットワーク411を介してクライアント102へ送信する。
【0074】
ステップS802にて、CPU401は、カウンタnに0を代入する。カウンタnは対象となる画像ファイル個々について、後述するステップS804からステップS807までの一連の処理をCPU401が実行するためのカウンタである。
【0075】
ステップS803にて、CPU401は、カウンタnが対象となる画像ファイルの数より少ないか判定をする。
【0076】
ステップS803にて、CPU401が、カウンタnが対象となる画像ファイルの数より少ないと判定した場合には、ステップS804へ進む。
【0077】
ステップS803にて、CPU401が、カウンタnが対象となる画像ファイルの数以上であると判定した場合には、ステップS808へ進む。
【0078】
ステップS813にて、CPU401は、n番目のファイルをHDD405からRAM403に対象ファイルとして読み込む。
【0079】
ステップS804にて、CPU401は、対象となるファイルのExif_MakerNote属性情報領域601内の表示縮尺情報が指定されているか否かを判定する。表示縮尺情報が0である場合には、表示縮尺情報は設定されていないものとする。1以上の値である場合には、表示縮尺情報が指定されていると判定する。
【0080】
ステップS804にて、CPU401が、表示縮尺情報が指定されていると判定した場合には、ステップS810へ進む。
【0081】
ステップS804にて、CPU401が、表示縮尺情報が指定されていないと判定した場合には、ステップS807へ進む。
【0082】
ステップS810にて、CPU401は、RAM403上の画像ファイルのExif_Base属性情報領域600の撮影場所情報を削除する。クライアントに画像ファイルを配信する際に、画像の属性情報から詳細な場所が特定されることを回避するためである。
【0083】
ステップS805にて、CPU401は、S801にて受信したクライアントの縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。表示縮尺情報の値が5000だった場合には、表示縮尺情報の示す縮尺は5000分の1とする。
【0084】
ステップS805にて、CPU401が、クライアントの縮尺が表示縮尺情報の示す縮尺よりも大きいと判定した場合には、ステップS806へ進む。
【0085】
ステップS805にて、CPU401が、クライアントの縮尺が表示縮尺情報の示す縮尺と同じか小さいと判定した場合には、ステップS807へ進む。
【0086】
ステップS806にて、CPU401は、周辺の画像として、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアント102へ配信する。
【0087】
ステップS807にて、CPU401は、地図における画像の配置位置と画像を関連付けて、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアント102へ配信する。地図における画像の配置位置算出方法については、後述する。
【0088】
ステップS811にて、CPU401は、カウンタnをインクリメントする。そして、ステップS803へ戻る。
【0089】
ステップS808にて、CPU401は、クライアントの表示条件が変更されているか否かを判定する。クライアントにおける表示条件変更方法については、後述する。
【0090】
ステップS808にて、CPU401が、クライアントの表示条件が変更されていると判定した場合には、ステップS801へ戻る。
【0091】
ステップS808にて、CPU401が、クライアントの表示条件が変更されていないと判定した場合には、ステップS809へ進む。
【0092】
ステップS809にて、CPU401は、ユーザから終了の指示があったか否かを判定する。ユーザからの終了指示方法については、後述する。
【0093】
ステップS809にて、CPU401が、終了の指示があったと判定した場合には、一連の処理を終了する。
【0094】
ステップS809にて、CPU401が、終了の指示がないと判定した場合には、ステップS808へ戻る。
【0095】
ここで、本実施形態において画像受信装置として動作するクライアントのユーザインタフェースについて、図9と図10を参照して説明する。なお、図9と図10で共通の操作部材については、同一の符号を付して説明を省略する。図9と図10は共に撮影者がサーバにて配信している画像を、閲覧者がコンピュータネットワーク経由でクライアントにダウンロードし、閲覧している状態を示す。撮影者は、画像をサーバに送信する際に、場所詳細非表示チェックボックスをONとし、表示縮尺情報を1/5000以下に設定していたものとする。
【0096】
図9において、900は地図表示領域である。地図情報を管理するサーバから所定の領域の地図をインターネット経由でダウンロードして表示する。所定の領域は、配信中の画像の撮影場所が含まれている範囲がサーバからダウンロードできるものとする。901は地図表示領域の左上端の座標である。表示中の地図の中では、北西の端である。902は地図表示領域の右下端の座標である。表示中の地図の中では、南東の端である。
【0097】
904から907までの操作部材は、ユーザが地図の縮尺や表示範囲を指定する際に使用する。そして、904から907までの操作部材でユーザが指定した表示条件は、CPU501がコンピュータネットワーク511を介して、サーバに送信する。
【0098】
904は、地図の縮尺を指定する地図縮尺設定ボックスである。ユーザが地図縮尺設定ボックスの右の下矢印ボタンを選択し、押下すると、CPU501は設定変更の操作があったと判定し、プルダウン式のメニューを表示する。その際の表示するメニューの項目は、1/1000、1/2000、1/5000、1/10000、1/50000である。ユーザが、プルダウン式のメニューの中から選択すると、CPU501はユーザから、設定が選ばれたと判断し、プルダウンメニューを閉じる。そして、CPU401は、地図縮尺設定ボックス904に選択された縮尺を表示する。
【0099】
905、906は、地図の縮尺を変更するボタンである。拡大ボタン905を押下すると、地図表示領域900の中心を基準として一段階縮尺を上げる。1/5000が設定されている状態で、拡大ボタンを押下すると一段階上の1/2000へと縮尺を変更する。縮尺が1/1000になった場合には、拡大ボタン905を無効にする。
【0100】
縮小ボタン906を押下すると、地図表示領域900の中心を基準として一段階縮尺を下げる。1/5000が設定されている状態で、縮小ボタン906を押下すると一段階下の1/10000へと縮尺を変更する。縮尺が1/50000になった場合には、縮小ボタン906を無効にする。
【0101】
907は、地図の表示領域を変更する手形トグルボタンである。手形トグルボタンが凸状態の時に押下するとCPU501は手形ツールが設定されたと判定し、カーソルの形を手形にすると共にボタンの表示を凹状態とする。手形トグルボタンが凹状態の時に押下するとCPU501は手形ツールが解除されたと判定し、カーソルの形を矢印にすると共にボタンの表示を凸状態とする。ポインティングデバイスがマウスである場合を例に、手形ツールの機能を説明する。手形ツールが設定されている状態で、地図表示領域900においてマウスをドラッグすると、CPU501は、地図の表示範囲を変更する指示があったと判定し、地図の表示範囲を変更する。右下方向にマウスをドラッグした場合には、地図の表示範囲を左上の方向に変更する。左上方向にマウスをドラッグした場合には、地図の表示範囲を右下方向に変更する。
【0102】
908は、終了ボタンである。ユーザが終了ボタンを押下すると、CPU501は、ユーザから終了指示があったと判定し、地図および画像の再生処理を終了する。それと共に、サーバに終了指示があったことを送信する。
【0103】
909は、サーバから地図上の撮影場所に対応付けて配信された画像データの縮小画像である。CPU501は、サーバから配置位置を受信し、その配置位置が縮小画像を構成する4つの頂点の内側に入るように配置する。もし、配置位置が常に縮小画像の中心になるようにすると、結局撮影場所が閲覧者に特定されてしまうため、わざと中心から位置をずらして配置する。
【0104】
図10において、1001は、周辺で撮影された画像を表示する地図領域外に設けられた周辺画像表示領域である。1002は、サーバから周辺の画像として配信された画像データの縮小画像である。
【0105】
<地図上の配置位置算出方法>ここで、変数に下記の値を保持しているものとして、ステップS807における、撮影場所の座標(shotX,shotY)の算出方法について説明する。地図表示領域内の座標を横方向X軸、縦方向Y軸、とし、901を原点とする。
mapN0:901の緯度(度)
mapE0:901の経度(度)
mapN1:902の緯度(度)
mapE1:902の経度(度)
shotN:画像の撮影場所の緯度(度)
shotE:画像の撮影場所の経度(度)
uiX0:地図表示領域内の901のX座標(pixel)
uiY0:地図表示領域内の901のY座標(pixel)
uiX1:地図表示領域内の902のX座標(pixel)
uiY1:地図表示領域内の902のY座標(pixel)
shotX:地図表示領域内の撮影場所のX座標(pixel)
shotY:地図表示領域内の撮影場所のY座標(pixel)
実際の撮影場所の位置と、地図表示領域内の撮影場所の位置とを一致させるために、式1、式2が共に真になるようにする。上記条件を満たす、撮影場所の座標の算出方法を式3、式4に示す。
(mapE0−mapE1):(shotE−mapE1)=(uiX0−uiX1):(shotX−uiX1)…(1)
(mapN0−mapN1):(shotN−mapN1)=(uiY0−uiY1):(shotY−uiY1)…(2)
shotX=((uiX0−uiX1)×(shotE−mapE1))÷(mapE0−mapE1)+uiX1…(3)
shotY=((uiY0−uiY1)×(shotN−mapN1))÷(mapN0−mapN1)+uiY1…(4)
<具体例>次に、ステップS807における撮影場所の座標(shotX,shotY)の算出方法の具体例を説明する。
【0106】
サーバから取得した地図の範囲の緯度経度は、緯度43.45度、経度142.25度から緯度43.25度、経度142.45度の範囲とする。画像の詳細な撮影場所は、緯度43.35度、経度142.35度とする。また、地図表示領域内の座標(uiX1,uiY1)を(0,0)、(uiX0,uiY0)を(1500,2000)とする。各変数に対応する値を式5に示す。
mapN0=43.45
mapE0=142.25
mapN1=43.25
mapE1=142.45
shotN=43.35
shotE=142.35
uiX0=0
uiY0=0
uiX1=2000
uiY1=1500…(5)
式3と式4に式5の値を代入して算出した結果を式6、式7に示す。
shotX=((uiX0−uiX1)×(shotE−mapE1))÷(mapE0−mapE1)+uiX1 =((0−2000)×(142.35−142.45))÷(142.25−142.45)+2000=1000…(6)
shotY=((uiY0−uiY1)×(shotN−mapN1))÷(mapN0−mapN1)+uiY1=((0−1500)×(43.35−43.25))÷(43.45−43.25)+1500=750…(7)
以上説明した方法で、撮影場所を算出する。式6、式7の結果となった場合には、原点701からX軸方向に1000pixel、Y軸方向に750pixelの位置を撮影場所とする。
【0107】
ここで、図8を参照しながら、画像制御装置として動作するサーバおよび画像受信装置として動作するクライアントにおける処理の具体例を説明する。
【0108】
撮影者は、画像をサーバに送信する際に、場所詳細非表示チェックボックスをONとし、表示縮尺情報の縮尺を1/5000以下に設定していたものとする。また、撮影場所は、緯度43.35度、経度142.35度とする。サーバのHDD405に前述の画像ファイルが1つ保持されているものとして説明する。
【0109】
まず、クライアント102において表示する地図の範囲が、緯度43.45度、経度142.25度から緯度43.25度、経度142.45度、地図の縮尺は1/10000である場合を説明する。
【0110】
ステップS800にて、CPU401は、クライアント102の表示条件を受信する。
【0111】
ステップS801にて、CPU401は、S801にて受信した表示条件の緯度・経度の範囲に撮影場所が含まれる画像を抽出する。緯度43.35度、経度142.35度で撮影した1つの画像ファイルをCPU401は抽出することになる。
【0112】
ステップS812にて、CPU401は、クライアント102の表示条件に対応した地図データを送信する。
【0113】
ステップS802にて、CPU401は、カウンタnに0を代入する。
【0114】
ステップS803にて、CPU401は、カウンタnが対象となる画像ファイルの数より少ないか判定をする。S801にて対象となる画像ファイルの数は、1なので、カウンタnが0の場合、ステップS804へ進む。
【0115】
ステップS804にて、CPU401は、対象となるファイルをHDD405からRAM403に読み込み、Exif_MakerNote属性情報領域601内の表示縮尺情報が指定されているか否かを判定する。表示縮尺情報の縮尺を1/5000以下に設定されている場合、表示縮尺情報は、5000となる。よって、表示縮尺情報が指定されていると判定して、ステップS810へ進む。
【0116】
ステップS810にて、CPU401は、RAM403上の画像ファイルの撮影場所情報である緯度43.35度、経度142.35度を削除する。
【0117】
ステップS805にて、CPU401は、ステップS801にて受信したクライアントの縮尺が、ステップS804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。表示縮尺情報の値が5000だった場合には、表示縮尺情報の示す縮尺は5000分の1となる。クライアントの縮尺は10000分の1なので、クライアントの縮尺が表示縮尺情報の示す縮尺より小さいと判定し、ステップS807へ進む。
【0118】
ステップS807にて、CPU401は、地図における画像の配置位置と画像を関連付けて、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアント102へ配信する。地図における画像の配置位置算出方法は、式3、式4に示した通りである。こうして、クライアント102では、図9に示す通り、地図に画像を配置して表示する。
【0119】
ステップS808にて、CPU401は、クライアントの表示条件が変更されているか否かを判定する。クライアントの表示条件が変更されていないと判定した場合には、ステップS809へ進む。
【0120】
ステップS809にて、CPU401は、ユーザから終了の指示があったか否かを判定する。CPU401が、終了の指示がないと判定した場合には、ステップS808へ戻る。
【0121】
次に、クライアント102において表示する地図の範囲が、緯度43.33度、経度142.33度から緯度43.37度、経度142.37度、地図の縮尺は1/2000に変更された場合を説明する。
【0122】
ステップS808にて、CPU401は、クライアントの表示条件が変更されていると判定し、ステップS801へ戻る。
【0123】
ステップS801にて、CPU401は、ステップS808にて受信した表示条件の緯度・経度の範囲に撮影場所が含まれる画像を抽出する。緯度43.35度、経度142.35度で撮影した画像をCPU401は抽出することになる。
【0124】
ステップS802からS810までは、地図の縮尺が1/10000の場合と同じ処理となる。
【0125】
ステップS805にて、CPU401は、S801にて受信したクライアントの縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。クライアントの縮尺は2000分の1、表示縮尺情報の示す縮尺は5000分の1なので、クライアントの縮尺が表示縮尺情報の示す縮尺と大きいと判定し、ステップS806へ進む。こうして、クライアント102では、図10に示す通り、地図に画像を配置せず、周辺の画像として表示する。
【0126】
ステップS808にて、CPU401は、クライアントの表示条件が変更されているか否かを判定する。クライアントの表示条件が変更されていないと判定した場合には、ステップS809へ進む。
【0127】
ステップS809にて、CPU401は、ユーザから終了の指示があったか否かを判定する。CPU401が、終了の指示があったと判定した場合には、一連の処理を終了する。
【0128】
本実施形態では、処理対象の画像ファイルが1つの場合を例に説明したが、複数ファイルの場合でも本発明を実現可能である。この場合、ファイル数分、ステップS803からS811までの処理を繰り返し実行すればよい。
【0129】
本実施形態において、表示縮尺情報や撮影場所の情報が画像ファイルの中に保持されていることを例に説明したたが、画像ファイルと関連付けられていれば、画像ファイルとは別のファイルであってもよい。
【0130】
本実施形態において、表示縮尺情報が個々の画像ファイルの中に保持されていることを例に説明したが、複数の画像ファイルについて、1つの表示縮尺情報を関連付けてもよい。
【0131】
<縮尺の決定方法の変形例>本実施形態において、デジタルスチルカメラの操作により画像を表示する地図の精度を縮尺で指定したが、個人情報の保護レベルで指定しても良い。その場合には、サーバにおいて保護レベルに対応付けた表示縮尺情報をHDD405内に保持しておく。具体的には縮尺1/1000であればレベル1、縮尺1/2000であればレベル2、縮尺1/5000であればレベル3というように対応付けて保持する。そして、ステップS810とS805の間で保護レベルから対応する表示縮尺情報を読み込む処理を行い、S805の判定処理を行えばよい。縮尺で指定する場合、どのくらいの精度で撮影場所が特定できてしまうかユーザが感覚的に分かりにくいことがある。そういった場合に保護レベルといった抽象的な値になっていると、ユーザは選択しやすくなる。
【0132】
本実施形態において、デジタルスチルカメラの操作により画像を表示する地図の精度を縮尺で指定したが、撮影場所が特定可能な距離で指定しても良い。その場合には、サーバにおいて距離に対応付けた表示縮尺情報をHDD405内に保持しておく。具体的には500mであれば縮尺1/1000、1kmであれば縮尺1/2000、2.5kmであれば縮尺1/5000というように対応付けて保持する。そして、ステップS810とS805の間で距離から対応する表示縮尺情報を読み込む処理を行い、S805の判定処理を行えばよい。縮尺で指定する場合、どのくらいの精度で撮影場所が特定できてしまうかユーザが感覚的に分かりにくいことがある。そういった場合に何m四方で特定できてしまうかということを示した方が、ユーザは選択しやすくなる。
【0133】
<縮尺が小さいときの表示方法の変形例>本実施形態の縮小画像909において、サーバから受信した配置位置が縮小画像を構成する4つの頂点の内側に入るように配置すると説明したが、予め、サーバ側で配置位置を撮影場所が特定しにくいように変更してもよい。詳細な情報で配置位置を算出し、その配置位置が縮小画像の中心にくるようにしてしまうと、結局撮影場所が閲覧者に特定されてしまうからである。配置位置を算出する際に、緯度経度の有効桁数を減らした場所を基点にする。そして、それをクライアントに配信する。こうすることにより、地図に対応付けて縮尺画像を配置したとしても、撮影場所を特定しにくくすることができる。有効桁数を減らす方法は、切り上げ、四捨五入、切り下げのいずれでもよい。緯度は切り上げ、経度は四捨五入という風に組み合わせてもよい。画像毎に、異なる方法で有効桁数を減らすと、更に、閲覧者は詳細な撮影場所を特定しにくくなる。
【0134】
<地図の端に位置する画像への対応>本実施形態のステップS801にて、撮影場所により表示範囲内の画像を抽出したが、表示縮尺情報が指定されている画像については、緯度経度の有効桁数を減らした撮影場所情報で判定を行うとよい。なぜならば、地図の表示範囲の変更に伴い周辺の画像として出てくるか否かによって、その画像が地図のどの場所にあるか判別できてしまう可能性があるからである。そこで、緯度経度の有効桁数を減らした撮影場所情報で判定することによって、詳細な撮影場所を特定できなくなる。
【0135】
<属性情報による撮影場所特定回避の変形例>本実施形態のステップS810において、画像ファイルの属性情報から撮影場所情報を削除したが、閲覧者が属性情報から詳細な撮影場所情報を特定できなければよい。撮影場所情報を暗号化してもよいし、クライアントにおける画像再生時に属性情報を削除したり暗号化してもよい。
【0136】
以上説明した通り、本実施形態によれば、撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を配信することができる。また、画像ファイルから撮影場所情報を取り除いて配信するため、詳細な撮影場所を属性情報の解析により閲覧者が知ることもできない。更に、地図の端に位置する場合にも、周辺の画像として出てくるか否かによって、詳細な撮影場所を閲覧者が特定することも避けることができる。
【0137】
[実施形態2]実施形態1では画像制御装置をサーバとして説明したが、実施形態2は、画像制御装置がクライアントである場合について説明する。また、実施形態1においては、画像送信装置をデジタルスチルカメラとしていたが、実施形態2は、画像送信装置もパーソナルコンピュータである場合について説明する。尚、画像制御装置と画像送信装置の構成は、実施形態1のクライアントと同じである。
【0138】
<画像の表示縮尺指定>まず、図11を参照して、画像送信装置として、動作するパーソナルコンピュータのユーザインタフェースについて説明する。
【0139】
図11は、本実施形態の画像送信装置におけるユーザインタフェースを例示しており、撮影者が未配信の画像を閲覧している状態を示している。
【0140】
図3と同じ機能を果たす操作部材があるため、図3も参照しつつ説明する。
【0141】
図11において、1101は、未配信の画像の縮小画像である。1102は、所詳細非表示チェックボックスである。316に対応している。ユーザが場所詳細非表示チェックボックスを押下すると、CPU501は設定変更の操作があったと判定し、ON/OFF状態を切り替える。場所詳細非表示チェックボックスにチェックが入っている状態、つまりONの状態で押下すると、CPU501はチェックを消しOFFの状態とする。チェックがない状態、つまりOFFの状態で押下すると、CPU501はチェックを表示しONの状態とする。
【0142】
1103は、表示縮尺設定ボックスである。317に対応している。ユーザが表示縮尺設定ボックスの下矢印ボタンを押下すると、CPU501は設定変更の操作があったと判定し、プルダウン式のメニューを表示する。その際の表示するメニューの項目は、1/1000以下、1/2000以下、1/5000以下、1/10000以下、である。ユーザがプルダウン式のメニューの中から選択すると、CPU501はユーザから、設定が選ばれたと判断し、プルダウンメニューを閉じる。そして、CPU501は、表示縮尺設定ボックス1103に選択された縮尺を表示する。
【0143】
1104は、終了ボタンである。ユーザが終了ボタンを押下すると、CPU501は、ユーザから終了指示があったと判定し、各操作部材の設定をHDD505に記憶し、送信処理を終了する。
【0144】
1105は、送信先を表示する送信先エディットボックスである。ユーザがマウス等のポインティングデバイスで送信先エディットボックス1105を選択すると、文字列を入力が可能となる。キーボード等の入力装置により送信先を指定した後、他の操作部材へと選択が切り替わったときに、CPU501はユーザからの文字列入力が完了したと判定し、送信先エディットボックス1105に入力された文字列を表示する。
【0145】
1106は、送信ボタンである。送信ボタン1106をユーザが押下すると、CPU501がユーザから送信指示があったと判定し、HDD505から画像データを読み込む。そして、各画像に指定された表示縮尺設定に応じて、Exif_MakerNote属性情報領域601内の表示精度情報を変更する。加えて、Exif_Base属性情報領域600の撮影場所情報を暗号化し、送信先エディットボックスで指定された送信先へ送信する。またクライアントにおける画像制御装置で場所情報を取得できるようにするために、復号化キーを送信する。暗号化するのは、不特定多数の閲覧者が、画像の属性情報から容易に詳細な撮影場所を特定することを回避するためである。
【0146】
画像送信処理については、実施形態1の図7で説明した通りである。ただし、実施形態1においては、未送信の画像について、同じ表示縮尺の設定を用いたが、実施形態2においては、各画像に設定された表示縮尺の設定を用いて、画像のExif_MakerNote属性情報領域601内の表示精度情報を変更した後、送信する。
【0147】
送信先は、送信先エディットボックスで指定されたサーバとする。サーバはパーソナルコンピュータから画像を受信すると同時に画像を配信する状態とするものとする。そして、クライアントにおいてサーバから受信した画像ファイルを画像ファイル個々の表示縮尺情報に応じて制御する。
【0148】
<画像再生処理>次に、図12を参照して、実施形態2における画像制御装置として動作するクライアントが、表示縮尺情報に基づいて地図上に画像を配置するか否かの制御を行い、再生する処理について説明する。尚、本処理は、CPU501がRAM503に格納された制御プログラムを実行することにより実行される。
【0149】
以下では、画像制御処理に焦点を絞って説明し、サーバからのデータ受信処理については説明を省略する。予め、クライアントのCPU501は、サーバから配信された画像ファイルをコンピュータネットワーク511を介してネットワークインタフェース508により受信し、HDD505に保持しているものとする。
【0150】
また、図12において、図8と共通する処理には同一の符号を付して説明を省略する。図8のCPU401は図12のCPU501に対応し、RAM403はRAM503に、HDD405はHDD505にそれぞれ対応する。
【0151】
図12において、ステップS1201にて、CPU501は、表示する地図の縮尺を決定する。HDD505に記憶されている画像ファイル全てについて、Exif_MakerNote属性情報領域601内の表示精度情報を参照する。そして、表示縮小情報の示す縮尺の中で一番小さい縮尺を選択する。
【0152】
ステップS1202にて、CPU501は、表示する地図の範囲を決定する。HDD505に記憶されている画像ファイルの撮影場所が集中している場所が中心になる位置とする。
【0153】
ステップS1202にて、CPU501は、表示条件に対応する地図データをコンピュータネットワーク511を介して地図情報を保持するサーバに要求し、サーバから受信する。
【0154】
ステップS1203にて、CPU501は、表示条件の緯度・経度の範囲に撮影場所が含まれる画像を抽出する。まず、HDD505に記憶されている画像ファイル全てについて、Exif_Base属性情報領域600の撮影場所情報を参照する。もし、暗号化されている場合には、復号化する。そして、撮影場所情報が緯度・経度の範囲に含まれているものを対象であると判定し、抽出する。ただし、ステップS1203にて復号した撮影場所情報は、表示しないようにする。詳細な撮影場所を閲覧者が知ることができないようにするためである。
【0155】
ステップS1204にて、CPU501は、ユーザから指定されている縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。
【0156】
ステップS1204にて、CPU501が、クライアントの縮尺が表示縮尺情報の示す縮尺よりも大きいと判定した場合には、ステップS1205へ進む。
【0157】
ステップS1204にて、CPU501が、クライアントの縮尺が表示縮尺情報の示す縮尺と同じか小さいと判定した場合には、ステップS1208へ進む。
【0158】
ステップS1205にて、CPU501は、周辺の画像として、画像ファイルを表示する。
【0159】
ステップS1206にて、CPU501は、地図における画像の配置位置を算出する。配置位置の算出方法については、式3、式4で説明した通りである。
【0160】
ステップS1207にて、CPU501は、地図上に撮影場所と対応付けて縮小画像を表示する。ステップS1206もしくはステップS1209にて算出した配置位置が縮小画像の中心になるように表示する。
【0161】
ステップS1208にて、CPU501は、ステップS1206と同様に地図における画像の配置位置を算出する。
【0162】
ステップS1209にて、CPU501は、ステップS1208で算出した配置位置からずらした位置を算出する。ずらした位置の算出方法については、後述する。
【0163】
ステップS1210にて、CPU501は、表示条件が変更されているか否かを判定する。表示条件変更方法については、後述する。
【0164】
ステップS1210にて、CPU501が、表示条件が変更されていると判定した場合には、ステップS1201へ戻る。
【0165】
ステップS1210にて、CPU501が、表示条件が変更されていないと判定した場合には、ステップS1211へ進む。
【0166】
ステップS1211にて、CPU501は、ユーザから終了の指示があったか否かを判定する。ユーザからの終了指示方法については、後述する。
【0167】
ステップS1211にて、CPU501が、終了の指示があったと判定した場合には、一連の処理を終了する。
【0168】
ステップS1211にて、CPU501が、終了の指示がないと判定した場合には、ステップS1210へ戻る。
【0169】
<ずらした位置の算出方法>ここで、変数に下記の値を保持しているものとして、ステップS1209における、ずらした位置の座標(newShotX,newShotY)の算出方法について説明する。地図表示領域内の座標を横方向X軸、縦方向Y軸、とし、901を原点とする。
shotX:ステップS1208で算出したX座標(pixel)
shotY:ステップS1208で算出したY座標(pixel)
newShotX:ずらした位置のX座標(pixel)
newShotY:ずらした位置のY座標(pixel)
thumbWidth:縮小画像の幅(pixel)
thumbHeight:縮小画像の幅(pixel)…(8)
また、rand()が乱数、%が剰余を示すものとして、ずらした位置の座標算出方法を式9、式10に示す。
newShotX=shotX+rand()%thumbWidth−thumbWidth…(9)
newShotY=shotY+rand()%thumbHeight−thumbHeight…(10)
<ユーザインタフェースの遷移>次に、図13と図14を参照して、画像制御装置として動作するクライアントのユーザインタフェースについて説明する。
【0170】
図13と図14において、図9と共通する操作部材については、同一の符号を付して説明を省略する。図13と図14は共に撮影者がサーバにて配信している画像を、閲覧者がコンピュータネットワーク経由でクライアントにダウンロードし、閲覧している状態を示している。尚、実施形態1においては、904から907の操作部材の操作により表示条件変更があった場合には、その都度サーバに表示条件を送信していたのに対して、実施形態2では、画像制御処理をクライアントで行うため、表示条件をRAM503に保持し、CPU501が制御に必要な際にRAM503から読み込んで使うものとする。
【0171】
1301から1306は、サーバから配信されている画像の縮小画像である。各画像の表示縮尺情報は、画像1301と1302は0、画像1303は5000、画像1304は10000、画像1305は2000として、図12を参照しながら、ユーザインタフェースの遷移について説明する。画像ごとにどのように処理が変わるかを説明するため、ステップS813、ステップS804、ステップS1204からステップ1209までの処理を説明する。
【0172】
地図の範囲は、緯度43.45度、経度142.25度から緯度43.25度、経度142.45度、地図の縮尺は1/10000であるものとする。
【0173】
対象画像が画像1301である場合を説明する。
【0174】
ステップS813において、CPU501は、画像1301をHDD405からRAM403に対象ファイルとして読み込む。
【0175】
ステップS804において、CPU501は、画像1301について表示縮尺情報が設定されていないと判定し、ステップS1206へ進む。
【0176】
ステップS1206において、CPU501は、画像1301の配置位置を算出する。算出方法は式3、式4で示した通りである。
【0177】
ステップS1207において、CPU501は、ステップS1206で算出した配置位置が縮小画像の中心になるように画像を配置する。
【0178】
画像1302についても、画像1301と同じく表示縮尺情報が設定されていないので、同様の処理となる
続いて、対象の画像が画像1303である場合を説明する。
【0179】
ステップS813において、CPU501は、画像1303をHDD405からRAM403に対象ファイルとして読み込む。
【0180】
ステップS804において、CPU501は、画像1303について表示縮尺情報が設定されていると判定し、ステップS1204へ進む。
【0181】
ステップS1204において、CPU501は、地図縮尺設定ボックス904に設定されている地図の縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。地図の縮尺は1/10000、画像1301の表示縮尺情報が示す縮尺は1/5000。よって、地図の縮尺の方が小さいと判定して、ステップS1208へ進む。
【0182】
ステップS1208において、CPU501は、ステップS1206と同様の方法で配置位置を算出する。
【0183】
ステップS1209において、CPU501は、ずらした位置を算出する。算出方法は式9、式10で示した通りである。
【0184】
ステップS1207において、CPU501は、ステップS1209で算出した配置位置が縮小画像の中心になるように画像を配置する。
【0185】
画像1304、画像1305についても、ステップS1204において、地図の縮尺の方が小さいもしくは等しいと判定されるので、画像1303と同様の処理となる。
【0186】
上述した処理により、地図の縮尺が1/10000の場合、ユーザインタフェースは図13に示す状態となる。
【0187】
次に、地図の範囲が、緯度43.4度、経度142.3度から緯度43.3度、経度142.4度、地図の縮尺は1/5000に変更された場合について説明する。
画像1301と1302は、地図の縮尺が1/10000の時と同じ処理になるため、説明を省略する。
【0188】
対象の画像が画像1303である場合を説明する。
【0189】
ステップS813において、CPU501は、画像1303をHDD405からRAM403に対象ファイルとして読み込む。
【0190】
ステップS804において、CPU501は、画像1303について表示縮尺情報が設定されていると判定し、ステップS1204へ進む。
【0191】
ステップS1204において、CPU501は、地図縮尺設定ボックス904に設定されている地図の縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。地図の縮尺は1/5000、画像1301の表示縮尺情報が示す縮尺は1/5000。よって地図の縮尺と同じと判定して、ステップS1208へ進む。
【0192】
ステップS1208において、CPU501は、画像1303の配置位置を算出する。算出方法は式3、式4で示した通りである。
【0193】
ステップS1209において、CPU501は、ずらした位置を算出する。算出方法は式9、式10で示した通りである。
【0194】
ステップS1207において、CPU501は、ステップS1209で算出した配置位置が縮小画像の中心になるように画像を配置する。
【0195】
画像1305についても、ステップS1204において、ユーザから指定されている縮尺の方が小さいもしくは等しいと判定されるので、画像1303と同様の処理となる。
【0196】
対象画像が画像1304である場合を説明する。
【0197】
ステップS813において、CPU501は、画像1304をHDD405からRAM403に対象ファイルとして読み込む。
【0198】
ステップS804において、CPU501は、画像1303について表示縮尺情報が設定されていると判定し、ステップS1204へ進む。
【0199】
ステップS1204において、CPU501は、地図縮尺設定ボックス904に設定されている地図の縮尺が、S804で取得した表示縮尺情報の示す縮尺よりも大きいか否か判定する。地図の縮尺は1/5000、画像1301の表示縮尺情報が示す縮尺は1/10000。よって、地図の縮尺の方が大きいと判定して、ステップS1205へ進む。
【0200】
ステップS1205において、周辺の画像として、画像ファイルを表示する。
【0201】
上述した処理により、地図の縮尺が1/5000の場合、ユーザインタフェースは図14に示す状態となる。
【0202】
図13の1301は1401に、1302は1402に、1303は1403に、1304は1404に、1305は1405にそれぞれ対応する。
【0203】
<倍率が大きいときの表示方法の変形例>ステップS1205では、図10および図14の周辺画像表示領域1001に表示する例を説明したが、撮影場所に対応付けして表示しなければよいので、画像自体を表示しなくてもよい。また、図10および図14の地図表示領域900内を縮小画像の表示位置を再描画のたびに変えながら表示してもよいし、一定時間毎に表示位置を変えながら表示してもよい。
【0204】
以上説明した通り、本実施形態によれば、最初に画像の表示縮尺情報の示す縮尺の一番低い縮尺で地図上に画像を配置して表示する。よって、最初に閲覧者は画像の大まかな場所を把握することができる。
【0205】
更に、縮尺を変更した場合も、撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を表示することができる。また、画像ファイルの撮影場所情報暗号化して配信するため、詳細な撮影場所を属性情報の解析により閲覧者が容易に知ることもできない。
【0206】
地図の縮尺が表示縮尺情報の縮尺よりも小さい場合でも、撮影場所が画像の中心の位置に対応しないようにずらして表示することにより、詳細な撮影場所を閲覧者が特定することも避けることができる。
【0207】
[実施形態3]実施形態1,2では、縮尺に応じて画像を地図に配置して表示するか否かを切り替えたが、実施形態3では、地図の精度と地域を指定し、その地図の精度に応じて画像を地図に配置して表示するか否かを切り替える場合について説明する。地図の精度とは、町、区、市、都道府県、地方、国といった行政区画の大きさを示す情報である。実施形態3では、画像制御装置をサーバとし、画像送信装置をパーソナルコンピュータとする。画像制御装置の構成は、実施形態1のサーバと同じである。画像送信装置の構成は、実施形態1のクライアントと同じである。
【0208】
<画像の表示精度指定>図15は、本実施形態の画像送信装置におけるユーザインタフェースを例示し、撮影者が未配信の画像を閲覧している状態を示している。上述した図11と共通する操作部材については、同一の符号を付して説明を省略する。
【0209】
図15において、1501は、表示精度設定ボックスである。ユーザが表示精度設定ボックスの下矢印ボタンを押下すると、CPU501は設定変更の操作があったと判定し、プルダウン式のメニューを表示する。その際の表示するメニューの項目は、国まで、地方まで、都道府県まで、市まで、区まで、町まで、である。ユーザがプルダウン式のメニューの中から選択すると、CPU501はユーザから、設定が選ばれたと判断し、プルダウンメニューを閉じる。そして、CPU501は、表示精度設定ボックス1501に選択された精度を表示する。
【0210】
画像送信処理については、実施形態1の図7で説明した通りである。ただし、実施形態1では、ステップS705において表示縮尺情報を読み込んだが、実施形態3では表示精度情報を読み込む。また、実施形態1では、ステップS706において対象画像の表示縮尺情報を変更したが、実施形態3では対象画像の表示精度情報を変更する。表示精度情報には、項目に対応した数値を書き込む。町までであれば6、区までであれば5、市までであれば4、都道府県までであれば3、地方までであれば2、国までであれば1を書き込む。
【0211】
<画像再生処理>ここで、図16を参照して、本実施形態における画像制御装置として動作するサーバにおいて、表示精度情報に基づいて地図上に画像を配置するか否かの制御を行い、再生する処理ついて説明する。尚、本処理は、CPU401がRAM403に格納された制御プログラムを実行することにより実行される。予め、サーバのCPU401は、パーソナルコンピュータから送信された画像ファイルをコンピュータネットワーク411を介してネットワークインタフェース408により受信し、HDD405に保持しているものとする。また、サーバとクライアント間は、双方向にデータの送受信が可能な状態が確立できているものとする。
【0212】
また、図16において、上述した図8と共通する処理には同一の符号を付して説明を省略する。
【0213】
図16において、ステップS1600にて、CPU401は、クライアントの表示条件をコンピュータネットワーク411を介してネットワークインタフェース408により受信する。表示条件とは、クライアントにて表示する地図の緯度・経度の範囲、地図の精度である。地図の精度は、項目に対応した数値で受信するものとする。町あれば6、区あれば5、市であれば4、都道府県であれば3、地方であれば2、国であれば1を受信する。
【0214】
ステップS1601において、CPU401は対象となるファイルについてExif_MakerNote属性情報領域601内の表示精度情報が指定されているか否かを判定する。表示精度情報が0である場合には、表示精度情報は設定されていないものとする。1以上の値である場合には、表示精度情報が指定されていると判定する。
【0215】
ステップS1602において、CPU401は、S1600にて受信したクライアントの地図の精度が、S1601で取得した表示精度情報の示す精度よりも大きいか否か判定する。
【0216】
ステップS1602にて、CPU401が、クライアントの地図の精度が表示精度情報の値よりも大きいと判定した場合には、ステップS806へ進む。
【0217】
ステップS805にて、CPU401が、クライアントの地図の精度が表示精度情報の値と同じか小さいと判定した場合には、ステップS807へ進む。
【0218】
<ユーザインタフェースの遷移>図17と図18を参照して、実施形態3による画像受信装置として動作するクライアントにおけるユーザインタフェースについて説明する。
【0219】
尚、図17と図18で共通の操作部材については、同一の符号を付して説明を省略する。図17と図18は共に撮影者がサーバにて配信している画像を、閲覧者がコンピュータネットワーク経由でクライアントにダウンロードし、閲覧している状態を示している。
【0220】
図17において、1705は、地図の精度を指定する地図精度設定ボックスである。ユーザが地図精度設定ボックスの右の下矢印ボタンを選択し、押下すると、CPU501は設定変更の操作があったと判定し、プルダウン式のメニューを表示する。その際の表示するメニューの項目は、町、区、市、都道府県、地方、国である。ユーザが、プルダウン式のメニューの中から選択すると、CPU501はユーザから、設定が選ばれたと判断し、プルダウンメニューを閉じる。そして、CPU501は、地図精度設定ボックス1705に選択された精度を表示する。
【0221】
1705は、地域を指定する地域設定エディットボックスである。ユーザがマウス等のポインティングデバイスで地域設定エディットボックス1705を選択すると、文字列を入力が可能となる。キーボード等の入力装置により地域の名前を入力した後、他の操作部材へと選択が切り替わったときに、CPU501はユーザからの文字列入力が完了したと判定し、地域設定エディットボックス1705に入力された文字列を表示する。
【0222】
1707は、終了ボタンである。機能は、図9の908と同じである。
【0223】
1701から1704は、サーバから配信されている画像の縮小画像である。
【0224】
各画像に設定されている表示精度情報は、画像1701は0、画像1702は2、画像1703は5、画像1704は6、であるものとして、図16を参照しながら、UIの遷移を説明する。
【0225】
画像ごとにどのように処理が変わるかを説明するため、ステップS1601、ステップS1602、ステップS810、ステップS807、ステップS806の処理を説明する。
【0226】
地図の範囲が、緯度37度、経度136度から緯度34度、経度142度、地図の精度は地方の場合を説明する。地図の精度の値は、地方なので、2となる。
【0227】
まず、対象画像が画像1701の場合を説明する。
【0228】
ステップS1601において、CPU401は、画像1701について表示精度情報が設定されていないと判定し、ステップS807へ進む。
【0229】
ステップS807において、CPU401は、地図における画像の配置位置と画像を関連付けて、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアントへ配信する。配置位置の算出方法は式3、式4で示した通りである。
【0230】
続いて、対象の画像が画像1702の場合を説明する。
【0231】
ステップS1601において、CPU401は、画像1702について表示精度情報が設定されていると判定し、ステップS810へ進む。
【0232】
ステップS810にて、CPU401は、RAM403上の画像ファイルのExif_Base属性情報領域600の撮影場所情報を削除する。
【0233】
ステップS1602にて、CPU401は、クライアントの地図の精度の値が、S1601で取得した表示精度情報よりも大きいか否か判定する。地図の精度の値は2、画像1701の表示精度情報の値も2なので、同じと判定し、ステップS807へ進む。
【0234】
ステップS807において、CPU401は、地図における画像の配置位置と画像を関連付けて、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアントへ配信する。配置位置の算出方法は式3、式4で示した通りである。
【0235】
画像1703、画像1704についても、ステップS1602において、地図の精度の値よりも各画像の表示精度情報の値の方が小さいと判定されるので、画像1702と同じ処理となる。
【0236】
上述した処理により、地図の精度が地方の場合、ユーザインタフェースは図17に示す状態となる。
【0237】
次に、地図の範囲が、緯度34度、経度139.2度から緯度35.3度、経度139.8度、地図の精度が都道府県に変更された場合を説明する。地図の精度の値は、都道府県なので、3となる。
【0238】
画像1701は、地図の精度が地方の時と、都道府県の時と同じ処理になるため、説明を省略する。
【0239】
まず、対象の画像が画像1702の場合を説明する。
【0240】
ステップS1601において、CPU401は、画像1702について表示精度情報が設定されていると判定し、ステップS810へ進む。
【0241】
ステップS810にて、CPU401は、RAM403上の画像ファイルのExif_Base属性情報領域600の撮影場所情報を削除する。
【0242】
ステップS1602にて、CPU401は、クライアントの地図の精度の値が、S1601で取得した表示精度情報よりも大きいか否か判定する。地図の精度の値は3、画像1701の表示精度情報の値は2なので、大きいと判定し、ステップS806へ進む。
【0243】
ステップS806にて、CPU401は、周辺の画像として、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアントへ配信する。
【0244】
次に、対象画像が画像1703の場合を説明する。
【0245】
ステップS1601において、CPU401は、画像1703について表示精度情報が設定されていると判定し、ステップS810へ進む。
【0246】
ステップS810にて、CPU401は、RAM403上の画像ファイルのExif_Base属性情報領域600の撮影場所情報を削除する。
【0247】
ステップS1602にて、CPU401は、クライアントの地図の精度の値が、S1601で取得した表示精度情報よりも大きいか否か判定する。地図の精度の値は3、画像1703の表示精度情報の値は5なので、小さいと判定し、ステップS807へ進む。
【0248】
ステップS807において、CPU401は、地図における画像の配置位置と画像を関連付けて、RAM403上の画像ファイルを、コンピュータネットワーク411を介してクライアントへ配信する。配置位置の算出方法は式3、式4で示した通りである。
【0249】
画像1704についてもステップS1602において、地図の精度の値よりも各画像の表示精度情報の値の方が小さいと判定されるので、画像1703と同じ処理となる。
【0250】
上述の処理により、地図の精度が地方の場合、ユーザインタフェースは図18に示す状態となる。図17の画像1701は画像1801に、画像1702は画像1802に、画像1703は画像1803に、画像1704は画像1804に、それぞれ対応する。
【0251】
図18において、1805は周辺画像表示領域であり、機能は1001と同じである。
【0252】
以上説明した通り、本実施形態によれば、縮尺以外の地図の表示精度でも、撮影者のプライバシーを守りつつ、大まかな撮影場所が判別できるように画像を配信することができる。
【0253】
[他の実施形態]本発明は、以下の処理を実行することによっても実現される。即ち、上記実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【特許請求の範囲】
【請求項1】
画像を地図上に表示するように制御する画像制御装置であって、
前記画像の属性情報から位置情報を取得する取得手段と、
前記画像を地図上に表示するときの表示精度を指定する指定手段と、
前記取得手段により取得した位置情報と前記指定手段により指定された表示精度を用いて地図上に画像を表示するための表示データを作成する作成手段と、を備え、
前記作成手段は、前記指定手段により指定された表示精度が、予め決められた地図の精度よりも低い場合には、前記画像を前記位置情報に対応する地図上の位置に配置し、予め決められた地図の精度よりも高い場合には、前記画像を前記位置情報に対応する地図上の位置には配置しないよう制御することを特徴とする画像制御装置。
【請求項2】
前記地図の精度は、地図の縮尺または行政区画であることを特徴とする請求項1に記載の画像制御装置。
【請求項3】
前記指定手段は、画像が複数ある場合、画像ごとに表示精度が指定できることを特徴とする請求項1または2に記載の画像制御装置。
【請求項4】
前記作成手段は、前記表示精度が前記地図の精度よりも高い場合には、画像を前記取得手段により取得した位置情報とは異なる地図上の位置に配置した表示データを作成することを特徴とする請求項1ないし3のいずれか1項に記載の画像制御装置。
【請求項5】
前記作成手段は、前記表示精度が前記地図の精度よりも高い場合には、画像を地図上ではなく、当該地図が表示された領域外に配置した表示データを作成することを特徴とする請求項4に記載の画像制御装置。
【請求項6】
前記作成手段は、前記表示精度が前記地図の精度と同じか低い場合には、前記画像を前記取得手段により取得した位置情報に対応する地図上の位置に表示すると共に、前記画像の中心が前記位置情報からずれた表示データを作成することを特徴とする請求項1ないし5のいずれか1項に記載の画像制御装置。
【請求項7】
前記取得手段により取得した位置情報から前記地図が表示される範囲に含まれる画像を判定する判定手段を更に有し、
前記作成手段は、前記表示精度が前記地図の精度よりも高い場合には、前記地図が表示される範囲に含まれる画像ごとに、前記位置情報に対応する地図上の位置からずらした位置に配置した表示データを作成することを特徴とする請求項1ないし3のいずれか1項に記載の画像制御装置。
【請求項8】
前記地図の精度を決定する決定手段を更に有することを特徴とする請求項1ないし7のいずれか1項に記載の画像制御装置。
【請求項9】
前記画像は、撮像装置から受信した画像データであり、
前記位置情報は、前記画像の撮影場所の情報であることを特徴とする請求項1ないし8のいずれか1項に記載の画像制御装置。
【請求項10】
前記画像データには、前記画像を前記位置情報に対応する地図上の位置に配置するか否かを示す情報が含まれることを特徴とする請求項9に記載の画像制御装置。
【請求項11】
前記作成手段により作成された表示データを表示手段を有する情報処理装置に配信する配信手段を更に備えることを特徴とする請求項1ないし10のいずれか1項に記載の画像制御装置。
【請求項12】
前記作成手段により作成された表示データを表示する表示手段を更に備えることを特徴とする請求項1ないし10のいずれか1項に記載の画像制御装置。
【請求項13】
画像を地図上に表示するように制御する画像制御方法であって、
取得手段が、前記画像の属性情報から位置情報を取得する取得工程と、
指定手段が、前記画像を地図上に表示するときの表示精度を指定する指定工程と、
作成手段が、前記取得手段により取得した位置情報と前記指定手段により指定された表示精度を用いて地図上に画像を表示するための表示データを作成する作成工程と、を備え、
前記作成工程では、前記指定工程にて指定された表示精度が、予め決められた地図の精度よりも低い場合には、前記画像を前記位置情報に対応する地図上の位置に配置し、予め決められた地図の精度よりも高い場合には、前記画像を前記位置情報に対応する地図上の位置には配置しないよう制御することを特徴とする画像制御方法。
【請求項14】
コンピュータを、請求項1ないし12のいずれか1項に記載の画像制御装置の各手段として機能させるためのプログラム。
【請求項15】
コンピュータを、請求項1ないし12のいずれか1項に記載の画像制御装置の各手段として機能させるためのプログラムを記憶したコンピュータによる読み取りが可能な記憶媒体。
【請求項1】
画像を地図上に表示するように制御する画像制御装置であって、
前記画像の属性情報から位置情報を取得する取得手段と、
前記画像を地図上に表示するときの表示精度を指定する指定手段と、
前記取得手段により取得した位置情報と前記指定手段により指定された表示精度を用いて地図上に画像を表示するための表示データを作成する作成手段と、を備え、
前記作成手段は、前記指定手段により指定された表示精度が、予め決められた地図の精度よりも低い場合には、前記画像を前記位置情報に対応する地図上の位置に配置し、予め決められた地図の精度よりも高い場合には、前記画像を前記位置情報に対応する地図上の位置には配置しないよう制御することを特徴とする画像制御装置。
【請求項2】
前記地図の精度は、地図の縮尺または行政区画であることを特徴とする請求項1に記載の画像制御装置。
【請求項3】
前記指定手段は、画像が複数ある場合、画像ごとに表示精度が指定できることを特徴とする請求項1または2に記載の画像制御装置。
【請求項4】
前記作成手段は、前記表示精度が前記地図の精度よりも高い場合には、画像を前記取得手段により取得した位置情報とは異なる地図上の位置に配置した表示データを作成することを特徴とする請求項1ないし3のいずれか1項に記載の画像制御装置。
【請求項5】
前記作成手段は、前記表示精度が前記地図の精度よりも高い場合には、画像を地図上ではなく、当該地図が表示された領域外に配置した表示データを作成することを特徴とする請求項4に記載の画像制御装置。
【請求項6】
前記作成手段は、前記表示精度が前記地図の精度と同じか低い場合には、前記画像を前記取得手段により取得した位置情報に対応する地図上の位置に表示すると共に、前記画像の中心が前記位置情報からずれた表示データを作成することを特徴とする請求項1ないし5のいずれか1項に記載の画像制御装置。
【請求項7】
前記取得手段により取得した位置情報から前記地図が表示される範囲に含まれる画像を判定する判定手段を更に有し、
前記作成手段は、前記表示精度が前記地図の精度よりも高い場合には、前記地図が表示される範囲に含まれる画像ごとに、前記位置情報に対応する地図上の位置からずらした位置に配置した表示データを作成することを特徴とする請求項1ないし3のいずれか1項に記載の画像制御装置。
【請求項8】
前記地図の精度を決定する決定手段を更に有することを特徴とする請求項1ないし7のいずれか1項に記載の画像制御装置。
【請求項9】
前記画像は、撮像装置から受信した画像データであり、
前記位置情報は、前記画像の撮影場所の情報であることを特徴とする請求項1ないし8のいずれか1項に記載の画像制御装置。
【請求項10】
前記画像データには、前記画像を前記位置情報に対応する地図上の位置に配置するか否かを示す情報が含まれることを特徴とする請求項9に記載の画像制御装置。
【請求項11】
前記作成手段により作成された表示データを表示手段を有する情報処理装置に配信する配信手段を更に備えることを特徴とする請求項1ないし10のいずれか1項に記載の画像制御装置。
【請求項12】
前記作成手段により作成された表示データを表示する表示手段を更に備えることを特徴とする請求項1ないし10のいずれか1項に記載の画像制御装置。
【請求項13】
画像を地図上に表示するように制御する画像制御方法であって、
取得手段が、前記画像の属性情報から位置情報を取得する取得工程と、
指定手段が、前記画像を地図上に表示するときの表示精度を指定する指定工程と、
作成手段が、前記取得手段により取得した位置情報と前記指定手段により指定された表示精度を用いて地図上に画像を表示するための表示データを作成する作成工程と、を備え、
前記作成工程では、前記指定工程にて指定された表示精度が、予め決められた地図の精度よりも低い場合には、前記画像を前記位置情報に対応する地図上の位置に配置し、予め決められた地図の精度よりも高い場合には、前記画像を前記位置情報に対応する地図上の位置には配置しないよう制御することを特徴とする画像制御方法。
【請求項14】
コンピュータを、請求項1ないし12のいずれか1項に記載の画像制御装置の各手段として機能させるためのプログラム。
【請求項15】
コンピュータを、請求項1ないし12のいずれか1項に記載の画像制御装置の各手段として機能させるためのプログラムを記憶したコンピュータによる読み取りが可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図12】
【図16】
【図9】
【図10】
【図11】
【図13】
【図14】
【図15】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図12】
【図16】
【図9】
【図10】
【図11】
【図13】
【図14】
【図15】
【図17】
【図18】
【公開番号】特開2012−129820(P2012−129820A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−279874(P2010−279874)
【出願日】平成22年12月15日(2010.12.15)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願日】平成22年12月15日(2010.12.15)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]