(57)【要約】【課題】従来の手法では、ピント位置の調節、被写界深度の調節、撮像後に視点位置の変更のすべてを行うことはできなかった。【解決手段】光線の向きと強度を示すライトフィールドデータから合成画像を生成する画像処理装置であって、少なくとも仮想的な視点位置及び仮想的な絞りの開口の特徴量を含む、前記合成画像を生成するためのパラメータを取得する取得手段と、取得した前記パラメータに従って、前記合成画像を生成する合成画像生成手段と、を備えたことを特徴とする。【選択図】図８
2014086899.tif 000002
【特許請求の範囲】
【請求項１】
光線の向きと強度を示すライトフィールドデータから合成画像を生成する画像処理装置であって、
少なくとも仮想的な視点位置及び仮想的な絞りの開口の特徴量を含む、前記合成画像を生成するためのパラメータを取得する取得手段と、
取得した前記パラメータに従って、前記合成画像を生成する合成画像生成手段と、
を備えたことを特徴とする画像処理装置。
【請求項２】
前記合成画像を生成するためのパラメータの適正範囲を設定する適正範囲設定手段をさらに備えたことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記取得手段で取得した前記パラメータが、前記適正範囲設定手段で設定された適正範囲の範囲外である場合に、その旨を通知する通知手段をさらに備えたことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記取得手段によって取得可能な前記合成画像を生成するためのパラメータの範囲が、前記適正範囲設定手段で設定された適正範囲に予め制限されることを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記合成画像生成手段は、前記仮想的な視点位置に基づいて仮想結像面を導出し、導出された前記仮想結像面上で結像する前記仮想的な絞りの開口を介して入射される光線量を所定の画素ピッチで求めることにより、前記合成画像を生成することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記合成画像を生成するためのパラメータには、仮想センサの解像度若しくは仮想レンズの焦点距離、又はその両方をさらに含み、
前記合成画像生成手段は、前記仮想センサの解像度若しくは仮想レンズの焦点距離、又はその両方から前記所定の画素ピッチを導出して、前記合成画像を生成する
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記合成画像を生成するためのパラメータには、仮想センサの位置をさらに含み、
前記合成画像生成手段は、前記仮想的な視点位置及び前記仮想センサの位置に基づいて仮想結像面を導出し、前記合成画像を生成する
ことを特徴とする請求項５又は６に記載の画像処理装置。
【請求項８】
前記取得手段は、前記合成画像を生成するためのパラメータとして、複数の前記仮想的な視点位置若しくは複数の仮想的な絞りの開口の特徴量、又はその両方を少なくとも取得し、
前記合成画像生成手段は、取得した前記パラメータに従って、複数の前記合成画像を生成する
ことを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
請求項１乃至８のいずれか１項に記載の画像処理装置を備えた撮像装置であって、
被写体の光情報を受光してデジタル信号に変換する撮像手段と、
前記デジタル信号から前記ライトフィールドデータを生成するライトフィールドデータ生成手段と
を備えたことを特徴とする撮像装置。
【請求項１０】
前記撮像装置は、マイクロレンズアレイを備えたPlenopticカメラ又は複数の個眼カメラを備えた多眼カメラであることを特徴とする請求項９に記載の撮像装置。
【請求項１１】
光線の向きと強度を示すライトフィールドデータから合成画像を生成する画像処理方法であって、
少なくとも仮想的な視点位置及び仮想的な絞りの開口の特徴量を含む、前記合成画像を生成するためのパラメータを取得するステップと、
取得した前記パラメータに従って、前記合成画像を生成するステップと、
を含むことを特徴とする画像処理方法。
【請求項１２】
コンピュータを請求項１乃至８のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライトフィールドを用いた画像処理に関する。
【背景技術】
【０００２】
近年、光学系に新たな光学素子を追加することで、光線の向きと強度の情報（ライトフィールド）を取得し、後で画像処理によってピント位置の調節（リフォーカス）や被写界深度の調節が可能な技術が知られている（特許文献１）。
【０００３】
また、撮像後に視点位置を変える方法として、光線空間法が知られている。光線空間法ではライトフィールドデータから情報の切り出し方を変えることで、仮想視点のピンホールカメラで撮像した画像を生成する。
【０００４】
これらの技術を用いれば、撮像後に撮像条件を変更できるため、撮像時の失敗を画像処理で補うことができるという利点がある。さらに、様々な撮像条件の画像を画像処理によって得ることができるため、撮像回数を減らす事ができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００８−５１５１１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の手法では、ピント位置の調節（リフォーカス）や被写界深度の調節は可能であるが、撮像後に視点位置を変更することはできない。一方、光線空間法では、撮像後に視点位置を変えることは可能であるが、ピント位置の調節や被写界深度の調節はできない。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、光線の向きと強度を示すライトフィールドデータから合成画像を生成する画像処理装置であって、少なくとも仮想的な視点位置及び仮想的な絞りの開口の特徴量を含む、前記合成画像を生成するためのパラメータを取得する取得手段と、取得した前記パラメータに従って、前記合成画像を生成する合成画像生成手段と、を備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、様々なパラメータを撮像後に変更することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】実施例１に係る撮像装置の内部構成を示すブロック図である。
【図２】（ａ）は撮像部の内部構成の一例を示す図であり、（ｂ）はマイクロレンズが配された撮像部の内部構成を概念的に表した図である。
【図３】メインレンズに入射する前の光線と、メインレンズに入射した後の光線との対応関係を表した図である。
【図４】実施例１に係る画像処理部の内部構成を示したブロック図である。
【図５】（ａ）は仮想カメラの視点位置を指定するためのＵＩ画面の一例、（ｂ）は仮想レンズの焦点距離、仮想センサの位置、仮想絞りの開口幅および仮想センサの解像度を指定するためのＵＩ画面の一例を示す図である。
【図６】仮想結像面の求め方を説明する図である。
【図７】（ａ）は、被写体と光線の関係を表す図であり、同（ｂ）は被写体を通る光線をライトフィールド座標にプロットした図である。
【図８】実施例１に係る画像処理の流れを示すフローチャートである。
【図９】実施例１において、合成画像の各画素値がどのように取得されるのかを説明する図である。
【図１０】合成画像を求める様子を、ライトフィールド座標上で表した概念図である。
【図１１】実施例１の効果を説明する図である。
【図１２】実施例２に係る画像処理で生成される合成画像の各画素値がどのように取得されるのかを説明する図である。
【図１３】実施例３に係る画像処理部の内部構成を示したブロック図である。
【図１４】仮想カメラの視点位置及び仮想絞りの開口幅の適正範囲がどのようにして導出されるのかを説明する図である。
【図１５】表示部のＵＩ画面上にエラーメッセージが表示された状態を示す図である。
【図１６】実施例４に係る画像処理部の内部構成を示したブロック図である。
【図１７】実施例４に係る、ユーザが仮想撮像パラメータを指定するためのＵＩ画面の一例である。
【発明を実施するための形態】
【００１０】
［実施例１］
図１は、本実施例に係る撮像装置の内部構成を示すブロック図である。
【００１１】
撮像部１００は、被写体の光情報を撮像素子で受光し、受光した信号をＡ／Ｄ変換して、デジタル信号にする。デジタル信号は、ライトフィールドデータ生成部（ＬＦデータ生成部）１１３に送られ、後述するようなライトフィールドデータが生成される。ここでは、ＬＦデータ生成部１１３を撮像部１００とは別の構成要素としているが、ライトフィールドデータの生成を撮像部１００の機能に組み込んでもよい。なお、本実施例では、撮像部１００として、メインレンズと撮像素子の間にマイクロレンズアレイを配置した構成を想定している。撮像部１００の詳細については後述する。
【００１２】
中央処理装置（ＣＰＵ）１０１は、以下に述べる各部を統括的に制御する。
【００１３】
ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。
【００１４】
ＲＯＭ１０３は、ＣＰＵ１０１で実行される制御プログラム等を格納している。
【００１５】
バス１０４は各種データの転送経路であり、例えば、撮像部１００によって取得されたデジタルデータはこのバス１０４を介して所定の処理部に送られる。
【００１６】
ユーザの指示を受け取る操作部１０５には、ボタンやモードダイヤルなどが含まれる。操作部の詳細については後述する。
【００１７】
撮像画像や文字の表示を行う表示部１０６には、例えば、液晶ディスプレイが用いられる。表示部１０６はタッチスクリーン機能を有していても良く、その場合はタッチスクリーンを用いたユーザ指示を操作部１０５の入力として扱うことも可能である。
【００１８】
表示制御部１０７は、表示部１０６に表示される撮像画像や文字の表示制御を行う。
【００１９】
撮像部制御部１０８は、フォーカスを合わせる、シャッターを開く・閉じる、開口絞りを調節するなどの、ＣＰＵ１０１からの指示に基づいた撮像系の制御を行う。
【００２０】
デジタル信号処理部１０９は、バス１０４を介して受け取ったデジタルデータに対し、ホワイトバランス処理、ガンマ処理、ノイズ低減処理などの各種処理を行う。
【００２１】
エンコーダ部１１０は、デジタルデータをＪＰＥＧやＭＰＥＧなどのファイルフォーマットに変換する処理を行う。
【００２２】
外部メモリ制御部１１１は、ＰＣやその他のメディア（例えば、ハードディスク、メモリーカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）に繋ぐためのインターフェースである。
【００２３】
画像処理部１１２は、撮像部１００で取得されたデジタルデータを用いて、リフォーカス処理などの画像合成処理を行う。画像処理部１１２の詳細については後述する。なお、画像処理部１１２は、撮像装置から独立した画像処理装置としても成立し得るものである。
【００２４】
なお、撮像装置の構成要素は上記以外にも存在するが、本実施例の主眼ではないので、説明を省略する。
【００２５】
図２の（ａ）は、撮像部１００の内部構成の一例を示す図である。
【００２６】
撮像部１００は、撮像レンズ２０１〜２０３、開口絞り（以下、単に「絞り」と呼ぶ。）２０４、シャッター２０５、マイクロレンズアレイ２０６、光学ローパスフィルタ２０７、ｉＲカットフィルタ２０８、カラーフィルタ２０９、光電変換する撮像素子（センサ）２１０及びＡ／Ｄ変換部２１１で構成される。撮像レンズ２０１〜２０３は夫々、ズームレンズ２０１、フォーカスレンズ２０２、ぶれ補正レンズ２０３である。絞りを調整することにより、撮像部１００に入射される入射光量を調整することができる。なお、各レンズのサイズがマイクロメートル単位、あるいはミリメートル単位であっても、各レンズのサイズに関わらず「マイクロレンズ」と呼ぶことにする。
【００２７】
図２の（ｂ）は、マイクロレンズが配された撮像部の内部構成を概念的に表した図である。
【００２８】
メインレンズ２１２は、ズームレンズ２０１、フォーカスレンズ２０２、ぶれ補正レンズ２０３をまとめて１枚で表したものであり、そこから入射した光線２１３がマイクロレンズアレイ２０６を通過して撮像素子２１０に到達する様子を示している。Plenopticカメラでは、マイクロレンズアレイ２０６を挿入することで、光線２１３がメインレンズ２１２のどちらの方向から来たのかを弁別し、光線の向きと強度を示すライトフィールドを取得することができる。
【００２９】
図３は、メインレンズ２１２に入射する前の光線とメインレンズ２１２に入射した後の光線との対応関係（撮像部１０１の内側と外側におけるライトフィールド）を表した図である。被写体３０１からの光線３０２〜３０４が、メインレンズ２１２を通過後、光線３０５〜３０７として撮像部１００の撮像素子２１０によって取得される。本実施例では、ＬＦデータ生成部１１３にて、メインレンズ２１２の光学情報とメインレンズ入射後の光線群（光線３０５〜３０７）の情報から、メインレンズ２１２に入射前の光線群（光線３０２〜３０４）の情報への変換がなされる。メインレンズ２１２による光の減衰がないものとすれば、メインレンズ入射後の光線群（光線３０５〜３０７等）の情報を基に、被写体３０１からメインレンズ２１２までの空間の光線群（光線３０２〜３０４等）の情報を得ることができる。
【００３０】
以下では、特に断らない限り、用語「ライトフィールド」を、被写体からメインレンズ２１２までの光線群によって規定される三次元空間を指すものとして用いることとする。また、ライトフィールドを規定する光線群は、十分な角度・空間分解能で取得できているものとする。
【００３１】
なお、ライトフィールドを取得する撮像装置としては、上述のマイクロレンズを備えたカメラ（Plenopticカメラ）に限られるものではなく、例えば複数の個眼カメラからなる多眼カメラなど、ライトフィールドを取得できるものであればよい。
【００３２】
（画像処理部）
図４は、本実施例に係る画像処理部１１２の内部構成を示したブロック図である。
【００３３】
本実施例では、ユーザが指定した仮想的な撮像パラメータの下で撮像を行う仮想的なカメラ（以下、「仮想カメラ」と呼ぶ。）を想定し、その仮想カメラから撮像した場合の画像を、ライトフィールドデータを用いて合成し生成することになる。以下、ライトフィールドデータを用いて、仮想カメラで撮像した場合の画像（合成画像）の生成を行う画像処理部１１２について説明する。
【００３４】
ライトフィールド取得部４０１は、ＬＦデータ生成部１１３からライトフィールドデータを取得する。取得したライトフィールドデータは、結像面設定部４０３に送られる。
【００３５】
仮想撮像パラメータ取得部４０２は、仮想結像面設定部４０３及び合成画像生成部４０４で必要となる仮想的な撮像パラメータ（以下、「仮想撮像パラメータ」と呼ぶ。）を取得する。ここで、仮想撮像パラメータには、以下のパラメータが含まれるものとする。
・仮想的な視点位置（仮想カメラの視点位置）
・仮想的なレンズの焦点距離
・仮想的な撮像素子（仮想センサ）の位置：仮想レンズと仮想センサとの距離
・仮想的な絞りの開口幅
・仮想センサの画素数（解像度）
【００３６】
なお、「仮想絞りの開口幅」とは、仮想絞りの特徴量を表す指標の一例であり、仮想絞りの特徴を示す他の指標、例えば、開口の面積やＦナンバーなどであってもよいことはいうまでもない。また、焦点距離によって画角や被写界深度を、絞りの開口幅によって被写界深度をコントロールすることができるので、上述の仮想撮像パラメータには、仮想的な画角や仮想的な被写界深度も実質的に含まれていることになる。
【００３７】
仮想結像面設定部４０３は、入力された仮想撮像パラメータのうち、仮想カメラの視点位置、仮想レンズの焦点距離、仮想センサの位置の各情報に基づいて、仮想センサに共役な面（以下、「仮想結像面」と呼ぶ。）を導出し設定する。仮想結像面をどのようにして求めるかについては後述する。
【００３８】
合成画像生成部４０４は、ライトフィールドデータを用いて、入力された仮想撮像パラメータに従った合成画像を生成する。
【００３９】
（仮想撮像パラメータ）
図５の（ａ）及び（ｂ）は、ユーザが上述の仮想撮像パラメータを指定するためのＵＩ画面の一例を示す図である。
【００４０】
図５の（ａ）は、仮想カメラの視点位置を指定するためのＵＩ画面である。ＵＩ画面５００において、ユーザは、画面上に表示された被写体５０７に対する仮想カメラ５０１の位置を、マウスカーソル５０６を用いて（例えばドラッグアンドドロップする等）により指定する。
【００４１】
仮想カメラ５０１の視点位置は、仮想レンズ５０３の主点５０４の位置が座標軸５０８上のどこに位置するのかを示す座標情報、（ここでは、座標(xc,zc)、単位[mm]）によって特定され、例えば、(xc,zc)=(0,100)のように表される。なお、５０２は仮想絞り、５０５は仮想センサを表している。もちろん、仮想カメラ５０１の位置を特定することができればよいので、仮想レンズ５０３の主点５０４以外の部分の座標位置であっても良い。なお、座標軸５０８は本来３次元であるが、ここでは説明を簡単にするため、ｘ軸とｚ軸の２次元で説明している点に留意されたい。
【００４２】
図５の（ｂ）は、仮想レンズの焦点距離、仮想センサの位置（仮想レンズと仮想センサとの距離）、仮想絞りの開口幅および仮想センサの解像度を指定するためのＵＩ画面である。ＵＩ画面５１０において、ユーザは、画面上に表示された各スライドバー５１１〜５１４を用いて、仮想レンズ５０３の焦点距離、仮想センサ５０５の位置、仮想絞り５０２の開口幅および仮想センサ５０５の解像度を、それぞれ指定する。
【００４３】
なお、本実施例では、仮想センサ５０５が座標軸５０８のx軸に対して常に平行である（すなわち、ユーザは仮想カメラの視点位置を指定する際、仮想センサがｘ軸に対して傾くような状態では指定しない。）ものとして、以下説明する。
【００４４】
上述のようなＵＩ画面を介して指定された仮想撮像パラメータのうち、仮想カメラの視点位置、仮想レンズの焦点距離、仮想センサの位置については、仮想結像面設定部４０３に入力される。また、指定された仮想撮像パラメータのうち、仮想絞りの開口幅、仮想レンズの焦点距離、仮想センサの解像度については、合成画像生成部４０４に入力される。
【００４５】
なお、仮想撮像パラメータには、例えば以下のようなデフォルト値を設定しておいても良い。
・仮想レンズの焦点距離：50mm
・仮想センサの位置（仮想レンズと仮想センサの距離）：50.7mm
・仮想絞りの開口幅：17.9mm(F2.8相当)
・仮想センサの解像度：2000万画素
【００４６】
（仮想結像面の求め方）
図６は、仮想結像面の求め方を説明する図である。図６において、２つの被写体５０７上を通るｘ軸と平行な破線６０１が、求める仮想結像面を示している。仮想結像面６０１は、仮想センサ５０５に共役な面である。ここで、仮想レンズ５０３の焦点距離をf、仮想レンズ５０３と仮想センサ５０５との距離をbとすると、仮想レンズ５０３と仮想結像面６０１との距離aは、レンズの公式から以下の式（１）で表される。
【００４７】
【数１】
2014086899.tif 000003
【００４８】
本実施例では、仮想結像面６０１はx軸に平行なので、主点５０４のz座標が決まると仮想結像面の位置も決まることになる。いま、主点５０４のz座標はzcであるので、仮想結像面６０１のz座標をzvは、以下の式（２）で表される。
【００４９】
【数２】
2014086899.tif 000004
【００５０】
このようにして、ｘ軸に平行な仮想結像面が求められる。
【００５１】
（ライトフィールド）
画像処理部１１２における処理内容の詳細に入る前に、ライトフィールドについて簡単に説明する。
【００５２】
図７の（ａ）は、被写体と光線の関係を表す図であり、同（ｂ）は被写体を通る光線をライトフィールド座標にプロットした図である。
【００５３】
図７の（ａ）において、破線で示されるu平面およびs平面は、仮想的に設置された互いに平行な平面である。本来、u平面およびs平面は２次元の平面であるが、ここでは図示の都合上１次元で表現することとする。いま、空間中には被写体７０１が配置されており、撮像装置によって被写体７０１を含む空間中のライトフィールドを取得する状況を想定する。斜め左下がりの両方向矢印７０２及び斜め右下がりの両方向矢印７０３は被写体７０１から出た光線を示しており、光線７０２及び７０３がそれぞれu平面及びs平面を通過する位置を座標(u,s)の形式で表すと、光線７０２は(u2,s1)、光線７０３は(u1,s2)をそれぞれ通過しているのが分かる。これを、uを横軸、sを縦軸にとったライトフィールド座標上にプロットすると、図７の（ｂ）に示すように、それぞれ点７０５及び７０６の位置にプロットされる。即ち、空間中の一本の光線はライトフィールド座標上では一点に対応する。このようにして、空間中のある点を通過するすべての光線を考えると、それらの光線に対応するライトフィールド座標上の点の集合は直線になるという性質が知られている。例えば、被写体７０１から出た光線に対応するライトフィールド座標上の点は全て直線７０７上に乗ることになる。そして、直線７０７の傾きαは、u平面から被写体７０１までの距離に応じて変化する。ここで、被写体７０１の座標を(xobj,zobj)とすると、被写体７０１を通る光線は以下の関係式を満たす。
【００５４】
【数３】
2014086899.tif 000005
【００５５】
これは、被写体７０１がu平面とs平面を、α：(1-α)に内分する点であることに従う。(u,s)のライトフィールド座標上では、上記式（３）は直線を表す方程式になっている。
【００５６】
（画像処理部）
図８は、本実施例に係る画像処理の流れを示すフローチャートである。なお、この一連の処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムをＲＯＭ１０３からＲＡＭ１０２上に読み込んだ後、ＣＰＵ１０１によって該プログラムを実行することによって実施される。
【００５７】
ステップ８０１において、ライトフィールド取得部４０１は、ＬＦデータ生成部１１３からライトフィールドデータを取得する。
【００５８】
ステップ８０２において、仮想撮像パラメータ取得部４０２は、ユーザが上述のＵＩ画面を介して指定した仮想撮像パラメータを取得する。上述のとおり、取得した仮想撮像パラメータのうち、仮想カメラの視点位置、仮想レンズの焦点距離、仮想センサの位置は、仮想結像面設定部４０３に送られる。また、仮想絞りの開口幅と仮想センサの画素数は、合成画像生成部４０４に送られる。
【００５９】
ステップ８０３において、仮想結像面設定部４０３は、入力された仮想カメラの視点位置、仮想レンズの焦点距離、仮想センサの位置に基づいて仮想結像面を求め、合成画像の生成に用いる結像面として設定する。
【００６０】
ステップ８０４において、合成画像生成部４０４は、ステップ８０３で設定された仮想結像面、及び入力された仮想カメラの視点位置、仮想絞りの開口幅、仮想センサの画素数を基に、ライトフィールドデータを用いて合成画像を生成する。以下、詳しく説明する。
【００６１】
図９は、本実施例において、合成画像の各画素値がどのように取得されるのかを説明する図である。ユーザが指定した仮想撮像パラメータに従った画像を生成するためには、所定の画素ピッチで仮想結像面９０１上の点を通る光線の量（仮想結像面上で結像する仮想的な絞りの開口を介して入射される光線の量）を計算すればよい。つまり、得られた光線量が、合成画像における画素値に対応する。
【００６２】
まず、画素ピッチについて説明する。
【００６３】
画素ピッチは、以下の考え方で導くことができる。
【００６４】
いま、ユーザが指定した仮想焦点距離（35mm換算）をfとすると、仮想カメラによって撮像される画像の画角φは、以下の式（４）によって表される。
【００６５】
【数４】
2014086899.tif 000006
【００６６】
なお、上記式（４）の右辺における分子の"36"は、フルサイズセンサ（36mmx24mm）の長辺の長さに対応している。そして、仮想カメラがカバーする画角φは、仮想結像面９０１上では2atanφ（a：仮想レンズと仮想結像面との距離）の長さに相当する。よって、ユーザが指定した仮想センサの画素数をＮとすると、以下の式（５）で表される画素ピッチで画素値を計算すればよいことが分かる。
【００６７】
【数５】
2014086899.tif 000007
【００６８】
例えば、a=3500mm、f=50mm、N=5480pixelとすると、式（５）から画素ピッチは0.46mmとなる。
【００６９】
次に、画素値の計算方法について説明する。
【００７０】
図９における点９０２を通る光線の量は、仮想絞り５０２の開口部分を底辺とし、設定された仮想結像面９０１上のある点９０２を頂点とする三角形（斜線領域９０３）内のライトフィールドを積分することで得ることができる。いま、点９０２のx軸の座標をＸとすると、仮想結像面９０１のz軸の座標zvはa+zcであるので（式（２）参照）、点９０２を通る光線は、前述の式（３）より以下の式（６）で表すことができる。
【００７１】
【数６】
2014086899.tif 000008
【００７２】
ここで、仮想絞り５０２の開口部分に含まれる点のx軸の座標をxaとし、仮想絞り５０２のz軸の座標と仮想レンズ５０３の主点５０４のz軸の座標とがほぼ同じであるとする。この場合、主点５０４のz軸の座標はzcなので、仮想絞り５０２の開口部分に含まれる任意の点を通る光線は、前述の式（３）より以下の式（７）のようになる。
【００７３】
【数７】
2014086899.tif 000009
【００７４】
そして、仮想絞り５０２の開口幅をＤとするとxc-D/2≦xa≦xc+D/2なので、仮想絞り５０２を通過する光線群は、ライトフィールド座標(u,s)上で以下の式（８）で表される領域内に含まれることになる。
【００７５】
【数８】
2014086899.tif 000010
【００７６】
さらに、前述の式（６）より、以下の式（９）が得られる。
【００７７】
【数９】
2014086899.tif 000011
【００７８】
そして、合成画像生成部４０４は、上述の式（５）によって得られた画素ピッチに従って、点９０２の位置Ｘを順次移動させ、各画素位置Ｘにおける画素値を求めることで、指定された仮想撮像パラメータに従った画像Ｉを生成する。具体的には、以下の式（１０）から画像Ｉを求める。
【００７９】
【数１０】
2014086899.tif 000012
【００８０】
ここでL(u,s)はライトフィールド関数であり、ライトフィールド座標(u,s)における光線の輝度を表している。また、Ａは、ｕ平面上の積分範囲を示し、上記式（８）に上記式（９）を代入することで得られる以下の式（１１）で表される。
【００８１】
【数１１】
2014086899.tif 000013
【００８２】
図１０は、上記式(１０)を用いて画像Ｉを求める様子を、ライトフィールド座標上で表した概念図である。領域１００１は、図９における点９０２のx軸の座標Ｘを変化させた時に仮想結像面を通るすべての光線の集合を表している。また、領域１００２は、図９における仮想絞り５０２を通過する光線の集合を表している。斜め右上がりの矢印１００４は、図９における仮想結像面９０１上の画素が並ぶ方向であるx軸を表している。この場合において、積分範囲は線分１００５（領域１００１と領域１００２とが重なった部分における、領域１００１の境界を構成する直線１００３と平行な線分）に相当する。
【００８３】
合成画像生成部４０４は、上記式（１０）に従って、線分１００５の範囲で積分し、ｘ軸１００４の方向に式（５）から得られる画素ピッチで画素値を計算して、合成画像を生成する。
【００８４】
仮に、仮想絞りの開口幅Ｄが０の場合（仮想カメラがピンホールカメラの場合）は、領域１００２は直線になるので、ｘ軸１００４上の値を式（５）から求められた画素ピッチで取得することで合成画像を生成することになる。
【００８５】
図１１は、本実施例の効果を説明する図である。図１１の（ａ）は、被写体１１０１及び１１０２と仮想カメラ１１０３の位置関係を表している。被写体１１０１は被写体１１０２に比べて仮想カメラ１１０３により近い位置にある。そして、図１１の（ｂ）は仮想カメラ１１０３の視点位置がs平面上にある場合の合成画像、同（ｃ）は仮想カメラ１１０３の視点位置がs平面からz軸の正の方向に平行移動した位置（破線で示される位置）にある場合の合成画像をそれぞれ示している。なお、説明の便宜上、合成画像を１次元情報として表示している。また、仮想カメラ１１０３のピント距離は、ｘ軸からu平面までの距離（ｚu）とｘ軸からs平面までの距離（ｚｓ）との差分（zu-zs）となるように調整されているものとする。
【００８６】
図１１の（ｂ）と（ｃ）とを比較すると、（ｂ）ではs平面上に仮想カメラ１１０３の視点位置が存在するため、被写体１１０１にピントが合っている。これに対し、（ｃ）では仮想カメラ１１０３の視点位置が上述のピント距離より被写体側に近づくため、被写体１１０１が少しボケていることが分かる。また、被写体１１０２に関しては、（ｂ）の場合に比べ（ｃ）の場合の方がピント面に近いため、ボケが少なくなっていることが分かる。また、被写体１１０２については（ｂ）と（ｃ）でほぼ同じ大きさのままだが、被写体１１０１については（ｃ）の方が大きくなっており、構図が変化していることが分かる。
【００８７】
図８のフローチャートの説明に戻る。
【００８８】
ステップ８０５において、画像処理部１１２は、合成画像生成部４０４で生成された合成画像のデータを表示部１０６に出力する。
【００８９】
このようにして、ユーザが指定した仮想撮像パラメータに従った合成画像が生成される。
【００９０】
以上のとおり、本実施例によれば、視点位置、焦点距離、センサの位置、絞りの開口幅、被写界深度、画角、解像度といった様々なパラメータを撮像後に画像処理で変更することができる。
【００９１】
［実施例２］
実施例１では、ユーザが仮想カメラの視点位置を指定する場合において、仮想センサが座標軸のx軸に対して平行であることを前提とした。次に、ユーザが仮想カメラの視点位置を指定する場合に、仮想センサをx軸に対して傾けた状態で指定することが可能な態様について、実施例２として説明する。なお、本実施例における画像処理部の構成や処理の流れについては実施例１と共通するので（それぞれ、図４のブロック図及び図８のフローチャートを参照）、以下では差異点を中心に説明することとする。
【００９２】
図１２は、本実施例に係る画像処理で生成される画像の各画素値がどのように取得されるのかを説明する図である。いま、ユーザが、仮想撮像パラメータを指定するためのＵＩ画面（図５を参照）を介して、図１２に示すように、仮想センサ５０５がｘ軸に対して角度θだけ傾いた状態で仮想カメラの指定位置を指定したとする。このように任意の角度θだけ傾いた状態下の仮想カメラで撮像した場合の画像を生成するためには、当該傾いた状態の仮想センサ５０５の面と平行な仮想結像面１２０１上の点を通る光線の量を、所定の画素ピッチで計算すればよいことになる。図１２における点１２０２を通る光線の量は、仮想絞り５０２の開口部分を底辺とし、設定された仮想結像面１２０１上のある点１２０２を頂点とする三角形（斜線領域１２０３）内のライトフィールドを積分することで得ることができる。
【００９３】
まず、ｘ軸に対して角度θだけ傾いた仮想結像面１２０１は、以下の式(１２)で表すことができる。
【００９４】
【数１２】
2014086899.tif 000014
【００９５】
また、ｘ軸に対して角度θだけ傾いた仮想絞り５０２の面は、以下の式(１３)で表すことができる。
【００９６】
【数１３】
2014086899.tif 000015
【００９７】
そして、点１２０２を通る光線は、実施例１における式（６）に相当する以下の式（１４）で表すことができる。
【００９８】
【数１４】
2014086899.tif 000016
【００９９】
この場合において、β(X)は、βがXの関数であることを示している。
【０１００】
また、仮想絞り５０２の開口を通過する光線群は、以下の式（１５）で表される領域内に含まれる。
【０１０１】
【数１５】
2014086899.tif 000017
【０１０２】
そして、合成画像生成部４０４は、実施例１と同様の方法で、得られた画素ピッチに従って点１２０２の位置Ｘを順次移動させ、各画素位置Ｘにおける画素値を求めることで、指定された仮想撮像パラメータに従った画像Ｉを生成する。具体的には、以下の式（１６）から画像Ｉを求める。
【０１０３】
【数１６】
2014086899.tif 000018
【０１０４】
実施例１同様、L(u,s)はライトフィールド関数であり、ライトフィールド座標(u,s)における光線の輝度を表している。また、Ａは、以下の式（１７）で表される。
【０１０５】
【数１７】
2014086899.tif 000019
【０１０６】
本実施例によれば、仮想センサをx軸に対して傾けた状態で仮想カメラの視点位置を指定した場合の合成画像を生成することができる。
【０１０７】
［実施例３］
次に、撮像部の設計情報等を元に、ユーザが指定可能な仮想撮像パラメータの範囲を予め設定し、設定された範囲から外れるような仮想撮像パラメータをユーザが入力した際に、その旨をユーザに通知する態様について、実施例３として説明する。なお、実施例１及び２と共通する部分については説明を簡略化ないしは省略し、以下では本実施例に特有な点を中心に説明することとする。
【０１０８】
図１３は、本実施例に係る画像処理部１１２の内部構成を示したブロック図である。
【０１０９】
本実施例に係る画像処理部１１２の場合、ライトフィールド取得部４０１、仮想撮像パラメータ取得部４０２、結像面設定部４０３、合成画像生成部４０４の他、適正範囲設定部１３０１と取得値判定部１３０２が追加される。
【０１１０】
（適正範囲設定部）
適正範囲設定部１３０１は、撮像部１０１の設計情報やユーザ入力を元に、仮想撮像パラメータ毎の適正範囲を設定する。以下、詳しく説明する。
【０１１１】
仮想撮像パラメータのうち、仮想カメラの視点位置と仮想絞りの開口幅の適正範囲については、撮像部１０１の設計情報から幾何学的にその適正範囲が導出し、設定することができる。以下説明する。
【０１１２】
図１４は、仮想カメラの視点位置及び仮想絞りの開口幅の適正範囲がどのようにして導出されるのかを説明する図である。線分１４０１及び１４０２は、メインレンズ２１２の主点とセンサ２１０の端点とを結ぶ直線である。線分１４０３及び１４０４は、それぞれメインレンズ２１２の開口の端点を通り、線分１４０２及び１４０１に平行な直線である。撮像部１０１の前後に広がっている三角形の領域１４０５は、線分１４０３及び１４０４で画定される領域であり、撮像部１０１で取得可能なライトフィールドの範囲を示している。前述のとおり合成画像の画素値は、仮想絞りの開口部分を底辺とし、仮想結像面上のある点を頂点とする三角形（図９を参照）内のライトフィールドを積分することで得られる。よって、仮想カメラの視点位置（仮想レンズの主点）及び仮想絞りの開口幅の全部が領域１４０５内に含まれている必要がある。このため、適正範囲設定部１３０１は、撮像部１０１の設計情報（具体的には、画角及び絞り２０４の開口幅）に基づき、撮像部１０１で取得可能なライトフィールドの範囲内となるように、仮想カメラの視点位置と仮想絞りの開口幅の適正範囲を決定し、設定する。
【０１１３】
なお、仮想カメラの視点位置として指定可能な奥行き方向の範囲については任意に設定可能であり、例えば撮像部１０１に最も近い被写体までとすること等が考えられるが、これに限定されるものではない。
【０１１４】
また、仮想絞りの開口幅の下限は、例えば回折限界から決定する。具体的には、光の代表的な波長をλ、仮想レンズの焦点距離をf、仮想絞り４０３の開口幅をD、仮想センサの画素ピッチをΔとして、以下の式（１８）を満たすようであれば範囲外となるような値を下限とした適正範囲を決定する。
【０１１５】
【数１８】
2014086899.tif 000020
【０１１６】
このばあいにおいて、上記式(１８）は、回折ボケが画素ピッチより大きいことを表している。
【０１１７】
その他の仮想撮像パラメータ（仮想レンズの焦点距離、仮想センサの位置、仮想センサの解像度）の適正範囲は、撮像部１０１の設計情報から幾何学的には導出されないので、ユーザが不図示のＵＩ画面等を介して指定した任意の範囲が適正範囲として設定される。
【０１１８】
そして、上記のようにして設定された各仮想撮像パラメータの適正範囲の情報は、取得値判定部１３０２に送られる。
【０１１９】
（取得値判定部）
取得値判定部１３０２は、ユーザが入力した各仮想撮像パラメータの値等が、適正範囲設定部１３０１で設定された適正範囲の範囲内かどうかを判定する。設定された適正範囲の範囲内であると判定された場合には、入力された各仮想撮像パラメータの値等が、仮想結像面設定部４０３や合成画像生成部４０４に送られる。一方、設定された適正範囲の範囲外であると判定された場合には、その旨を知らせるエラーメッセージを表示部１１０に表示する等の方法により、ユーザに通知される。図１５は、表示部１１０のＵＩ画面上にエラーメッセージが表示された状態を示している。
【０１２０】
本実施例によれば、ユーザが、仮想撮像パラメータについて適正範囲から外れた値等を入力した場合、エラーメッセージが表示される等の方法によってその旨がユーザに通知されるので、ユーザは適切な仮想撮像パラメータの入力を行うことが可能となる。
【０１２１】
［実施例４］
実施例３では、設定された適正範囲から外れるような仮想撮像パラメータをユーザが指定した際に、その旨を通知した。次に、ユーザが指定できる仮想撮像パラメータの範囲をＵＩ画面上に予め表示し、設定された範囲外の値をユーザが選択できないようにする態様について、実施例４として説明する。なお、実施例３と共通する部分については説明を簡略化ないしは省略し、以下では本実施例に特有な点を中心に説明することとする。
【０１２２】
図１６は、本実施例に係る画像処理部１１２の内部構成を示したブロック図である。
【０１２３】
実施例３に係る画像処理部１１２とは異なり、取得値判定部１３０２は存在しない。適正範囲設定部１３０１で設定された各仮想撮像パラメータの適正範囲の情報が、ユーザが仮想撮像パラメータを指定するためのＵＩ画面に反映される。そのため、仮想撮像パラメータ取得部４０２で取得した各仮想撮像パラメータが、そのまま仮想結像面設定部４０３及び合成画像生成部４０４に入力されている。
【０１２４】
上記のような構成により、本実施例の場合、仮想撮像パラメータ取得部４０２によって取得可能な仮想撮像パラメータの範囲が、適正範囲設定部１３０１で設定された適正範囲に予め制限され、ユーザは設定された適正範囲内でのみ、各仮想撮像パラメータの値等を設定することになる。
【０１２５】
図１７の（ａ）及び（ｂ）は、本実施例に係る、ユーザが仮想撮像パラメータを指定するためのＵＩ画面の一例である。基本的には実施例１に係る図５のＵＩ画面５００と同じであるが、図１７の（ａ）では、ＵＩ画面１７００内に仮想カメラの視点位置として指定可能な領域１７０１が示されている。また、図１７の（ｂ）では、ＵＩ画面１７１０内に各スライドバー５１１〜５１４上に上限値と下限値を示すマーク１７１１が追加されている。このようなＵＩ画面によって、ユーザは、適正範囲設定部１３０１で設定された適正範囲内でのみ各仮想撮像パラメータについての選択が可能になる。
【０１２６】
［実施例５］
実施例１〜４では、仮想撮像パラメータの各項目について、１つの値だけを指定していた。例えば、仮想的な視点位置としては図５に示すようなＵＩ画面を介して１つの視点位置だけを指定し、指定された１つの仮想的な視点位置に対応した１つの合成画像が生成されるという態様であった。
【０１２７】
しかし、本発明はこのような態様に限定されるものではない。すなわち、仮想撮像パラメータに含まれる同一の項目について異なる入力を同時に取得（例えば、一度に複数の異なる仮想的な視点位置を取得）して、視点位置等が異なる合成画像を同時に複数生成するように構成してもよい。
【０１２８】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
2014086899.tif 000021
【図２】
2014086899.tif 000022
【図３】
2014086899.tif 000023
【図４】
2014086899.tif 000024
【図５】
2014086899.tif 000025
【図６】
2014086899.tif 000026
【図７】
2014086899.tif 000027
【図８】
2014086899.tif 000028
【図９】
2014086899.tif 000029
【図１０】
2014086899.tif 000030
【図１２】
2014086899.tif 000031
【図１３】
2014086899.tif 000032
【図１４】
2014086899.tif 000033
【図１５】
2014086899.tif 000034
【図１６】
2014086899.tif 000035
【図１７】
2014086899.tif 000036
【図１１】
2014086899.tif 000037