以下に、本発明の実施の形態について図面を参照して説明する。
本発明を適用した画像処理装置は、例えば、視差画像印刷物を作成するときに、その印刷される画像のデータを作成する装置に適用される。視差画像印刷物とは、ユーザが見る方向(角度)により、異なる画像を視認できる画像のことである。この視差画像印刷物は、見る角度により異なる画像が視認できるため、ユーザにとっては、一種の動画像のように見える。例えば、右から左に車が走っているような状況を、視差画像印刷物として再現できる。
本発明を適用した画像処理装置は、パーソナルコンピュータで構成したり、デジタルスチルカメラやデジタルビデオカメラといった画像や映像を撮像する画像撮像装置に組み込んだりすることが可能な構成とされている。ここではまず、本発明を適用した画像処理装置を、パーソナルコンピュータに適用した場合を例にあげて説明する。
図2は、本発明を適用した画像処理装置の一実施の形態の構成を示す図である。図2に示した画像処理装置50は、CPU(Central Processing Unit)51、ROM(Read Only Memory)52、RAM(Random Access Memory)53を含み、それらはバス54により相互に接続されている。
バス54には、さらに、入出力インターフェース55が接続されている。入出力インターフェース55には、キーボード、マウス、マイクロホンなどよりなる入力部56、ディスプレイ、スピーカなどよりなる出力部57、ハードディスクや不揮発性のメモリなどよりなる記憶部58、ネットワークインタフェースなどよりなる通信部59、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア61を駆動するドライブ60が接続されている。
CPU51が、例えば、記憶部58に記憶されているプログラムを、入出力インターフェース55およびバス54を介して、RAM53にロードして実行することにより、以下に示す一連の処理が行われる。
CPU51が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア61に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア61をドライブ60に装着することにより、入出力インターフェース55を介して、記憶部58にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部59で受信し、記憶部58にインストールすることができる。その他、プログラムは、ROM52や記憶部58に、予めインストールしておくことができる。
上記したように、画像処理装置50は、視差画像印刷物のための画像データを生成するが、その画像データの基となる画像データは、例えば、ドライブ60に装着されるリムーバブルメディア61に記録されている。または、記憶部58に記憶されていても良い。さらには、通信部59を介して供給される(取得される)ようにすることも可能である。
画像処理装置50は、画像データを取得し、その取得された画像データを加工して、視差画像印刷物用の画像データを生成する。以下の説明においては、適宜、取得される画像データを基画像データとし、加工された画像データを印刷用画像データと記述する。
次に、基画像データを加工し、印刷用画像データを生成するときに、出力部57としてのディスプレイ上に表示される画面について説明する。以下、この画面のことを、編集用画面と記述する。
図3は、ディスプレイ81上に表示される編集用画面の一例を示す図である。編集用画面には、複数のボタンが設けられている。複数のボタンとして、基画像データのファイルまたは印刷用画像データのファイルを開くときに操作される“Open”というボタン91、開いたファイルを再生するときに操作される“Play”というボタン92、処理を中断、破棄するときに操作される“cancel”というボタン93、再生される画像内で、移動することがないようにしたい部分を指定するときに操作される“Don't shift”というボタン94、印刷する画像のフレーム数を所定数のフレーム数にするときに操作される“Expand/shrink”というボタン95、および、作成された印刷用画像データを所定のフォルダなどに記憶させるときに操作される“Save”というボタン96が設けられている。
また、編集用画面には、再生されているフレームが、何番目のフレームであるかを示す欄97が設けられている。欄97の右側には、再生されるフレームを前後に移動するときに操作されるスクロールバー99と、そのスクロールバー99の両端に、フレームを前の方向(時間的に前)に移動させるときに操作されるボタン98と、フレームを後の方向(時間的に後)に移動させるときに操作されるボタン100が設けられている。スクロールバー99の長さが、全フレーム数を表している場合、バーは、再生されているフレームが、全フレーム数のなかのどの部分を再生しているかを示すためのものでもある。
スクロールバー99の下側には、欄101、ボタン102、スクロールバー103、およびボタン104が設けられている。この部分は、再生の開始フレームを設定する部分であり、欄101には、その時点で設定されている開始フレームの番号が表示され、ボタン102は、開始フレームを前に進めるときに操作されるボタンであり、ボタン104は、開始フレームを後に進めるときに操作されるボタンである。また、スクロールバー103は、全フレーム数のうちの、開始フレームの位置をバーで表現するとともに、そのバーを図中左右に操作することで、開始フレームを設定できる構成とされている。
同様に、終了フレームも設定できる構成とされている。終了フレームを設定する部分は、ボタン105、スクロールバー106、ボタン107、および欄108から構成されている。ボタン105は、終了フレームを前に進めるときに操作されるボタンであり、ボタン107は、終了フレームを後に進めるときに操作されるボタンであり、欄108には、その時点で設定されている終了フレームの番号が表示される。また、スクロールバー106は、全フレーム数のうちの、終了フレームの位置をバーで表現するとともに、そのバーを図中左右に操作することで、終了フレームを設定できる構成とされている。
編集用画面には、“Total”という欄109も設けられ、この欄109には、その時点での印刷用画像データに含まれる画像のフレーム数が表示される。この欄109に表示される数値は、欄108に表示されている終了フレームから、欄101に表示されている開始フレームを減算した値(正確には、その値に1加算した値)が表示される。
編集用画面には、画像データの再生時の速度を調整する部分も設けられている。この速度を調整する部分(Playback Speed)は、速度を遅めるときに操作されるボタン110、速度を速めるときに操作されるボタン112、および、スクロールバー111から構成されている。
本発明を適用した画像処理装置においては、視差画像印刷物を実際に印刷したときに、どのように、その視差画像印刷物が視認できるか、換言すれば、視差画像印刷物として適切な画像を提供できる画像データであるか否かを、シミュレーションできるように構成されている。シミュレーションとして、2つのモードが設定できるように構成されている。1つのモードは“Show Red Region”であり、もう1つのモードは“Virtual Hologram”である。編集用画面には、この2つのモードのうちのどちらか一方を選択できるように構成されているチェック欄113とチェック欄114が設けられている。
“Show Red Region”というモードは、各画像の差分を計算し、大きく動き過ぎている部分を赤色で示すモードである。大きく動き過ぎている部分は、視差画像印刷物にしたとき、ぶれて見える、ぼけて見えるなど、好ましくない状態になる可能性が高い部分であり、“Show Red Region”というモードは、そのような部分をユーザに赤色で指摘するモードである。ただし、色は赤色に限定されるわけではなく、ユーザに適切に指摘できるような色であればよい。
また、動きの度合いに応じて、例えば、「少々動き過ぎ」と判断される領域を青色、「かなり動き過ぎなので要注意」と判断される領域を黄色、「動き過ぎなのでこのままでは使えない」ほどの領域であると判断される領域を赤色で、それぞれ表示するといったように、動き過ぎの度合いに応じて表示される色が変えられるようにしても良い。
“Virtual Hologram”というモードは、前後するフレームを予め設定されているフレーム数分重ね合わせて表示するモードである。前後するフレームを重ね合わせて表示すると、動きのある部分は、だぶって見えるようになる。そのような部分は、上記した場合と同様に、視差画像印刷物にしたとき、ぶれて見える、ぼけて見えるなど、好ましくない状態になる可能性が高い部分である。この“Virtual Hologram”というモードでは、その時点で作成されている印刷用画像データを、実際に視差画像印刷物として印刷したときに、ユーザが見ることができる画像を、シミュレーションすることができるモードである。
枠115には、画像が表示される。この枠115に表示される画像は、上記した“Show Red Region”というモードのとき、または“Virtual Hologram”というモードのときの画像(映像)である。ユーザは、この枠115に表示される画像を見ながら、最適な視差画像印刷物が得られるように、画像データを加工することができるように構成されている。
視差画像印刷物は、光の当たり具合によっても見え方が異なり、点光源の光で見たときが最も良い状態で、画像が見えるように構成されている。よって、シミュレーションするときも、点光源で見たときのシミュレーションと、点光源以外で見たときのシミュレーションを行えることが、より視差画像印刷物の画像を適切なものとするには必要である。例えば、点光源としては、太陽光があり、点光源以外としては蛍光灯の光がある。
そこで、編集用画面には、“sunlight”という項目と“fluorescent lamp”という項目を設け、点光源で視差画像印刷物を見たときのシミュレーションと、点光源以外の光源で視差画像印刷物を見たときのシミュレーションを行えるように構成されている。
このような編集用画面による編集、換言すれば、この場合、視差画像印刷物用の画像データを生成する処理を実行するために、画像処理装置50は、図4に示すような機能を有している。
図4は、画像処理装置50の機能について説明するためのブロック図である。画像処理装置50の機能は大別して、基画像データ読み出し処理部141、印刷用画像データ記憶処理部142、“Show Red Region”モード処理部143、“Virtual Hologram”モード処理部144、時間軸切り出し処理部145、設定部146、フレーム加算部147、および切り出し領域設定部148を含むように構成されている。
基画像データ読み出し処理部141は、記憶部58(図1)やリムーバブルメディア61に記憶されている基画像データの読み出しや、通信部59を介して取得される基画像データの取得に係わる処理を実行する。この基画像データ読み出し処理部141は、“Open”というボタン91が操作されたときの処理を実行する。
印刷用画像データ記憶処理部142は、作成された印刷用画像データを、記憶部58(図1)やリムーバブルメディア61に記憶したり、通信部59を介して他の装置に記憶させたりする処理を実行する。この印刷用画像データ記憶処理部142は、“Save”というボタン96が操作されたときの処理を実行する。
“Show Red Region”モード処理部143は、“Show Red Region”のチェック欄113がチェックされているときであり、“Play”というボタン92が操作されたときの処理を実行する。“Virtual Hologram”モード処理部144は、“Virtual Hologram”のチェック欄114がチェックされているときであり、“Play”というボタン92が操作されたときの処理を実行する。
時間軸切り出し処理部145は、ボタン102、スクロールバー103、およびボタン104で設定される開始フレームの設定や、ボタン105、スクロールバー106、およびボタン107で設定される終了フレームの設定に係わる処理を実行する。
設定部146は、“Playback Speed”を設定する部分(ボタン110、スクロールバー111、およびボタン112)で設定された再生スピードや、“Show Red Region”のチェック欄113、“Virtual Hologram”のチェック欄114、“sunlight”のチェック欄116、“fluorescent lamp”のチェック欄117などのチェック欄のうち、どのチェック欄が設定されているかを認識し、他の部分にその情報を提供したりする処理を実行する。
フレーム加算部147は、“Expand/Shrink”というボタン95が操作されたときの処理を行う。フレーム加算部147は、“Expand/Shrink”というボタン95が操作されたときの画像データのフレーム数を、所定のフレーム数にするために、フレームを補間したり、削除したりする処理を実行する。また、前後に所定数のフレームを加算する処理も実行する。
切り出し領域設定部148は、枠115に表示される画像のうち、視差画像印刷物として印刷される領域の設定に係わる処理を実行する。また、“Don't shift”というボタン94が操作されたとき、枠115内で、シフトさせない位置の設定に係わる処理は、その位置に基づく領域の設定に係わる処理を実行する。
このような機能を有する画像処理装置50の動作について、図5と図6に示したフローチャートを参照して説明する。
ステップS21において、基画像データ読み出し処理部141は、“Open”というボタン91が操作されたことに応答し、指定された基画像データの記録先から、基画像データを読み出す。このとき読み出される基画像データは、例えば、動画像データから切り出され、複数の画像データに変換された画像データの集合である。
動画像データは、例えば、ビデオカメラにより記録された動画像データや、録画されたテレビジョン放送などの動画像データから、視差画像印刷物として印画したい部分の大雑把な切り出しが行われた動画像データである。大雑把な切り出しが行われた動画像データとは、この後の処理で、印画が行われる切り出しが詳細に行われるため、この段階では大雑把な切り出しが行われた動画像データでよいためである。
動画像データは、複数の画像データに変換される。すなわち、動画像は、複数の静止画像が連続して再生されることにより実現されるため、その動画像を構成する複数の静止画像に分解される。このような変換に係わる処理は、例えば、Adobe Premiere、Quick Time Pro(いずれも商標)などのソフトウェアを用いることで行うことができる。変換された画像データは、連番BMP(Bit Map)やJPEG(Joint Photographic Experts Group)などの画像列ファイルや、各種MPEG(Moving Picture Experts Group)など圧縮された一つの動画像ファイル、MOV、AVI(Audio Video Interleaving)などのファイル形式のものである。
図7に、基画像データ読み出し処理部141の処理により、基画像データが読み出されたときの編集用画面の一例を示す。まず枠115には、基画像データを再生したときの最初のフレームの画像が表示されている。以下の説明においては、基画像データは、サッカーの一場面であり、ボールを蹴りながら走り、シュートする動画像から生成された基画像データであるとする。
まだ再生がされていないので、欄97には“0”という数値が表示される。また、開始フレームは、まだ設定されていないので“0”であり、欄101には“0”との表示がされる。また、終了フレームも、まだ設定されていないので、欄108には、基画像データの最後のフレームの番号が表示され、この場合、“320”と表示されている。よって、この場合、基画像データは、0乃至320までの総計321枚のフレームで構成されていることになる。よって、“Total”のフレーム数を表示する欄109には、“321”との表示がされる。
このような編集画面が表示されているときに、“Play”というボタン92が操作されると、ステップS22(図5)に処理が進められる。ステップS22において、“Show Red Region”モードであるか否かが判断される。設定部146は、その時点で、チェック欄113がチェックされているか否かを判断し、チェックされている場合には“Show Red Region”モードであると判断し、“Show Red Region”モード処理部143に処理を開始するように指示を出す。
“Show Red Region”モード処理部143は、ステップS23において、所定のアルゴリズムに基づく演算を行う。そして、“Show Red Region”モード処理部143は、ステップS24において、その演算結果に基づく画像を枠115内に表示する。枠115内に表示される画像には、演算の結果、所定の閾値以上であると判断された部分は、赤色で表示された画像である。
“Show Red Region”モードは、上記したように、各画像の差分を計算し、大きく動き過ぎている部分は赤色で示すモードである。赤色で示された部分は、視差画像印刷物にしたときに、ぼやける可能性が高い部分であり、そのような部分を、ユーザにわかりやすいGUI(Graphical User Interface)として表示する。ここでは、そのGUIは、赤色表示であるとして説明を続ける。
大きく動き過ぎている部分とは、所定のアルゴリズムに基づいた演算結果のうち、所定の閾値以上になった部分である。このアルゴリズムは、オプティカルフロー、フレーム差分などのアルゴリズムを適用することができる。
所定の閾値は、例えば、“sunlight”というチェック欄116または“Fluorescent lamp”というチェック欄117のどちらがチェックされているかに依存するようにしても良い。上記したように、視差画像印刷物は、光源の違いにより、その見え方が異なってくる。太陽光など理想的な点光源にて照明した場合は、画像の動きの許容範囲が大きくなるのに対し、蛍光灯などの面光源にて照明した場合は、多少の動きでも見えにくくなったりする。
換言すれば、視差方向の解像度は、照明条件によって変化する。太陽光や平行光で見ると非常にシャープに見えるが、蛍光灯などの面光源で照らすとシャープネスが落ちる。この違いをシミュレーションするために、本発明においては、“sunlight”というチェック欄116または“Fluorescent lamp”というチェック欄117を設け、チェックされている欄に応じて、閾値を変化させることで、照明条件の違いによるシミュレーションを正確に行えるように構成されている。
ここでは、2つのチェック欄を設け、2つの閾値が設けられているとして説明を続けるが、例えば、2以上のチェック欄を設け、それぞれのチェック欄に応じた閾値が設定されているように構成することも可能であるし、ユーザが数値を直接入力することで設定されるようにしても良いし、スクロールバーのような構成として、そのバーを移動させることにより所望の閾値が設定されるような構成としても良い。
例えば、閾値を大きくすれば、より多くの範囲が閾値以下になり、より小さな範囲が赤色で示されることになる。このような状況は、点光源で見たときに相当するシミュレーション結果を得られることになる。また、逆に、例えば、閾値を小さくすれば、より多くの範囲が閾値以上になり、より多くの範囲が赤色で示されることになる。このような状況は、点光源以外の光源で見たときに相当するシミュレーション結果が得られることになる。
このように、“Show Red Region”モード処理部143は、所定のアルゴリズムに基づく演算を行い、その演算結果が、設定されている閾値以上であるか否かを判断し、閾値以上の部分を赤色で表示するという処理を行う。このような処理が行われたときの編集用画面の一例を、図8に示す。
図8において枠115には、赤色で示される領域(図8では、説明の都合上、黒色で示す)がある画像が表示される。この赤色で示される領域は、動きの激しい部分であり、例えば、図8の枠115に表示されている画像では、選手の手の部分や足の部分である。この画像の場合、ボールを蹴る動作が含まれている動画像データから切り出された基画像データを解析した結果であるので、蹴る足の部分などは動きが激しいため、赤色で示される領域が存在する。
なおここでは、動き過ぎていると判断される部分を赤色で示されるとしたが、動き過ぎの度合いに応じて(複数の閾値を設けて、その閾値毎に閾値を超えているか否かを判断し、その判断結果に応じて)、例えば、赤、黄、緑、青などに色を変えて表示されるようにしても良い。赤領域が多ければ、その部分はぼやけることになるので、なるべく緑領域や青領域になるように、後段の処理が行われるようにするといったように構成することもできる。ここでは、赤色の一色で示されるとして説明を続ける。
枠115に表示される画像に赤色の部分が少ない方が、視差画像印刷物にしたときに、ぼける部分が少なく、視差画像印刷物として良好な画像を得られることを示している。よって、ユーザは、枠115に表示されている画像を閲覧し、赤色の部分が多いと判断したときには、その赤色の部分が少なくなるような処理を実行する必要がある。その処理として、フレーム数を制限するということが考えられる。
例えば、ここで例にあげている基画像データは、サッカーの画像であり、ボールを蹴りながら走り、シュートするまでのシーンを含む画像であるとしている。このような画像の場合であり、赤色の部分が多いと判断されるときには、例えば、後半部分のボールを蹴る部分だけを、視差画像印刷物とするように変更する。このように変更することで、フレーム数が減ることになる。また、走っている部分を削除することで(走っている部分を視差画像印刷物の対象としないことで)、選手の動きの範囲が狭くなるので(ボールを蹴るという動作に限定されるので)、動き過ぎると判断される部分を少なくすることが可能となる。
換言すれば、例えば3秒分の基画像データを、シミュレーションしてみたら動き過ぎている画像であると判断された場合、1.5秒分だけ切り出すようにすれば、動く量は半分になるので、ぼけも小さくなり、動き過ぎと判断される部分が小さくなると考えられる。そこで、そのような基画像データのフレーム数を変更する処理が実行される。ここでは、例えば、3秒分の基画像データを、1、5秒分だけ切り出すという処理に相当するので、以下の説明では、時間軸の切り出しと記述する。
ステップS27(図5)において、時間軸の切り出しが必要であるか否かが判断される。この判断は、上記したように、赤い部分が多いいか否かをユーザが判断することにより行われが、ユーザが時間軸の切り出しが必要であると判断した場合、開始フレームや終了フレームが設定されることにより行われるので、開始フレームや終了フレームが設定されるときに操作されるボタン102、スクロールバー103、ボタン104、ボタン105、スクロールバー106、またはボタン107が操作されたか否かを判断することにより行うことが可能である。
そこで、時間軸切り出し処理部145は、ステップS27において、ボタン102、スクロールバー103、ボタン104、ボタン105、スクロールバー106、またはボタン107が操作されたか否かを判断し、操作されたと判断された場合、ステップS28に処理を進め、時間軸の切り出し処理を行う。
ユーザは、例えば、上記したように、選手が走っている部分を削除し、シュートしている部分を残す場合、換言すれば、前半部分を削除し、後半部分を残す場合、開始フレームをシュートが始まるフレームに設定する。その設定は、ボタン102、スクロールバー103、ボタン104が操作されることにより行われる。また、シュートの部分も調整することができ、シュートし終わった部分など、後半部分を修正したい場合、終了フレームが、ボタン105、スクロールバー106、ボタン107が操作されることにより設定される。
開始フレームが設定されることにより、欄101に表示される数値が変更される。また、終了フレームが設定されることにより、欄108に表示される数値が変更される。また、開始フレームや終了フレームが設定されることにより、“Total”という欄109に表示される数値も変更される。このような変更は、時間軸切り出し処理部145の処理により行われる。
図9は、開始フレームと終了フレームが設定された状態の編集用画面の一例を示す図である。欄101には、“120”との数値が表示されているので、開始フレームが120フレーム目に設定されたことがわかる。また、欄108には、“280”との数値が表示されているので、終了フレームが280フレーム目に設定されたことがわかる。このように設定されたときには、“Total”の欄109には、開始フレームと終了フレームとの差分値である“161”との数値が表示される。
図7に示した基画像データが読み込まれたときの“Total”の欄109には、“321”との数値が表示されており、フレーム数が321枚であったが、時間軸の切り出しが終了した時点で“161”との数値が表示され、フレーム数が161枚に変更されたことがわかる。よって、321枚で構成される動画像のうち、161枚で構成される動画像の部分が、抽出されたことと同等の処理が実行されたことになる。
このような処理が行われた後、ユーザは、再度、シミュレーションを行うことが可能である。すなわち、この場合、161枚のフレームで構成される動画像を、視差画像印刷物にしたときにぶれる部分があるか否かをシミュレーションすることができる。このようなことを考慮し、ステップS28において、時間軸の切り出し処理が終了すると、ステップS22に処理が戻され、それ以降の処理が繰り返される。
ステップS22において、“Show Red Region”モードであるか否かが判断される。この処理は、時間軸の切り出し処理が終了された後にも実行されるし、基画像データの読み込みが終了された時点でも実行される。このような処理の流れは一例であり、限定を示すものではないため、例えば、基画像データが読み込まれた後、時間軸の切り出し処理が実行され、その後に、“Show Red Region”モードであるか否かの判断が行われるときもある。
換言するならば、ユーザは、“Open”というボタン91を操作した後、ボタン102乃至ボタン107を操作し、開始フレームや終了フレームを設定した後、“Play”というボタン92を操作することもあり、そのような操作がされても処理は可能なように構成されている。
ステップS22において、“Show Red Region”モードであると判断された場合、ステップS23に処理が進められ、上記したような処理が繰り返される。一方、ステップS22において、“Show Red Region”モードではないと判断された場合、すなわちこの場合、“Virtual Hologram”モードであると判断された場合、ステップS25に処理が進められる。
“Virtual Hologram”モードであると判断された場合、“Virtual Hologram”モード処理部144が処理を実行する。“Virtual Hologram”モード処理部144は、ステップS25において、複数のフレームを重ね合わせるという処理を実行し、ステップS26において、その重ね合わせたフレームの表示を順次制御する。
“Virtual Hologram”モードは、連続する複数のフレームを加算してオーバーラップさせた画像を表示するモードである。重ね合わせるフレーム数は、例えば、全体のフレーム数の10%とする。“Virtual Hologram”モード処理部144は、例えば、処理対象とされている画像データが150フレームであれば、15フレーム、つまり、通常プレビューするフレームnに対して、n-7からn+7までの15フレーム分を重ね合わせた画像を作成する。そして、複数のフレームが重ね合わされた画像を、順次、枠115内に表示するための処理が実行される。
重ね合わされるフレームの枚数は、上記したように、例えば、全体のフレーム数の10%と固定値としても良いが、“sunlight”というチェック欄116または“Fluorescent lamp”というチェック欄117のどちらがチェックされているかに依存するようにしても良い。すなわち、上記した“Show Red Region”モードのときの処理と同じく、チェック欄116またはチェック欄117のどちらにチェックが入れられているかにより、パーセンテージが変えられるように構成しても良い。
さらには、上記した場合と同様に、2以上のチェック欄を設け、それぞれのチェック欄に応じたパーセンテージが設定されているように構成することも可能であるし、ユーザが数値を直接入力することで設定されるようにしても良いし、スクロールバーのような構成として、そのバーを移動させることにより所望のパーセンテージが設定されるような構成としても良い。
このような、複数枚のフレームが重ね合わされた画像が、連続してユーザに供給されるとにより、実際のホログラム(視差画像印刷物)を見たときのシミュレーションを提供することが可能となる。
複数枚のフレームが重ね合わされた画像は、動きの大きな部分がぼけた画像となる。ユーザは、枠115に表示される画像を閲覧し、ぼけた部分が気になるか否か、どの部分がぼけているかなどを、確認することができる。このモードは、上記したように、実際の視差画像印刷物を閲覧したときと同じ状況を再現できるモードであるので、この時点で、ぼけなどが気になる場合には、時間軸の切り出しの処理を実行するなどして、対応した方が好ましい。
“Virtual Hologram”モード処理部144による処理が終了されると、ステップS27に処理が進められ、それ以降の処理が実行される。ステップS27,S28の処理は、既に説明したので、その説明は省略する。
ステップS27において、時間軸の切り出しは必要ないと判断された場合、ステップS29に処理が進められる。ユーザは、時間軸の切り出しの処理は必要ないと判断した場合、“Expand/shrink”というボタン95(図3)を操作する。この“Expand/shrink”というボタン95が操作された場合、フレーム加算部147による処理が実行される。
ステップS29において、フレーム加算部147は、その時点でのフレーム数を、所定のフレーム数に変換する。視差画像印刷物のフレーム数、換言すれば、生成される印刷用画像データを構成するフレーム数は、例えば、120フレームと設定されている。例えば、図9に示したように、“Total”という欄109に“161”との表記がある場合、すなわち、その時点で、印刷用画像データの候補とされているフレーム数が、161枚である場合、41枚のフレームが削除され、120枚にされる。また、その時点で、印刷用画像データの候補とされているフレーム数が、100枚である場合、20枚のフレームが補間され、120枚にされる。
このように、その時点で、印刷用画像データの候補とされているフレーム数に応じて、フレームの削除または補間が行われる。フレームが補間または削除される場合、動きが激しいと判断される部分に補間または削除されるといったように、処理対象とされている画像の特徴に応じて、適宜、フレームが補間される部分と削除される部分が決定されるようにすることが好ましい。
さらに、ステップS30において、フレーム加算部147は、所定の枚数のフレーム数に変換された画像データに対して、前後に所定のフレーム数を追加する。全体のフレーム数の、例えば10%ずつが前後に加えられる。例えば、120フレームであれば、前に12フレーム分、最初のフレームがコピーされることにより加えられ、最後に12フレーム分、最後のフレームがコピーして加えられることで、合計144フレームの印刷用画像データの候補が作成される。
このように、画像の前後に所定のフレーム数が追加されるようにするのは、以下の理由からである。すなわち、仮に被写体が動き過ぎている画像(コンテンツ)であっても、最初と最後に止まった画像がきれいに見える部分が増えることになるので、全体として見やすい画像にすることができる。
ただし、被写体がゆっくり動いているもの、視差画像用印刷物に適した画像については、この追加するフレームを少なくしても良い(追加しなくても良い)。そこで処理対象とされている動画像データを分析し、所定の注視点の動きの度合いに応じて、追加するフレーム数が変えられるようにしても良い(追加しないという選択肢も加えても良い)。また、両端部に追加するだけでなく、センター部分にも追加するようにしても良いし、非線形に追加するフレーム数を変えたり、補間画像を追加したりしても良い。
また、フレームを追加するとき、画像データの前にだけ、所定枚数のフレームを追加するようにしても良いし、画像データの後にだけ、所定枚数のフレームを追加するようにしても良い。また、このような処理が行われる場合、全体のフレーム数のうち動画像を構成する部分のフレーム数が45%〜90%となるように制御される。
このようにして、フレームを画像データの前または後、または、前および後に付加した場合、その付加したフレームに対しても、以下に説明する切り出し領域に関する処理が、元々のフレームに対する処理と同様に行われる。詳細は後述するが、付加したフレームに対しても同じ移動量で切り出し領域を線形に水平方向に変化させるという処理が行われる。
ここまでの処理で、印刷用画像データの候補に対して、所定のフレーム数にするという、時間軸の切り出しに係わる処理が終了された。このような処理は、基画像データのフレーム数が所定のフレーム数より多いときには、所定のフレーム数になるように圧縮する処理であり、基画像データのフレーム数が所定のフレーム数より少ないときには、所定のフレーム数になるように伸張する処理である。よって、このような処理を換言すれば、圧縮、伸張に係わる処理であるといえる。
この圧縮、伸張に係わる処理において、処理している基画像データが、例えば、人の顔が回転しているような画像の場合、目や鼻の位置を検出するようにし、その動きが等速あるいは等角速度直線運動になるように時間軸方向に非線形に圧縮や伸張の処理を行うようにしても良い。すなわち上記したように、処理対象とされている画像の特徴に応じて、適宜、フレームが補間される部分と削除される部分が決定され、補間または削除されるフレーム数が決定されるようにしても良い。
換言すれば、圧縮や伸張の処理が実行されるとき、所定の限定視認方向の範囲において、処理対象とされている画像データの中の所定の注視点(上記した例であれば、目や鼻の位置)の動きに応じて、圧縮率や伸張率、すなわち、補間や削除するフレーム数を変更するようにしても良い。また、所定の限定視認方向の範囲におうて、処理対象とされている画像データの中の所定の注視点の動きの速度や角速度が一定になるように、圧縮率や身長率が変更されるようにしても良い。
上述、時間軸方向の圧縮伸張が終わった基画像データ(印刷用画像データの候補)の画像列に対して、画像領域の切り出し(CROP)の処理が実行される。
領域の切り出しの処理は、全フレームに対して、連続的に水平方向に切り出し位置が変化されることにより行われる。または、所定の注視点の動きが少なくなるように切り出し位置が変化されることにより行われる。
そこで、ステップS31において、まず、切り出す領域が指定される。この領域の指定は、ユーザにより領域が設定され、その設定された領域を切り出し領域設定部148が判断することで行われる。
例えば、ユーザは、入力部56としてのマウスを操作し、枠115に表示されている画像の、視差画像印刷物にしたい領域を指定する。例えば、図10に示すように、四角い枠201を、ユーザは、マウスを操作することで指定する。この枠201の大きさはユーザが所望に設定できるが、縦横のアスペクト比は、視差画像印刷物としたときのアスペクト比に限定される。
このような枠201の設定が終了されると、ステップS32において、“Don't shift”が指示されたか否かが判断される。この判断は、“Don't shift”というボタン94が操作されたか否かを、切り出し領域設定部148が判断することで行われる。
この“Don't shift”が指示された場合、すなわち、“Don't shift”というボタン94が操作されたと判断された場合、後段の処理において実行されるのは、所定の注視点の動きが少なくなるように切り出し位置を変化させることにより行われる処理とされる。“Don't shift”というボタン94は操作されていないと判断された場合、後段の処理において実行されるのは、連続的に水平方向に切り出し位置を変化させることにより行われる処理とされる。
“連続的に水平方向に切り出し位置を変化させることにより行われる処理”の場合、等価的に、画像を印画面から奥に沈み込ませたり手前に浮かび上がらせたりすることになり、視差画像印刷物としての見た目の効果を上げることが可能となる。また、見たときに注視する部分、焦点を合わせる部分が面上でなくなるため、印画ラインなどが目立たなくなるなどの効果を得られる。
“所定の注視点の動きが少なくなるように切り出し位置を変化させることにより行われる処理”の場合、該当する注視点がはっきり見える視差画像印刷物の画像を作ることができる。特に、注視点の水平方向成分の動きが少なくなるように切り出し位置を水平方向に変化させることで、水平方向のみに視差を持たせた印刷物に有効となる印刷用画像データを得ることが可能となる。
このような処理の違いにより、最終的に得られる視差画像印刷物の画像の効果が異なるため、ユーザは、このような最終的に得られる効果により、処理を選択することが可能となる。
注視点としては、人や動物の顔の目や鼻や口などの情報を使うように設定することができる。この情報を用いて、時間軸方向の圧縮率、伸張率や、切り出し位置の変化率を決定するようにしても良い。人の顔画像などを画像内から認識できるソフトウエアアルゴリズムが各種開発されており、それらを使うことで、目や鼻の位置といった特定の注視点を検索することが可能である。また、ユーザによる操作で、例えば最初と最後のフレームでの対応注視点を操作者が指定できるようにすることもできる。
具体的には、印画対象領域を切り抜く際、対象動画像の最初のフレームと最後のフレームの対応する注視点を含む複数のフレームにおける対応注視点を指定することにより、その注視点の水平方向成分の動きが少なくなるように、切り出し領域を線形に水平方向に変化させることも可能である。そこで、ここでは、このような注視点の設定が、ユーザにより行われる例をあげて説明を続ける。
ステップS32において、“Don't shift”というボタン94が操作されたと判断された場合、ステップS33に処理が進められ、シフトさせない部分が指定される。例えば図10に示した編集用画面を再度参照するに、選手の胴体部分などの、比較的動きの少ない部分や、視差画像印刷物で中心としたい部分など、ユーザが所望する部分が選択される。選択されるときに、枠115内に表示されている画像は、欄101に表示されている数値に対応するフレーム、すなわち、開始フレームに設定されている画像である。
開始フレームにおいて、注視点が設定されると、終了フレームにおける画像に、枠115内の画像が切り替わり、同じような処理により注視点が設定される。このようにして、注視点が設定される。
ステップS34において、切り出し領域設定部148は、注視点の水平方向成分の動きが少なくなるように切り出し位置を水平方向に変化させた画像が、枠115内に表示されるように表示を制御する。このようなプレビューの画面の制御が終了すると、ステップS35において、領域の再設定が指示されたか否かが判断される。ユーザが、繰り返し、このような領域の設定や注視点の設定を行えるように構成されている。
ステップS35において、領域の再設定が指示されたと判断された場合、ステップS31に処理が戻され、それ以降の処理が繰り返される。
一方、ステップS32において、“Don't shift”というボタン93は操作されていないと判断された場合、ステップS36に処理が進められる。ステップS36において、“連続的に水平方向に切り出し位置を変化させることにより行われる処理”が実行される。よって、ユーザには、連続的に水平方向に切り出し位置が変化される画像が提供される。
このようなプレビューの画面の制御が終了すると、ステップS35に処理が進められる。ステップS35において、領域の再設定は指示されていないと判断された場合、ステップS37に処理が進められる。ここまでの処理で、印刷用画像データが生成されたことになるので、ステップS37において、記録が指示されたか否かが判断される。
ステップS37において、記録が指示されたと判断された場合、換言すれば、“Save”というボタン96が操作されたと判断された場合、ステップS38に処理が進められ、印刷用画像データが、所定の記録媒体に記録される。この記録が行われるとき、ZIP形式に変換されて記録されるようにしても良い。
このようにして、本発明を適用することで、視差画像印刷物を実際に印刷する前に、実際に作成したときの視差画像印刷物がどのようになるかをシミュレーションできるようになる。また、シミュレーションを繰り返すことにより、視差画像印刷物として適した画像データを生成することが可能となる。
上記した処理が行われることで、印刷用画像データが生成されるとき、その処理の過程で、フレーム数、画像解像度、各種画像処理など、印画するときの条件にも係わるパラメータが出てくる。このパラメータを、印刷用画像データが所定の記録媒体などに記録されるときや、ネットワークを介して他の装置に送信されるときなど、処理条件をファイル内に埋め込んだり、別ファイルにヘッダファイルとして記録したり、またはファイル名に記録したりする。このようなパラメータを印刷用画像データと共に、印刷する側の装置に提供することで、印画処理を間違いなく行えるようになる(作成された視差画像印刷物が、シミュレーションした結果と同一となるように印画を行うことが可能となる)。
上記したような印刷用画像データの生成は、例えば、ビデオカメラなどを用いて撮影された動画像データから作成することができるので、ビデオカメラに画像処理装置50を組み込み、ビデオカメラで、印刷用画像データが生成できるようにしても良い。また、ユーザ側のパーソナルコンピュータなどに画像処理装置50が組み込まれ、そのパーソナルコンピュータで印刷用画像データが生成できるようにしても良い。このように、ユーザ側で生成された印刷用画像データが、記録媒体に記録され、印画を請け負う店に渡され、その店で印画されるようにしても良いし、ネットワークを介して店に送信され、その店で印画されるようにしても良い。
さらには、店側に備えられている装置(印画装置)に画像処理装置50が組み込まれ、店側で、印刷用画像データを生成し、印画しても良い。この場合、ユーザは、視差画像印刷物にしたい基画像データを店側に提供し、店側で上記したような処理が実行され、視差画像印刷物が作成される。
ユーザと店側でデータの授受(基画像データや印刷用画像データの授受)が行われるとき、電子メールに添付して授受されるようにしても良い。
また、このようにして作成された印刷用画像データは、例えば、ビデオカメラなどで楽しむことは勿論のこと、パーソナルコンピュータ、携帯電話機などでも楽しむことができる。よって、印刷用画像データを基に視差画像印刷物を作成しなくても、印刷用画像データを再生するだけで、疑似的な視差画像印刷物を楽しむことが可能となる。換言すれば、上記した“Virtual Hologram”モードのときに再生される画像(映像)を、ビデオカメラ、パーソナルコンピュータ、携帯電話機などの装置で再生することで、疑似的な視差画像印刷物を提供することが可能となる。
上述した画像処理装置50において、処理後の画像をプレビュー画像として表示したり、またはプレビュー用のファイルとして保存したりできるように構成しても良い。プレビュー画像は、正順、逆順をつなげて複数回繰り返し再生するように構成する。このように構成することで、実際の視差画像印刷物を見たときの感覚を再現できる。このファイルは、MOV、AVIなどの動画像データの他、アニメーションGIFファイルなどでもよい。
上記した実施の形態において、NTSCビデオ画像などインターレースで撮影された画像データに対して、時間軸方向の圧縮伸張の処理や領域切り出しの処理よりも前の段階で、デインターレース処理が施されるようにしても良い。すなわち、偶数ラインより形成されるフィールド画像と、奇数ラインより形成されるフィールド画像が別々に処理されるようにする。フレーム数が十分にある場合には、偶数、奇数のどちらか一方のフィールド画像のみが処理されるようにすることも可能である。
上記画像処理装置において、フレーム差分が十分小さい画像に対して、時間軸方向の圧縮伸張や領域切り出しに先立って、フレームの間引きを行い使用する画像データの容量を減らすようにしてもよい。
なお、視差画像印刷物としては、画像列の印画順を逆順にすると、奥行方向の定位感が損なわれる場合がある。定位感が失われると、本来飛び出すべき部分が奥まり、奥に行くべきものが手前に出てしまう。このようなことを防ぐために、対象印画領域を切り抜く際の水平方向の移動の向きを判定し、画像処理後のデータのフレームを逆順に並べ替える処理が実行されるようにしても良い。
すなわち、上記した実施の形態において、ステップS32乃至S34や、ステップS36において、対象印画領域を切り抜く処理が実行されるが、そのときに、移動方向を判定する処理が実行されるようにする。また、印刷用画像データが作成されるとき、例えば、ステップS38の処理が実行される前の処理として、フレームを逆順に並べ替える処理が実行されるようにするか、または、印画するときに、フレームを逆順に並べ替えて印画するようにするための情報がファイルに含められるようにするなどの処理が実行されるようにしても良い。
本発明を適用すれば、動いている被写体に対して、ほぼ止まっているカメラで撮影した画像から効果的な視差画像印画物を制作することができるようになる。例えば、カメラの前で左斜め前からゆっくり右斜め前に顔を回した映像から、立体感のあるポートレートを制作することが可能になる。
ここで、S字カーブように予め設定されているルートを、車やバイクが走行するようにし、その画像を固定されたカメラで撮影した動画像から効果的な視差画像印画物を作ることを考える。被写体とカメラの間の距離が変わらないという前提がある場合、上述の各処理の組み合わせで立体画像を制作することが可能となる。
S字カーブを車やバイクが通る画像を、S字カーブより離れた位置に設定された固定カメラで撮影した場合、車やバイクといった被写体と、固定カメラとの距離は変化してしまう。しかしながら、予め決めたルートであれば、少なくとも1つのキーフレームの注視点情報を基に画角をほぼ既知の情報で変化させることで、被写体の画面上の大きさを変えないようにすることが可能である。
すなわち、対象印画領域を切り抜く処理が実行されるとき、カメラは固定、ほぼ決められたルートを動くことを前提にした被写体に対し、予め決めて記憶した情報と、少なくとも1つのキーフレームの注視点情報とから領域位置に加え、切り出し領域の大きさを縦横比を保ったまま連続的に変化させ、領域の大きさを元のフレームの大きさに復元するための拡大処理を各フレームに対して行う。この補正処理手段は、キーフレーム間についての上記移動量や拡大率を関数変換して、または、平滑化処理または近似曲線処理を行って補正量を算出することで行われる。
このように、切り出し領域設定部148は、動画像を撮影したカメラは固定されており、ほぼ決められたルートを被写体は動くという条件の下、撮影された動画像を処理する場合、被写体に対し、予め決めて記憶した情報と、少なくとも1つのキーフレームの注視点情報とから切り出し領域を動かすか、予め決めて記憶した情報と、少なくとも一つのキーフレームの注視点情報とから領域位置に加え、切り出し領域の大きさを縦横比を保ったまま連続的に変化させ、領域の大きさを元のフレームの大きさに復元するための拡大処理を各フレームに対して行うように構成することも可能である。
また、切り出し領域設定部148は、動画像を撮影したカメラは固定されており、ほぼ決められたルートを被写体は動くという条件の下、撮影された動画像を処理する場合、被写体に対し、予め決めて記憶した情報と、少なくとも1つのキーフレームの注視点情報とから切り出し領域を動かし、キーフレーム間についての移動量や拡大率は、関数変換、平滑化処理、または近似曲線処理を行って補正量を算出するか、または、予め決めて記憶した情報と、少なくとも一つのキーフレームの注視点情報とから領域位置に加え、切り出し領域の大きさを縦横比を保ったまま連続的に変化させ、領域の大きさを元のフレームの大きさに復元するための拡大処理を各フレームに対して行い、キーフレーム間についての移動量や拡大率は、関数変換、平滑化処理、または近似曲線処理を行って補正量を算出するように構成することも可能である。
上述の実施の形態で例示した、シミュレーションや画像処理のフレーム数などのパラメータは、予め設定画面で設定できるようになっているが、アスペクト比など、ユーザには変更できないようなパラメータとは区別してある。
本発明を適用することで、視差画像印刷物のために特殊な撮影装置を用意することなく、一般的なビデオカメラ、デジタルスチルカメラで撮影された画像からでも、効果的な立体印刷物あるいは動画印刷物を作成することが可能となる。また、解像度の高い視認性の高い視差画像印刷物を制作することが可能となる。さらに、実際に印画する前に、仕上がりを予想できるプレビューが可能となることで、印刷した後に失敗してしまうといったようなことをなくすことが可能となる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。例えば、図4に示した機能を、ソフトウェアで実現させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
CPU51(図2)が、例えば、記憶部58に記憶されているプログラムを、入出力インターフェース55およびバス54を介して、RAM53にロードして実行することにより、上述した一連の処理が行われる。
CPU51が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア61に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア61をドライブ60に装着することにより、入出力インターフェース55を介して、記憶部58にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部59で受信し、記憶部58にインストールすることができる。その他、プログラムは、ROM52や記憶部58に、予めインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
50,画像処理装置, 51 CPU, 52 ROM, 53 RAM, 54 バス, 55 入出力インターフェース, 56 入力部, 57 出力部, 58 記憶部, 59 通信部, 60 ドライブ, 61 リムーバブルメディア, 91乃至96 ボタン, 97 欄, 98 ボタン, 99 スクロールバー, 100 ボタン, 101 欄, 102 ボタン, 103 スクロールバー, 104,105 ボタン, 106 スクロールバー, 107 ボタン, 108,109 欄, 110 ボタン, 111 スクロールバー, 112 ボタン, 113,114 チェック欄, 115 枠, 116,117 チェック欄, 141 基画像データ読み出し処理部, 142 印刷用画像データ記憶処理部, 143 “Show Red Region”モード処理部, 144 “Virtual Hologram”モード処理部, 145 時間軸切り出し処理部, 146 設定部, 147 フレーム加算部, 148 切り出し領域設定部