以下、図面を参照して、本発明の実施形態を詳細に説明する。
[第1の実施形態]
図1は、本発明に関わる実施形態の撮影装置がネットワークに接続されたシステムを示す構成図である。本システムは、撮影装置の一例である複数のデジタルカメラ(以下「カメラ」)で構成されている。
親となるカメラ(以下、親カメラ)101に対して、その他カメラ(以下、子カメラ)102、103がそれぞれネットワークを介して接続され、通信が可能となる。
各カメラにて撮影を行うことが可能であり、撮影して得られた画像データは、親カメラ101に一元保存される。ユーザが、子カメラ102、103を用いて撮影すると、親カメラ101へ撮影して得られた画像データを送信する。
ユーザが親カメラ101を用いて、自機にて撮影、もしくは子カメラ102、103から画像データを受信すると、親カメラ101に備えたメモリカードへの画像保存処理を行う。
親カメラ101、子カメラ102、103は、それぞれ2種類の撮影モード「通常モード」、「複合撮影モード」を有する。「通常モード」とは、自カメラのみで撮影を行う、いわゆる普通の撮影モードである。
一方、「複合撮影モード」は、ネットワークを介して、複数のカメラで撮影を協調して行い、親カメラ101に撮影して得られた画像データを集約させて保存する撮影モードを示す。
親カメラ101が「複合撮影モード」を選択し、ネットワークを構成することによって、複数のカメラで協調撮影する環境が構築される。他の子カメラ102、103は、既存のネットワークを検索し、所望のネットワークへの参加要求を行い、親カメラ101との通信状態を確立する。
その結果、他の子カメラ102、103は、「子カメラ」として親カメラ101のネットワークに登録される。ネットワークに参加している子カメラで撮影して得られた画像データは、どの子カメラで撮影した場合でも親カメラ101に自動的に転送され親カメラ101に備えたメモリカード等の記録媒体に保存される。
このように「複合撮影モード」では、ユーザが画像データの集約処理を手動で行わなくとも、ネットワークに参加して撮影するだけで、親カメラ101に自動的に撮影して得られた画像データが一元的に保存される。また、保存の際は、画像データに対して付された名称が必要に応じてリネームされ、何れのカメラで撮影されたかに関わらず、整列するよう調整される。
図2は、カメラ内部のハードウェア構成図である。
図2において、CCD(ChargeCoupledDevice)等の電荷結合素子を用いたセンサからなる撮像素子202は、被写体の光学像を光電変換して電気信号を生成し、A/Dコンバータ203は、撮像素子202から出力されるアナログの電気信号をデジタル信号に変換する。
バッファメモリ204は、A/Dコンバータ203からのデジタル信号を一時的に保持し、画像処理部205は、バッファメモリ204から出力されるデジタル信号に基づいて、輪郭補償、ガンマ補正、ホワイトバランス補正等の必要な画像処理を行い、画像データを生成する。
通信処理部206は、カメラ間の通信処理を担う。本実施形態では無線通信を想定しているため、通信用のデータ形式への変換など無線通信に必要な処理を行い、通信処理部206に含まれるアンテナを介して各種データの送受信を行う。尚、有線通信の場合にも、通信処理部206が必要な通信処理を実行する。
不揮発性のメモリ207は、CPUなどからなるマイクロコンピュータ(以下、マイコン)201に各種の処理を実行させるためのプログラム等を記憶しており、画像保存部209は、例えばメモリカードなどの記憶媒体であり、画像データの印刷やスライドショー再生などの設定情報を保存する。また、画像保存部209は、撮影により得られた画像データや受信した画像データを保存する。
ここで画像保存部209は、カメラに内蔵されたものであってもよいし、着脱可能なものであってもよい。カメラは、少なくとも記憶媒体にアクセスするためのインタフェースを有していればよい。
なお、画像保存部209には、JPEG形式などで圧縮符号化された画像データだけでなく、いわゆるRAW画像といった画像データも保存可能である。画像処理部205は、RAW画像をスライドショー再生する場合には、再生する画像データごとに現像処理を実行し、画像表示部208が表示する。
また、画像保存部209には、画像データの他に、画像データを特定するための画像情報が記述された情報ファイルが保存される。この情報ファイルには、後述するように、画像データを撮影した機器名および撮影日時などの画像情報が記述され、画像データが保存されたファイルパスが撮影日時の順番に記述されている。
画像表示部208は、画像保存部209に保存されている画像データのプレビュー表示を行うための表示処理を実行する。また、画像表示部208は、ネットワークなどを介して他の記憶装置や撮影装置等へ画像データを送信する際に、送信する画像データをユーザに選択させるためにサムネイルを一覧表示する処理なども行う。また、画像表示部208は、タッチパネル形式の部材から構成され、ユーザが指で触れることで、操作指示を行うことが可能である。
CPU201は、入力信号やプログラムに従い、上記撮像素子202、A/Dコンバータ203、バッファメモリ204、画像処理部205、通信処理部206、メモリ207、画像表示部208、画像保存部209を含むカメラ全体の動作を制御する。なお、カメラの制御は、1つのハードウェアで行ってもよいし、複数のハードウェアが処理を分担しながら、各種手段としてカメラを機能させるよう制御してもよい。
図3から図8には、各カメラのユーザインタフェースとして出力される画面の構成が示されている。図3から図5には、全ての各カメラ、101から103に出力される共通画面の構成が示されており、図6及び図7には、親カメラ101のみ、図8は、子カメラ102、103のみに出力される画面の構成が示されている。
まず図3に示す撮影モード選択画面について説明する。
撮影モード選択画面301は、カメラ起動時に出力されるか、もしくは、メニューから当画面にアクセスできるようにしてもよい。本画面にて、撮影モードを選択し、「通常撮影モード」を選択すれば、平常通り自カメラのみでの撮影となり、「複合撮影モード」を選択した場合は、複数台のカメラを使用した協調撮影モードになり、図4の画面に遷移する。
図4には、参加ネットワーク選択画面の構成が示されている。
参加ネットワーク選択画面401には、「新規作成」もしくは既存のネットワーク名が表示される。既存のネットワーク名には、画面出力前に通信技術を利用してネットワークを検索し、その検索結果が全て列挙される。
「新規作成」を選択した場合は、自機が親カメラに自動的に設定され、新規のネットワークを形成し、既存のネットワークを指定した場合は、そのネットワークに子カメラとして参加する処理が行われる。尚、撮影モード選択画面301にて「複合撮影モード」を選択した場合は、必ず本画面にて参加するネットワークを選択しなければならない。
なお、既存ネットワークに参加するタイミングは、いつでも可能である。すでに既存ネットワーク内で撮影が開始されていても、途中からネットワークに参加し撮影を行うことができる。さらに離脱するタイミングも特に規定していない。カメラの電源OFFと同時にネットワークを離脱したり、任意のタイミングで意図的に離脱したりすることも可能である。
図5には、識別名入力画面の構成が示されている。
識別名入力画面501では、任意の自機に対する識別名と識別マークを含む識別情報を設定する。識別情報には、カメラを特定可能なユニークな情報を付与する。例えば、カメラのIPアドレスやニックネームなどが挙げられる。
本識別情報を利用してネットワーク内の各カメラを判別するため、識別名及びマークは一意であり、他カメラに既に設定されている識別情報の設定は許容されない。同様に、自カメラに設定した識別情報を他カメラに設定することも許容されない。
本識別情報はその後の撮影画像保存時やプレビュー表示時に利用される。画像データ保存時は、撮影して得られた画像データと撮影カメラの識別名とはセットで保持される。また、後述するプレビュー画面1401の右上に出力されるマークが、当画面で選択したマークとなる。
図6は、初期設定画面の構成を示している。親カメラ101のみに出力される。参加ネットワーク選択画面401にて新規作成を選択すると、初期設定画面601が表示される。
初期設定画面601では、画像データの命名規則と、日時設定の登録を行う。ここで指定した命名規則と日時設定が、所定のネットワークに参加した全カメラに適用される。適用タイミングは、ネットワークに参加した直後である。
命名規則情報は、親カメラ101と子カメラ102、103の各カメラに備えられたテーブルに登録され、画像データの保存時に利用される。(後述するテーブル構成として1201、1301を参照)命名規則は、任意に設定可能だが、一例として「年月日時分秒.jpg」が挙げられる。
本初期設定がネットワークへ参加した全カメラに一律に適用されることによって、画像データの集約保存時にカメラを意識することなく、規則的に整列させることが可能となる。
図7には、ネットワークカメラ情報確認画面の構成が示されている。ネットワークカメラ情報確認画面701にて、現在ネットワークに参加しているカメラの一覧を参照することができる。一覧では、各カメラの機種情報、及び適用されている識別名やカメラ固有のマークを確認できる。本画面により、プレビュー画面1401でのマークと該カメラの関連付けが可能となる。
図8には、保存設定選択画面の構成が示されている。
保存設定選択画面801では、画像データの保存形態をユーザが任意に指定することが可能であり、選択肢としては、「親カメラのみに保存」と「親カメラと自機両方へ保存」とがある。
前者を選択した場合は、自機にて撮影して得られた画像データは、全て親カメラ101へと送信され、自機の記録媒体には一切保存されない。一方、後者を選択した場合は、撮影して得られた画像データは、親カメラ101へ送信されると同時に、自機の記録媒体にも保存される。ただし、親カメラ101にはネットワークへ参加した全カメラで撮影された全画像データが保存されるが、自機には自カメラで撮影した画像データしか保存されない。
図9は、各カメラでのリネーム処理を実行した結果を示した図である。各カメラ901で撮影が行われると、テーブル902を参照して、命名規則を取得し、903に示す通り、取得した命名規則に従って撮影して得られた画像データに対する名称が設定される。本リネーム処理は、親カメラ101、子カメラ102、103を問わず、全カメラにて撮影処理後実行される
図10と図11にはいずれも、子カメラ102、103から転送された画像データが、親カメラ101において時系列に保存されることを示した図である。
図10には、通常時の保存処理が示されている。通常時とは、子カメラ102、103から転送された画像データに対する名称と重複する画像データが親カメラ101の記憶媒体に存在しない場合である。
その場合、子カメラ102から転送された画像データ1001を受信した親カメラ101は、まず記録媒体に保存された画像データの一覧1002を参照する。一覧1002内に受信した画像データに対する名称と重複するものがないかを確認する。なければ、一覧1003に示すようにそのまま記録媒体に画像データを保存する。
図11には、親カメラ101の記録媒体に、すでに受信した画像データに対する名称と重複した名称を有する画像データが存在する場合が示されている。重複する画像データが存在する場合は、画像データに対する名称のリネーム処理が必要となる。
複数のカメラで同時に撮影可能な本システムでは、同日同時間に複数のカメラで撮影が行われる可能性がある。その場合、画像データに対する名称は各カメラにて行われるため、全く同一の名称を有する画像データが複数存在することが起こりうる。同一名称を有する複数の画像データは別個の画像データとして保存する必要があるため、親カメラ101に一元保存する際に、当該名称のリネーム処理が要求される。
子カメラ102から受信した画像データ1101を親カメラ101が受信し、保存画像一覧1102を参照して、重複する画像データを検索する処理までは、図10と同等である。しかし、図11のケースでは、検索処理にて重複する画像データの存在が判明するケースが示されている。
重複する画像データが存在する場合、親カメラ101は、両画像データの画像情報をもとに撮影時刻を参照する。そして、保存画像一覧1103のように、撮影時刻が古い順に画像データが整列するよう、画像データに対する名称のリネームを行う。
リネームは、当該名称の末尾にリビジョン番号を付してリネームする。付するリビジョン番号は、使用可能な番号を取得して適用し、もし、同一時刻に撮影して得られた画像データがすでに2つ以上記録媒体に保存されていた場合も、上記と同様に、各重複する画像データの撮影時刻を比較し、古い順に整列するよう、各画像データの名称に対してリネーム処理を適用する。
ここでは、リネームにリビジョン番号を使用しているが、判別可能であれば別規則に則ってリネームしても構わない。
図12と図13には、各カメラに備えられたテーブルの構成が示されている。
まず、図12には、親カメラ101に備えられたテーブルの構成が示されている。
親カメラテーブル1201では、自機である親カメラ101の識別名と識別マークとに関する識別情報と、ネットワークに参加している子カメラ102、103の識別名と識別マークとに関する識別情報、命名規則情報を保持している。
自機の識別情報は、画像データの保存時やプレビュー表示にて使用される。撮影時には、画像データの画像情報に含まれるExif(ExchangeableImageFileFormat)情報に、カメラの識別情報を付する。
これにより、各画像データがどのカメラで撮影されたのか特定可能となる。子カメラ102、103の識別情報は、受信した画像データを撮影したカメラの特定やプレビュー表示にて利用する。また、命名規則は画像データの名称の設定時に利用される。
親カメラテーブル1201は、ネットワーク形成後の初期設定時に作成される。識別名入力画面501や初期設定画面601にて識別情報や初期設定の入力が行われると、情報を親カメラテーブル1201に登録する。
なお、子カメラ102、103は、撮影中も随時参加可能である為、ネットワークへ参加しているカメラの情報は随時更新される。ネットワークへの参加の依頼通知を受信すると、子カメラ102、103の情報を親カメラテーブル1201へ登録する。
次に、図13には、子カメラ102、103に備えられたテーブルの構成が示されている。
ネットワーク参加カメラテーブル1301は、親カメラ情報と、自カメラの識別情報、命名規則情報を有する。
親カメラ情報とは、親カメラ101との通信を確立するために必要となる情報である。例えば、親カメラ101のIPアドレス、SSID(ServiceSetIdentifier)、及び認証情報等が考えられる。当情報は、ネットワーク検索時に取得した情報や、ネットワークへの参加依頼の通知後に親カメラ101から受信した情報に基づき構成される。
自カメラ情報とは、子カメラ102、103自機の識別名と識別マークに関する識別情報を保持する。これらの情報は、親カメラ101に画像データを転送した際に撮影を行ったカメラを特定できるようにするため、撮影時に画像データの画像情報のExif情報に書き加えられる。
命名規則情報は、ネットワークへの参加の依頼を通知すると、親カメラ101から受け渡される。その情報を元に、ネットワーク参加カメラテーブル1301へ追加される。
図14には、プレビュー画面におけるカメラを識別するためのマークが出力されたイメージが示されている。
親カメラ101でプレビュー出力機能が選択されると、記録媒体に保存された画像データの出力処理が行われ、親カメラ101は、保持している親カメラテーブル1201を参照して、各画像データを撮影したカメラを特定する。
そして、特定されたカメラに該当するマークを取得し、画像データの右上に配置して、ユーザインタフェースに出力し、当処理を各画像データに対して繰り返し行い、保存されている全ての画像データのプレビューを表示する。
なお、プレビュー画面1401は、基本仕様では親カメラ101のみに出力されるが、子カメラ102、103にも表示できる機能を付しても良い。また、前述では全画像データを出力する例を出したが、特定カメラの画像のみ出力したり、マークの代わりに識別名を出力したり、マークの出力位置を変更したりしても良い。
以下、本実施形態における撮影装置において撮影された画像データをマージする際の全体の流れを説明する。
図15には、本システムにおけるメインフローが示されている。
まず、ユーザが、各カメラにおいて電源を入れ、もしくは各カメラの設定メニューから撮影モードのメニューを選択すると、図3に示す撮影モード選択画面301が出力される。
そして、ステップS1501では、撮影モード選択画面301において複合撮影モードが選択されると、そのモードで起動するための事前処理が開始される。もし、撮影モード選択画面301にて、通常モードを選択した場合は、単一カメラでの撮影となり本処理は実行されない。
複合撮影モードが選択されると、ステップS1502へ処理を進め、ステップS1502では、ネットワーク参加処理が行われ、複合撮影モードにおける協調撮影を行うための環境構築を行う。尚、ネットワーク参加処理の詳細は、図16にて後述する。
ステップS1503では、カメラが待機状態となり、カメラに対してイベントを発生させると必要な処理が実行される。尚、待機状態は、複合撮影モードが継続する限り保たれる。待機状態が解除されるケースとしては、参加しているネットワークからカメラを離脱させたり、カメラの電源が落とされたりすると、待機状態が解除され、複合撮影モードは終了する。(ステップS1511)
ステップS1504では、通知されたイベントによって処理を振り分けるため、まず、通知されたイベントがプレビュー表示処理であるか否かを判定し、プレビュー表示処理であると判定した場合は、ステップS1505へ処理を進め、プレビュー表示処理でないと判定した場合は、ステップS1506へ処理を進める。本ステップにおける判定方法としては、カメラにてプレビュー画面1401が起動されたか否かによって判定し、起動された場合にプレビュー表示処理を実行する。
ステップS1505では、プレビュー表示処理を実行する。プレビュー画面1401には、ネットワークに参加しているカメラで撮影された画像データが出力され、更に、識別名入力画面501において各カメラに設定されたカメラの識別情報も当該画像データと併せて出力されるため、画像データのプロパティ情報等を参照することなく、一見してどのカメラで撮影されたかを判別することが出来る。なお、プレビュー表示処理の詳細については、図20にて後述する。
ステップS1506では、通知されたイベントが撮影処理であるか否かを判定し、撮影処理であると判定した場合、ステップS1507へ処理を進め、撮影処理であると判定しない場合、ステップS1508へ処理を進める。本ステップにおける判定方法としては、カメラに備えられたシャッターボタン(不図示)が押下されたか否かによって判定し、押下されたと判定した場合は、ステップS1507へ処理を進め、押下されたと判定しない場合、ステップS1508へ処理を進める。
ステップS1507では、撮影処理を実行する。撮影処理は、親カメラ101、子カメラ102、103を問わず、ネットワークに参加している全てのカメラで可能である。なお、撮影処理の詳細については、図18にて後述する。
ステップS1508では、通知されたイベントが画像保存処理であるか否かを判定し、画像処理であると判定した場合、ステップS1509へ処理を進め、画像処理であると判定しない場合、ステップS1510へ処理を進める。
ステップS1509では、画像保存処理を実行する。本ステップでは、撮影しているカメラが親カメラ101の場合は、自機へ保存処理を行い、撮影しているカメラが子カメラ102、103の場合は、親カメラ101へ撮影して得られた画像データを送信する。親カメラ101は、画像データを受信すると、画像保存処理を実行する。なお、画像保存処理の詳細については、図19にて後述する。
ステップS1510では、カメラの識別情報を登録する処理の要求イベントが通知されると、カメラテーブル登録処理を実行する。本ステップでは、カメラに備えられたテーブルにカメラの識別情報を登録する処理である。識別情報の登録要求が発生すると、識別情報をテーブルに登録する。
親カメラ101が自機情報を登録する場合は親カメラテーブル1201へ、子カメラ102、103から登録要求を受信した場合は、ネットワーク参加カメラテーブル1301に登録する。
本イベントはステップS1502においても発生する(図16に示すステップS1619、S121)。ネットワーク参加カメラテーブル1301への登録要求のイベントは、随時通知され更新される可能性がある。これは、本システムでは常にネットワークへの参加が可能であるためである。なお、カメラテーブル登録処理の詳細については、図17にて後述する。
以上、ステップS1504からステップS1510における各ステップの処理を繰り返し実行することによって、本システムの実現が可能となる。
図16は、ネットワーク参加処理に関するフローチャートである。
ステップS1601では、既存ネットワークの検索処理が行われる。検索処理は、ネットワークのスキャン機能を利用し、当機能に依るスキャン処理によって、無線LAN上に存在する既存ネットワークの一覧や、それに伴う情報(SSIDや認証情報など)を取得可能である。
ステップS1602では、ステップS1601において既存ネットワークが存在した場合、ステップS1603へ処理を進め、既存ネットワークが存在しない場合、ステップS1605へ処理を進める。
ステップS1603では、ステップS1601において取得した情報を参加ネットワーク選択画面401に一覧表示し、ステップS1604では、参加ネットワーク選択画面401に一覧表示されたネットワークからユーザが参加したいネットワークの指定を受付ける。
なお、ここでは、無線LANを使用する態様を取り上げたが、有線LANでも問題はない。
ステップS1605では、ステップS1604において指定を受付けた参加ネットワークによって処理が分岐する。参加ネットワーク選択画面401にて「新規作成」が選択された場合は、自機を親カメラ101に設定するため、ステップS1606へ処理を進め、「新規作成」が選択されずに、既存のネットワークに参加することが選択された場合は、自機が子カメラ102、103となり、ステップS1611へ処理を進める。
ステップS1606では、自機を親カメラ101に設定すべく、新規ネットワークの作成処理が行われ、ステップS1607では、自機を親カメラ101として、親カメラテーブル1201に識別情報を登録する。
ここでは、図17に示すカメラテーブル登録処理が呼び出される。続いて、ステップS1608では、初期設定処理が行われる。初期設定画面601を出力し、命名規則や日時が設定されることを受付ける。
ステップS1611では、自機の既存ネットワークへの参加処理を実行する。この場合、自機は親カメラ101へ子カメラとして登録される。ステップS1611では、検索処理時に取得したネットワーク情報や認証情報を利用して、参加ネットワーク選択画面401にて選択されたネットワークに接続する。尚、ネットワークへの接続処理は、無線/有線LANの規格に則る。
ネットワークへの参加が成功すると、ステップS1612では、親カメラ101から初期設定情報を取得する。そして、取得した情報(命名規則や日時設定)を自機へ登録する。
図13に示すように、親カメラ情報や命名規則情報は、子カメラのネットワーク参加カメラテーブル1301に登録される。
ステップS1614では、保存設定選択画面801を出力する。保存設定選択画面801によって、撮影して得られた画像データの登録先を「親カメラのみ」か「親カメラと自機」か、を選択することが出来る。
ステップS1615では、識別名入力画面501を出力するが、自機が親カメラ101であっても子カメラ102、103であっても、必ず本画面を出力する。自機が子カメラ102、103の場合は、親カメラ101からネットワーク上のカメラ識別情報の一覧を取得して表示する。
ステップS1616では、識別名入力画面501において、設定された自機の識別名やマークを受付ける。ステップS1617では、識別名やマークは、参加しているネットワーク上で一意となる必要があるため、画面の決定ボタン(不図示)が押下されるタイミングで、必ず重複確認を行う。
重複している場合は、再入力を促して、ステップS1616へ処理を進め、重複していない場合は、ステップS1618へ処理を進める。
ステップS1618では、自機が親カメラ101であるか否かを判定し、自機が親カメラ101であると判定した場合、ステップS1619へ処理を進め、自機が親カメラ101であると判定しない場合、ステップS1620へ処理を進める。
ステップS1619では、そのまま自機に備えたテーブルの親カメラテーブル1201へ登録する。本ステップでは、図17に示すカメラテーブル登録処理が呼び出される。
ステップS1620では、親カメラ101へ識別情報を送信し、親カメラ101では親カメラテーブル1201のネットワーク参加カメラとして登録する。本ステップにおける親カメラ101への自機の識別情報の送信が、親カメラ101への参加登録とみなされる。
ステップS1621では、自機の識別情報をネットワーク参加カメラテーブル1301の「自カメラ情報」として登録する。
図17は、識別情報の登録に関するカメラテーブル登録処理を示すフローチャートである。本フローチャートは、自機が親カメラの場合にのみ実行する。
ステップS1701では、登録したい識別情報が、親カメラテーブル1201に登録されている識別名やマークと他カメラと重複していないか確認する。重複していた場合は、本処理を終了し、重複していない場合は、ステップS1702へ処理を進める。
ステップS1702では、登録対象の識別情報が親カメラ101のものか、子カメラ102、103のものかによって、処理を分岐する。親カメラ101である自機の情報を登録する場合は、ステップS1703へ処理を進め、ステップS1703では、親カメラテーブル1201の親カメラへ識別情報を登録する。
子カメラから受信した情報を登録する場合は、ステップS1704へ処理を進め、ステップS1704では、ネットワーク参加カメラテーブル1301へ、子カメラ102、103の識別情報を新規に登録する。この登録処理によって、子カメラ102、103は、親カメラ101に登録され、ネットワークに正式参加した状態となる。
図18は、撮影処理に関するフローチャートが示されている。
まず、ステップS1801では、カメラのシャッターボタン(不図示)が押下され、自機にて撮影が行われると、被写体に対する画像データを取得し、ステップS1802では、画像データの画像情報から撮影日時を取得する。
ステップS1803では、自身にそなえたテーブル(1201、あるいは1301)に登録されている命名規則情報を取得し、この規則に則り画像データに対する名称を作成し、ステップS1804では、ステップS1803において作成した名称を撮影して得られて画像データを付して一時的に保存する。
ステップS1805では、画像データを撮影したカメラを識別できるようにするため、識別名入力画面501で設定した識別情報を自身に備えたテーブル(1201、あるいは1301)から取得し、Exif情報に登録する。
ステップS1806では、自機が親カメラ101であるかどうかを確認し、自機が親カメラ101であると判定した場合は、ステップS1807へ処理を進め、自機が親カメラ101であると判定しない場合は、ステップS1808へ処理を進める。
ステップS1807では、画像保存処理を実行する。詳細は、図19を用いて後述する。
ステップS1808では、子カメラ102、103にて撮影して得られた画像データを親カメラ101に転送する処理が実行される。この時、親カメラ101は、画像保存イベントを受信すると、図19に示す画像保存処理を実行する。
その後、ステップS1809では、自機の画像保存設定を確認する。設定内容は、保存設定選択画面801にて指定された値を用いる。保存設定が、「親カメラのみに保存(自機へは保存しない)」として設定された場合は、ステップS1810へ処理を進め、ステップS1810では、ステップS1804において一時的に保存した画像データを削除して、撮影処理を終了する。
一方、保存設定が、自機にも画像データを残すよう「親カメラと自機両方へ保存」として設定された場合は、ステップS1811へ処理を進め、ステップS1811では、ステップS1804で一時的に保存した画像データを自機の記憶媒体(SDカードなど)に保存する。
図19は、画像保存処理に関するフローチャートである。親カメラ101で撮影した場合も、子カメラ102、103で撮影した場合も、本フローチャートが実行される。
ステップS1901では、親カメラ101もしくは子カメラ102、103にて撮影された保存対象とする画像データに関してのExif情報を読み込み、読み込んだExif情報から、撮影したカメラを一意に識別するカメラ識別情報を取得する。
ステップS1902では、保存対象とする画像データが、自身が参加しているネットワークに登録されているカメラの画像データかどうか確認を行う。本ステップでは、テーブル(1201、あるいは1301)にあるネットワークカメラの一覧と比較し、一覧内に該当するカメラがあれば、登録されているカメラと判定し、ステップS1903へ処理を進め、一覧内に該当するカメラがなければ、登録外のカメラとして、本処理を終了する。
続いて、ステップS1903では、画像データの保存先である記憶媒体に、保存対象とする画像データに対する名称と重複する名称を有する画像データが存在しないかをチェックする。もし、重複する画像データが存在する場合は、ステップS1904へ処理を進め、重複する画像データが存在しない場合、ステップS1911へ処理を進める。
ステップS1904では、既存の画像データと保存対象とする画像データとの撮影日時をExif情報から取得し、取得した撮影日時を比較する。ステップS1905では、全ての既存の画像データよりも先に撮影されたか否かを判定し、先に撮影されたと判定した場合は、ステップS1909へ処理を進め、先に撮影されたと判定しない場合は、ステップS1906へ処理を進める。
ステップS1906では、使用可能なリビジョン番号を取得する。重複する画像データの名称にリビジョン番号が付された画像データが存在しなければ、単純にリビジョン番号として「1」を取得し、既にリビジョン番号が付された重複する画像データが存在する場合、更に保存対象とする画像データと撮影日時の比較を行い、撮影日時の古い順にリビジョン番号を割り振る。
ステップS1907では、ステップS1906において取得したリビジョン番号を用いて、画像データに付する名称を作成する。単純にリビジョン番号として「1」を取得した場合、「画像データに対する名称_1」とし、撮影日時の古い順にリビジョン番号を取得した場合、「画像データに対する名称_リビジョン番号」として名称を作成する。
ステップS1908では、ステップS1907において作成した名称を用いて、画像データに対する名称をリネームする。
ステップS1909では、既存の画像データに対する名称のリネームを行うため、既にリビジョン番号が付されていれば、使用されているリビジョン番号を1つインクリメントし、ステップS1910において、画像データに対する名称を1つインクリメントされたリビジョン番号を使用して当該画像データに付する。
ステップS1909において、リビジョン番号が付されていなければ、リビジョン番号を単純に「1」として、ステップS1910において、画像データに対する名称を「画像データに対する名称_1」としてリネームを行う。
図20は、プレビュー表示処理に関するフローチャートが示されている。
まず、ステップS2001は、プレビュー表示は、記憶媒体に記憶された画像データの数分行われることを示している。
ステップS2002では、画像データのExif情報から、撮影カメラのカメラ識別情報を取得し、ステップS2003では、ステップS2002において取得したカメラ識別情報に該当するカメラの識別名とマークとを、テーブル(1201、あるいは1301)から取得する。
ステップS2004では、ステップS2003において取得した識別名とマークとを画像データの任意の場所に合成し、ステップS2005では、ステップS2004において合成した画像を、プレビュー画面1401に出力する。
以上の処理を、全保存画像に対して行い、プレビュー表示を実行する。なお、次画像が出力されるタイミングは、手動の場合は次ボタン(不図示)押下時、スライドショーの場合は一定時間経過時である。
[第2の実施形態]
本発明の第2の実施形態について説明する。尚、第1の実施形態に係る構成、及びフローチャートにおける処理については、同一のものについては、同一の符号を用いて、説明を行い、その詳細については、説明を省略するものとする。
第1の実施形態では、親カメラと子カメラとの関係を設定した後、その関係を維持したまま、各カメラで撮影を行うものであるが、第2の実施形態では、親カメラを他のカメラにスイッチすることを想定した態様を示している。
この態様が用いられることが想定し得る状況としては、例えば、子カメラで撮影して得られた画像データを親カメラが備える画像保存部209へ記憶するにあたり、当該画像保存部209の空き容量が、なくなってしまう場合等があげられる。
図21には、親カメラ101を子カメラにスイッチするための親カメラスイッチ画面が示されており、親カメラスイッチ画面2100は、親カメラ101の画像表示部208に表示される画面であり、親カメラ101とネットワークを構成する子カメラの一覧を表示する子カメラ一覧2102、親カメラ101へのスイッチ対象とすべく子カメラを選択するための子カメラ選択欄2104、子カメラ選択欄2104において選択された子カメラを親カメラ101にスイッチする際に押下するための転送ボタン2106、親カメラスイッチ画面2100を閉じるための中止ボタン2108を備えている。
また、図22には、自身が親カメラ101の場合に、子カメラへ変更するか否かを確認するための親カメラスイッチ確認画面が示されており、親カメラスイッチ確認画面2200は、自身を親カメラ101から子カメラへ変更する際に押下するためのYESボタン2202、親カメラ101から子カメラへの変更を行わない際に押下するためのNOボタン2204を備えている。
図23には、親カメラ101とネットワークを構成する子カメラ102、103を、親カメラにスイッチする際に処理を示すフローチャートが示されている。本フローチャートにおける各処理は、親カメラのCPU201の制御の元、処理が実行される。
ステップS2301では、親カメラ101とネットワークを構成する子カメラ102、103を、親カメラにスイッチするか否かの判定を行う。この判定の1例としては、親カメラ101に備えた画像保存部209の空きの容量が、所定の容量を超えているか否かの判定を行う。つまり、子カメラ102、103において撮影して得られた画像データを保存可能な、空き容量が残っているか否かの判定を行う。
そして、ステップS2302では、親カメラスイッチ画面2100を表示し、親カメラテーブル1201に記憶された親カメラ101の情報と当該親カメラ101とネットワークを構成する子カメラ102、103の情報とを取得し、親カメラスイッチ画面2100の子カメラ一覧2102には、子カメラ102、103の情報を表示する。
ステップS2303では、画像表示部208を介して、親カメラスイッチ画面2100の子カメラ選択欄2104が選択された状態で、転送ボタン2106が押下されたか否かを判定し、押下されたと判定した場合、ステップS2304へ処理を進め、中止ボタン2108が押下されたと判定した場合、ステップS2301へ処理を進める。
ステップS2304では、親カメラ101は、親カメラスイッチ確認画面2200を表示し、自身と構成されたネットワークに対して、子カメラへスイッチするか否かを判定する。尚、スイッチする場合とは、YESボタン2202が押下されたことを検知した場合を示し、スイッチしない場合とは、NOボタン2204が押下されたことを検知した場合を示す。
子カメラへスイッチすると判定した場合、ステップS2305へ処理を進め、スイッチしないと判定した場合、ステップS2306へ処理を進める。
ステップS2305では、親カメラ101は、自身を子カメラとして設定することを示す情報を生成し、ステップS2306では、ステップS2302において親カメラテーブル1201から取得した子カメラの情報のうち、ステップS2303で選択された子カメラに関する情報を用いて、当該選択された子カメラへ、親カメラへスイッチする旨を示す情報(前述の自身を子カメラとして設定することを示す情報に該当)、親カメラテーブル1201から取得した他の子カメラの情報、及びステップS2305において設定した自身を子カメラとして設定することを示す情報を送信する。
すると、これらの情報を受信した子カメラ102あるいは103は、親カメラとしてネットワークへ参加をするため、親カメラを自身のカメラの情報、つまり、ネットワーク参加カメラテーブル1301の自カメラ情報、及び命名規則に関する情報を、子カメラ自身に親カメラテーブル1201を生成して、記憶する。
ステップS2307では、親カメラ101は、ステップS2303で選択されなかった子カメラに対して、親カメラが変更する情報、ステップS2303で選択された子カメラに関する親カメラテーブル1201から取得した情報を送信する。
すると、これらの情報を受信した、ステップS2303で選択されなかった各子カメラは、ネットワーク参加カメラテーブル1301の親カメラの情報を、受信した親カメラへスイッチする子カメラの情報(ステップS2303で選択された子カメラに関する情報)で更新する。
ステップS2308では、親カメラ101は、ネットワーク参加カメラテーブル1301を生成する。尚、生成時には、親カメラ101は、ステップS2303で選択された子カメラに関する親カメラテーブル1201から取得した情報を用いて、生成したネットワーク参加カメラテーブル1301の親カメラの情報として更新し、親カメラテーブル1201に記憶された親カメラの情報及び命名規則を、生成したネットワーク参加カメラテーブル1301の自カメラ情報及び命名規則として更新する。そして、親カメラテーブル1201の削除を行う。
[第3の実施形態]
本発明の第3の実施形態について説明する。尚、第1及び2の実施形態に係る構成、及びフローチャートにおける処理については、同一のものについては、同一の符号を用いて、説明を行い、その詳細については、説明を省略するものとする。
第2の実施形態では、画像保存部209の空き容量が無くなる場合を1例として説明したが、このような場合以外にも、親カメラ101の電源をOFFする場合にも、親カメラ101を子カメラへスイッチするようなことも想定される。
この場合、図24に示す電源OFF前確認画面2400を表示させ、ユーザは、電源をOFFする前に、自身が参加しているネットワークにおいて、親カメラ101を子カメラに変更するか否かを選択することが可能である。
図25には、親カメラの電源をOFFする際に、親カメラ101とネットワークを構成する子カメラ102、103を、親カメラにスイッチする処理を示すフローチャートが示されている。本フローチャートにおける各処理は、親カメラのCPU201の制御の元、処理が実行される。
図23に示すフローチャートをほぼ同様な処理を行うが、ステップS2401では、親カメラ101における電源をOFFにする指示入力がなされたか否かを判定し、指示入力がなされた場合、ステップS2302へ処理を進める。この処理以降は、第2の実施形態における図23に示すフローチャートのうち、第3の実施形態では不要とみなされるステップS2301、ステップS2304、及びステップS2305を省略した処理を実行する。
[第4の実施形態]
本発明の第4の実施形態について説明する。尚、第1乃至3の実施形態に係る構成、及びフローチャートにおける処理については、同一のものについては、同一の符号を用いて、説明を行い、その詳細については、説明を省略するものとする。
第1の実施形態では、子カメラ102、103で撮影して得られた全ての画像データが、撮影したタイミングで、親カメラ101へ自動送信されるが、第4の実施形態では、所定の条件を満たした画像データのみを親カメラ101へ送信するものである。
図26には、撮影処理に関するフローチャートが示されており、本フローチャートにおける各処理は、親カメラのCPU201の制御の元、処理が実行される。
本フローチャートにおける各処理は、 図18に示す撮影処理に関するフローチャートとほぼ同様な処理を行うものであり、異なる点は、ステップS2601に関する処理が異なっている。
ステップS2601では、子カメラ102、103で撮影して得られた画像データが所定の条件を満たすか否かを判定し、満たすと判定した場合、ステップS1808へ処理を進め、満たすと判定しない場合、ステップS1811へ処理を進める。
本ステップにおける所定の条件を満たすとは、例えば、撮影対象を所望する人物の顔画像を子カメラ102、103へ事前に登録しておき、子カメラ102、103で撮影して得られた画像データに、登録しておいた顔画像が含まれる場合、所定の条件を満たしたとみなす態様があげられる。
この態様を取る場合、子カメラ102、103で撮影して得られた画像データに、1人でも、登録しておいた顔画像が含まれる場合を、所定の条件を満たしたと見做すことも可能であり、更に、子カメラ102、103で撮影して得られた画像データに、登録しておいた顔画像が全て含まれる場合を、所定の条件を満たしたと見做すことも可能である。
あるいは、登録すべく顔画像をグループ化しておき、子カメラ102、103で撮影して得られた画像データに、何れの1グループ内の顔画像が全て含まれる場合を、所定の条件を満たしたと見做しておいても良いし、予め不図示の画面で設定しておいたグループのうち、1グループ内の顔画像が全て含まれる場合を、所定の条件を満たしたと見做しておいても良い。
更に、子カメラ102、103で撮影して得られた画像データに含まれる被写体に関して、ピントが適切にあっている場合を、所定の条件を満たしたと見做しておいても良い。
[第5の実施形態]
本発明の第5の実施形態について説明する。尚、第1乃至4の実施形態に係る構成、及びフローチャートにおける処理については、同一のものについては、同一の符号を用いて、説明を行い、その詳細については、説明を省略するものとする。
第1及び4の実施形態では、子カメラ102、103で撮影して得られた画像データが、撮影したタイミングで、親カメラ101へ自動送信されるが、第5の実施形態では、子カメラ102、103から親カメラ101へ画像データを送信する前に、一度、子カメラ102、103で送信対象となる画像を、ユーザが確認した後に、親カメラ101へ送信するものである。
この場合、図27に示す転送確認画面2700を表示させ、転送確認画面2700の転送画像表示領域2702に対して、撮影して得られた画像データを表示し、ユーザは、表示された画像データを確認した後、親カメラ101へ転送する場合、転送ボタン2704を押下し、親カメラ101への転送を辞める場合、中止ボタン2706を押下する。
図28には、撮影処理に関するフローチャートが示されており、本フローチャートにおける各処理は、親カメラ101のCPU201の制御の元、処理が実行される。
本フローチャートにおける各処理は、図18に示す撮影処理に関するフローチャートとほぼ同様な処理を行うものであり、異なる点は、ステップS2801及びステップS2802に関する処理が異なっている。
ステップS2801では、転送確認画面2700を表示し、ステップS2802では、転送確認画面2700の転送ボタン2704が押下されたと判定した場合、ステップS1808へ処理を進め、中止ボタン2706が押下されたと判定した場合、ステップS1811へ処理を進める。
尚、転送確認画面2700については、1回の撮影毎に、撮影して得られた画像データを確認しているが、所定枚数の画像データが得られたタイミング、あるいは、当該画像データを転送したい際に、画面(不図示)から転送指示がなされたタイミングで、そのタイミング間で撮影して得られ、メモリ等の一時記憶領域へ記憶された画像データの確認を行うことも可能である。
その場合、ユーザは、複数枚の画像データを確認する必要があるが、図29に示す転送画像選択画面2900を用いて、転送対象とすべく画像データを選択して、親カメラ101へ転送することも可能である。
転送画像選択画面2900は、転送対象とすべく画像データを選択するための転送対象選択欄2902、撮影して得られた画像データを表示する選択画像表示領域2904、転送画像選択画面2900の表示領域に納まらない画像データを表示する際に押下するための前ボタン2906及び後ボタン2908、転送対象選択欄2902が選択された画像データを転送する際に押下するための転送ボタン2910、転送を辞める際に押下するための中止ボタン2912を備えている。
尚、撮影処理については、ステップS2801において、転送確認画面2700の代わりに、転送画像選択画面2900が表示され、ステップS2802では、転送対象選択欄2902が選択された状態で転送ボタン2910が押下された場合、ステップS1808へ処理を進め、中止ボタン2912が押下された場合、ステップS1801へ処理を進める。
また、第4の実施形態において、ステップS2601では、子カメラ102、103で撮影して得られた画像データが所定の条件を満たすか否かを判定していたが、本ステップで、所定の条件を満たすと判定しない場合のみ、転送確認画面2700に、所定の条件を満たすと判定しない画像データを表示し、転送するか否かを選択させても良い。
あるいは、本ステップで、所定の条件を満たすと判定しない場合、該当する画像データを一時記憶領域へ保存しておき、転送画像選択画面2900に当該画像データを表示し、転送するか否かを選択させても良い。
また、本発明は、例えば、システム、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることができる。
また、撮影装置によって読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、撮影装置で稼働しているOS等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、撮影装置に備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その撮影装置に備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステム、あるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。