(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-07-31
(45)【発行日】2025-08-08
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
H04N 23/60 20230101AFI20250801BHJP
G03B 15/00 20210101ALI20250801BHJP
G03B 19/07 20210101ALI20250801BHJP
G03B 35/08 20210101ALI20250801BHJP
G03B 37/00 20210101ALI20250801BHJP
H04N 13/122 20180101ALI20250801BHJP
H04N 13/218 20180101ALI20250801BHJP
H04N 23/55 20230101ALI20250801BHJP
G03B 17/14 20210101ALN20250801BHJP
【FI】
H04N23/60 500
G03B15/00 W
G03B19/07
G03B35/08
G03B37/00 A
H04N13/122
H04N13/218
H04N23/55
G03B17/14
(21)【出願番号】P 2021091810
(22)【出願日】2021-05-31
【審査請求日】2024-05-23
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】小林 達
(72)【発明者】
【氏名】相場 俊孝
(72)【発明者】
【氏名】筑比地 佑樹
【審査官】辻本 寛司
(56)【参考文献】
【文献】特開2020-077939(JP,A)
【文献】特開2019-117330(JP,A)
【文献】米国特許出願公開第2019/0222823(US,A1)
【文献】特開2019-159284(JP,A)
【文献】特開2017-220824(JP,A)
【文献】国際公開第2019/082415(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/60
H04N 23/55
H04N 13/218
H04N 13/122
G03B 15/00
G03B 35/08
G03B 19/07
G03B 37/00
G03B 17/14
(57)【特許請求の範囲】
【請求項1】
完全な形では記録されていない第1の円周魚眼画像を取得する取得手段であって、前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する第1の円形領域内に画素値が存在しない第1の欠落領域を伴う、取得手段と、
前記第1の円周魚眼画像に基づいて第1の正距円筒変換処理を行うことにより、前記第1の円形領域に対応する第1の正距円筒図法画像を生成する生成手段と、
を備え、
前記生成手段は、
前記第1の正距円筒変換処理の前に、前記第1の円周魚眼画像の前記第1の欠落領域に所定の色を示す画素値を設定することにより、前記第1の円形領域内の前記第1の欠落領域に対応する、前記第1の正距円筒図法画像の第1の対応領域が画素値を持つように、前記第1の正距円筒図法画像を生成し、
前記取得手段は、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像を取得し、
前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像される
ことを特徴とする画像処理装置。
【請求項2】
前記第2の円周魚眼画像は、画素値が存在しない第2の欠落領域を伴い、
前記生成手段は、前記第2の円周魚眼画像に基づいて第2の正距円筒変換処理を行うことにより、第2の正距円筒図法画像において前記第2の欠落領域に対応する第2の対応領域が前記所定の
色を示す画素値を持つように、前記第2の正距円筒図法画像を生成し、
前記生成手段は、前記第2の正距円筒図法画像の前記第2の対応領域に対応する位置にある前記第1の正距円筒図法画像の領域に、前記所定の
色を示す画素値を設定する
ことを特徴とする請求項
1に記載の画像処理装置。
【請求項3】
前記所定の
色を示す画素値は、黒を示す値である
ことを特徴とする請求項
1又は
2に記載の画像処理装置。
【請求項4】
完全な形では記録されていない第1の円周魚眼画像を取得する取得手段であって、前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する第1の円形領域内に画素値が存在しない第1の欠落領域を伴う、取得手段と、
前記第1の円周魚眼画像に基づいて第1の正距円筒変換処理を行うことにより、前記第1の円形領域に対応する第1の正距円筒図法画像を生成する生成手段と、
を備え、
前記生成手段は、前記第1の正距円筒変換処理において前記第1の正距円筒図法画像の処理対象画素に対応する前記第1の円周魚眼画像の座標を識別し、当該識別された座標に画素値が存在しない場合に、前記第1の正距円筒図法画像の前記処理対象画素に所定の
色を示す画素値を設定する
ことにより、前記第1の円形領域内の前記第1の欠落領域に対応する、前記第1の正距円筒図法画像の第1の対応領域が画素値を持つように、前記第1の正距円筒図法画像を生成し、
前記取得手段は、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像を取得し、
前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像される
ことを特徴とす
る画像処理装置。
【請求項5】
完全な形では記録されていない第1の円周魚眼画像を取得する取得手段であって、前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する第1の円形領域内に画素値が存在しない第1の欠落領域を伴う、取得手段と、
前記第1の円周魚眼画像に基づいて第1の正距円筒変換処理を行うことにより、前記第1の円形領域に対応する第1の正距円筒図法画像を生成する生成手段と、
を備え、
前記生成手段は、前記第1の円形領域内の前記第1の欠落領域に対応する、前記第1の正距円筒図法画像の第1の対応領域が画素値を持つように、前記第1の正距円筒図法画像を生成し、
前記取得手段は、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像を取得し、
前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像され、
前記第2の円周魚眼画像は、画素値が存在しない第2の欠落領域を伴い、
前記生成手段は、前記第1の正距円筒図法画像の前記第1の対応領域に、前記第1の円周魚眼画像の前記第1の欠落領域に対応する位置にある前記第2の円周魚眼画像の領域の画素値を設定し、
前記第1の円周魚眼画像の前記第1の欠落領域のうちの特定の領域に対応する位置にある前記第2の円周魚眼画像の領域が前記第2の欠落領域に含まれる場合、前記生成手段は、前記第1の正距円筒図法画像の前記第1の対応領域のうちの当該特定の領域に対応する領域ついては、所定の
色を示す画素値を設定する
ことを特徴とす
る画像処理装置。
【請求項6】
完全な形では記録されていない第1の円周魚眼画像に基づく第1の正距円筒変換処理により生成された第1の正距円筒図法画像と、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像に基づく第2の正距円筒変換処理により生成された第2の正距円筒図法画像と、を取得する取得手段であって、
前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する円形領域内に画素値が存在しない欠落領域を伴い、
前記第1の正距円筒図法画像は、前記円形領域に対応し、
前記円形領域内の前記欠落領域に対応する、前記第1の正距円筒図法画像の対応領域には所定の画素値が設定されている、
取得手段と、
前記第1の正距円筒図法画像及び前記第2の正距円筒図法画像に基づく立体的な仮想現実のための表示位置を指定する指定手段と、
前記第1の正距円筒図法画像において前記表示位置に対応する第1の表示画像と、前記第2の正距円筒図法画像において前記表示位置に対応する第2の表示画像とを出力する出力手段と、
前記第1の表示画像の中に前記対応領域に重なる第1の特定領域が存在する場合に、当該第1の特定領域と、前記第2の表示画像において当該第1の特定領域に対応する位置にある第2の特定領域とが同じ画像を含むように、前記第1の表示画像又は前記第2の表示画像を出力前に補正する補正手段と、
を備え、
前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像される
ことを特徴とする画像処理装置。
【請求項7】
前記補正手段は、前記第2の表示画像の前記第2の特定領域に前記所定の画素値を設定する
ことを特徴とする請求項
6に記載の画像処理装置。
【請求項8】
前記補正手段は、前記第1の表示画像の前記第1の特定領域の画像を、前記第2の表示画像の前記第2の特定領域の画像に置き換える
ことを特徴とする請求項
6に記載の画像処理装置。
【請求項9】
前記補正手段は、前記第1の表示画像を、前記第2の表示画像に置き換える
ことを特徴とする請求項
6に記載の画像処理装置。
【請求項10】
前記所定の画素値は、黒を示す値である
ことを特徴とする請求項
6乃至
9のいずれか1項に記載の画像処理装置。
【請求項11】
完全な形では記録されていない第1の円周魚眼画像と、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像とを含む画像を取得する取得手段であって、前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する円形領域内に画素値が存在しない欠落領域を伴う、取得手段と、
前記第1の円周魚眼画像の前記欠落領域に、前記欠落領域に対応する位置にある前記第2の円周魚眼画像の領域の画素値を設定する設定手段と、
前記画像から、前記欠落領域に設定された画素値を含む前記第1の円周魚眼画像を抽出する抽出手段と、
前記第1の円周魚眼画像において前記欠落領域から所定の範囲内の第1の特定領域に、前記第1の特定領域に対応する位置にある前記第2の円周魚眼画像の第2の特定領域の画素値を合成する合成手段と、
を備え、
前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像され
、
前記合成手段は、前記欠落領域に近い画素ほど、前記第1の特定領域の画素値に対する第2の特定領域の画素値の合成比率が大きくなるように制御する
ことを特徴とする画像処理装置。
【請求項12】
画像処理装置が実行する画像処理方法であって、
完全な形では記録されていない第1の円周魚眼画像を取得する取得工程であって、前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する第1の円形領域内に画素値が存在しない第1の欠落領域を伴う、取得工程と、
前記第1の円周魚眼画像に基づいて第1の正距円筒変換処理を行うことにより、前記第1の円形領域に対応する第1の正距円筒図法画像を生成する生成工程と、
を備え、
前記生成工程は、
前記第1の正距円筒変換処理の前に、前記第1の円周魚眼画像の前記第1の欠落領域に所定の色を示す画素値を設定することにより、前記第1の円形領域内の前記第1の欠落領域に対応する、前記第1の正距円筒図法画像の第1の対応領域が画素値を持つように、前記第1の正距円筒図法画像を生成し、
前記取得工程は、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像を取得し、
前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像される
ことを特徴とする画像処理方法。
【請求項13】
画像処理装置が実行する画像処理方法であって、
完全な形では記録されていない第1の円周魚眼画像を取得する取得工程であって、前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する第1の円形領域内に画素値が存在しない第1の欠落領域を伴う、取得工程と、
前記第1の円周魚眼画像に基づいて第1の正距円筒変換処理を行うことにより、前記第1の円形領域に対応する第1の正距円筒図法画像を生成する生成工程と、
を備え、
前記生成工程は、前記第1の正距円筒変換処理において前記第1の正距円筒図法画像の処理対象画素に対応する前記第1の円周魚眼画像の座標を識別し、当該識別された座標に画素値が存在しない場合に、前記第1の正距円筒図法画像の前記処理対象画素に所定の色を示す画素値を設定することにより、前記第1の円形領域内の前記第1の欠落領域に対応する、前記第1の正距円筒図法画像の第1の対応領域が画素値を持つように、前記第1の正距円筒図法画像を生成し、
前記取得工程は、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像を取得し、
前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像される
ことを特徴とする画像処理方法。
【請求項14】
画像処理装置が実行する画像処理方法であって、
完全な形では記録されていない第1の円周魚眼画像を取得する取得工程であって、前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する第1の円形領域内に画素値が存在しない第1の欠落領域を伴う、取得工程と、
前記第1の円周魚眼画像に基づいて第1の正距円筒変換処理を行うことにより、前記第1の円形領域に対応する第1の正距円筒図法画像を生成する生成工程と、
を備え、
前記生成工程は、前記第1の円形領域内の前記第1の欠落領域に対応する、前記第1の正距円筒図法画像の第1の対応領域が画素値を持つように、前記第1の正距円筒図法画像を生成し、
前記取得工程は、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像を取得し、
前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像され、
前記第2の円周魚眼画像は、画素値が存在しない第2の欠落領域を伴い、
前記生成工程は、前記第1の正距円筒図法画像の前記第1の対応領域に、前記第1の円周魚眼画像の前記第1の欠落領域に対応する位置にある前記第2の円周魚眼画像の領域の画素値を設定し、
前記第1の円周魚眼画像の前記第1の欠落領域のうちの特定の領域に対応する位置にある前記第2の円周魚眼画像の領域が前記第2の欠落領域に含まれる場合、前記生成工程は、前記第1の正距円筒図法画像の前記第1の対応領域のうちの当該特定の領域に対応する領域ついては、所定の色を示す画素値を設定する
ことを特徴とする画像処理方法。
【請求項15】
画像処理装置が実行する画像処理方法であって、
完全な形では記録されていない第1の円周魚眼画像に基づく第1の正距円筒変換処理により生成された第1の正距円筒図法画像と、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像に基づく第2の正距円筒変換処理により生成された第2の正距円筒図法画像と、を取得する取得工程であって、
前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する円形領域内に画素値が存在しない欠落領域を伴い、
前記第1の正距円筒図法画像は、前記円形領域に対応し、
前記円形領域内の前記欠落領域に対応する、前記第1の正距円筒図法画像の対応領域には所定の画素値が設定されている、
取得工程と、
前記第1の正距円筒図法画像及び前記第2の正距円筒図法画像に基づく立体的な仮想現実のための表示位置を指定する指定工程と、
前記第1の正距円筒図法画像において前記表示位置に対応する第1の表示画像と、前記第2の正距円筒図法画像において前記表示位置に対応する第2の表示画像とを出力する出力工程と、
前記第1の表示画像の中に前記対応領域に重なる第1の特定領域が存在する場合に、当該第1の特定領域と、前記第2の表示画像において当該第1の特定領域に対応する位置にある第2の特定領域とが同じ画像を含むように、前記第1の表示画像又は前記第2の表示画像を出力前に補正する補正工程と、
を備え、
前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像される
ことを特徴とする画像処理方法。
【請求項16】
画像処理装置が実行する画像処理方法であって、
完全な形では記録されていない第1の円周魚眼画像と、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像とを含む画像を取得する取得工程であって、前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する円形領域内に画素値が存在しない欠落領域を伴う、取得工程と、
前記第1の円周魚眼画像の前記欠落領域に、前記欠落領域に対応する位置にある前記第2の円周魚眼画像の領域の画素値を設定する設定工程と、
前記画像から、前記欠落領域に設定された画素値を含む前記第1の円周魚眼画像を抽出する抽出工程と、
前記第1の円周魚眼画像において前記欠落領域から所定の範囲内の第1の特定領域に、前記第1の特定領域に対応する位置にある前記第2の円周魚眼画像の第2の特定領域の画素値を合成する合成工程と、
を備え、
前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像され
、
前記合成工程は、前記欠落領域に近い画素ほど、前記第1の特定領域の画素値に対する第2の特定領域の画素値の合成比率が大きくなるように制御する
ことを特徴とする画像処理方法。
【請求項17】
コンピュータを、請求項1乃至
3のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項18】
コンピュータを、請求項4に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項19】
コンピュータを、請求項5に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項20】
コンピュータを、請求項
6乃至
10のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項21】
コンピュータを、請求項
11に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
2台のカメラ用いて視差のある画像を撮影し、撮影した視差画像を立体感のある画僧現実(VR)画像として再生する技術が知られている。また、1つのレンズマウントに2つの光学系を持ち、視差のある画像を一度に撮影できる装置が知られている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の技術は、イメージセンサ上で左右のレンズを通った左右画像それぞれの撮影方向が変わってしまう問題に対処している。しかしながら、円周魚眼画像が画素値が存在しない欠落領域を伴う場合の処理については、考慮されていない。
【0005】
本発明はこのような状況に鑑みてなされたものであり、画素値が存在しない欠落領域を伴う円周魚眼画像を適切に処理する技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明は、完全な形では記録されていない第1の円周魚眼画像を取得する取得手段であって、前記第1の円周魚眼画像は、前記第1の円周魚眼画像の前記完全な形に対応する第1の円形領域内に画素値が存在しない第1の欠落領域を伴う、取得手段と、前記第1の円周魚眼画像に基づいて第1の正距円筒変換処理を行うことにより、前記第1の円形領域に対応する第1の正距円筒図法画像を生成する生成手段と、を備え、前記生成手段は、前記第1の正距円筒変換処理の前に、前記第1の円周魚眼画像の前記第1の欠落領域に所定の色を示す画素値を設定することにより、前記第1の円形領域内の前記第1の欠落領域に対応する、前記第1の正距円筒図法画像の第1の対応領域が画素値を持つように、前記第1の正距円筒図法画像を生成し、前記取得手段は、前記第1の円周魚眼画像に対する視差を有する第2の円周魚眼画像を取得し、前記第1の円周魚眼画像及び前記第2の円周魚眼画像は、第1の被写体像及び第2の被写体像を同一の撮像素子に同時に結像することにより撮像され、前記第1の被写体像は第1の魚眼レンズを介して結像され、前記第2の被写体像は第2の魚眼レンズを介して結像されることを特徴とする画像処理装置を提供する。
【発明の効果】
【0007】
本発明によれば、画素値が存在しない欠落領域を伴う円周魚眼画像を適切に処理することが可能となる。
【0008】
なお、本発明のその他の特徴及び利点は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
【図面の簡単な説明】
【0009】
【
図4】カメラ100に装着可能なVR180レンズ300の構成の一例を示す図。
【
図6A】カメラ100による撮影処理のフローチャート。
【
図6B】カメラ100による撮影処理のフローチャート。
【
図7】PC500による正距円筒変換処理の全体フローチャート。
【
図8A】第1の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の詳細を示すフローチャート。
【
図8B】第2の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の詳細を示すフローチャート。
【
図8C】第3の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の詳細を示すフローチャート。
【
図8D】第4の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の詳細を示すフローチャート。
【
図9】カメラ100が記録する画像ファイル(PC500が処理する画像ファイル)の構造を示す図。
【
図10】(a)(b)VR180レンズ300から取得される情報を示す図、(c)カメラ100から取得される情報を示す図。
【
図11】(a)(b)VR180レンズ300が装着されたカメラ100により撮影され記録された画像の例を示す図、(c)円周魚眼画像の欠落領域に画素値が設定された状態の例を示す図。
【
図12A】第1の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の概念図。
【
図12B】第2の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の概念図。
【
図12C】第3の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の概念図。
【
図12D】第4の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の概念図。
【
図13】第5の実施形態に係る画像処理のフローチャート。
【
図14】S1310の画像処理の詳細を示すフローチャート。
【
図15】第5の実施形態に係る表示設定画面を示す図。
【
図16A】第5の実施形態に係る画像処理の概念図。
【
図16B】第5の実施形態に係る画像処理の概念図。
【
図16C】第5の実施形態に係る画像処理の概念図。
【
図16D】第5の実施形態に係る画像処理の概念図。
【
図17】第6の実施形態に係る画像処理のフローチャート。
【
図18】S1715の処理の詳細を示すフローチャート。
【
図19】第6の実施形態に係る、PC500上のアプリ画面を示す図。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0011】
[第1の実施形態]
●システムの全体構成
図1は、第1の実施形態に係るシステムの全体構成を示す図である。
図1において、100は、画像(静止画又は動画)を撮影可能なデジタルカメラ(以下、「カメラ」と呼ぶ)である。250は、カメラ100に装着可能なVR180レンズである。VR180レンズ300は2眼レンズであり、VR180レンズ300が装着されたカメラ100により撮影を行うことにより、視差を有する画像を取得することができる。VR180レンズ300は、2眼立体視が可能で180度の視野を持つVR画像のフォーマットである、いわゆるVR180のための画像を撮影するためのレンズである。
【0012】
500は、カメラ100により撮影された画像を処理する画像処理装置の一例であるパーソナルコンピュータ(PC)である。PC500がカメラ100から画像を取得する方法は特に限定されない。例えば、
図1(a)に示すように、PC500は、無線通信によりカメラ100から画像を取得してもよい。或いは、
図1(b)に示すように、PC500は、カメラ100の外部記憶装置(例えばメモリカード)を介して、ファイルとして記録されている画像を取得してもよい。
【0013】
●カメラ100の構成
図2は、カメラ100の外観を示す図である。
図2(a)は、カメラ100を前面から見た斜視図であり、
図2(b)はカメラ100を背面から見た斜視図である。
【0014】
カメラ100は、上面に、シャッターボタン101、電源スイッチ102、モード切替スイッチ103、メイン電子ダイヤル104、サブ電子ダイヤル105、動画ボタン106、ファインダ外表示部107を有する。シャッターボタン101は、撮影準備又は撮影指示を行うための操作部である。電源スイッチ102は、カメラ100の電源のオンとオフとを切り替える操作部である。モード切替スイッチ103は、各種モードを切り替えるための操作部である。メイン電子ダイヤル104は、シャッター速度や絞り等の設定値を変更するための回転式の操作部である。サブ電子ダイヤル105は、選択枠(カーソル)の移動や画像送り等を行うための回転式の操作部である。動画ボタン106は、動画撮影(記録)の開始や停止の指示を行うための操作部である。ファインダ外表示部107は、シャッター速度や絞り等の様々な設定値を表示する。
【0015】
また、カメラ100は、背面に、表示部108、タッチパネル109、方向キー110、SETボタン111、AEロックボタン112、拡大ボタン113、再生ボタン114、メニューボタン115を有する。更に、カメラ100は、接眼部116、接眼ファインダ117(覗き込み型のファインダ)、接眼検知部118、タッチバー119を有する。表示部108は、画像や各種情報を表示する。タッチパネル109は、表示部108の表示面(タッチ操作面)に対するタッチ操作を検出する操作部である。方向キー110は、上下左右にそれぞれ押下可能なキー(4方向キー)から構成される操作部である。方向キー110の押下した位置に応じた操作が可能である。SETボタン111は、主に選択項目を決定するときに押下される操作部である。AEロックボタン112は、撮影待機状態で露出状態を固定するときに押下される操作部である。拡大ボタン113は、撮影モードのライブビュー表示(LV表示)において拡大モードのオンとオフとを切り替えるための操作部である。拡大モードがオンである場合にはメイン電子ダイヤル104を操作することにより、ライブビュー画像(LV画像)が拡大又は縮小する。また、拡大ボタン113は、再生モードにおいて再生画像を拡大させたり、拡大率を大きくさせたりするときに用いられる。再生ボタン114は、撮影モードと再生モードとを切り替えるための操作部である。撮影モードの場合に再生ボタン114を押下することで再生モードに移行し、後述する記録媒体227に記録された画像のうち最新の画像を表示部108に表示させることができる。
【0016】
メニューボタン115は、各種設定が可能なメニュー画面を表示部108に表示させるときに押下される操作部である。ユーザが表示部108に表示されたメニュー画面と、方向キー110やSETボタン111とを用いて直感的に各種設定を行うことができる。接眼部116は、接眼ファインダ117に対して接眼するための部位である。ユーザは接眼部116を介して内部の後述するEVF217(Electronic View Finder)に表示された映像を視認することができる。接眼検知部118は、接眼部116にユーザが接眼しているか否かを検知するセンサである。
【0017】
タッチバー119は、タッチ操作を受け付けることが可能なライン状のタッチ操作部(ラインタッチセンサ)である。タッチバー119は、右手の人差し指でシャッターボタン101を押下可能なようにグリップ部120を右手で握った状態(右手の小指、薬指、中指で握った状態)で、右手の親指でタッチ操作可能(タッチ可能)な位置に配置される。即ち、タッチバー119は接眼部116に接眼して接眼ファインダ117を覗き、いつでもシャッターボタン101を押下できるように構えた状態(撮影姿勢)で操作可能である。タッチバー119は、タッチバー119に対するタップ操作(タッチして所定期間以内に移動せずに離す操作)、左右へのスライド操作(タッチした後、タッチしたままタッチ位置を移動する操作)等を受け付け可能である。タッチバー119は、タッチパネル109とは異なる操作部であり、表示機能を備えていない。本実施形態のタッチバー119は、マルチファンクションバーであって、例えばM-Fnバーとして機能する。
【0018】
また、カメラ100は、グリップ部120、サムレスト部121、端子カバー122、蓋123、通信端子124を有する。グリップ部120は、ユーザがカメラ100を構える際に右手で握りやすい形状に形成された保持部である。グリップ部120を右手の小指、薬指、中指で握ってカメラ100を保持した状態で、右手の人差指で操作可能な位置にシャッターボタン101とメイン電子ダイヤル104が配置される。また、同様な状態で、右手の親指で操作可能な位置にサブ電子ダイヤル105とタッチバー119が配置される。サムレスト部121(親指待機位置)は、カメラ100の背面側の、どの操作部も操作しない状態でグリップ部120を握った右手の親指を置きやすい箇所に設けられたグリップ部である。サムレスト部121は、保持力(グリップ感)を高めるためのラバー部材等で構成される。端子カバー122は、カメラ100を外部機器に接続する接続ケーブル等のコネクタを保護する。蓋123は、後述する記録媒体227を格納するためのスロットを閉塞することで記録媒体227及びスロットを保護する。通信端子124は、カメラ100が着脱可能な後述するレンズユニット200側と通信を行うための端子である。
【0019】
図3は、カメラ100の内部構成の一例を示す図である。なお、
図2と同一の構成は、同一符号を付してその説明を適宜、省略する。カメラ100にはレンズユニット200を装着可能である。
【0020】
まず、レンズユニット200について説明する。レンズユニット200は、カメラ100に着脱可能な交換レンズの一種である。レンズユニット200は、1眼レンズであり、通常のレンズの一例である。
【0021】
レンズユニット200は、絞り201、レンズ202、絞り駆動回路203、AF駆動回路204(オートフォーカス駆動回路)、レンズシステム制御回路205、通信端子206を有する。絞り201は、開口径が調整可能に構成される。レンズ202は、複数枚のレンズから構成される。絞り駆動回路203は、絞り201の開口径を制御することで光量を調整する。AF駆動回路204は、レンズ202を駆動させて焦点を合わせる。レンズシステム制御回路205は、後述するシステム制御部50の指示に基づいて、絞り駆動回路203、AF駆動回路204等を制御する。レンズシステム制御回路205は、絞り駆動回路203を介して絞り201の制御を行い、AF駆動回路204を介してレンズ202の位置を変位させることで焦点を合わせる。レンズシステム制御回路205は、カメラ100との間で通信可能である。具体的には、レンズユニット200の通信端子206と、カメラ100の通信端子124とを介して通信される。通信端子206は、レンズユニット200がカメラ100側と通信を行うための端子である。
【0022】
次に、カメラ100について説明する。カメラ100は、シャッター210、撮像部211、A/D変換器212、メモリ制御部213、画像処理部214、メモリ215、D/A変換器216、EVF217、表示部108、システム制御部50を有する。シャッター210は、システム制御部50の指示に基づいて撮像部211の露光時間を自由に制御できるフォーカルプレーンシャッターである。撮像部211は、光学像を電気信号に変換するCCDやCMOS素子等で構成される撮像素子(イメージセンサ)である。撮像部211は、システム制御部50にデフォーカス量情報を出力する撮像面位相差センサを有していてもよい。A/D変換器212は、撮像部211から出力されるアナログ信号をデジタル信号に変換する。画像処理部214は、A/D変換器212からのデータ又はメモリ制御部213からのデータに対し所定の処理(画素補間、縮小等のリサイズ処理、色変換処理等)を行う。また、画像処理部214は、撮影した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてシステム制御部50が露光制御や測距制御を行う。この処理により、TTL(スルー・ザ・レンズ)方式のAF処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理等が行われる。更に、画像処理部214は、撮影した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理を行う。
【0023】
A/D変換器212からの画像データは、画像処理部214及びメモリ制御部213を介してメモリ215に書き込まれる。或いは、A/D変換器212からの画像データは、画像処理部214を介さずにメモリ制御部213を介してメモリ215に書き込まれる。メモリ215は、撮像部211によって得られA/D変換器212によりデジタルデータに変換された画像データや、表示部108やEVF217に表示するための画像データを格納する。メモリ215は、所定枚数の静止画像や所定時間の動画像及び音声を格納するのに十分な記憶容量を備えている。また、メモリ215は画像表示用のメモリ(ビデオメモリ)を兼ねている。
【0024】
D/A変換器216は、メモリ215に格納されている画像表示用のデータをアナログ信号に変換して表示部108やEVF217に供給する。従って、メモリ215に書き込まれた表示用の画像データは、D/A変換器216を介して表示部108やEVF217に表示される。表示部108やEVF217は、D/A変換器216からのアナログ信号に応じた表示を行う。表示部108やEVF217は、例えば、LCDや有機EL等のディスプレイである。A/D変換器212によってA/D変換されメモリ215に蓄積されたデジタル信号をD/A変換器216でアナログ信号に変換し、表示部108やEVF217に逐次転送して表示することで、ライブビュー表示が行われる。
【0025】
システム制御部50は、少なくとも1つのプロセッサ及び/又は少なくとも1つの回路からなる制御部である。即ち、システム制御部50は、プロセッサであってもよく、回路であってもよく、プロセッサと回路の組み合わせであってもよい。システム制御部50は、カメラ100全体を制御する。システム制御部50は、不揮発性メモリ219に記録されたプログラムを実行することで、後述するフローチャートの各処理を実現する。また、システム制御部50は、メモリ215、D/A変換器216、表示部108、EVF217等を制御することにより表示制御も行う。
【0026】
また、カメラ100は、システムメモリ218、不揮発性メモリ219、システムタイマ220、通信部221、姿勢検知部222、接眼検知部118を有する。システムメモリ218は、例えばRAMが用いられる。システムメモリ218には、システム制御部50の動作用の定数、変数、不揮発性メモリ219から読み出したプログラム等が展開される。不揮発性メモリ219は、電気的に消去・記録可能なメモリであり、例えばEEPROMが用いられる。不揮発性メモリ219には、システム制御部50の動作用の定数、プログラム等が記録される。ここでのプログラムとは、後述するフローチャートを実行するためのプログラムである。システムタイマ220は、各種制御に用いる時間や、内蔵された時計の時間を計測する計時部である。通信部221は、無線又は有線ケーブルによって接続された外部機器との間で、映像信号や音声信号の送受信を行う。通信部221は無線LAN(Local Area Network)やインターネットとも接続可能である。また、通信部221は、Bluetooth(登録商標)やBluetooth Low Energyでも外部機器と通信可能である。通信部221は撮像部211で撮影した画像(ライブ画像を含む)や、記録媒体227に記録された画像を送信可能であり、外部機器から画像データやその他の各種情報を受信することができる。姿勢検知部222は、重力方向に対するカメラ100の姿勢を検知する。姿勢検知部222で検知された姿勢に基づいて、撮像部211で撮影された画像が、カメラ100を横に構えて撮影された画像であるか、縦に構えて撮影された画像であるかを判別可能である。システム制御部50は、姿勢検知部222で検知された姿勢に応じた向き情報を撮像部211で撮影された画像の画像ファイルに付加したり、画像を回転して記録したりすることが可能である。姿勢検知部222は、例えば、加速度センサやジャイロセンサ等を用いることができる。姿勢検知部222を用いて、カメラ100の動き(パン、チルト、持ち上げ、静止しているか否か等)を検知することも可能である。
【0027】
接眼検知部118は、EVF217を内蔵する接眼ファインダ117の接眼部116に対する何らかの物体の接近を検知することができる。接眼検知部118は、例えば、赤外線近接センサを用いることができる。物体が接近した場合、接眼検知部118の投光部から投光した赤外線が物体で反射して赤外線近接センサの受光部で受光される。受光された赤外線の量によって接眼部116から物体までの距離を判別することができる。このように、接眼検知部118は、接眼部116に対する物体の近接距離を検知する接眼検知を行う。接眼検知部118は、接眼ファインダ117の接眼部116に対する眼(物体)の接近(接眼)及び離反(離眼)を検知する接眼検知センサである。非接眼状態(非接近状態)から、接眼部116に対して所定距離以内に近づく物体が検知された場合に、接眼されたと検知する。一方、接眼状態(接近状態)から、接近を検知していた物体が所定距離以上離れた場合に、離眼されたと検知する。接眼を検知する閾値と、離眼を検知する閾値は例えばヒステリシスを設ける等して異なっていてもよい。また、接眼を検知した後は、離眼を検知するまでは接眼状態であるものとする。離眼を検知した後は、接眼を検知するまでは非接眼状態であるものとする。システム制御部50は、接眼検知部118で検知された状態に応じて、表示部108とEVF217の表示(表示状態)/非表示(非表示状態)を切り替える。具体的には、少なくとも撮影待機状態であって、かつ、表示先の切替設定が自動切替である場合、非接眼中は表示先を表示部108として表示をオンとし、EVF217は非表示とする。また、接眼中は表示先をEVF217として表示をオンとし、表示部108は非表示とする。なお、接眼検知部118は、赤外線近接センサである場合に限られず、接眼とみなせる状態を検知できるものであれば他のセンサを用いてもよい。 また、カメラ100は、ファインダ外表示部107、ファインダ外表示駆動回路223、電源制御部224、電源部225、記録媒体I/F226、操作部228を有する。ファインダ外表示部107は、ファインダ外表示駆動回路223を介して、シャッター速度や絞り等のカメラ100の様々な設定値を表示する。電源制御部224は、電池検出回路、DC-DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成され、電池の装着の有無、電池の種類、電池残量の検出等を行う。また、電源制御部224は、その検出結果及びシステム制御部50の指示に基づいてDC-DCコンバータを制御し、必要な電圧を必要な期間、記録媒体227を含む各部へ供給する。電源部225は、アルカリ電池及びリチウム電池等の一次電池、NiCd電池、NiMH電池及びLi電池等の二次電池、ACアダプター等である。記録媒体I/F226は、メモリカードやハードディスク等の記録媒体227とのインタフェースである。記録媒体227は、撮影された画像を記録するためのメモリカード等であり、半導体メモリや磁気ディスク等から構成される。記録媒体227は、着脱可能であってもよく、内蔵されていてもよい。
【0028】
操作部228は、ユーザからの操作(ユーザ操作)を受け付ける入力部であり、システム制御部50に各種の指示を入力するために用いられる。操作部228には、シャッターボタン101、電源スイッチ102、モード切替スイッチ103、タッチパネル109、他の操作部229が含まれる。他の操作部229には、メイン電子ダイヤル104、サブ電子ダイヤル105、動画ボタン106、方向キー110、SETボタン111、AEロックボタン112、拡大ボタン113、再生ボタン114、メニューボタン115、タッチバー119が含まれる。
【0029】
シャッターボタン101は、第1シャッタースイッチ230と第2シャッタースイッチ231を有する。第1シャッタースイッチ230は、シャッターボタン101の操作途中、いわゆる半押し(撮影準備指示)でオンとなり、第1シャッタースイッチ信号SW1を発生させる。システム制御部50は、第1シャッタースイッチ信号SW1により、AF処理、AE処理、AWB処理、EF処理等の撮影準備処理を開始する。第2シャッタースイッチ231は、シャッターボタン101の操作完了、いわゆる全押し(撮影指示)でオンとなり、第2シャッタースイッチ信号SW2を発生する。システム制御部50は、第2シャッタースイッチ信号SW2により、撮像部211からの信号読み出しから、撮影された画像を含む画像ファイルを生成して記録媒体227に書き込むまでの一連の撮影処理を開始する。
【0030】
モード切替スイッチ103は、システム制御部50の動作モードを静止画撮影モード、動画撮影モード、再生モード等の何れかに切り替える。静止画撮影モードに含まれるモードには、オート撮影モード、オートシーン判別モード、マニュアルモード、絞り優先モード(Avモード)、シャッター速度優先モード(Tvモード)、プログラムAEモード(Pモード)がある。また、撮影シーン別の撮影設定となる各種シーンモード、カスタムモード等がある。ユーザは、モード切替スイッチ103により、上述した撮影モードの何れかに直接、切り替えることができる。或いは、ユーザは、モード切替スイッチ103により撮影モードの一覧画面に一旦切り替えた後に、表示された複数のモードの何れかに操作部228を用いて選択的に切り替えることができる。同様に、動画撮影モードにも複数のモードが含まれていてもよい。
【0031】
タッチパネル109は、表示部108の表示面(タッチパネル109の操作面)への各種タッチ操作を検出するタッチセンサである。タッチパネル109と表示部108とは一体的に構成することができる。例えば、タッチパネル109は、光の透過率が表示部108の表示を妨げないように、表示部108の表示面の上層に取り付けられる。そして、タッチパネル109における入力座標と、表示部108の表示面上の表示座標とを対応付けることで、あたかもユーザが表示部108上に表示された画面を直接的に操作可能であるかのようなGUI(グラフィカルユーザインタフェース)を構成できる。タッチパネル109には、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサ方式等の様々な方式のうち何れかの方式を用いることができる。方式によって、タッチパネル109に対する接触があったことでタッチがあったと検知する方式や、タッチパネル109に対する指やペンの接近があったことでタッチがあったと検知する方式があるが、何れの方式であってもよい。
【0032】
システム制御部50は、タッチパネル109に対する以下の操作又は状態を検出できる。
【0033】
・タッチパネル109にタッチしていなかった指やペンが新たにタッチパネル109にタッチしたこと、即ちタッチの開始(以下、タッチダウン(Touch-Down)という)。
【0034】
・タッチパネル109を指やペンでタッチしている状態(以下、タッチオン(Touch-On)という)。
【0035】
・タッチパネル109を指やペンがタッチしたまま移動していること(以下、タッチムーブ(Touch-Move)という)。
【0036】
・タッチパネル109へタッチしていた指やペンがタッチパネル109から離れた(リリースされた)こと、即ちタッチの終了(以下、タッチアップ(Touch-Up)という)。
【0037】
・タッチパネル109に何もタッチしていない状態(以下、タッチオフ(Touch-Off)という)。
【0038】
タッチダウンが検出されると、同時にタッチオンも検出される。タッチダウンの後、タッチアップが検出されない限りは、通常はタッチオンが検出され続ける。タッチムーブが検出された場合も、同時にタッチオンが検出される。タッチオンが検出されていても、タッチ位置が移動していなければタッチムーブは検出されない。タッチしていた全ての指やペンがタッチアップしたことが検出された後は、タッチオフとなる。
【0039】
これらの操作・状態や、タッチパネル109上に指やペンがタッチしている位置座標は内部バスを通じてシステム制御部50に通知される。システム制御部50は通知された情報に基づいてタッチパネル109上にどのような操作(タッチ操作)が行なわれたかを判定する。タッチムーブについてはタッチパネル109上で移動する指やペンの移動方向についても、位置座標の変化に基づいて、タッチパネル109上の垂直成分・水平成分毎に判定できる。所定距離以上をタッチムーブしたことが検出された場合はスライド操作が行なわれたと判定される。タッチパネル109上に指をタッチしたままある程度の距離だけ素早く動かして、そのまま離すといった操作をフリックという。フリックは、言い換えればタッチパネル109上を指ではじくように素早くなぞる操作である。所定距離以上を、所定速度以上でタッチムーブしたことが検出され、そのままタッチアップが検出されるとフリックが行なわれたと判定される(スライド操作に続いてフリックがあったものと判定できる)。更に、複数箇所(例えば2点)を共にタッチして(マルチタッチして)、互いのタッチ位置を近づけるタッチ操作をピンチイン、互いのタッチ位置を遠ざけるタッチ操作をピンチアウトという。ピンチアウトとピンチインを総称してピンチ操作(又は単にピンチ)という。
【0040】
●VR180レンズ300の構成
図4は、カメラ100に装着可能なVR180レンズ300の構成の一例を示す図である。
図4では、VR180レンズ300をカメラ100に装着した状態を示している。なお、
図4に示すカメラ100において、
図3で説明した構成と同一の構成は、同一符号を付して適宜、説明を省略する。
【0041】
VR180レンズ300は、カメラ100に着脱可能な交換レンズの一種である。VR180レンズ300は、左像及び右像で視差がある撮影が可能な2眼レンズである。VR180レンズ300は、2つの光学系を有し、それぞれ略180度の広視野角であって、前方半球の範囲を撮影できる。具体的には、VR180レンズ300の2つの光学系は、それぞれ左右方向(水平角度、方位角、ヨー角)180度、上下方向(垂直角度、仰俯角、ピッチ角)180度の視野分(画角分)の被写体を撮影できる。
【0042】
VR180レンズ300は、複数のレンズと反射ミラー等を有する右眼光学系301R、複数のレンズと反射ミラー等を有する左眼光学系301L、レンズシステム制御回路303を有する。右眼光学系301Rは第1の光学系の一例に対応し、左眼光学系301Lは第2の光学系の一例に対応する。右眼光学系301R及び左眼光学系301Lにおいて、それぞれ被写体側に位置する各レンズ302R、302Lが同じ方向を向いており、各光軸が略平行である。
【0043】
本実施形態のVR180レンズ300は、2眼立体視が可能で180度の視野を持つVR画像のフォーマットである、いわゆるVR180のための画像を撮影するためのレンズである。VR180レンズ300は、右眼光学系301R及び左眼光学系301Lがそれぞれ略180度の範囲を捉えることが可能な魚眼レンズを有する。なお、VR180レンズ300は、右眼光学系301R及び左眼光学系301LがそれぞれVR180としての2眼VR表示が可能な映像が取得できればよく、180度の範囲よりも狭い160度程度の広視野角の範囲を捉えることが可能なレンズであってもよい。VR180レンズ300は、右眼光学系301Rを介して形成される右像(第一像)と、右像とは視差を有する左眼光学系301Lを介して形成される左像(第二像)とを、装着したカメラの1つ又は2つの撮像素子上に形成することができる。
【0044】
また、VR180レンズ300は、レンズマウント部304と、カメラ100のカメラマウント部305とを介して、カメラ100に装着される。VR180レンズ300がカメラ100に装着されることで、カメラ100の通信端子124と、VR180レンズ300の通信端子306とを介して、カメラ100のシステム制御部50とVR180レンズ300のレンズシステム制御回路303とが電気的に接続される。
【0045】
本実施形態では、右眼光学系301Rを介して形成される右像と、右像とは視差を有する左眼光学系301Lを介して形成される左像とは、並んでカメラ100の撮像部211に結像される。即ち、右眼光学系301R及び左眼光学系301Lにより形成される2つの光学像が1つの撮像素子上に形成される。撮像部211は、結像された被写体像(光信号)をアナログ電気信号に変換する。このように、VR180レンズ300を用いることで、右眼光学系301Rと左眼光学系301Lとの2つの箇所(光学系)から視差がある2つの画像を同時に(セットで)取得することができる。また、取得された画像を左眼用の画像と右眼用の画像とに分けてVR表示することで、ユーザは略180度の範囲の立体的なVR画像、いわゆるVR180を鑑賞することができる。
【0046】
ここで、VR画像とは、後述するVR表示することができる画像である。VR画像には、全方位カメラ(全天球カメラ)で撮影した全方位画像(全天球画像)や、表示部に一度で表示できる表示範囲より広い映像範囲(有効映像範囲)を持つパノラマ画像等が含まれる。また、VR画像には、静止画に限られず、動画、ライブ画像(カメラからほぼリアルタイムで取得した画像)も含まれる。VR画像は、最大で、左右方向360度、上下方向360度の視野分の映像範囲(有効映像範囲)を持つ。また、VR画像には、左右方向360度未満、上下方向360度未満であっても、通常のカメラで撮影可能な画角よりも広範な画角、又は、表示部に一度で表示できる表示範囲より広い映像範囲を持つ画像も含まれる。上述したVR180レンズ300を用いてカメラ100で撮影される画像は、VR画像の一種である。VR画像は、例えば、表示装置(VR画像を表示できる表示装置)の表示モードを「VRビュー」に設定することでVR表示することができる。360度の画角を有するVR画像をVR表示させて、ユーザが表示装置の姿勢を左右方向(水平回転方向)に変化させることで、左右方向に継ぎ目のない全方位の映像を観賞することができる。
【0047】
ここで、VR表示(VRビュー)とは、VR画像のうち、表示装置の姿勢に応じた視野範囲の映像を表示する、表示範囲を変更可能な表示方法(表示モード)である。VR表示には、VR画像を仮想球体にマッピングする変形(歪曲補正が施される変形)を行って1つの画像を表示する「1眼VR表示(1眼VRビュー)」がある。また、VR表示には、左眼用のVR画像と右眼用のVR画像とをそれぞれ仮想球体にマッピングする変形を行って左右の領域に並べて表示する「2眼VR表示(2眼VRビュー)」がある。互いに視差のある左眼用のVR画像と右眼用のVR画像を用いて「2眼VR表示」を行うことで立体視することが可能である。何れのVR表示であっても、例えば、ユーザがHMD(ヘッドマウントディスプレイ)等の表示装置を装着した場合、ユーザの顔の向きに応じた視野範囲の映像が表示される。例えば、VR画像のうち、ある時点で左右方向に0度(特定の方位、例えば北)、上下方向に90度(天頂から90度、即ち水平)を中心とした視野範囲の映像を表示しているとする。この状態から表示装置の姿勢を表裏反転させる(例えば、表示面を南向きから北向きに変更する)と、同じVR画像のうち、左右方向に180度(逆の方位、例えば南)、上下方向に90度を中心とした視野範囲の映像に、表示範囲が変更される。即ち、ユーザがHMDを装着した状態で、顔を北から南に向く(すなわち後ろを向く)ことで、HMDに表示される映像も北の映像から南の映像に変更される。
【0048】
なお、本実施形態のVR180レンズ300を用いて撮影したVR画像は、前方略180度の範囲を撮影したVR180の画像であり、後方略180度の範囲の映像は存在しない。このようなVR180の画像をVR表示させて、映像が存在しない側に表示装置の姿勢を変更した場合にはブランク領域が表示される。
【0049】
このようにVR画像をVR表示することによって、ユーザは視覚的にあたかもVR画像内(VR空間内)にいるような感覚になる。なお、VR画像の表示方法は表示装置の姿勢を変更する方法に限られない。例えば、タッチパネルや方向ボタン等を介したユーザ操作に応じて、表示範囲を移動(スクロール)させてもよい。また、VR表示時(表示モード「VRビュー」時)において、姿勢変化による表示範囲の変更に加え、タッチパネルでのタッチムーブ、マウス等でのドラッグ操作、方向ボタンの押下等に応じて表示範囲を変更してもよい。なお、VRゴーグル(ヘッドマウントアダプタ)に装着されたスマートフォンはHMDの一種である。
【0050】
●PC500の構成
図5は、PC500の構成を示すブロック図である。
図5において、501はPC500全体を制御する制御部であり、例えばCentral Processing Unit(CPU)である。502は変更を必要としないプログラムやパラメータを格納するRead Only Memory(ROM)である。ROM502には、情報処理プログラムが制御部501に読み取り可能なプログラムコードとして格納されており、この情報処理プログラムコードを制御部501が実行する構成になっている。503は外部装置などから供給されるプログラムやデータを一時記憶するRandom Access Memory(RAM)である。
【0051】
504は、PC500に固定して設置されたハードディスク又はフラッシュメモリなどを含む外部記憶装置である。或いは、外部記憶装置504は、PC500から着脱可能なフロッピーディスク(FD)やCompact Disk(CD)等の光ディスク、磁気や光カード、ICカード、メモリカードなどを含む外部記憶装置であってもよい。PC500がカメラ100から取得した画像ファイルは、外部記憶装置504に格納される。
【0052】
505はユーザの操作を受け、データを入力するボタンやタッチパネルなどの操作部である。506はPC500の保持するデータや供給されたデータを表示するための表示部である。507はカメラ100などの外部装置と通信するための通信部である。508はPC500のコンポーネントを通信可能に接続するシステムバスである。
【0053】
●VR180レンズ300で撮影される画像の特長
レンズ光学系が1つの場合、撮像素子上で180度回転した像が結像する。180度回転した像から通常の画像を生成する際に、カメラ100は、180度回転処理を行うことで、画像の上下方向を被写体の上下方向に合わせている。VR180レンズ300が装着されたカメラ100により撮影が行われる場合、右眼光学系301R及び左眼光学系301Lを介して各光学系の像が1つの撮像素子上で結像する。その際に、各光学系の像は、光学系ごとに180度回転する。レンズ光学系が1つの場合と同様に、カメラ100は、画像全体を180度回転させることにより、画像の上下方向を被写体の上下方向に合わせる。結像時の回転は光学系の単位で発生する一方で、画像生成時の回転は画像全体で行われるため、左目光学系に対応する画像が全体画像の右側に移動し、右目光学系に対応する画像が全体画像の左側に移動する。
【0054】
●カメラ100による撮影処理
次に、
図6A及び
図6Bを参照して、カメラ100による撮影処理について説明する。ユーザがカメラ100の電源をオンにすると、
図6A及び
図6Bのフローチャートの処理が開始する。
【0055】
S601で、システム制御部50は、カメラ100のファームウェアがVR180レンズに対応しているかどうかを判断する。ファームウェアがVR180レンズに対応していると判断した場合、処理ステップはS602へ移行する。ファームウェアがVR180レンズに対応していないと判断した場合、処理ステップはS622へ移行する。VR180レンズの光学系は一般的なレンズとは異なるので、カメラ100は、後処理用にVR180レンズのメタデータを読み取り、記録できる必要がある。そのため、システム制御部50は、ファームウェアがVR180レンズに対応しているかどうかを判断する。
【0056】
S602で、システム制御部50が、カメラ100にVR180レンズ(例えば
図4に示すVR180レンズ300)が装着されているかどうかを判断する。VR180レンズが装着されていると判断した場合、処理ステップはS603へ移行する。VR180レンズが装着されていないと判断した場合、処理ステップはS622へ移行する。
【0057】
S603で、システム制御部50が、VR180レンズの設計値を取得する。レンズ設計値は、後述の左右入れ替え処理及び正距円筒変換処理に利用される。
【0058】
S604で、システム制御部50が、VR180レンズの個体値を取得する。VR180レンズは、レンズ設計値に加えて、製造時の誤差などの個体値の情報を追加で保持する。正距円筒変換処理においては、製造誤差値を利用することで、設計値だけを用いて正距円筒変換するよりも良い結果が得られるようになる。
【0059】
S605で、システム制御部50が、撮像部211から画像を取得する。
【0060】
S606で、システム制御部50が、S605で取得した画像をEVF217上に表示する(ライブビュー表示)。
【0061】
S607で、システム制御部50が、シャッターボタン101の操作により記録開始指示が行われたかどうかを判断する。記録開始指示が行われたと判断した場合、処理ステップはS608へ移行する。記録開始指示が行われていないと判断した場合、処理ステップはS605へ移行する。従って、ユーザから記録開始指示がなされるまで、EVFへのライブビュー表示が繰り返される。記録開始指示は、静止画撮影の指示でもよいし、動画撮影の指示でもよい。
【0062】
S608で、システム制御部50が、撮像部211から画像を取得する。
【0063】
S609で、システム制御部50が、撮影時のシャッタースピードなどの撮影情報、及び撮影時のカメラ100の姿勢情報などのメタデータなどを取得する。姿勢情報は、姿勢検知部222から取得される。また、RAW画像撮影の場合には、システム制御部50は、現像に必要なメタデータなども取得する。
【0064】
S610で、システム制御部50が、S608で取得した画像をファイルに記録する。
【0065】
S611で、システム制御部50が、S609で取得した撮影情報及びメタデータをファイルに関連付けて記録する。例えば、システム制御部50は、画像と同一のファイルに撮影情報及びメタデータを記録する。
【0066】
S612で、システム制御部50が、S603及びS604で取得したVR180レンズの情報をファイルに関連付けて記録する。例えば、システム制御部50は、画像と同一のファイルにVR180レンズの情報を記録する。
【0067】
S613で、システム制御部50が、ユーザによる記録終了指示が行われたかどうかを判断する。静止画撮影の場合は、1枚撮影なので記録開始指示と記録終了指示が同時に行われたものとする。動画撮影の場合は、ユーザがシャッターボタン101を再度押すことで、記録指示終了を行う。記録終了指示が行われたと判断した場合、本フローチャートの処理は終了する。記録終了指示が行われていないと判断した場合、処理ステップはS608へ移行する。システム制御部50がS608~S613の処理を繰り返すことで、動画像を次々とファイルに記録することができる。
【0068】
次に、処理ステップがS601又はS602からS622へ移行した場合について説明する。なお、処理ステップがS601からS622へ移行した場合、カメラ100のファームウェアはVR180レンズに対応していない。そのため、カメラ100は、VR180レンズに特有の処理を行うことはできない。従って、カメラ100にVR180レンズが装着されていても、カメラ100は通常レンズ装着時と同じ処理を行う。
【0069】
S622で、システム制御部50が、カメラ100にレンズが装着されているかどうかを判断する。レンズが装着されていると判断した場合、処理ステップはS623へ移行する。レンズが装着されていないと判断した場合、本フローチャートの処理は終了する。
【0070】
S623で、システム制御部50が、レンズの一般的な情報(例えばレンズ名)を取得する。
【0071】
S624で、システム制御部50が、S623でレンズの一般的な情報を取得できたかどうかを判断する。レンズの一般的な情報を取得できた場合、処理ステップはS625に移行する。レンズの一般的な情報を取得できなかった場合、処理ステップはS626に移行する。例えば、カメラ100とレンズとでメーカーが異なり、カメラ100がレンズと通信ができない場合に、カメラ100はレンズから情報を取得できない。
【0072】
S625で、システム制御部50が、S623で取得したレンズの一般的な情報をシステムメモリ218に保持する。
【0073】
S626~S632の処理は、S605~S611の処理と同様であるため、説明を省略する。
【0074】
S633で、システム制御部50が、レンズの一般的な情報がシステムメモリ218に保持しているかどうかを判断する(S625参照)。レンズの一般的な情報が保持されている場合、処理ステップはS634に移行する。レンズの一般的な情報が保持されていない場合、処理ステップはS635に移行する。
【0075】
S634で、システム制御部50が、システムメモリ218に保持されているレンズの一般的な情報をファイルに関連付けて記録する。例えば、システム制御部50は、画像と同一のファイルにレンズの一般的な情報を記録する。
【0076】
S635の処理は、S613の処理と同様であり、記録終了指示が行われた場合、本フローチャートの処理は終了し、記録終了指示が行われていない場合、処理ステップはS629へ移行する。システム制御部50がS629~S635の処理を繰り返すことで、動画像を次々とファイルに記録することができる。
【0077】
なお、
図6A及び
図6Bのフローチャートで撮影される画像は、静止画でもよいし、動画でもよい。また、撮影される画像は、一般的なJPG静止画やMP4動画以外の、RAW静止画やRAW動画でもよい。
【0078】
●VR180レンズ300が装着されたカメラ100の撮影画像
次に、
図11(a)及び
図11(b)を参照して、VR180レンズ300が装着されたカメラ100により撮影され記録された画像の例について説明する。
【0079】
VR180レンズ300は、撮像素子の大きさ及び記録される画角に関して、特定の値を想定して設計されている。例えば、DCI 8K画角を想定したVR180レンズ300の場合、想定される画角は8192x4320である。
【0080】
一方、カメラ100は、撮影設定に応じて、VR180レンズ300が想定した画角以外の画角での記録も可能である。例えば、UHD 8K設定の場合、画角は7680x4320である。この場合、撮像素子上は、VR180レンズ300の画像全体が入力されているにも関わらず、その一部(例えば、両端)が記録されないことになる。
【0081】
図11(a)は、VR180レンズ300が想定しているサイズの撮像素子を持つカメラ100を用いて、撮像素子全体を使用する画角で記録した場合の画像例である。これは例えば、VR180レンズ300が想定している撮像素子のサイズが、DCI 8K(8192x4320)であり、記録サイズもDCI 8Kの場合である。この場合、左右に並んだ2つ円周魚眼画像が完全に記録される。
【0082】
図11(b)は、VR180レンズが想定しているサイズの撮像素子を持つカメラ100を用いて、撮像素子の一部を使用する画角で記録した場合の画像例である。これは例えば、VR180レンズが想定している撮像素子のサイズが、DCI 8K(8192x4320)であり、記録サイズがUHD 8K(7680x4320)の場合である。この場合、撮像素子上には左右に並んだ2つ円周魚眼画像が完全に形成されるが、その一部分が欠けた状態で記録されることになる。例えば、
図11(b)のように、左右に並んだ2つ円周魚眼画像のうち、左円周画像の左側一部、右円周画像の右側一部が欠けた状態で記録される。以下の説明において、円周魚眼画像のうちの欠けた領域を、「欠落領域」とも呼ぶ。
【0083】
●PC500による正距円筒変換処理
図7及び
図8Aを参照して、PC500による正距円筒変換処理について説明する。PC500は、カメラ100から取得した画像ファイルに含まれる画像に対して正距円筒変換処理を行う。正距円筒変換処理により、
図11(a)及び
図11(b)を参照して説明したような左右2つの円周魚眼画像から左右2つの正距円筒図法画像が生成される。
【0084】
S701で、制御部501が、画像ファイルから画像を読み込む。これは、後述する
図9に示す画像ファイルの、静止画又は動画である。
【0085】
S702で、制御部501が、画像ファイルから、撮影情報、及びVR180レンズ以外のメタデータを読み込む。これは、後述する
図9に示す画像ファイルの、撮影情報、及びVR180レンズ以外のメタデータである。
【0086】
S703で、制御部501が、画像ファイルがVR180レンズメタデータを持っているか判断する。これは、後述する
図9に示す画像ファイルの、VR180レンズメタデータである。画像ファイルがVR180レンズメタデータを持っている場合、処理ステップはS704へ移行する。画像ファイルがVR180レンズメタデータを持っていない場合、処理ステップはS706へ移行する。
【0087】
S704で、制御部501が、画像ファイルからVR180レンズメタデータを読み込む。
【0088】
S705で、制御部501が、S704で読み込んだVR180レンズメタデータのうち、VR180レンズの設計値から、記録された画像における左右2つの円周画像の中心座標と半径を取得する。また、VR180レンズメタデータがVRレンズの個体値(製造誤差)を持つ場合、制御部501が、個体値も反映させて、左右2つの円周画像の中心座標と半径を取得する。
【0089】
S703からS706へ処理ステップが移行した場合、制御部501が、画像ファイルがレンズ名を持っているか判断する。例えば、カメラ100のファームウェアがVR180レンズに対応していない場合、カメラ100は、VR180レンズメタデータは記録しないが、VR180レンズ以外のメタデータ領域にレンズ名を記録することはあり得る。画像ファイルがレンズ名を持っている場合、処理ステップはS707へ移行する。画像ファイルがレンズ名を持っていない場合、処理ステップはS709へ移行する。
【0090】
S707で、制御部501が、画像ファイルからレンズ名を取得する。
【0091】
S708で、制御部501が、S707で取得したレンズ名が、既知のVR180レンズを示すかどうか判断する。S707で取得したレンズ名が、既知のVR180レンズを示す場合、処理ステップはS709に移行する。S707で取得したレンズ名が、既知のVR180レンズを示さない場合、処理ステップはS710に移行する。
【0092】
S709で、制御部501が、S707で取得したレンズ名に基づき、記録された画像における左右2つの円周画像の中心座標と半径を決定する。この処理を実現するために、PC500のプログラムは、レンズ名と、そのレンズで撮影した画像の左右2つの円周画像の中心座標と半径の設計値を保持するように構成される。或いは、これらの情報を外部からプログラムに与えてもよい。
【0093】
S706又はS708からS710へ処理ステップが移行した場合、制御部501が、S701で読み込んだ画像が左右2つの円周魚眼画像かどうかを判断する。例えば、制御部501は、読み込んだ画像の画素の輝度値に関して、閾値以下の値(黒に近い値)の場合、その画素の画素値を黒、閾値を超える値の場合、その画素の画素値を白、とするモノクロ2値画像を作成する。そして、制御部501は、モノクロ2値画像の白領域が2つの円形かどうかに基づいて、S701で読み込んだ画像が左右2つの円周魚眼画像かどうかを判断することができる。読み込んだ画像が左右2つの円周魚眼画像の場合、処理ステップはS711に移行する。読み込んだ画像が左右2つの円周魚眼画像ではない場合、本フローチャートの処理は終了する。
【0094】
S711で、制御部501が、S701で読み込んだ画像の2つの円周魚眼画像の中心座標と半径を検出する。円においては、円周上の2点と交わる任意の直線を2本引き、それぞれの中点から垂線を引いたとき、2つの垂線の交点がその円の中心であることが知られている。そのため、例えば、制御部501は、S710で作成したモノクロ2値画像を用いて、円形をなす領域に関して、任意の縦位置で水平方向に画素値を調べ、黒から白に変化した画素のX座標X1と、白から黒に変換し画素のX座標X2を求める。また、制御部501は、任意の横位置で垂直方向に画素値を調べ、黒から白に変化した画素のY座標Y1と、白から黒に変換し画素のY座標Y2を求める。このとき、その円の中心座標は、X座標が(X1+X2)/2、Y座標が(Y1+Y2)/2、である。また、円の中心座標から水平方向に画素値を調べ、白から黒に変化した画素のX座標をX3とすると、円の半径は、X3-((X1+X2)/2)となる。
【0095】
S712で、制御部501が、S705、S709、又はS711の処理により得られた、2つの円周魚眼画像の中心座標と半径を使用して、2つの円周魚眼画像から正距円筒図法画像を作成する。ここで、
図11(b)を参照して説明したように、VR180レンズが装着されたカメラ100により撮影が行われた場合であっても、2つの円周魚眼画像が完全な形では記録されていない(一部に欠けがある)ことがある。
【0096】
図8Aは、第1の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の詳細を示すフローチャートである。
【0097】
S801で、制御部501は、VR180レンズが撮像する画像全体を記録するのに必要な画像サイズを求める。これは、S705、S709、又はS711の処理により得られた、2つの円周魚眼画像の中心座標と半径から求めることができる。例えば、2つの円周魚眼画像が左右に並んだ状態で記録されており、画像の左右中央から左円周魚眼画像の中心位置のX座標までの距離をX1、画像の左右中央から右円周魚眼画像の中心位置のX座標まで距離をX2、左右円周魚眼画像の半径をRとする。ここで、(R<=X1)かつ(R<=X2)である。このとき、左右2つの円周魚眼画像を完全に記録するために必要な画像サイズは、幅((X1+X2)×2)、高さ(R×2)である。
【0098】
S802で、制御部501が、画像ファイルから取得した画像サイズが、S801で求めた画像サイズ未満かどうかを判断する。画像ファイルから取得した画像サイズが、S801で求めた画像サイズ未満の場合、処理ステップはS803に移行する。これは、2つの円周魚眼画像の一部が欠けた状態で記録されていることを意味する。画像ファイルから取得した画像サイズが、S801で求めた画像サイズ以上の場合、処理ステップはS806に移行する。これは、2つの円周魚眼画像全体が記録されていることを意味する。
【0099】
S803で、制御部501は、S801で求めた画像サイズに相当するバッファをRAM503に割り当て、全画素値を黒にセットする。
【0100】
S804で、制御部501は、S803で割り当てたバッファに、S701で取得した画像データをコピーする。このとき、制御部501は、S803で割り当てたバッファの左右中心から左円周魚眼画像の中心位置のX座標までの距離が、S801で求めたX1になるようにコピーを行う。この結果、バッファの画像は、
図11(c)のようになる。
【0101】
S805で、制御部501は、バッファの画像を、正距円筒変換の変換元画像として選択する。
【0102】
図12Aの上の図は、バッファに格納された変換元画像を示す。
図12Aの下の図は、正距円筒変換の変換先画像(変換結果画像)を示す。矢印1201が示すように、左眼正距円筒図法画像の右端の座標は、左眼円周魚眼画像の右端の座標に対応するが、その座標の画素は記録されていないため、S803でセットされた黒画素を指している。同様に、矢印1202が示すように、右眼正距円筒図法画像の左端の座標は、右眼円周魚眼画像の左端の座標に対応するが、その座標の画素は記録されていないため、S803でセットされた黒画素を指している。
【0103】
S802からS806へ処理ステップが移行した場合、制御部501は、S701で取得した画像を、正距円筒変換の変換元画像として選択する。
【0104】
S807で、制御部501は、変換先画像(正距円筒図法画像)の全画素の処理が完了したかどうか判断する。変換先画像の全画素の処理が完了した場合、本フローチャートの処理は終了する。未処理の画素が存在する場合、処理ステップはS808に移行する。
【0105】
S808で、制御部501は、変換先画像(正距円筒図法画像)の処理対象画素の座標に対応する、変換元画像(円周魚眼画像)の座標を求める(識別する)。これは、正距円筒変換の一般的な方法を用いて行うことができる。
図12Aに示すように、記録された円周魚眼画像の一部が欠けている場合であっても、S803~S805で用意したバッファの画像を変換元画像とすることにより、正距円筒変換時に無効な領域を参照することがなくなる。その結果、円周魚眼画像において存在しない領域に対応する正距円筒図法画像の領域については、黒画素にすることが可能となる。
【0106】
S809で、制御部501は、S808で求めた変換元画像の座標から画素値を取得し、取得した画素値を、変換先画像の処理対象画素にセットする。
【0107】
S810で、制御部501は、変換先画像の次の画素を処理対象画素として選択する。例えば、変換先画像の左上の画素から右下の画素に向かって処理する場合、次の画素とは、同一行における右隣の画素である。但し、右隣の画素のX座標が画像幅に達した場合、1行下の左端画素を次の画素とする。
【0108】
以上の処理により、欠落領域を伴う円周魚眼画像に対して正距円筒変換処理を行う場合でも、正距円筒図法画像における座標に対応する円周魚眼画像の座標が、円周魚眼画像の欠落領域を指すことがなくなる。
【0109】
●画像ファイルの形式
次に、
図9を参照して、カメラ100が記録する画像ファイル(PC500が処理する画像ファイル)の構造について説明する。
図9において、901は、ファイルのヘッダーである。ファイルのヘッダーには、画像の種類などの情報が記録される。902は、ファイルに記録された画像の撮影時の撮影情報である。撮影情報には、シャッタースピードや絞りなどの情報が記録される。903は、VR180レンズメタデータ(VR180レンズに関するメタデータ)である。VR180レンズメタデータとして、レンズ名、円周魚眼の半径などの情報、及び製造誤差の情報などが記録される。904は、VR180レンズ以外のメタデータである。VR180レンズ以外のメタデータには、動画の場合は、フレームごとに変化する情報が、RAWの場合は、現像に必要なデータが記録される。VR180レンズに対応していないファームウェアを搭載したカメラは、VR180レンズ以外のメタデータにレンズ名を記録する。905は、静止画又は動画のデータである。動画の場合は、画像に加えて音声のデータも記録される。
【0110】
なお、
図9の例では、画像ファイル内に撮影情報902、VR180レンズメタデータ903、及びVR180レンズ以外のメタデータ904が記録されている。しかしながら、画像ファイルとは異なるファイルに画像ファイル内に撮影情報902、VR180レンズメタデータ903、及びVR180レンズ以外のメタデータ904を記録し、記録された情報を画像ファイルと関連付ける構成を採用してもよい。
【0111】
●VR180レンズ300及びカメラ100から取得される情報
図10(a)を参照して、カメラ100がVR180レンズ300から取得する情報の例について説明する。VR180レンズ300からは、以下の情報が取得される。
1.レンズ設計値
2.レンズ個体値(製造誤差値)
3.レンズフラグ情報
4.レンズ焦点距離情報
5.レンズ温度計情報
【0112】
レンズ設計値とは、収差補正を行うためのVR180両目共通の設計値データである。レンズ設計値の詳細は、
図10(b)を参照して後述する。
【0113】
レンズ個体値(製造誤差値)とは、VR180レンズ300の製造上の誤差を示すデータである。VR180レンズ300の製造過程では、誤差が左右それぞれで発生する。誤差が存在する状態でPC500による正距円筒変換処理を行うと、3D表示の品質が低下してしまう。この問題を抑制するために、レンズ製造過程で検出された誤差の測定結果がレンズ内に記録されている。レンズ個体値の詳細については、
図10(b)を参照して後述する。
【0114】
PC500は、画像処理を行う際に、VR180レンズ300で撮影された画像データについて、変換処理を行うか否かを判定する必要がある。レンズフラグは、この判定を可能にするために記録される。レンズフラグは、画像データが、VR180レンズで撮影された画像データであることを示すフラグである。
【0115】
レンズ焦点距離とは、レンズの中心である「主点」から撮像素子に結像するまでの距離である。VR180レンズ300で撮影された画像データについてPC500による変換処理を行う際に、3D表示の品質を保つためには、レンズ焦点距離として高精度(小数点単位)の値が必要である。
【0116】
レンズ温度計情報とは、VR180レンズ300の温度を示す。撮影時にレンズの温度情報が記録されているので、PC500は、環境温度を把握できる。
【0117】
図10(b)を参照して、レンズ設計値及びレンズ個体値(製造誤差値)について説明する。これらの情報は、左右入れ替え処理及び正距円筒変換処理などに用いられる。レンズ設計値は、例えば以下の情報を含む。
1.イメージサークル位置
2.イメージサークル直径
3.画角
4.歪曲補正係数
【0118】
イメージサークル位置とは、撮像素子上に結像する像円の中心位置の設計値である。例えば、イメージサークル位置は、マウントを原点として水平方向と垂直方向の座標として定義される。
【0119】
イメージサークル直径とは、撮像素子上に結像する像円の直径である。
【0120】
画角とは、イメージサークル内に結像する像の画角範囲である。
【0121】
歪曲補正係数とは、レンズの理想像高に対する設計像高の比である。像高ごとに値を設定し、その間は補間してもよいし、多項式に近似してもよい。
【0122】
また、PC500上のアプリとカメラ100とを接続して表示する際に、PC500の画面にマジックウインド表示が行われる。その場合に、姿勢及び表示品質を保つために、「イメージサークル位置」、「イメージサークル直径」、及び「画角」が用いられる。PC500は、画像を画面に適切に表示するため、これらの情報をアプリに合わせた情報に編集して使用する。例えば、PC500は、マジックウインド表示に合わせて「イメージサークル位置」及び「イメージサークル直径」に係数を乗じて使用する。
【0123】
レンズ個体値(製造誤差値)は、例えば以下の情報を含む。
5.イメージサークル位置ずれ
6.光軸傾き
7.像倍率ずれ
【0124】
イメージサークル位置ずれとは、撮像素子上に結像する像円の中心位置の設計値からのずれである。例えば、イメージサークル位置ずれは、設計位置を原点として水平方向と垂直方向の座標で定義される。
【0125】
光軸傾きとは、被写体側の光軸の向きのずれである。例えば、水平方向の傾きずれと垂直方向の傾きずれが、角度で記述される。
【0126】
像倍率ずれとは、像の大きさの設計値からのずれである。例えば、像倍率ずれは、設計値に対する比率として記述される。
【0127】
これらの個体値は、レンズの偏芯や傾きなどの製造誤差によって発生するため、個体ごとに様々な値を持つ。そのため、レンズ個体値は、左右の光学系の各々に対して測定され記録される。
【0128】
図10(c)を参照して、カメラ100から取得されるメタデータについて説明する。このメタデータは、PC500のアプリで変換処理を行う際に、表示領域及び姿勢情報に基づいて3D品質を保つために用いられる。メタデータは、例えば以下の情報を含む。
1.カメラ記録領域情報
2.カメラ内加速度計情報
3.絞り目右眼補正情報
【0129】
カメラ記録領域情報とは、有効画像領域のことである。カメラの撮像素子及び記録モードによって、表示可能な有効画像領域は異なる。この情報は、PC500のアプリで変換処理を行う際に、より正確な画像表示を行うために用いられる。
【0130】
カメラ内加速度計情報は、カメラ内の加速度計(水準器)を用いて測定される、姿勢情報のロール及びピッチのことである。この情報は、PC500のアプリでの電子防振と水平補正に使用される。
【0131】
絞り目右眼補正情報とは、左目基準の場合の露出設定値のことである。この情報は、PC500のアプリで変換処理を行う際に、3D品質を保ち違和感のない再生表示を行うために用いられる。
【0132】
以上説明したように、第1の実施形態によれば、PC500は、画素値が存在しない欠落領域を伴う円周魚眼画像に基づいて正距円筒変換処理を行うことにより、正距円筒図法画像を生成する。また、PC500は、正距円筒変換処理の前に、円周魚眼画像の欠落領域に所定の画素値を設定する。これにより、円周魚眼画像が欠落領域を伴う場合であっても、画素値の欠落のない正距円筒図法画像を生成することが可能になる。
【0133】
なお、上の例では、所定の画素値は黒を示す画素値であるものとしたが、所定の画素値は特定の色に限定されず、例えば白を示す画素値であってもよい。
【0134】
[第2の実施形態]
第2の実施形態では、正距円筒図法画像の作成処理(
図7のS712)の他の例について説明する。本実施形態において、カメラ100及びPC500の基本的な構成は第1の実施形態と同様である。以下、主に第1の実施形態と異なる点について説明する。
【0135】
図8Bは、第2の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の詳細を示すフローチャートである。
図8Bにおいては、
図8A(第1の実施形態)と異なり、制御部501は、画像ファイルから取得された円周魚眼画像に欠けがあるか否かに関わらず、取得された円周魚眼画像を正距円筒変換の変換元画像として用いる。
【0136】
S811~S812の処理は、
図8AのS807~S808の処理と同様であるため、説明を省略する。
【0137】
S813で、制御部501は、S812で求めた変換元座標(変換先画像の処理対象画素の座標に対応する、変換元画像の座標)が、変換元画像(円周魚眼画像)内にあるかどうか判断する。変換元座標が変換元画像内にある場合、処理ステップはS814に移行する。変換元座標が変換元画像内にない場合、処理ステップはS815に移行する。
【0138】
S814の処理(変換元座標が変換元画像内にある場合の処理)は、
図8AのS809の処理と同様であるため、説明を省略する。
【0139】
一方、変換元座標が変換元画像内にない場合、S815で、制御部501は、変換先画像(正距円筒図法画像)の処理対象画素の座標に、黒をセットする。
【0140】
図12Bの上の図は、正距円筒変換の変換元画像として用いられる、一部が欠けて記録された円周魚眼画像を示す。
図12Bの下の図は、正距円筒変換の変換先画像(変換結果画像)を示す。矢印1211が示すように、左眼正距円筒図法画像の右端の座標は、左眼円周魚眼画像の右端の座標に対応するが、その座標の画素は記録されていない。そのため、S815で、制御部501は、変換先画像の処理対象画素に黒をセットする。同様に矢印1212が示すように、右眼正距円筒図法画像の左端の座標は、右眼円周魚眼画像の左端の座標に対応するが、その座標の画素は記録されていない。そのため、S815で、制御部501は、変換先画像の処理対象画素に黒をセットする。
【0141】
S816の処理は、
図8AのS810の処理と同様であるため、説明を省略する。
【0142】
以上説明したように、第2の実施形態によれば、PC500は、正距円筒変換処理の変換先画像(正距円筒図法画像)の処理対象画素の座標に対応する変換元画像(円周魚眼画像)の座標が欠落領域を指す場合には、処理対象画素に黒を示す画素値(所定の画素値)を設定する。これにより、円周魚眼画像が欠落領域を伴う場合であっても、正常に正距円筒変換処理を行うことが可能になる。
【0143】
[第3の実施形態]
第3の実施形態では、正距円筒図法画像の作成処理(
図7のS712)の更に他の例について説明する。本実施形態において、カメラ100及びPC500の基本的な構成は第1の実施形態と同様である。以下、主に第1の実施形態と異なる点について説明する。
【0144】
VR180レンズで撮影した左右2つの円周魚眼画像から正距円筒変換処理により作成された正距円筒図法画像をヘッドマウントディスプレイ(HMD)で見た場合、ユーザは、2つの正距円筒図法画像を1つの立体画像として見ることができる。第1の実施形態又は第2の実施形態に従って正距円筒図法画像を作成する場合、
図12A及び
図12Bに示すように、一部の領域について、左眼又は右眼の一方についてのみ、正距円筒図法画像の画素が黒になる可能性がある。ユーザがHMDでこのような2つの正距円筒図法画像を1つの立体画像として見た場合に、違和感が生じる可能性がある。第3の実施形態では、このような違和感を抑制するための構成について説明する。
【0145】
図8Cは、第3の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の詳細を示すフローチャートである。
図8Cにおいては、
図8A(第1の実施形態)と異なり、制御部501は、画像ファイルから取得された円周魚眼画像に欠けがあるか否かに関わらず、取得された円周魚眼画像を正距円筒変換の変換元画像として用いる。
【0146】
S821で、制御部501は、左眼変換先画像(左眼に対応する正距円筒図法画像)の全画素の処理が完了したかどうか判断する。本実施形態では、S821~S827の1回の処理ループにおいて、左眼変換先画像の処理対象画素に加えて、右眼変換先画像(右眼に対応する正距円筒図法画像)において左眼変換先画像の処理対象画素の座標と同じ座標に位置する画素も処理する。そのため、左眼変換先画像の全画素の処理が完了している場合、右眼変換先画像についても全画素の処理が完了している。従って、左眼変換先画像の全画素の処理が完了した場合、本フローチャートの処理は終了する。左眼変換先画像に未処理の画素が存在する場合、処理ステップはS822に移行する。
【0147】
S822で、制御部501は、左眼変換先画像の処理対象画素の座標(左眼変換先座標)に対応する、左眼変換元画像(左眼円周魚眼画像)の座標(左眼変換元座標)を求める。ここで、左眼変換先座標は、左眼変換先画像の左上を原点とした座標系とする。左眼変換先座標に対応する左眼変換元座標を求める処理は、正距円筒変換の一般的な方法を用いて行うことができる。
【0148】
S823で制御部501は、制御部501は、右眼変換先画像の処理対象画素の座標(右眼変換先座標)に対応する、右眼変換元画像(右眼円周魚眼画像)の座標(右眼変換元座標)を求める。ここで、右眼変換先座標は、右眼変換先画像の右上を原点とした座標系とする。右眼変換先座標に対応する右眼変換元座標を求める処理は、正距円筒変換の一般的な方法を用いて行うことができる。
【0149】
S824で、制御部501は、左眼変換元座標が左眼変換元画像内にあり、かつ、右眼変換元座標が右眼変換元画像内にあるかどうか判断する。左眼変換元座標が左眼変換元画像内にあり、かつ、右眼変換元座標が右眼変換元画像内にある場合、処理ステップはS825に移行する。左眼変換元座標及び右眼変換元座標の少なくとも一方が対応する変換元画像内にない場合、処理ステップはS826に移行する。
【0150】
S825で、制御部501は、左眼変換元画像の左眼変換元座標から画素値を取得し、左眼変換先画像の処理対象画素にセットする。同様に、制御部501は、右眼変換元画像の右眼変換元座標から画素値を取得し、右眼変換先画像の処理対象画素にセットする。
【0151】
一方、S824からS826へ処理ステップが移行した場合、制御部501は、左眼変換先画像の処理対象画素及び右眼変換先画像の処理対象画素の両方に黒をセットする。
【0152】
図12Cの上の図は、正距円筒変換の変換元画像として用いられる、一部が欠けて記録された円周魚眼画像を示す。
図12Cの下の図は、正距円筒変換の変換先画像(変換結果画像)を示す。
【0153】
矢印1221が示すように、左眼正距円筒図法画像の左端の座標は、左眼円周魚眼画像の左端の座標に対応し、左眼円周魚眼画像の左端の座標の画素は記録されている。一方、右眼正距円筒図法画像における矢印1222の始点は、左眼正距円筒図法画像における矢印1221の始点に対応する位置にあるが、右眼円周魚眼画像において矢印1222が指す位置(右眼円周魚眼画像の左端の座標)には、画素が記録されていない。この場合、左眼正距円筒図法画像における矢印1221の始点及び右眼正距円筒図法画像における矢印1222の始点の両方について、黒がセットされる。
【0154】
矢印1223が示すように、右眼正距円筒図法画像の右端の座標は、右眼円周魚眼画像の右端の座標に対応し、右眼円周魚眼画像の左端の座標の画素は記録されている。一方、左眼正距円筒図法画像における矢印1224の始点は、右眼正距円筒図法画像における矢印1223の始点に対応する位置にあるが、左眼円周魚眼画像において矢印1224が指す位置(左眼円周魚眼画像の右端の座標)には、画素が記録されていない。この場合、右眼正距円筒図法画像における矢印1223の始点及び左眼正距円筒図法画像における矢印1224の始点の両方について、黒がセットされる。
【0155】
S827で、制御部501は、左眼変換先画像及び右眼変換先画像それぞれについて、次の画素を処理対象画素として選択する。例えば、左眼変換先画像の左上の画素から右下の画素に向かって処理する場合、次の画素とは、同一行における右隣の画素である。但し、右隣の画素のX座標が左眼変換先画像の幅に達した場合、1行下の行の左眼変換先画像の左端画素を次の画素とする。これは、右眼変換先画像についても同様である。
【0156】
以上説明したように、第3の実施形態によれば、PC500は、左眼正距円筒図法画像及び右眼正距円筒図法画像の同一の座標について、一方の画像が欠落領域に対応する場合、他方の画像にも黒を示す画素値(所定の画素値)を設定する。これにより、同一の座標について一方の画像のみ画素が黒くなることを抑制することが可能になる。
【0157】
[第4の実施形態]
第4の実施形態では、正距円筒図法画像の作成処理(
図7のS712)の更に他の例について説明する。第4の実施形態では、第3の実施形態と同様、PC500は、左眼正距円筒図法画像及び右眼正距円筒図法画像の同一の座標について、一方の画像のみ画素が黒くなることを抑制するための処理を行うが、そのための具体的な処理内容が第3の実施形態と異なる。本実施形態において、カメラ100及びPC500の基本的な構成は第3の実施形態と同様である。以下、主に第3の実施形態と異なる点について説明する。
【0158】
図8Dは、第4の実施形態に係る、S712の処理(正距円筒図法画像の作成処理)の詳細を示すフローチャートである。
図8Dにおいては、
図8C(第3の実施形態)と同様に、制御部501は、画像ファイルから取得された円周魚眼画像に欠けがあるか否かに関わらず、取得された円周魚眼画像を正距円筒変換の変換元画像として用いる。
【0159】
S831~S835の処理は、
図8CのS821~S825の処理と同様であるため、説明を省略する。
【0160】
S836で、制御部501は、制御部501は、左眼変換元座標が左眼変換元画像外にあり、かつ、右眼変換元座標が右眼変換元画像外にあるかどうか判断する。左眼変換元座標が左眼変換元画像外にあり、かつ、右眼変換元座標が右眼変換元画像外にある場合、処理ステップはS837に移行する。そうでない場合、処理ステップはS838に移行する。
【0161】
S837で、制御部501は、左眼変換先画像の処理対象画素及び右眼変換先画像の処理対象画素の両方に黒をセットする。
【0162】
S838で、制御部501は、左眼変換元座標が左眼変換元画像内にあるかどうかを判断する。左眼変換元座標が左眼変換元画像内にある場合、処理ステップはS839に移行する。左眼変換元座標が左眼変換元画像内にない場合(すなわち、右眼変換元座標が右眼変換元画像内にある場合)、処理ステップはS840に移行する。
【0163】
S839で、制御部501は、左眼変換元画像の左眼変換元座標から画素値を取得し、取得した画素値を、左眼変換先画像及び右眼変換先画像の両方の処理対象画素にセットする。
【0164】
S840で、制御部501は、右眼変換元画像の右眼変換元座標から画素値を取得し、取得した画素値を、左眼変換先画像及び右眼変換先画像の両方の処理対象画素にセットする。
【0165】
図12Dの上の図は、正距円筒変換の変換元画像として用いられる、一部が欠けて記録された円周魚眼画像を示す。
図12Dの下の図は、正距円筒変換の変換先画像(変換結果画像)を示す。
【0166】
矢印1231が示すように、左眼正距円筒図法画像の左端の座標は、左眼円周魚眼画像の左端の座標に対応し、左眼円周魚眼画像の左端の座標の画素は記録されている。一方、右眼正距円筒図法画像における矢印1232の始点は、左眼正距円筒図法画像における矢印1231の始点に対応する位置にあるが、右眼円周魚眼画像において矢印1232が指す位置(右眼円周魚眼画像の左端の座標)には、画素が記録されていない。この場合、S839の処理により、左眼正距円筒図法画像における矢印1231の始点及び右眼正距円筒図法画像における矢印1232の始点の両方について、左眼円周魚眼画像において矢印1231が指す位置(左眼円周魚眼画像の左端の座標)の画素値がセットされる。換言すると、破線矢印1233が示すように、右眼正距円筒図法画像において右眼円周魚眼画像の欠落領域に対応する領域には、左眼正距円筒図法画像の対応する領域の画素値がコピーされる。
【0167】
同様に、矢印1234が示すように、右眼正距円筒図法画像の右端の座標は、右眼円周魚眼画像の右端の座標に対応し、右眼円周魚眼画像の右端の座標の画素は記録されている。一方、左眼正距円筒図法画像における矢印1235の始点は、右眼正距円筒図法画像における矢印1234の始点に対応する位置にあるが、左眼円周魚眼画像において矢印1235が指す位置(左眼円周魚眼画像の右端の座標)には、画素が記録されていない。この場合、S840の処理により、右眼正距円筒図法画像における矢印1234の始点及び左眼正距円筒図法画像における矢印1235の始点の両方について、右眼円周魚眼画像において矢印1234が指す位置(右眼円周魚眼画像の右端の座標)の画素値がセットされる。換言すると、破線矢印1236が示すように、左眼正距円筒図法画像において左眼円周魚眼画像の欠落領域に対応する領域には、右眼正距円筒図法画像の対応する領域の画素値がコピーされる。
【0168】
S841の処理は、
図8CのS827の処理と同様であるため、説明を省略する。
【0169】
以上説明したように、第4の実施形態によれば、PC500は、第1の円周魚眼画像の欠落領域について、第2の円周魚眼画像の対応する領域が欠落領域でなければ、第1の正距円筒図法画像において第1の円周魚眼画像の欠落領域に対応する対応領域に、第2の円周魚眼画像の対応する領域の画素値を設定する。これにより、これにより、同一の座標について一方の画像のみ画素が黒くなることを抑制すると共に、黒の領域を減らすことが可能になる。
【0170】
[第5の実施形態]
第1の実施形態又は第2の実施形態に従って正距円筒図法画像を作成する場合、
図12A及び
図12Bに示すように、一部の領域について、左眼又は右眼の一方についてのみ、正距円筒図法画像の画素が黒になる可能性がある。ユーザがこのような2つの正距円筒図法画像に基づくVR視聴を行う場合、左目画像又は右目画像の一方にのみ黒塗りが表示されて見づらいという問題が発生する可能性がある。第5の実施形態では、この問題を視聴時に抑制するための構成について説明する。
【0171】
図15を参照して、画角外で黒塗りになっている個所に対する処理選択について説明する。ラジオボタン1501は、画角外の画素に対応する反対側の画素を黒にする処理を行うことに対応する。ラジオボタン1502は、画角外で黒塗りされた画素の部分を反対側の画素で補う処理を行うことに対応する。ラジオボタン1503は、画角外の画素を表示する状態になった場合に、反対側の映像を左右に表示する処理を行うことに対応する。ラジオボタン1501、1502、及び1503は、いずれか1つのみ選択可能である。1504は、OKボタンである。ユーザが処理を選択した後にOKボタン1504を押すことで、
図15の設定画面を閉じることができる。
【0172】
図16A~Dを参照して、左端をVR180で視聴したときの例と、画角外で黒塗りとなった個所に対する処理例とを説明する。
【0173】
図16Aは、表示時に何も処理をしなかった場合の例を示す。1601は、VR180レンズの左レンズの画像である。1602は、VR180で視聴する際の左目用画像の表示領域である。1603は、VR180レンズの左レンズで画角外になった個所で黒塗りとなっている個所を示す。1604は、VR180レンズの右レンズの画像である。1605は、VR180で視聴する際の右目用画像の表示領域である。1606は、VR180レンズの右レンズで画角外になった個所で黒塗りとなっている個所を示す。1607は、画角外の黒塗り個所が右目用画像にのみ現れることを示した矢印である。1609は、VR180視聴時の左目用画像の表示である。1610は、VR180視聴時の右目用画像の表示である。矢印1607が示すように、画角外で右目用画像にのみ黒塗りで映像が映っていない領域がある。
【0174】
図16Bは、
図15のラジオボタン1501を選択したときの画角外の画素に対応する反対側の画素を黒にするときの表示例である。1609は、処理前の左目用画像の表示例である。1610は、処理前の右目用画像の表示例である。1611は、処理後の左目用画像の表示例である。1612は、処理後の右目用画像の表示例である。1613は、処理によって追加された黒塗りの箇所である。黒塗りが追加されたことで、右目用画像と左目用画像で同じ領域に黒塗りが発生している状態になり片側のみ映像があることで発生する見づらさを解消している。
【0175】
図16Cは、
図15のラジオボタン1502を選択したときの画角外の画素の部分を反対側の画素で補うときの表示例である。
図16Bと同じ符号の説明は省略する。1614は、処理後の左目用画像の表示例である。1615は、処理後の右目用画像の表示例である。1616は、右目用画像に画素を持っていくコピー元の領域を示す。1617は、左目用画像から画素をコピーしたことで映像が映っている状態を示す。1618は、左目用画像から右目用画像に画素をコピーする処理を示した矢印である。画素をコピーすることによって右目用画像の黒塗りだった箇所に映像を追加したことで、右目用画像と左目用画像で片側だけ黒塗りが発生している見づらい状態を解消している。
【0176】
図16Dは、
図15のラジオボタン1503を選択したときの画角外になっていないほうの画像を両方に表示したときの表示例である。
図16Bと同じ符号の説明は省略する。1619は、処理後の左目用画像の表示例である。1620は、処理後の右目用画像の表示例である。1621は、左目用画像を右目用画像に表示していることを示す矢印である。画角外で黒塗り表示が行われてしまう画面の表示画面全体を左目用画像で差し替えることで、右目用画像と左目用画像で片側だけ黒塗りが発生している見づらい状態を解消している。
【0177】
図13は、第5の実施形態に係る画像処理のフローチャートである。本フローチャートの処理により、
図15を参照して説明した画角外の黒塗り個所の処理方法の選択と、画角外の黒塗り個所があるかどうかの判断とが行われる。PC500に対してVR180画像の再生指示が入力されると、本フローチャートの処理が開始する。
【0178】
S1301で、制御部501が、画角外の部分の表示設定画面を表示する。即ち、
図15の設定画面が表示される。本実施形態では、再生方法の設定として、最初に表示が行われる。ユーザが操作部505を操作し、画面上のラジオボタン1501、1502、又は1503を選択し、1504のOKボタンを押すと、処理ステップはS1302に進む。
【0179】
S1302で、制御部501が、S1301で選択された設定を取得する。
【0180】
S1303で、制御部501が、入力された画像を取得する。本実施形態では、画角外の領域があるため、制御部501は、画像の一部が欠けた正距円筒変換後の画像を取得する。取得される画像は、
図16Aの左レンズの画像1601、及び右レンズの画像1604である。
【0181】
S1304で、制御部501が、取得した正距円筒変換後の画像のうちの、左右目画像の中心部(最初に表示する初期位置)を切り出して、表示用の画像として読み込む。
【0182】
S1305で、制御部501が、S1304で読み込んだ左右目画像を表示(出力)する。
【0183】
S1306で、制御部501が、表示の終了指示があったかどうか判断する。終了するためのUIや操作については、任意の既存の技術を利用することができる。
【0184】
S1307で、制御部501が、表示位置を変更する指示があったかどうか判断する。表示位置の変更指示は、ユーザが操作部505を操作しカーソルキーやジョイスティックで表示位置を動かすことで行う。なお、表示モニタ自体にジャイロセンサを組み込み、制御部501が表示モニタの加速度に基づいて動きを取得し、その動を表示位置の変更指示として扱ってもよい。
【0185】
S1308で、制御部501が、S1307で行われた変更指示に対応した左右目の表示画像を取得する。
【0186】
S1309で、制御部501が、S1308で取得した画像に画角外で黒塗りされた領域があったかどうかを判断する。判断方法としては、画素値が、RGB値すべてゼロの黒領域があったかどうかで判断する方法がある。また、そのほかの判断方法として、RGB値がある閾値以下である領域を検出する方法を採用してもよい。黒領域は、画像の端に現れるので、画像の端に限定して判断するようにしてもよい。画像にメタ情報として黒領域について付加されていれば、そのメタ情報で指定された領域を表示領域が含むかどうかで判断するようにしてもよい。画角外の領域がなかったと判断したら、処理ステップはS1305へ移行する。画角外の領域があったと判断したら、処理ステップはS1310へ移行する。
【0187】
S1310で、制御部501が、S1302で取得した設定に合わせて、左右目画像に対する処理を行う。
【0188】
図14は、S1310の画像処理の詳細を示すフローチャートである。
【0189】
S1401で、制御部501が、左右目のどちら側に画角外の領域があるのかを特定する。ここでは、制御部501は、S1309と同様の方法で、左右のどちら側に、画角外で黒塗りとなった領域があるのかの特定を行う。以下の説明においては、
図16Aに示すように右目用画像に画角外で黒塗りとなった領域が存在するものとする。
【0190】
S1402で、制御部501が、S1301においてラジオボタン1503(左右に同じ画像を表示する設定)が選択されたかどうかを判断する。ラジオボタン1503が選択されたと判断した場合、処理ステップはS1403へ移行する。そうでない場合、処理ステップはS1404へ移行する。
【0191】
S1403で、制御部501が、画角外の領域を含む画像を、画角外の領域を含まない画像に置き換える。即ち、
図16Dの矢印1621が示すように、制御部501は、処理前の左目用画像1609を、処理後の右目用画像1620として表示する。この結果、画角外の領域がない左目用画像1619と同一の画像が、右目用画像1620として表示される。なお、画角外の領域を含む画像を、画角外の領域を含まない画像に置き換える代わりに、画角外の領域を含まない画像を、画角外の領域を含む画像に置き換えることにより、片側だけに黒塗り領域がある状態を解消してもよい。
【0192】
S1404で、制御部501が、画角外の領域を含む画像において、画角外の領域から1つの処理対象画素を選択する。S1404~S1408では、最終的に、画角外の黒塗りとなっている領域全体について処理を行うので、制御部501は、画角外の領域の左上から順番に処理対象画素として選択すればよい。
【0193】
S1405で、制御部501が、S1301においてラジオボタン1501(画角外の画素に対応する、反対側の目の画像の画素を黒にする設定)が選択されたかどうかを判断する。ラジオボタン1501が選択されたと判断した場合、処理ステップはS1406へ移行する。そうでない場合(ラジオボタン1502が選択された場合)、処理ステップはS1407へ移行する。
【0194】
S1406で、制御部501が、処理対象画素に対応する、反対側の目の画像の同じ位置の画素を黒にする。黒にする処理としては、RGB値でゼロ値を設定してもよいし、画角外のある方の画面から画素値をコピーしてもよい。処理結果は、
図16Bに示すようになる。画角外の領域を含まない左目用画像1609に対する処理の結果、左目用画像1611には、黒の領域1613が追加されている。左目用画像1611に黒領域を追加したことで、右目用画像1612の画角外の領域に対応する領域については、左右で同じ画像(黒)が表示される。
【0195】
S1407で、制御部501が、処理対象画素に対応する、反対側の目の画像の同じ位置の画素値を、処理対象画素へコピーする。処理結果は、
図16Cに示すようになる。矢印1618に示すように領域1616から領域1617への画素値のコピーが行われることにより、画角外の黒の領域がなくなった。この処理によって、右目用画像1612の画角外の領域に対応する領域については、左右で同じ画像(領域1616の画像)が表示される。
【0196】
S1408で、制御部501が、画角外の領域の全画素の処理が完了したかどうかを判断する。画角外の領域の全画素の処理が完了したと判断した場合は、本フローチャートの処理は終了する。こうして処理された画像は、
図13のS1305において表示対象の画像として用いられる。画角外の領域の全画素の処理が完了していないと判断した場合は、処理ステップはS1404へ移行する。そして、S1404~S1408の処理ループの繰り返しにより、画角外の領域の全画素に対して処理が行われる。
【0197】
以上説明したように、第5の実施形態によれば、PC500は、第1の表示画像(左目用画像1609又は右目用画像1610の一方)の中に、正距円筒図法画像において円周魚眼画像の欠落領域に対応する対応領域に重なる第1の特定領域が存在する場合に、第1の特定領域と、第2の表示画像(左目用画像1609又は右目用画像1610の他方)において第1の特定領域に対応する位置にある第2の特定領域とが同じ画像を含むように、第1の表示画像又は第2の表示画像を補正する。この補正は、第1の表示画像又は第2の表示画像の出力前(表示前)に行われる。これにより、立体的な仮想現実の表示画質を向上させることが可能になる。
【0198】
なお、本実施形態では、PC500が画像ファイルを受け取る場合を例に説明を行ったが、PC500が画像を映像信号として受け取るようにして構成してもよい。また、画像は、静止画だけでなく動画であってもよい。
【0199】
[第6の実施形態]
第6の実施形態では、視差を有する2つの円周魚眼画像を含む画像から1つの円周魚眼画像を切り出す(抽出する)構成について説明する。
【0200】
図19は、PC500上のアプリ画面を示す図である。1900は、アプリ画面全体を示している。画面上1つの画像ファイルに記録された左右にならんだ2つの円周魚眼が表示されている。1901は、VR180レンズの左右の光学系の一方の光学系で撮影された円周魚眼画像である。1902は、VR180レンズの左右の光学系の、円周魚眼画像1901とは反対側の光学系で撮影された円周魚眼画像である。1903は、表示している左側の円周魚眼画像1901を保存するためのボタンである。1904は、表示している右側の円周魚眼画像1902を保存するためのボタンである。1905は、円周魚眼画像の画角欠けがあった場合の追加の処理(後述)を行うかどうか選択するチェックボックスである。
【0201】
図20を参照して、本実施形態で扱う保存前の2つの左右にならんだ円周魚眼画像と、保存後の円周魚眼画像について説明する。2001は、ファイル読み込み後の2つの左右にならんだ円周魚眼画像である。2002は、左側の円周魚眼画像を保存することを示した矢印である。2003は、保存後の円周魚眼画像である。
【0202】
図17及び
図18を参照して、2つの左右に並んだ円周魚眼画像から、左右のうち任意の円周魚眼画像を選択し、その円周魚眼画像を切り出して保存する処理について説明する。ユーザが外部記憶装置504にカメラ100により画像が記録された記録媒体227をセットし、操作部505を操作して画像ファイルを選択すると、
図17のフローチャートの処理が開始する。
【0203】
図17のS701~S711の処理は、
図7のS701~S711の処理と同様であるため、説明を省略する。
【0204】
S1712で、制御部501が、2つの円周魚眼画像を表示する。画像を表示したアプリ画面は、
図19に示すようになる。
【0205】
S1713で、制御部501が、左の円周魚眼画像を保存する指示があったかどうかを判断する。保存指示は、ユーザが操作部505を操作し、
図19のボタン1903を押すことで行われる。左の円周魚眼画像を保存する指示があったと判断した場合、処理ステップはS1715へ移行する。左の円周魚眼画像を保存する指示がなかったと判断した場合、処理ステップはS1714へ移行する。
【0206】
S1714で、制御部501が、右の円周魚眼画像を保存する指示があったかどうかを判断する。保存指示は、ユーザが操作部505を操作し、
図19のボタン1904を押すことで行われる。右の円周魚眼画像を保存する指示があったと判断した場合、処理ステップはS1715へ移行する。右の円周魚眼画像を保存する指示がなかったと判断した場合、処理ステップはS1713へ移行する。S1713又はS1714で保存指示があるまでは、制御部501は、2つの円周魚眼画像を表示し続ける。
【0207】
S1715で、制御部501が、選択した円周魚眼画像を保存する。S1715の処理の詳細は、
図18を参照して後述する。
【0208】
左の円周魚眼画像を保存した場合、
図20の円周魚眼画像2003が保存結果として得られる。ここでは左の円周魚眼画像を保存する例で説明したが、右の円周魚眼画像についても同様の手順で保存することができる。
【0209】
図18は、S1715の処理の詳細を示すフローチャートである。
【0210】
S1801で、制御部501が、左右の円周魚眼画像に欠落領域が存在するかどうかを判断する。判断方法としては、S1705、S1709、又はS1711で算出した2つの円周魚眼画像の中心座標と半径から、左の円周魚眼画像の中心から半径分左に伸ばした先が画像の範囲内か画像の範囲外になっているかどうかで判断する方法がある。ここでは左の円周魚眼画像に基づいて判断する構成について説明したが、右の円周魚眼画像に基づいて判断する構成を採用してもよい。また、左右の円周魚眼画像の両方を使って判断する構成を採用してもよい。左右の円周魚眼画像に欠落領域が存在すると判断した場合、処理ステップはS1802へ移行する。この場合の処理については後述する。左右の円周魚眼画像に欠落領域が存在しないと判断した場合、処理ステップはS1811へ移行する。
【0211】
S1811で、制御部501が、保存対象の円周魚眼画像について、S1705、S1709、又はS1711で判断した円周魚眼画像の中心座標と半径に基づき、必要な保存範囲を算出する。保存範囲は、保存後の画像について、画像の真ん中に円周魚眼画像の光軸中心がきて、円周魚眼画像の全体がカバーされる範囲で決定する。円周魚眼画像の上下左右のマージン(黒領域)については、全くなくてもよいし、一定のサイズのマージンを設けるように保存してもよい。
【0212】
S1812で、制御部501が、S1811で決定した保存範囲の画像を保存する。保存結果として、
図20の円周魚眼画像2003が得られる。
【0213】
なお、2つの円周魚眼画像の中心座標の判断を画像処理により行う代わりに、ユーザ操作で中心座標を指定する構成を採用してもよい。
【0214】
以上の処理によって、左右の円周魚眼画像に欠落領域が存在しない場合に、1つの円周魚眼画像を切り出すことができる。円周魚眼画像が静止画ではなく動画の場合、制御部501は、動画から特定の1フレームを選択し、選択されたフレームから1つの円周魚眼画像を切り出すことができる。
【0215】
処理ステップがS1801からS1802へ移行した場合、制御部501が、保存対象の円周魚眼画像における欠落領域を特定する。ここでは、左側の円周魚眼画像が保存対象である場合を例に説明を行う。特定方法としては、算出した円周魚眼画像の中心から左側に半径分伸ばしながら、画像内で有効な領域か画像の範囲外となったかを判断する方法がある。左側の方向において画像の範囲内の有効な距離と半径との差分から、欠落領域を特定することができる。例えば、欠落領域として、
図21(a)の欠落領域2102が特定される。
【0216】
S1803で、制御部501が、S1802で特定した領域に対応する、反対側の円周魚眼画像の領域を特定する。例えば、2つの円周魚眼画像を光軸中心で重ね合わせるなどして特定を行うことができる。また、重ね合わせる以外に、円周魚眼画像の光軸中心からの距離を算出することにより特定してもよい。
図21(a)の枠2103内の画像の有効な場所が、対応する部分として特定される。
【0217】
S1804で、制御部501が、魚眼の欠落領域の合成を行う際にオーバーラップを行うかどうかを判断する。この判断は、ユーザが操作部505を操作し
図19のチェックボックス1905をチェックしているかどうかに基づいて行うことができる。オーバーラップを行うと判断した場合、処理ステップはS1806へ移行する。この場合の処理については後述する。オーバーラップを行わないと判断した場合、処理ステップはS1805へ移行する。
【0218】
S1805で、制御部501が、欠落領域(
図21(a)の欠落領域2102)に、反対側の対応する領域(
図21(a)の枠2103の領域)をコピーする。コピー結果は、
図21(a)の枠2105で示すようになる。
【0219】
S1809で、制御部501が、合成処理後の円周魚眼画像の光軸中心座標と半径に基づき、必要な保存範囲を算出する。保存範囲の算出方法は、S1811と同様である。
【0220】
S1810で、制御部501が、S1809で算出した保存範囲の画像を保存する。保存結果として、
図21(a)の円周魚眼画像2106が得られる。
【0221】
ここで、
図21(a)について更に詳細に説明する。2101は、保存を行う左側の円周魚眼画像の左側が欠けてしまった画像である。2102は、左側を保存する場合に特定した、円周魚眼画像の欠落領域である。2103は、欠落領域2102に対応する右側画像の部分を示す枠である。2104は、合成先を示した矢印である。
図21(a)の例では、右側画像の部分を左側画像の欠落領域にコピーすることで合成を行う。2105は、右側画像の部分を左側画像の欠落領域にコピーした結果を示す枠である。2106は、合成結果を保存することにより得られた、左の円周魚眼画像である。ここでは左の円周魚眼画像を保存する例で説明したが、右の円周魚眼画像についても同様の手順で保存することができる。
【0222】
以上の処理によって、左右の円周魚眼画像に欠落領域が存在する場合に、一方の円周魚眼画像の欠落領域を他方の円周魚眼画像の対応する領域で補うことで、1つの円周魚眼画像を切り出すことができる。
【0223】
処理ステップがS1804からS1806へ移行した場合、制御部501が、左右画像で重ね合わせを行うオーバーラップ領域を特定する。本実施形態では、円周魚眼画像の半分をオーバーラップ領域として特定するものとする。
図21(b)の例では、枠2108に対応する、右の円周魚眼画像の領域がオーバーラップ領域である。
【0224】
S1807で、制御部501が、左右画像を重ね合わせる際の合成位置に合わせて、合成率を決定する。決定方法としては、円周魚眼画像の欠落領域から、円周魚眼画像の光軸中心に向けて左画像と右画像の合成比率を変えるように決定する方法がある。変化する合成率の例として、左画像の円周魚眼画像の欠落領域については、右側画像の合成率を100%とする。そして、円周魚眼画像の中心に向けて右側の画像の使用割合を下げて、円周魚眼画像の中心にたどり着いたときに右側画像の使用率が0%で左側画像が100%になるように、合成率が決定される。
【0225】
S1808で、制御部501が、S1807で得られた合成率に従って、右の円周魚眼画像を左の円周魚眼画像に合成する。合成結果の図は、
図21(b)の枠2112に示すようになる。
【0226】
S1808に続くS1809及びS1810の処理は、S1805に続くS1809及びS1810の処理と同様である。保存結果として、
図21(b)の円周魚眼画像2113が得られる。
【0227】
ここで、
図21(b)について更に詳細に説明する。2106は、保存を行う左側の円周魚眼画像の左側が欠けてしまった画像である。2107は、左側を保存する場合に特定した、円周魚眼画像の欠落領域である。2108は、左右画像の視差を考慮して合成結果の違和感を減らすためにオーバーラップを行う領域である。2109は、左側の画像へオーバーラップされる右側の画像領域を示す枠である。2110は、左側画像のオーバーラップ領域の合成先を示した矢印である。本実施形態では、右側画像の対応する領域との合成処理が行われる。2111は、右側画像のオーバーラップ領域の合成先を示した矢印である。本実施形態では、左側の円周魚眼画像の欠落領域には、右側の画像がコピーされる。オーバーラップ領域では、合成位置に応じて、左側の画像と右側の画像との合成比率を調整しながら合成処理が行われる。2112は、合成処理の結果の円周魚眼画像である。2113は、合成結果を保存することにより得られた、左の円周魚眼画像である。ここでは左の円周魚眼画像を保存する例で説明したが、右の円周魚眼画像についても同様の手順で保存することができる。
【0228】
なお、ここでの合成処理では、合成比率を調整することに合成結果の違和感を減らすことが行われたが、ブラーをかけるなどの別の画像処理と組み合わせて行ってもよい。
【0229】
以上の処理によって、左右の円周魚眼画像に欠落領域が存在する場合に、一方の円周魚眼画像の欠落領域を含むオーバーラップ領域に他方の円周魚眼画像の対応する領域をオーバーラップすることで、1つの円周魚眼画像を切り出すことができる。
【0230】
以上説明したように、第6の実施形態によれば、PC500は、視差を有する2つの円周魚眼画像を含む画像から1つの円周魚眼画像を切り出す(抽出する)。抽出対象の円周魚眼画像が欠落領域を伴う場合、PC500は、抽出対象の円周魚眼画像の欠落領域に、欠落領域に対応する位置にある他方の円周魚眼画像の領域の画素値を設定する。これにより、欠落領域に設定された画素値を含む円周魚眼画像を抽出することが可能になる。
【0231】
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0232】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0233】
500…PC、501…制御部、502…ROM、503…RAM、504…外部記憶装置、505…操作部、506…表示部、507…通信部、508…システムバス