(第1の実施の形態)
以下本発明をデジタルカメラに適用した場合の第1の実施の形態について図面を参照して説明する。
図1はその外観構成を示すもので、図1(A)が主にこのデジタルカメラ10の左斜め上方から見た前方側、図1(B)がデジタルカメラ10の右斜め上方から見た背面側の各斜視図である。
デジタルカメラ10の前面側にズーム機構を有する撮影レンズ11が取付けられ、右端のグリップ部上端面にレリーズキー12が配設されると共に、同グリップ部内には方位・3次元傾斜角センサ13が内在される。
また、デジタルカメラ10の上面には、右端側よりモード切替ダイヤル14、液晶表示部15、ペンタプリズム部のポップアップ式内蔵フラッシュ16及び外付けフラッシュ用ホット端子17、GPS受信アンテナ18等が配設される。
GPS受信アンテナ18は、後述する如く図示しない複数のGPS衛星からの到来電波を受信してこのデジタルカメラ10の現在位置を3次元座標(緯度/経度/高度)で正確な現在時刻の情報と共に検出するべく設けられる。
さらにデジタルカメラ10の背面側には、光学ファインダ19、カーソルキー20、数値入力キー21、及びモニタ表示部とタッチパネル機能を兼ねた電子ファインダ22が設けられる。
電子ファインダ22は、バックライト付きのカラー液晶パネルと透明タッチパネルとが一体にして構成され、その基部が2軸ヒンジ機構とされることで表示面/タッチ面を所定の範囲内で任意に可動させることができる。
加えて、デジタルカメラ10のグリップ部を形成する背面右端乃至右側面の外面は、このデジタルカメラ10の電源となる電池及び記録媒体となるメモリカードを収納する収納部のカバー23を兼ねている。
次に図2によりこのデジタルカメラ10の電子回路の構成について説明する。
上記撮影レンズ11は、複数の光学レンズ群の光軸中に絞り機構11aとシャッタ機構11bとが挿入されるもので、これらを介して得られた撮影光は例えばCCDで構成される撮像素子31で結像される。
この撮像素子31は、ドライバ32により走査駆動されて光像に対応した画素毎の電荷を出力するもので、これがゲイン調整、サンプルホールドされた後にA/D変換器33でデジタル化されて画像データが形成され、映像信号処理34に送られる。
映像信号処理34は、原色系のカラー画像データを輝度色差系の同データに変換し、γ補正等のプロセス処理を施した上で処理後の画像データをバッファメモリとなる画像メモリ35に保持させる。
この画像メモリ35に保持された画像データを撮影制御回路36が読出し、CPUで構成される主制御回路37へ送出する。
撮影制御回路36はまた、上記撮影レンズ11中の特にフォーカスレンズ及びズームレンズの位置を検出するレンズ位置検出部38からの検出信号を受け、レンズ駆動部39に駆動信号を送出して上記各レンズの位置を制御する他、シャッタ・絞り駆動部40に制御信号を送出して上記撮影レンズ11中の絞り機構11a及びシャッタ機構11bの動作を制御する。
また、上記撮影レンズ11の一部を介して測光・測距センサ41に光が入射され、その検出信号が色温度検出部42、測光部43、及び測距部44へ出力される。
これら色温度検出部42、測光部43、測距部44は、測光・測距センサ41の検出信号から光像の色温度、光量、及び被写体までの距離をそれぞれ検出、測定し、その結果を共に上記撮影制御回路36へ出力する。
さらに撮影制御回路36は、上記内蔵フラッシュ16を発光駆動する、大容量コンデンサを含んだフラッシュ駆動部45、及び該内蔵フラッシュ16での発光照射角度を可変するべく、内蔵フラッシュ16を構成するキセノン放電管とそのリフレクタとの間隔を可変する照射角駆動部46に対しても制御信号を送出する。
主制御回路37は、上記撮影制御回路36の他に、音声復号化部47、音声符号化部48、姿勢検出部49、GPSレシーバ50、入力回路51、座標入力回路52、表示メモリ53、表示駆動部54、画像処理部55、圧縮符号化/伸長復号化部56、画像データメモリ57、プログラムメモリ58、データメモリ59、外部メモリインタフェース60、入出力インタフェース61、及び電源制御部62とも接続される。
音声復号化部47は、与えられた音声データを復号化してデジタル値の音声信号を得、これをD/A変換器63を介してアナログ化した上でデジタルカメラ10の背面側に配設されたスピーカ64により拡声放音させる。
一方、デジタルカメラ10の前面側に配設されたマイクロホン65より入力された音声は、A/D変換器66でサンプリングされてデジタル化された後に、音声符号化部48で所定の変調方式による符号化が実行され、主制御回路37へ出力される。
姿勢検出部49は、上記方位・3次元傾斜角センサ13より得られるθyaw、θpitch、θrollの各信号によりデジタルカメラ10のその時点でデジタルカメラ10の正面が向いている方位と姿勢とを検出し、その検出結果を主制御回路37へ出力する。
GPSレシーバ50は、上記GPS受信アンテナ18で受信された複数のGPS衛星からの到来電波により、原子時計に基づく正確な現在時刻と現在位置の3次元座標(緯度/経度/高度)とを算出して主制御回路37へ出力する。
入力回路51は、上記レリーズキー12、モード切替ダイヤル14、カーソルキー20、数値入力キー21を含む各種キーの操作を受付けてその操作信号を主制御回路37へ出力する。
座標入力回路52は、上記電子ファインダ22の一部を構成するタッチパネル22aでのタッチに基づく2次元座標データを生成して主制御回路37へ出力する。
表示メモリ53は、主制御回路37から与えられる画像データを保持して表示駆動部54に読出すことで、表示駆動部54が電子ファインダ22を構成するカラー液晶パネルでなる表示部22bを駆動表示する。
画像処理部55は、画像データに対するホワイトバランス、コントラスト、シャープネス等の変換や輝度補正、モノクロ/セピア処理等の各種画像処理を主制御回路37からの制御に基づいて実行する。
圧縮符号化/伸長復号化部56は、画像記録時の例えばJPEG(Joint Photograph coding Experts Group)規格に基づくDCT(離散コサイン変換)やエントロピー符号化としてのハフマン符号化等により原画像データを圧縮する一方で、画像再生時には上記データ圧縮とは逆の手順で圧縮されているデータを伸長する。
画像データメモリ57は、上記圧縮符号化/伸長復号化部56でのデータ圧縮/伸長時の画像データを一時的に保持する。
プログラムメモリ58は、後述する動作時に主制御回路37が実行する動作プログラムや同プログラムで使用する定数などのデータ等を固定的に記憶する。
データメモリ59は、主制御回路37のワークエリアとして使用される他、天体の位置座標データ、天体の視位置計算データ、建物等の位置座標データ、建物等の視位置計算データ、‥‥等、後述する動作時に使用する各種データを記憶する。
外部メモリインタフェース60は、このデジタルカメラ10に記録媒体として装着されるメモリカード67と主制御回路37との間で画像データの送受を行なう。
入出力インタフェース61は、このデジタルカメラ10に設けられる、例えばUSB端子でなる入出力端子68と主制御回路37との間に通信部69と共に配置され、画像データを含む各種データの送受を行なう。
電源制御部62は、このデジタルカメラ10の電源となる電池70からの供給電圧を受け、これを安定化して上記主制御回路37へ与える一方で、電池70のモニタ管理等を行なう。
次いで上記実施の形態の動作について説明する。
図3及び図4は、このデジタルカメラ10での撮影制御の処理内容を示すものであり、この制御動作は主として主制御回路37がプログラムメモリ58に記憶されている動作プログラムや定数等の固定データに基づいて実行する。
その当初に撮影モードや撮影条件等をユーザが任意に設定する(ステップA01)。
この設定に基づき、天体撮影モードが設定されたか否かを判断する(ステップA02)。ここで天体撮影モードが設定されたと判断した場合にのみ、このデジタルカメラ10の現在位置を入力するか、あるいは自動的な測位処理を行なう(ステップA03)。
図5は、GPSを用いた自動的な測位処理の内容を示すサブルーチンであり、その当初には、GPSレシーバ50がすでに起動されて動作中であるか否かを判断する(ステップB01)。
ここで、まだ起動されておらず動作中ではないと判断した場合にのみ、あらためてGPSレシーバ50での動作を起動させ(ステップB02)、その後起動が完了して測位が可能となるのを待機する(ステップB03)。
このステップB03で起動が完了したと判断した場合、もしくは上記ステップB01ですでに起動されていると判断した場合に、次いでGPS受信アンテナ18を用いて複数のGPS衛星からの到来電波を受信し、まず測位信号中の疑似乱数列PRN(Pseudo−Ramdom Noise)によるコードを受信復調して疑似距離を計測する(ステップB04)。
次いで、各GPS衛星の天体歴情報、及び起動データを取得し(ステップB05)、各GPS衛星の位置及び現在位置からの距離を算出する(ステップB06)。
そして、この算出結果から、現在デジタルカメラ10が位置している正確な3次元座標、すなわち経度λ、緯度φ、及び高度hを現在時刻と共に算出する(ステップB07)。
これら各座標値に基づき、測地系座標への変換処理を行ない(ステップB08)、結果としてこのデジタルカメラ10の位置する現在位置を取得して、主制御回路37へ出力し(ステップB09)、以上でこのサブルーチンを終了する。
図3のメインルーチンでは、ステップA03での測位処理に続き、今度は方位・3次元傾斜角センサ13、姿勢検出部49を用いてこのデジタルカメラ10の向き(方位、仰俯角、傾斜角など)を検出する(ステップA04)。
次いで、デジタルカメラ10の現在位置と、検出したカメラの向き、及びその時点での撮影レンズ11のズーム倍率から電子ファインダ22で本来見えるはずの概略の天体探索範囲を設定する(ステップA05)。
この設定した天体探索範囲に基づき、探索する天体の赤道座標(赤経αと赤緯δ)を設定し(ステップA06)、現在の日時と現在位置に基づいて探索する天体の視位置を算出して(ステップA07)、算出した天体の視位置すなわち方位角Az、高度角ψを順次データメモリ59に記憶する(ステップA08)。
そして、探索する天体の視位置をすべて算出したか否かを判断し(ステップA09)、まだ算出を終えていないと判断すると上記ステップA06からの処理に戻り、以後探索する天体の視位置をすべて算出すると判断するまでステップA06〜A09の処理を繰返し実行する。
図6は、天体の視位置シミュレーション画像の画面表示に関する処理の流れを示すものである。まず、天体の位置座標データ(図6(A))に対し、現在日時データ及び現在位置データを入力することで、天体の視位置を計算する(図6(B))。
計算結果を2次元画像として投影描画することで(図6(C))、シミュレーション視野画像を生成する(図6(D))。
図7は、天体の視位置の上記計算処理の概念を説明するものである。同図で、緯度φ、経度λに位置するカメラの観測点と、天体の位置を示す点の赤道座標(赤経α,赤緯δ)、及び天体の視位置である時角(Hour Angle)HA、方位角(Azimus)Az、高度角(仰角:Latitude)ψの関係を示す。すなわち、
cosψsinAz=cosδsinHA、
cosψcosAz=-cosφsinδ+sinφcosδcosHA、
sinψ=sinφsinδ+cosφcosδcosHA、
(但し、方位角Azは南〜西回り。)
図8は、天体を構成するシリウス、カノープス等、主要な恒星の位置座標データ(赤経α,赤緯δ)であり、これらのデータは上記データメモリ59に予め天体の位置座標データとして記憶しておくものとする。
図9及び図10は、恒星や星座など、天体(星)の視位置の計算処理の具体的なサブルーチンを示すものである。まず、デジタルカメラ10の現在位置(緯度φ、経度λ、高度h)を測位した結果を入力する(ステップC01)。ここで、角度の単位が°[deg]、高度の単位が[m]で入力された場合には、それぞれ図示する計算式により[rad][km]に変換する。
また、惑星位置などを詳細に求める場合には、緯度φを地心緯度φ′に変換しておく。ここで、地心緯度φ′は、次式
φ′=tan-1(0.9983055+0.000011*h[km])*tan(φ)
で与えられる。
次いで、計算日時(YY/MM/DD、hh/mm/ss)及びグリニッジ標準時刻GMTとの時差TDを入力する(ステップC02)。
合わせて、探索する天体の赤道座標(赤経α,赤緯δ)を図示する式により設定する(ステップC03)。
上記入力された計算日時と時差から、準ユリウス日(MJD1、修正ユリウス日MJD2)を次式
MJD1=INT(365.25*YY)+INT(YY/40)-INT(YY/100)
+INT(30.59*(MM-2))+DD+721088.5-2400000.5
MJD2=MJD1+hh/24+mm/1440+ss/86400=TD/24
(但し、MM≦2の場合は、MM=MM+12、YY=YY-1とする。)
により計算する(ステップC04)。
次いで、準ユリウス日MJD2より、グリニッジ恒星時θGを次式
ST=0.671242+1.002737909*(MJD2-40000)
ST=ST-INT(ST)
(但し、INT()は整数化する関数。)
θG[hour]=24[hour]*ST
θG[rad]=2π*ST
を計算する(ステップC05)。
次に、当該経度での地方恒星時「θG−経度λ(西経を+、東経を−とする)」及び天体の赤経αより、当該天体の時角HAを次式
HA[hour]=θG[hour]-λ[deg]/15-[hour]
HA[rad]=HA[hour]*15*π/180
を用いて求める(ステップC06)。
次いで、当該天体の方位角Az(南〜西回り)を次式
S1:cosψsinAz=cosδ*sinHA
C1:cosψcosAz=-cosLAT*sinδ+sinLAT*cosδ*cosHA、
Az=tan-1(S1/C1)
により計算する(ステップC07)。
さらに、時角HA、天体の赤緯δを用い、当該天体の高度角ψを次式
S2:sinψ=sinLAT*sinδ+cosLAT*cosδ*cosHA、cosδ*sinHA
C2:cosψ=√((1-(S2))2)または√((S1)2+(C1)2)
ψ=tan-1(S2/C2)
により算出する(ステップC08)。
なお、上記方位角Az、高度角ψの計算式中におけるtan-1(Sn/Cn)(n=1,2)の計算では、0°〜360°(0〜2π)の範囲に拡大できるように象限の判別を行ない、θ=tan-1(Sn/Cn)とすると
C>0、S>0の場合には、θ=tan-1(Sn/Cn)のままでよいが、
C>0、S<0の場合には、θ=2π−θの形に変換する。
同様に、C<0の場合には、θ=π−θの形に変換する。
また、C=S=0の場合には、θ=不定(または天頂)とし、
C=0、S>0の場合には、θ=π/2
C=0、S<の場合には、θ=3π/2
π−θの形に変換する。
上記のように求めた当該天体の視位置、すなわち方位角Az及び高度角ψを出力する(ステップC09)。
以上の計算を、各天体に関して繰返して実行する。
また、上記図9及び図10で説明した通常の天体(星)の視位置の計算に加えて、太陽、月、惑星の視位置を計算する場合の詳細な処理内容についても図11及び図12を用いて説明する。
図10及び図11は、太陽、月、惑星の視位置の視位置の計算処理のサブルーチンである。太陽を除く恒星のように赤道座標上でほとんど動かない天体と違い、太陽や月、及び太陽系の各惑星では、その赤道座標が日々変化するので、まずその赤道座標を求める必要がある。赤道座標(赤経α,赤緯δ)が求まると、視位置(方位角Az、高度角ψ)の計算は上記図9及び図10で説明した恒星の場合とほぼ同様に行なうことができる。
処理手順としては、まず、デジタルカメラ10の現在位置(緯度φ、経度λ、高度h)を測位した結果を入力する(ステップD01)。ここで、角度の単位が°[deg]、高度の単位が[m]で入力された場合には、それぞれ図示する計算式により[rad][km]に変換する。
また、惑星位置などを詳細に求める場合には、緯度φを地心緯度φ′に変換しておく。ここで、地心緯度φ′は、次式
φ′=tan-1(0.9983055+0.000011*h[km])*tan(φ)
で与えられる。
次いで、計算日時(YY/MM/DD、hh/mm/ss)及びグリニッジ標準時刻GMTとの時差TDを入力する(ステップD02)。
合わせて、太陽、月の地心黄道座標を算出する(ステップD03)。太陽の赤道座標は、日々の変化は小さいので頻繁に計算する必要がない一方で、約1年で黄道12星座の中を一周するので、季節による変化は大きい。
太陽の赤道座標は、まず後述の位置略算式等を用いて、地球を中心とする太陽の地心黄道座標(黄経λS、黄緯βS、距離rS)を求める。求めた地心の黄道座標を、次式
U=cosβ*cosλ
V=cosβ*sinλ*cose-sinβ*sine
(但し、黄道傾斜角e=23.43929。)
W=cosβ*sinλ*sine+sinβ*cose
α=tan-1(V/U)
δ=sin-1(W)
により地心の赤道座標(赤経α,赤緯δ)に変換する。
月は、地球を約1日で一周する軌道を回っているので、その赤道座標の変化が大きく、短時間毎に更新計算する必要がある。同様に、月の位置略算式を用いて、月の地心黄道座標(黄経λM、黄緯βM、距離rM)を求める。求めた地心の黄道座標を、上記太陽の場合と同様に月の地心赤道座標(赤経α,赤緯δ)に変換する。
太陽系を構成する水星乃至冥王星の各惑星は、各惑星の位置略算式を用いて、各惑星の太陽を中心とする日心黄道座標(黄経λ'P、黄緯β'P、動経r'P)を求める(ステップD04)。求めた日心の黄道座標を、次式
X=r'P*cos(β'P)*cos(λ'P)
Y=r'P*cos(β'P)*sin(λ'P)
Z=r'P*sin(β'P)
を用いて日心黄道直交座標(X,Y,Z)に変換する(ステップD05)。
次に、上記太陽の地心黄道座標(黄経λS、黄緯βS、距離rS)を用いて、次式
A=X+rS*cos(βS)*cos(λS)
B=Y+rS*cos(βS)*sin(λS)
C=Z+rS*sin(βS)
により各惑星の日心の黄道直交座標(X,Y,Z)を、各惑星の地心の黄道直交座標(A,B,C)に変換する(ステップD06)。
さらに、各惑星の地心の黄道直交座標(A,B,C)を次式
λP=tan-1(B/A)
βP=tan-1(C/√(A2+B2))
rP=√(A2+B2+C2)
により地心の黄道座標(黄経λP、黄緯βP、距離rP)に変換する(ステップD07)。
そして、光行差、章動を補正して上記地心黄道座標(黄経λP、黄緯βP、距離rP)を視黄経λP、視黄緯βP、視距離rPに変換した上で(ステップD08)、上述の太陽や月の場合と同様に各惑星の地心赤道座標(赤経α,赤緯δ)に変換する(ステップD09)。
以上、太陽、月、及び各惑星の地心赤道座標(赤経α,赤緯δ)と地方恒星時からそれぞれの視位置、すなわち時角HA、方位角Az、及び高度角ψを計算して出力する(ステップD10)。
なお、ここで太陽、月、惑星の位置略算式についても説明しておく。
惑星の軌道位置は、6つの軌道要素、すなわち惑星軌道の長半径a、離心率e、元期における平均近点離角M0、黄道軌道面傾斜i、昇交点黄経Ω、及び近日点引数ωにより、ケブラー方程式等を解くことで、任意時点での惑星位置を算出できる。
ところで、軌道要素に基づく位置計算は2体問題に基づくものであるのに対し、実際の惑星の運動は純粋な2体問題ではなく、軌道要素が年月に連れて変化していくため、一般には次の書籍などに記載されているような惑星の位置略算式を用いて計算することが多い。
「新こよみ便利帳−天文現象・暦計算のすべて」(歴計算研究会編、恒星社厚生閣、1991/4)
「天体の位置計算 増補版」(長沢 工 著、地人書館、1985/09)
例えば、各惑星の日心黄経、日心黄緯、動径(太陽、月の場合には地心黄経、地心黄緯、距離)の項目毎に複数項の定数を記憶しておき、ユリウスの日(JD)またはユリウス世紀(T)などの時間毎に各定数を計算式に代入して複数項の計算を繰返して総和すると、各項目の近似値が比較的簡単且つ充分な精度で計算できる。
具体的には、ユリウス日をJD(=上述の準ユリウス日(MJD)+2400000.5)、歴表時を
ET=時+分/60+秒/3600-(±時差)−(±経度差/15°)
とすると、
T=(JD-245145.0)/36525.0+ET/(24*36525.0)
で求められる時間T(元期J2000.0=2000年1月1日正午からのユリウス世紀に相当)に対して、太陽、月、各惑星それぞれの黄経、黄緯、距離(動径)の各項目毎に、それぞれにAi、Ti'、Bi、Ci(i=1〜n)等のn組の定数(但し、Ti'はTまたは1のいずれか)を予め記憶しておき、次式の近似計算式Siを順次計算してその総和ΣiSiを求めることで略算できる。すなわち
Si=(Ai*Ti'*cos(Bi*T+Ci))
S=Σi(i=1~n)Si
例えば、太陽の地心黄経λSの略算用の各定数は以下の通りである。
A1=36000.7695、T1=T、B1= 0、 C1= 0、
A2= 280.4659、T2=1、B2= 0、 C2= 0、
A3= 1.9147、T3=1、B3=35999.05、C3=267.52、
A4= 0.02 、 T4=1、B4=71988.1、 C4=265.1、
A5= -0.0048、T5=T、B5= 0、 C5=268.0、
(以下、地心黄緯δS、地心距離rS用の定数も含め、煩雑になるので略)
月の地心黄道座標(視黄経λM、視黄緯βM、視距離rM)も、太陽と同様の略算式と、各項目毎の略算用の定数Ai、Ti'、Bi、Ci(i=1〜n)により計算できる。
例えば、月の地心視黄経λMの略算用の各定数は以下の通りである。
A1=481267.8809、T1=T、B1= 0、 C1= 0、
A2= 218.3162、 T2=1、B2= 0、 C2= 0、
A3= 6.2888、 T3=1、B3=477198.868、C3= 44.963、
A4= 1.274 、 T4=1、B4=413335.35、 C4= 10.74、
A5= 0.6583、 T5=1、B5=890534.22、 C5=145.7、
(以下、地心視黄緯δM、地心視距離rM用の定数も含め、煩雑になるので略)
各惑星の日心黄道座標(黄経λ'P、黄緯β'P、動径r'P)も、太陽、月の地心黄道座標と同様の略算式
S=Σi(i=1~n)(Ai*Ti'*cos(Bi*T+Ci))
と、それぞれの惑星、各項目毎の略算用の定数Ai、Ti'、Bi、Ci(i=1〜n)を記憶しておくことで、計算できる。
例えば、水星(Mercury)の日心黄経λ'P(Mercury)の略算用の各定数は以下の通りである。
A1=149474.07 、 T1'=T、B1= 0、 C1= 0、
A2= 252.2502、T2'=1、B2= 0、 C2= 0、
A3= 23.4405、T3'=1、B3=149472.5153、C3= 84.7947、
A4= 2.9818、T4'=1、B4=298945.031、 C4=259.589、
A5= 0.5258、T5'=1、B5=448417.55、 C5= 74.38、
(以下、日心黄緯δ'P(Mercury)、日心動径r'P(Mercury)用の定数、及び他の惑星の定数も含め、煩雑になるので略)
上記の各位置略算式では、項数nを多く計算するほど精確な位置を求めることができるが、データメモリ59内の天体の位置座標データ、視位置計算データ等の記憶容量が少ない場合や、主制御回路37での演算速度が遅い場合、及び電子ファインダ22での表示分解能が低い場合には、本例のような概算用途であれば4〜5項程度でも充分な精度での概算が得られる。
以上のように探索範囲にある天体に関してすべての視位置の計算と記憶とを終えると、メインルーチンである図3に戻り、次いで撮影レンズ11、測光・測距センサ41と色温度検出部42、測光部43を用いて被写体像の光量と色温度に伴う露出設定及びホワイトバランス設定の各処理を実行する(ステップA10)。
合わせて、撮影レンズ11中のズームレンズ及びフォーカスレンズを必要により適宜移動させるズーム処理及びAF処理を実行した後(ステップA11)、撮像素子31で撮像し、画像メモリ35に保持している被写体像を電子ファインダ22にてスルー画像P0として表示する(ステップA12)。
このとき、同時に天体撮影を行なうモードが設定されているか否かを判断する(ステップA13)。
天体撮影のモードが設定されていると判断した場合した場合にのみ、その時点での撮影レンズ11の焦点距離(f)と撮像素子31のサイズ(X’)、デジタルズーム倍率(Md)により電子ファインダ22で表示すべき被写体像の画角(θ)を算出する(ステップA14)。
その後、このデジタルカメラ10の向きと、上記ステップA14で算出した被写体像の画角(θ)に応じて、視野に入る各天体の像位置を計算し、天体視位置と天体情報を被写体像と重畳して電子ファインダ22により表示する(ステップA15)。
図6(G)は、撮像素子31で撮像し、A/D変換器33、映像信号処理34で画像信号処理を施すことで得られるスルー画像の内容を例示するものである。
一方で、上記図6(D)で示したシミュレーション画像に対し、図6(E)に示すように半透明化変換と文字データ、メモリ等の画像を付加した画像を生成することで、図6(F)に示すように天体の視位置シミュレーション画像P3を生成することができる。
この天体の視位置シミュレーション画像P3とスルー画像P0とを重畳することで、電子ファインダ22では図6(H)に示すような表示が実行される。なお、この図6(H)に示した画像例は、本実施の形態の説明を紙面で容易に行なうために明暗パターンを逆にしたものであるが、実際の電子ファインダ22では、図6(I)に示す如く夜景を対象とするものであるので全体を暗色で表示し、且つ天体を構成する恒星、月等を明色で表示することで、より自然な画像表示を実現する。
図13は、このとき電子ファインダ22で表示される画像のより詳細な例を示すものである。同図では、電子ファインダ22の画面最上端で、電池残量I01、フラッシュマーク(発光禁止)I02、ホワイトバランスモード(太陽光)I03、撮影モードI04、画像サイズI05、画質I06、残り枚数I07を並列して表示する一方で、同画面最下端で現在位置(経度及び緯度)I08と現在日時I09とを表示している。
しかして、電子ファインダ22の中央を含む大部分で、天体の視位置シミュレーション画像と被写体像のスルー画像とを重畳した画像I10を表示する。合わせて、同画像I10の左端側で、撮影レンズ11の焦点距離I11とズーム倍率のスケール表示I12を、同右端側でデジタルカメラ10の仰角との指針と目盛I13を表示する。
重畳画像I10においては、その中央にフォーカス枠を兼ねる照準I14を表示し、左右方向の中央位置にデジタルカメラ10の方位角の指針と目盛I15とを表示する。加えて、天体の等高度線I16及び方位線I17を配した上で、各恒星や星座、あるいは太陽、月、惑星などの視位置を表示している。同図は、2005年7月22日の19時00分の東京から方位角340°、高度角20°の場合の表示例を示し、主要な星座や恒星等の名称を併せて表示することで、より見やすいものとすることができる。
なお、上記ステップA13で天体撮影モードが設定されていないと判断した場合には、上記のようにステップA14,A15の処理は行なわない。
その後、メインルーチンでは図4に進み、レリーズキー12の操作による撮影指示があるか否かを判断する(ステップA16)。
ここでレリーズキー12の操作がないと判断した場合には、その他のキー処理を実行する一方で(ステップA17)、レリーズキー12が操作されたと判断した場合には、次いで天体撮影モードが設定されており、且つ単数、短時間(例えばB(バルブ)撮影または30[秒]未満)露光の撮影であるか否かを判断する(ステップA17)。
天体撮影モードが設定され、且つ単数、短時間露光の撮影であると判断した場合には、一旦撮影レンズ11のシャッタ機構11bをあえて全閉として被写体像が撮像素子31上に全く入射しない状態で撮影(ダークフレーム撮影)してその画像データを画像データメモリ57に保持する(ステップA18)。
その上で、今度はシャッタ機構11bを開けて設定された撮影条件に基づく撮影処理を実行する(ステップA19)。この撮影により得た画像データから、上記画像データメモリ57に保持しているダークフレーム撮影に基づく画像データを対応する各画素単位で減算することにより、個々の撮像素子31の画素構造に起因するノイズ成分を除去する処理を実行する(ステップA20)。
このノイズ成分を除去した後の画像データを圧縮符号化/伸長復号化部56にてデータ圧縮して符号化し、撮影条件や撮影時の天体情報等を添付してファイル化した上でメモリカード67に記録し(ステップA21)、以上で上記図3及び図4の一連の処理を一旦終了して、次の撮影に備えるべく再び始めからの処理に戻る。
また、上記ステップA17で天体撮影モードが設定されていないか、または設定されていても単数、短時間露出の撮影ではないと判断した場合には、次いで同じく天体撮影モードが設定されており、且つ複数枚の合成による長時間露光(多重露光)撮影であるか否かを判断する(ステップA22)。
天体撮影モードが設定され、且つ複数枚の合成による長時間露光撮影が選択されていると判断した場合には、まず1回目の露光として予め設定されているシャッタ速度に従った短時間露光で撮影を実行した上で(ステップA23)、撮影時の天体の視位置を算出し(ステップA24)、算出した視位置に応じて撮影画像を回転処理した画像データを一旦画像データメモリ57に保持する(ステップA25)。
その上で、所定枚数分の撮影を終えたか否かを判断し(ステップA26)、終えていないと判断した場合には所定のインターバル時間だけ待機処理を行なった後に(ステップA27)、再び上記ステップA23に至って、同様の処理を繰返す。
以上、ステップA23〜A27の処理を設定された露光回数分だけ繰返し実行した後、ステップA26で所定枚数分の撮影を終えたと判断すると、その時点で画像データメモリ57に保持した一連の画像データを位置合わせした多重合成処理を実行し(ステップA28)、処理後の合成された画像データを圧縮符号化/伸長復号化部56によりデータ圧縮して符号化し、撮影条件や撮影時の天体情報等を添付してファイル化した上でメモリカード67に記録し(ステップA29)、以上で上記図3及び図4の一連の処理を一旦終了して、次の撮影に備えるべく再び始めからの処理に戻る。
また、上記ステップA22で天体撮影モードでの長時間露光(多重露光)撮影でもないと判断した場合には、天体撮影モードが設定されておらず、通常の撮影モードであることとなるので、レリーズキー12の操作に応じ、設定されている各種の撮影条件に基づいて撮影を実行した上で(ステップA30)、撮影により取得した画像データを圧縮符号化/伸長復号化部56によりデータ圧縮して符号化し、撮影条件や撮影時の天体情報等を添付してファイル化した上でメモリカード67に記録し(ステップA31)、以上で上記図3及び図4の一連の処理を一旦終了して、次の撮影に備えるべく再び始めからの処理に戻る。
このように、時刻と方位、現在位置等の周囲環境を指定することで位置関係を特定することが可能な天体を被写体を撮影する場合に、当該天体のモデルをスルー画像に重畳させてガイド画像として表示させることで、天体に不慣れなユーザであってもきわめて容易、且つ正確に所望する被写体をとらえて撮影を行なうことが可能となる。
なお、上記図13で示した電子ファインダ22での重畳画像I10の表示に代えて、図14に示すような半天図I20または全天図を表示するものとしてもよい。例えばこの図14では、所望の星座の方向を検索し、星座を一覧表示するために電子ファインダ22で半天図I20を表示した状態を示す。
同図中、画面下部で現在位置I21(地名、経度、緯度)と現在日時I22(年、月、日、時、分、時差)を表示する一方で、画面の大部分を使って、地平線I23を直径とする半円状の半天図I20を表示する。地平線I23下には方位(東西南北)を表示すると共に、半円状の円弧の中央部を天頂とし、主要な恒星の固有名、星座名、及び星座を結ぶ線を表示している。
図15及び図16は、デジタルカメラ10の向き(方位角、仰角)に応じた天体位置の変位表示を例示するものである。これらの図は、2004年12月22日の19時00分の東京を例にとって示すものである。
図15(a)は、デジタルカメラ10の方位角θyaw=290°、仰角θpitch=+70°の時のデジタルカメラ10を所持したユーザUと天体との位置関係を示すものであり、このときにデジタルカメラ10の電子ファインダ22で表示される内容を図15(A)に示す。
同様に、図15(b)は、デジタルカメラ10の方位角θyaw=290°、仰角θpitch=+40°の時のデジタルカメラ10を所持したユーザUと天体との位置関係を示すものであり、このときにデジタルカメラ10の電子ファインダ22で表示される内容を図15(B)に示す。
さらに、図16(c)は、デジタルカメラ10の方位角θyaw=290°、仰角θpitch=+20°の時のデジタルカメラ10を所持したユーザUと天体との位置関係を示すものであり、このときにデジタルカメラ10の電子ファインダ22で表示される内容を図16(C)に示す。
このように、上記デジタルカメラ10の向きに応じて電子ファインダ22に表示する天体の視位置の方位、高度角を自動的に変えて表示できるものとなる。
次いで図17乃至図19により上記デジタルカメラ10の向きとデジタルカメラ10の撮影レンズ11の焦点距離から電子ファインダ22で表示する天体の視位置を算出する場合の内容について説明する。
図17(A)に示す如く、XYZ空間において天体での視位置を、方位角Az、高度角(仰角)ψで表すものとする。このとき、図17(B)に示すようにデジタルカメラ10の向きをuvw空間(w軸がカメラ光軸)でθyaw、θpitch、θrollで表す。このうち、θrollがデジタルカメラ10を左右にも傾けた状態での角度を示す。
上記視位置(方位角Az、高度角ψ)をuvw空間中でのカメラ座標に変換し、カメラの向き(θyaw、θpitch、θroll)に応じた像位置を算出する場合の内容を図18に示す。
図18(A)はその側面図であり、上記Az、ψ、θpitchを用いてx,y,z,w,wxyを算出している。さらに図18(B)はその上面図であり、これらと上記θyawを基にu,v,u’,v’を算出している。
このようにして得られた算出結果に基づき、図19に示すように、撮像素子31の結像面または電子ファインダ22での表示座標(Sx,Sy)を次式を用いて求める。すなわち、
ur=u'cos(θroll)+v'sin(θroll)
vr=-u'sin(θroll)+v'cos(θroll)
Sx=Wv/2+ur
Sy=Hv/2−vr
となる。なお、撮影レンズ11による倒立像を電子ファインダ22では正立像で表示する。
次に、図20により撮影レンズ11の焦点距離fと撮影画角θとの関係を示す。図20(A)に示すように、レンズの焦点距離fあるいは光学ズームの倍率Mを変えると、上記図19での表示位置の計算でも示したように、撮影レンズ11の撮影画角が変化するために、天体の表示位置や表示範囲が変わる。撮影レンズ11の結像面のイメージサイズをX’とすると、図示する如く
X'/2f=tan(θ/2)の関係により
撮像画角θ=2tan-1(X'/2f)
被写界範囲X=X'×L/f
となる。
なお、光学ズームではなくデジタルズーム機能の実行時には、撮影レンズ11での撮像画角は変わらないが、記録画角または電子ファインダ22視野での表示画角(θ’)は変化するため、デジタルズーム倍率をMd(Md≧1)とすると、
θ'=θ/M
となり、天体の視位置の狭い範囲が、電子ファインダ22ではMd倍に拡大して表示されることとなる。
上述の天体の視位置の電子ファインダ22上での表示位置も、上記撮影レンズ11の焦点距離f(または光学ズーム倍率M)だけでなく、デジタルズーム倍率Mdに合わせて、像位置P’(u’,v’)となる天体の視位置を
P’(Md*u’,Md*v’)
に相当する位置に変換して表示する必要がある。
図20(B)は、撮像素子31として1/2.5インチ型のCCDを用いた場合の横方向の画角を示すもので、焦点距離f[mm]、光学ズーム倍率M、デジタルズーム倍率Md、撮影画角θ[°]及び表示・記録画角θ’[°]の関係を例示する。
次いで、図21により焦点距離f(ズーム倍率M)及び画角に応じて、天体の視位置の表示画面の範囲が可変する状態を例示するものである。
図21(a)は焦点距離が6[mm](光学ズーム倍率1倍)、図21(b)は焦点距離が18[mm](光学ズーム倍率3倍)、図21(c)は焦点距離が30[mm](光学ズーム倍率5倍)の場合の電子ファインダ22の表示視野を左側のズーム倍率用のインジケータと共に示すものであり、図21(A)〜図21(C)はそれぞれ上記各焦点距離(光学ズーム倍率)における実際の表示内容を例示するものである。
このように、撮影レンズ11でのズーム倍率を可変する操作を行なうことにより、撮影画角が可変することで、これに連動して電子ファインダ22で表示される範囲も自動的に可変設定されることとなる。
最後に、図22によりファインダ視野に入る天体などの範囲の設定例を示す。
上記図3のステップA07、図9及び図10の天体視位置の計算処理において、すべての天体の視位置を計算して、その中から視野範囲に入る視位置の天体を表示するものとすると、デジタルカメラ10に備えられる主制御回路37が実行しなければならない計算の時間と量が膨大なものとなってしまう。そのため、予め視野範囲に入り得る天体のみを計算することとすれば、計算の時間と量を大幅に削減できる。
図22によりそのような範囲を限定した計算を行なう場合について説明する。まず、図22(A)に示すように電子ファインダ22の視野FVを定義するものとする。すなわち、電子ファインダ22の横方向のサイズをWf、縦方向のサイズをHf、横画角をθW、縦画角をθH、対角画角をθDとし、ファインダの四隅の各座標を図示のように定義するものとする。
図22(B)に示す如く、視野FVに天頂Zを含まない場合には、方位角Az、高度各ψが図中にハッチングで示した扇形の範囲にある赤道座標を次式
(θyaw-θW/2)≦Az≦(θyaw+θW/2)、且つ
(θpitch-√(θW 2+θH 2)/2)≦ψ≦(θpitch+√(θW 2+θH 2)/2)
により逆算して、その天体範囲のみを計算すればよい。
また、図22(C)に示す如く、視野FVに天頂Zを含む場合には、同様に図中にハッチングで示した円形の範囲にある赤道座標を次式
(θpitch-√(θW 2+θH 2)/2)≦ψ≦90°
により逆算して、その天体範囲のみを計算すればよい。
なお、上記図22(B),(C)の場合にあって、デジタルズーム倍率Mdが1を越えている場合には、
θW=θW/Md、且つ
θH=θH/Md
であるものとして計算する必要がある。
こうして視野FVに入る可能性のある範囲のみ天体の計算を行なうことで、主制御回路37の負担を大幅に軽減することができる。
以上、第1の実施の形態によれば、昼夜や天気、夜間でも周囲光が絶えない都会か否かなどの周囲環境を問わず、実際に肉眼では星が見えない状態であっても、デジタルカメラ10を向けた先にある星や星座を電子ファインダ22で簡単に見ることができる。
また、天体マニアや天体写真家にとっても、周囲光が明るいなどの理由で星や星座を探し難い場合に、所望する対象が本来あるべき方向を簡単に視認することができる。
さらに、撮影対象となる星や星座の位置を確実に把握した上で撮影を開始することができるため、長時間露光や多重露光等の撮影を行なう場合の失敗を極力減少させることができる。
(第2の実施の形態)
以下本発明をデジタルカメラに適用した場合の第2の実施の形態について図面を参照して説明する。
なお、その外観構成に関しては上記図1に示したものと、電子回路の構成については上記図2に示したものとそれぞれ基本的にほぼ同様であるので、同一部分には同一符号を用いるものとして、ここではその図示と説明とを省略する。
なお、データメモリ59には、全天の恒星図データが予め記憶されているものとする。
次に上記実施の形態の動作について説明する。
図23は、このデジタルカメラ10で天体撮影を行なう天体撮影モード時の処理内容を示すものであり、その制御動作は主として主制御回路37がプログラムメモリ58に記憶されている動作プログラムや定数等の固定データに基づいて実行する。
その当初には、デジタルカメラ10の現在位置と日時、及び撮影レンズ11が対向している方向のデータを取得する(ステップE01)。
現在位置及び日時のデータは、GPS受信アンテナ18を介して図示しない複数のGPS衛星からの到来電波によりGPSレシーバ50が経度、緯度、高度と現在時刻の情報として得られる。
一方、デジタルカメラ10の向きのデータは、方位・3次元傾斜角センサ13からの検出信号を姿勢検出部49で処理することにより、デジタルカメラ10の方位、仰俯角、傾斜角などを表す情報として取得できる。
次いで、電子ファインダ22で表示すべき視野の方位、高度角を計算する(ステップE02)。
こうして電子ファインダ22で表示する方位と高度角とが算出できると、上記取得した現在日時と視野範囲に該当する恒星の赤経、赤緯の範囲を計算する(ステップE03)。
図24(A)は、データメモリ59に記憶される全天の恒星図データの一部を例示するものである。すなわちデータメモリ59には、赤経(α:0〜24h)軸と赤緯(δ:−90°〜+90°)軸との天の赤道座標に対応付けて、恒星や星座の位置を記録した全天の恒星図データを予め用意しているものとする。
しかして、現在位置と現在日時に応じてこのデジタルカメラ10の現在の地方視恒星時(θG−経度λ)を計算し、またデジタルカメラ10の向き情報から求めた電子ファインダ22の視野FVの方位角(θyaw)と高度角(θpitch)、及び左右傾斜角(θroll)により、そのときの視野FVに入る恒星の赤経、赤緯の範囲、もしくは電子ファインダ22の視野FVの四隅の赤経、赤緯を逆算して求めることで、図24(B)に示すように視野FVに入る赤経、赤緯の恒星図の範囲を切出すことができる(ステップE04)。
こうして切出した恒星図の範囲に対し、座標系の向きと視野FVでの向きに応じて変形、拡大縮小、及び回転処理を施すことで、電子ファインダ22での表示に適した恒星図を得ることができる(ステップE05)。
さらに、この恒星図に対し、視野FV上での等方位線、及び等高度線の座標目盛りなどに合わせて座標変換または歪曲補正、伸縮補正を施すことで図24(C)に示すような恒星図のガイド表示を電子ファインダ22にて表示させることができる(ステップE06)。以上で上記図3及び図4の一連の処理を一旦終了して、次の撮影に備えるべく再び始めからの処理に戻る。
このように本第2の実施の形態によれば、上記第1の実施の形態のように、視野に入るすべての天体の視位置を天文計算により得るようなことをせずとも、例えば視野の四隅位置の座標など、視野の範囲を規定する天体の赤道座標を逆算して求めるだけでよいので、計算量や計算時間を極力少ないものとして、多数の天体の視位置を比較的簡易に表示させることが可能となる。
なお、予めデータメモリ59に記憶しておく恒星図のデータは、赤経/赤緯の直交座標ずに代えて、等積図法、等距図法、等角図法などにより投影作図した天球図データとして記憶しておき、必要な範囲を切出した後の変換や変形に要する処理をより簡易化することもできる。
(第3の実施の形態)
以下本発明をデジタルカメラに適用した場合の第3の実施の形態について図面を参照して説明する。
なお、その外観構成に関しては上記図1に示したものと、電子回路の構成については上記図2に示したものとそれぞれ基本的にほぼ同様であるので、同一部分には同一符号を用いるものとして、ここではその図示と説明とを省略する。
次に上記実施の形態の動作について説明する。
図25及び図26は、このデジタルカメラ10で太陽または月の視位置に基づく撮影制御の処理内容を示すものであり、その制御動作は主として主制御回路37がプログラムメモリ58に記憶されている動作プログラムや定数等の固定データに基づいて実行する。
その当初には、撮影モードや撮影条件等をユーザが任意に設定する(ステップF01)。
この設定に基づき、屋外撮影で、且つ天体の視位置による撮影を行なう天体撮影モードが設定されたか否かを判断する(ステップF02)。ここで天体撮影モードが設定されていないと判断した場合には、その設定された内容に応じた他の撮影処理を実行するが(ステップF03)、本実施の形態の動作とは直接関係しないために、その説明は省略する。
一方、上記ステップF02で天体撮影モードが設定されたと判断すると、次にこのデジタルカメラ10の現在位置を入力するか、あるいは自動的な測位処理を行なう(ステップF03)。
図5は、GPSを用いた自動的な測位処理の内容を示すサブルーチンであり、その当初には、GPSレシーバ50がすでに起動されて動作中であるか否かを判断する(ステップB01)。
ここで、まだ起動されておらず動作中ではないと判断した場合にのみ、あらためてGPSレシーバ50での動作を起動させ(ステップB02)、その後起動が完了して測位が可能となるのを待機する(ステップB03)。
このステップB03で起動が完了したと判断した場合、もしくは上記ステップB01ですでに起動されていると判断した場合に、次いでGPS受信アンテナ18を用いて複数のGPS衛星からの到来電波を受信し、まず測位信号中の疑似乱数列PRN(Pseudo−Ramdom Noise)によるコードを受信復調して疑似距離を計測する(ステップB04)。
次いで、各GPS衛星の天体歴情報、及び起動データを取得し(ステップB05)、各GPS衛星の位置及び現在位置からの距離を算出する(ステップB06)。
そして、この算出結果から、現在デジタルカメラ10が位置している正確な3次元座標、すなわち経度λ、緯度φ、及び高度hを現在時刻と共に算出する(ステップB07)。
これら各座標値に基づき、測地系座標への変換処理を行ない(ステップB08)、結果としてこのデジタルカメラ10の位置する現在位置を取得して、主制御回路37へ出力し(ステップB09)、以上で図5のサブルーチンを終了する。
図25のメインルーチンでは、ステップF03での測位処理に続き、太陽及び月を探索すべき天体として、その赤道座標(赤経α、赤緯δ)を計算または設定により取得する(ステップF05)。
太陽及び月の赤道座標の計算に関しては、上記図10及び図11でも説明したように、まず計算日時(YY/MM/DD、hh/mm/ss)及びグリニッジ標準時刻GMTとの時差TDを入力する(ステップD02)。
合わせて、太陽、月の地心黄道座標を算出する。太陽の赤道座標は、日々の変化は小さいので頻繁に計算する必要がない一方で、約1年で黄道12星座の中を一周するので、季節による変化は大きい。
太陽の赤道座標は、まず後述の位置略算式等を用いて、地球を中心とする太陽の地心黄道座標(黄経λS、黄緯βS、距離rS)を求める。求めた地心の黄道座標を、次式
U=cosβ*cosλ
V=cosβ*sinλ*cose-sinβ*sine
(但し、黄道傾斜角e=23.43929。)
W=cosβ*sinλ*sine+sinβ*cose
α=tan-1(V/U)
δ=sin-1(W)
により地心の赤道座標(赤経α,赤緯δ)に変換する。
月は、地球を約1日で一周する軌道を回っているので、その赤道座標の変化が大きく、短時間毎に更新計算する必要がある。同様に、月の位置略算式を用いて、月の地心黄道座標(黄経λM、黄緯βM、距離rM)を求める。求めた地心の黄道座標を、上記太陽の場合と同様に月の地心赤道座標(赤経α,赤緯δ)に変換する。
こうして太陽及び月の赤道座標を取得すると、次に方位・3次元傾斜角センサ13、姿勢検出部49を用いてこのデジタルカメラ10の向き(方位、仰俯角、傾斜角など)を検出する(ステップF06)。
次いで、デジタルカメラ10の現在位置と、上記取得した探索天体である太陽及び月の赤道座標とにより、探索する天体の視位置すなわち方位角Az、高度角ψを算出する(ステップF07)。
太陽及び月地心赤道座標(赤経α,赤緯δ)からそれぞれの視位置、すなわち時角HA、方位角Az、及び高度角ψを計算する際の略算式について説明する。
惑星の軌道位置は、6つの軌道要素、すなわち惑星軌道の長半径a、離心率e、元期における平均近点離角M0、黄道軌道面傾斜i、昇交点黄経Ω、及び近日点引数ωにより、ケブラー方程式等を解くことで、任意時点での惑星位置を算出できる。
ところで、軌道要素に基づく位置計算は2体問題に基づくものであるのに対し、実際の惑星の運動は純粋な2体問題ではなく、軌道要素が年月に連れて変化していくため、一般には次の書籍などに記載されているような惑星の位置略算式を用いて計算することが多い。
「新こよみ便利帳−天文現象・暦計算のすべて」(歴計算研究会編、恒星社厚生閣、1991/4)
「天体の位置計算 増補版」(長沢 工 著、地人書館、1985/09)
例えば、太陽、月の地心黄経、地心黄緯、距離の項目毎に複数項の定数を記憶しておき、ユリウスの日(JD)またはユリウス世紀(T)などの時間毎に各定数を計算式に代入して複数項の計算を繰返して総和すると、各項目の近似値が比較的簡単且つ充分な精度で計算できる。
具体的には、ユリウス日をJD(=上述の準ユリウス日(MJD)+2400000.5)、歴表時を
ET=時+分/60+秒/3600-(±時差)−(±経度差/15°)
とすると、
T=(JD-245145.0)/36525.0+ET/(24*36525.0)
で求められる時間T(元期J2000.0=2000年1月1日正午からのユリウス世紀に相当)に対して、太陽及び月の黄経、黄緯、距離の各項目毎に、それぞれにAi、Ti'、Bi、Ci(i=1〜n)等のn組の定数(但し、Ti'はTまたは1のいずれか)を予め記憶しておき、次式の近似計算式Siを順次計算してその総和ΣiSiを求めることで略算できる。すなわち
Si=(Ai*Ti'*cos(Bi*T+Ci))
S=Σi(i=1-n)Si
例えば、太陽の地心黄経λSの略算用の各定数は以下の通りである。
A1=36000.7695、T1=T、B1= 0、 C1= 0、
A2= 280.4659、T2=1、B2= 0、 C2= 0、
A3= 1.9147、T3=1、B3=35999.05、C3=267.52、
A4= 0.02 、 T4=1、B4=71988.1、 C4=265.1、
A5= -0.0048、T5=T、B5= 0、 C5=268.0、
(以下、地心黄緯δS、地心距離rS用の定数も含め、煩雑になるので略)
月の地心黄道座標(視黄経λM、視黄緯βM、視距離rM)も、太陽と同様の略算式と、各項目毎の略算用の定数Ai、Ti'、Bi、Ci(i=1〜n)により計算できる。
例えば、月の地心視黄経λMの略算用の各定数は以下の通りである。
A1=481267.8809、T1=T、B1= 0、 C1= 0、
A2= 218.3162、T2=1、B2= 0、 C2= 0、
A3= 6.2888、T3=1、B3=477198.868、C3= 44.963、
A4= 1.274 、T4=1、B4=413335.35、 C4= 10.74、
A5= 0.6583、T5=1、B5=890534.22、 C5=145.7、
(以下、地心視黄緯δM、地心視距離rM用の定数も含め、煩雑になるので略)
上記の各位置略算式では、項数nを多く計算するほど精確な位置を求めることができるが、データメモリ59内の天体の位置座標データ、視位置計算データ等の記憶容量が少ない場合や、主制御回路37での演算速度が遅い場合、及び電子ファインダ22での表示分解能が低い場合には、本例のような概算用途であれば4〜5項程度でも充分な精度での概算が得られる。
以上のように探索天体である太陽及び月に関して視位置の計算を終えると、メインルーチンである図25に戻り、算出した各視位置のデータをデータメモリ59に記憶する(ステップF08)。
次いで、撮影レンズ11中のズームレンズ及びフォーカスレンズを必要により適宜移動させるズーム処理及びAF処理を実行した後(ステップF09)、撮像素子31で撮像し、画像メモリ35に保持している被写体像を電子ファインダ22にてスルー画像として表示する(ステップF10)。
このとき、その時点での撮影レンズ11の焦点距離(f)と撮像素子31のサイズ(X’)、及びデジタルズーム倍率(Md)により電子ファインダ22で表示すべき被写体像の撮影画角(θ)を算出する(ステップF11)。
なお、当該画角θは、次式
撮影画角θ=2tan-1(X'/2f)
表示及び記録画角θ'=θ/Md
で求められる。
こうして得た結果に基づき、カメラの向きと画角に対して、探索天体(太陽の視位置が視野内か、あるいは視野の近傍にあるか否か、その程度を判別した上で(ステップF12)、視野中心から所定角度1以内にあるか否かを判断する(ステップF13)。
図27(A)は、探索天体である太陽と被写体、及びデジタルカメラ10の相対位置関係を示すもので、太陽の方位角Az、高度角ψが、カメラの向き(方位θyaw、仰角θpitch)と上記表示画角θ’に対して、下記所定角1が例えば「θ'/2+ε」であるものとして、第1の条件、
Az−θyaw≦所定角1、且つ
ψ−θpitch≦所定角1
が成り立つか否かにより、被写体を撮影した場合に探索天体の影響を受ける可能性があるか否かを判断する。
ここで所定角度1以内にあると判断した場合にのみ、太陽、満月などの当該天体が被写体を含む視野内または視野近傍にあるものとして、例えば電子ファインダ22にて
「太陽が視野内または近くにありますので注意して下さい」
のような文字列によるガイドメッセージを表示することで、デジタルカメラ10のユーザに対して警告を行ない、肉眼や撮像素子31の損傷、撮影の失敗等を未然に防ぐものとする。
その後、上記ステップF14の処理の実行の有無に拘わらず、映像信号処理34で実行するホワイトバランス処理のために、太陽の高度角に応じた色温度となるようホワイトバランスの設定を行なう(ステップF15)。
図27(B)は、一日における太陽の高度角の変化と、設定するホワイトバランスの色温度との関係を示すものである。通常の屋外、晴天下で撮影を行なう場合、太陽の高度によって太陽光源の色温度が変化し、朝夕などの高度角が低く、地平線に近い状態では、光源の色温度が2000〜3000K(ケルビン)と低くなるので、やや赤みがかって撮影されてしまう。
反対に、真昼など太陽高度が高く、天頂に近い場合には、高原の色温度が5000〜6700(ケルビン)と高くなるので、やや青みがかって撮影されてしまう。
したがって、太陽の高度角ψに基づいて、季節や時刻、地域により太陽の高度が変化した場合でも、太陽の高度角に対応する色温度となるようにホワイトバランスを自動的に設定し、映像信号処理34における画像信号の各原色のRGB成分、あるいは色差のCb,Cr成分の等の利得を調整することにより、容易にホワイトバランス調整を実行して、太陽高度の影響を排除した設定を行なうことができるものとなる。
その後、レリーズキー12の操作による撮影指示があるか否かを判断する(ステップF16)。
ここでレリーズキー12の操作がないと判断した場合には、上記ステップF06からの処理に戻って、同様の処理を繰返し実行する一方で、レリーズキー12が操作されたと判断した場合には、次いで太陽、満月などの天体が視野の近く、すなわち視野中心から正逆各方向に逆光角度2の範囲内にあるか否かを第2の条件として、逆光補正が必要か否かを判断する(ステップF17)。
この第2の条件は、具体的には所定各2を例えば45°として
|Az−θyaw|≦所定角2
が成り立つか否かを演算により判断する。
逆光補正が必要であると判断した場合には、逆光用の測光及び露出条件を設定するべく、例えば自動的に撮像エリアの中央を重点的にスポット測光して露光値を計測する(ステップF18)。
次いで、逆光用の撮影条件であるものとした撮影処理を実行する(ステップF19)。
この場合には、+1〜2[EV]程度の露出補正をかける、デイライトシンクロ機能により強制的にポップアップ式内蔵フラッシュ16を閃光駆動する、等の方法のいずれかを実行するもので、これにより背景のみが適正な露出で主要な被写体が所謂「黒つぶれ」を起こしてしまうような事態を回避する。
しかして、撮影により得た画像データを圧縮符号化/伸長復号化部56にてデータ圧縮して符号化し、撮影条件や撮影時の天体情報等を添付してファイル化した上でメモリカード67に記録し(ステップF20)、以上で上記図25及び図26の一連の処理を一旦終了して、次の撮影に備えるべく再び始めからの処理に戻る。
また、上記ステップF17で逆光補正は必要ないと判断した場合には、そのまま通常の測光処理、例えばマルチエリア測光等により露光値を計測する(ステップF21)。
次いで、予め上記ステップF01で設定された撮影条件に従った撮影処理を実行し(ステップF22)、撮影により得た画像データを圧縮符号化/伸長復号化部56にてデータ圧縮して符号化し、撮影条件や撮影時の天体情報等を添付してファイル化した上でメモリカード67に記録し(ステップF23)、以上で上記図25及び図26の一連の処理を一旦終了して、次の撮影に備えるべく再び始めからの処理に戻る。
このように、太陽や月など特定の天体の視位置に応じて、デジタルカメラ10を被写体に向けるだけで、該特定の天体が入ってしまう場合や、ホワイトバランスの調整、逆光補正など、撮影を著しく阻害し、あるいはデジタルカメラ10やこのデジタルカメラ10を使用するユーザの健康を損ねてしまうことを確実に回避して、自動的に撮影条件の設定を行なって失敗の内撮影を行なうことができる。
(第4の実施の形態)
以下本発明をデジタルカメラに適用した場合の第4の実施の形態について図面を参照して説明する。
なお、その外観構成に関しては上記図1に示したものと、電子回路の構成については上記図2に示したものとそれぞれ基本的にほぼ同様であるので、同一部分には同一符号を用いるものとして、ここではその図示と説明とを省略する。
図28及び図29に本実施の形態の動作の概要を示す。
上記第1乃至第3の実施の形態で太陽や月、恒星、惑星等の天体の撮影を行なうものとしたのに対し、本実施の形態では、被写体となりうる山や地形、建物、橋等の建造物を含む地理情報をスルー画像上に反映させる。
すなわち、上記被写体となりうる各種の地理情報をデータ化して予めデータメモリ59に記憶しておき(G01)、撮影時のデジタルカメラ10の位置や向き、傾斜等のデータを入力する(G02)。
これらを基に、カメラ視野範囲内の被写体の位置座標(経度λ、緯度φ、高度h)から被写体の視位置(方位Az、高度角ψ)を推測計算する(G03)。
また、カメラの向き(方位θyaw、仰角θpitch、傾斜角θroll)と撮影画角θ(またはデジタルズームの場合には表示画角θ’=θ/Md)に応じて、視野範囲内の被写体の3次元シミュレーション画像を生成する(G04)。
一方で、撮像素子31で得られる実際の被写体像をA/D変換及び各種プロセス処理を施して被写体のスルー画像を作成する(G05)。
しかして、被写体のスルー画像上に、被写体の3次元シミュレーション画像を半透過処理した上で重畳して電子ファインダ22で表示させることで(G06)、図29に示すような合成画像を得ることができる。
図29では、シミュレーションで描画した被写体の輪郭をその名称と共に表示している例を示すもので、実際の被写体に対して多少のずれを生じているものの、充分に被写体を正確に判断することができる。同図では、電子ファインダ22上に実際の被写体とシミュレーションで得た被写体とを合成表示している他に、右端側でカメラの高度角ψとの指針仰角の目盛りを表示し、同時にカメラの方位角Azの指針と目盛りを表示している。
このような表示状態にあってレリーズキー12の操作により撮影を実行した場合、撮影により得られた画像データと共に被写体の地理情報と撮影条件等の撮影情報とが符号化されて1つのデータファイルとして、記録媒体であるメモリカード67に記録されることとなる。
図30及び図31は、このデジタルカメラ10で地上の風景を含む撮影モード(以下「被写体位置ファインダモード」と称する)時に実行する制御の処理内容を示すものであり、その制御動作は主として主制御回路37がプログラムメモリ58に記憶されている動作プログラムや定数等の固定データに基づいて実行する。
その当初には、撮影モードや撮影条件等をユーザが任意に設定する(ステップH01)。
この設定に基づき、屋外撮影で、且つ地上の風景をシミュレーション画像として合成表示する被写体位置ファインダモードが設定されたか否かを判断する(ステップH02)。
ここで被写体位置ファインダモードが設定されていると判断した場合にのみ、次にこのデジタルカメラ10の現在位置を入力するか、あるいは自動的な測位処理を行なう(ステップH03)。
図5は、GPSを用いた自動的な測位処理の内容を示すサブルーチンであり、その当初には、GPSレシーバ50がすでに起動されて動作中であるか否かを判断する(ステップB01)。
ここで、まだ起動されておらず動作中ではないと判断した場合にのみ、あらためてGPSレシーバ50での動作を起動させ(ステップB02)、その後起動が完了して測位が可能となるのを待機する(ステップB03)。
このステップB03で起動が完了したと判断した場合、もしくは上記ステップB01ですでに起動されていると判断した場合に、次いでGPS受信アンテナ18を用いて複数のGPS衛星からの到来電波を受信し、まず測位信号中の疑似乱数列PRN(Pseudo−Ramdom Noise)によるコードを受信復調して疑似距離を計測する(ステップB04)。
次いで、各GPS衛星の天体歴情報、及び起動データを取得し(ステップB05)、各GPS衛星の位置及び現在位置からの距離を算出する(ステップB06)。
そして、この算出結果から、現在デジタルカメラ10が位置している正確な3次元座標、すなわち経度λ、緯度φ、及び高度hを現在時刻と共に算出する(ステップB07)。
これら各座標値に基づき、測地系座標への変換処理を行ない(ステップB08)、結果としてこのデジタルカメラ10の位置する現在位置を取得して、主制御回路37へ出力し(ステップB09)、以上で図5のサブルーチンを終了する。
図30のメインルーチンでは、ステップH03での測位処理により得た現在位置の座標を経度λ0、緯度φ0、及び高度h0として保持した後に、方位・3次元傾斜角センサ13、姿勢検出部49を用いてこのデジタルカメラ10の向き(方位、仰俯角、傾斜角など)を検出する(ステップH04)。
次いで、デジタルカメラ10の現在位置と向きから、ファインダ視野に入る概略の被写体位置範囲を設定する(ステップH05)。
この設定内容に基づき、データメモリ59に記憶している地理情報中から1つの被写体の位置座標(経度λ、緯度φ、高度h)を読出す(ステップH06)。
読出した1つの被写体の位置座標により、カメラの現在位置に基づいて視野内での視位置を算出する(ステップH07)。
図32は、このステップH07のサブルーチンの内容を示すもので、図33にその概念を示す模式図ある。まず上記ステップH03で得たデジタルカメラ10の現在位置の座標(経度λ0、緯度φ0、及び高度h0)を入力し(ステップI01)、次に直前の上記06で得た被写体の位置座標(経度λ、緯度φ、高度h)を入力する(ステップI02)。
これら各位置座標により、デジタルカメラ10のある現在地と被写体の各位置座標から次式
x=(r+h)*cos(φ)*cos(λ)
y=(r+h)*cos(φ)*sin(λ)
z=(r+h)*sin(φ)*
(但し、r:当該地点の地球半径。)
に従って地心中心の直交座標XYZに変換する(ステップI03)。
こうして得た直交座標XYZを、Z軸の周りに現在地の経度λ0だけ回転し、次式
x'=(r+h)*cos(φ)*cos(λ)
y'=(r+h)*cos(φ)*sin(λ)
z'=(r+h)*sin(φ)*
により直交座標X’Y’Z’に変換する(ステップI04)。
次に、直交座標X’Y’Z’を、今度はY軸の周りに(π/2−φ0)だけ回転し、次式
x"=x'*cos(π/2-φ0)-z'*sin(π/2-φ0)
y"=y'
z"=x'*sin(π/2-φ0)+z'*cos(π/2-φ0)h)
-(R+h0)
により直交座標X”Y”Z”に変換する(ステップI05)。
現在地から被写体の地点までの距離R、方位角Az、及び高度角ψを次式
X=x"-x"0
Y=y"-y"0
Z=z"-z"0
R=√(X2+Y2+Z2)
Az=tan-1(Y/X)
ψ=sin-1(Z/R)
により求め(ステップI07)、求めた距離R、方位角Az、及び高度角ψを出力して(ステップI07)、以上で図32のサブルーチンを一旦終了し、上記図30の処理に戻る。
図30のメインルーチンでは、求めた被写体の視位置(距離R、方位角Az、及び高度角ψ)を画像データメモリ57に記憶した後(ステップH08)、視野範囲内に位置するすべての被写体に対して視位置の計算を行なったか否か、換言すればまだ同様の計算を行なうべき被写体があるか否かを判断する(ステップH09)。
まだ計算を行なっていない被写体があると判断すると、上記ステップH06からの処理に戻り、新たな被写体に対する視位置の計算を実行する。
こうしてステップH06〜H09の処理を繰返し実行することで、デジタルカメラ10の視野範囲内に位置するすべての被写体の視位置を算出し終えると、ステップI09でこれを判断して続くステップH10に至る。
なお、上記ステップH02で撮影モードが被写体位置ファインダモードではないと判断した場合には、上記ステップH03〜H09の処理は行なわない。
ステップH10では、測光・測距センサ41、色温度検出部42、及び測光部43により測光処理とホワイトバランス調整処理とを実行する。その後、撮影レンズ11中のズームレンズ及びフォーカスレンズを必要により適宜移動させるズーム処理及びAF処理を実行する(ステップH11)。
以上で被写体像全体に対する適正な撮影状態が得られるので、その時点で撮像素子31で撮像し、画像メモリ35に保持している被写体像を電子ファインダ22にてスルー画像として表示する(ステップH12)。
ここで再び、撮影モードが被写体位置ファインダモードであるか否かを判断する(ステップH13)。
被写体位置ファインダモードであると判断した場合にのみ、その時点での撮影レンズ11の焦点距離(f)と撮像素子31のサイズ(X’)、及びデジタルズーム倍率(Md)により電子ファインダ22で表示すべき被写体像の撮影画角(θ)を算出する(ステップH14)。
なお、当該画角θは、次式
撮影画角θ=2tan-1(X'/2f)
表示及び記録画角θ'=θ/Md
で求められる。
こうして得た結果に基づき、カメラの向きと表示画角に対して、視野に入る被写体の像位置を計算し、視位置の被写体情報を合成(または3次元CG(Computer Graphics)描画)した後に半透明化処理し、実際に得られる被写体像上に重畳して電子ファインダ22で表示する(ステップH15)。
図34は、このとき電子ファインダ22で表示するために生成する、3次元CG描画処理の処理の詳細を示し、図35にその各処理段階での描画モデルを示す。
その処理当初には、まず視野に入る被写体の地図情報を基に3次元のモデリング処理を施す(ステップJ01)。
このモデリング処理としては、図示する如く地理座標・等高線モデル、ワイヤーフレーム・モデル、サーフェス・モデル、ソリッドモデル等を施すことで(ステップJ02〜J05)、地図情報から3次元空間内の凹凸を忠実に再現したモデルを得る。図35(A)−1は地理座標・等高線モデル、図35(A)−2はワイヤーフレーム・モデルの例を示す。
こうして得た3次元モデルに対してレンダリング処理を施すことで、現実に肉眼で見える視野範囲の被写体情報を描画する。
すなわち、まず投影・座標変換処理(ステップJ06)により上記3次元モデルを現在位置から見た2次元画像として透視投影処理する。
図35(B)がこの2次元の透視投影画像を例示するもので、具体的には平行投影処理(ステップJ07)または透視投影処理(ステップJ08)を実行する。座標変換では、ローカル座標系で指定した形状をワールド座標系に配置し、視点位置、視軸方向にある支点座標系をワールド座標系で決定した上で、このワールド座標系の位置を視軸上にあるuvn座標系(視野窓の座標系)の位置に変換する。
その後、該投影処理により得た2次元画像中から、視野範囲に合わせたクリッピング処理(ステップJ09)を実行することで、図35(C)に示すように視野窓内に必要な部分のみを切出す。
さらに、図35(D)に示す如く、現在の視点位置から画面に現れる部分を決定し、視野に入らない部分、すなわち各被写体の背後の位置となる隠れ線、隠れ面の各消去処理(ステップJ10)を実行する。
この消去処理としては、Zソート法(ステップJ11)、Zバッファ法(ステップJ12)、スキャンライン法(ステップJ13)、及びレイ・トレーシング法(ステップJ14)のいずれかを用いる。
次に、比較の当たり具合や反射、透過の様子を計算し、設定ライティング条件に基づいて、被写体表面の明暗や陰影付けを行なうシェーディング処理、及び地面にできる影を描画するシャドウイング処理を実行する(ステップJ15)。
これらの処理内容としては、フラット・シェーディング法(ステップJ16)、グーロー・シェーディング法(ステップJ17)、フォン・シェーディング法(ステップJ18)、レイ・トレーシング法(ステップJ19)、及びラジオシティ法(ステップJ02)のいずれかを用いる。
図35(E)は、この時点で得られる画像を例示するもので、シェーディング処理により陰影を付加した上で、被写体情報、地理情報等も重畳表示している状態を示す。
さらに、被写体画像の各表面に模様や細かな凹凸等を貼り付けるマッピング処理を行なうことで(ステップJ21)、画像により現実感を与えるものとしてもよい。このマッピング手法としては、テクスチャ・マッピング法(ステップJ22)、バンプ・マッピング法(ステップJ23)、透明マッピング法(ステップJ24)、反射マッピング法(ステップJ25)、及び環境マッピング法(ステップJ26)等のいずれか少なくとも1つを用いる。
最後に、上記一連のデジタル処理に伴う境界線部分のギザギザなどを滑らかにするアンチ・エリアシング処理などを行ない(ステップJ27)、以上で一連の3次元CG描画処理の処理を終了する。
しかして、上記図31のメインルーチンでは、上記ステップH15で視位置に応じた合成画像を半透明化処理し、実際に得られる被写体像上に重畳して電子ファインダ22で表示しながら、レリーズキー12の操作による撮影指示があるか否かを判断する(ステップH16)。
ここでレリーズキー12の操作がないと判断した場合には、レリーズキー12以外のキー操作あるいは表示に斯かる処理を実行する一方で(ステップH19)、レリーズキー12が操作されたと判断した場合には、その時点で設定されている撮影条件に従った撮影処理を実行し(ステップH17)、撮影により得た画像データを圧縮符号化/伸長復号化部56にてデータ圧縮して符号化し、撮影条件や撮影時の被写体情報等を添付してファイル化した上でメモリカード67に記録し(ステップH18)、以上で上記図30及び図31の一連の処理を一旦終了して、次の撮影に備えるべく再び始めからの処理に戻る。
このように、夜間や距離の中、あるいは知らない土地で撮影を行なうような場合でも、デジタルカメラ10の電子ファインダ22での表示により、視野に本来見えるべき山、地形、主要な建物などの位置や方向を視認することができるので、撮影すべき被写体を間違えることなく識別できる。
例えば、観光地の展望台などで、景色の案内図等がないような場合でも、デジタルカメラ10を所望の方向に向けるだけで、被写体となる山や主要な建物、町などの名前や位置を識別した上で撮影を実行することができる。
また、3次元のCG描画処理機能を設け、現在位置以外の場所も入力して検索できるようにすると、被写体となる地形や建造物によるリアルな仮想的な景色や俯瞰図より、撮影場所の把握や撮影構図の選定、撮影条件の計画なども容易に行なうことができる。
なお、上記のように第1乃至第4の実施の形態は、いずれも本発明をデジタルカメラに適用した場合について説明したものであるが、本発明はこれに限るものではなく、例えばカメラ機能を有する携帯電話機、カメラ機能と通信機能を有するPDA(Personal Digital Assistants:個人向け情報携帯端末)やポータブルタイプのパーソナルコンピュータなど、各種小型電子機器にも同様に適用することができる。
その他、本発明は上記実施の形態に限らず、その要旨を逸脱しない範囲内で種々変形して実施することが可能であるものとする。
さらに、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組合わせにより種々の発明が抽出され得る。例えば、実施の形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも1つが解決でき、発明の効果の欄で述べられている効果の少なくとも1つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
本発明は上記のような実情に鑑みてなされたもので、その目的とするところは、周囲環境下での位置関係等を特定可能な所定の被写体を撮影する場合に、正確に被写体をとらえて気軽に撮影を行なうことが可能な撮像装置及びプログラムを提供することにある。