(57)【要約】【課題】撮影装置で撮影された画像において、画像の任意の箇所を修正することができることを目的とする。【解決手段】入力されたパノラマ画像に基づいて出力画像を生成する画像生成装置であって、前記パノラマ画像で出力範囲を指定する出力範囲パラメータと、前記出力画像で修正する修正箇所を指定する修正パラメータと、を入力するパラメータ入力手段と、前記出力画像の前記修正パラメータで指定された箇所を修正する画像修正手段と、を有し、前記画像修正手段は、前記修正箇所と、周辺画素と、の類似度の算出し、前記類似度と、前記周辺画素と、に基づいて前記出力画像の前記修正箇所を修正し、前記出力画像は、前記出力範囲パラメータで指定された前記パノラマ画像の範囲の画像から生成され、または前記修正によって修正された前記パノラマ画像であることで上記課題を解決する。【選択図】図７
2019021355.tif 000002
【特許請求の範囲】
【請求項１】
入力されたパノラマ画像に基づいて出力画像を生成する画像生成装置であって、
前記パノラマ画像で出力範囲を指定する出力範囲パラメータと、前記出力画像で修正する修正箇所を指定する修正パラメータと、を入力するパラメータ入力手段と、
前記出力画像の前記修正パラメータで指定された箇所を修正する画像修正手段と、を有し、
前記画像修正手段は、
前記修正箇所と、周辺画素と、の類似度の算出し、前記類似度と、前記周辺画素と、に基づいて前記出力画像の前記修正箇所を修正し、
前記出力画像は、
前記出力範囲パラメータで指定された前記パノラマ画像の範囲の画像から生成され、または前記修正によって修正された前記パノラマ画像である画像生成装置。
【請求項２】
前記類似度の算出は、
前記出力画像の画素数、解像度、または画像の向きを変更した画像を用いて複数回行う請求項１に記載の画像生成装置。
【請求項３】
前記出力画像に出力される範囲の面を示す投影面と、
前記出力範囲パラメータで示される領域へ前記投影面を移動させた投影面と、
前記投影面上の座標と、
前記投影面上の座標に対応した前記移動させた投影面上の座標と、
前記投影面と、前記移動させた投影面と、に内接する球と、
を設定し、
前記画像修正手段は、
前記投影面上の座標と、前記移動させた投影面上の座標と、の距離を、前記球の半径と、前記投影面の一辺の長さと、に基づいて計算された円弧の長さに基づいて計算する請求項１乃至２に記載のいずれかの画像生成装置。
【請求項４】
前記出力範囲に対する前記修正箇所の割合に基づいて前記出力範囲の変更を行う請求項１乃至３に記載のいずれかの画像生成装置。
【請求項５】
前記出力範囲を変更は、
前記出力範囲を拡大する変更である請求項４に記載の画像生成装置。
【請求項６】
前記出力範囲を変更は、
前記出力画像の画素数を少なくする変更である請求項４に記載の画像生成装置。
【請求項７】
前記出力範囲を変更は、
前記出力画像の画素数を前記パノラマ画像の解像度と同一または近似の値する変更である請求項４に記載の画像生成装置。
【請求項８】
前記画像修正手段は、
前記出力画像の前記修正箇所を複数回修正し、各回の修正を行うかの判断を前記出力画像の画素数に基づいて変更する請求項１乃至７に記載のいずれかの画像生成装置。
【請求項９】
入力されたパノラマ画像に基づいて出力画像を生成する画像生成方法であって、
前記パノラマ画像で出力範囲を指定する出力範囲パラメータと、前記出力画像で修正する修正箇所を指定する修正パラメータと、を入力するパラメータ入力手順と、
前記出力画像の前記修正パラメータで指定された箇所を修正する画像修正手順と、を行い、
前記画像修正手順は、
前記修正箇所と、周辺画素と、の類似度の算出し、前記類似度と、前記周辺画素と、に基づいて前記出力画像の前記修正箇所を修正し、
前記出力画像は、
前記出力範囲パラメータで指定された前記パノラマ画像の範囲の画像から生成され、または前記修正によって修正された前記パノラマ画像である画像生成方法。
【請求項１０】
入力されたパノラマ画像に基づいて出力画像を生成する画像生成方法であって、
前記パノラマ画像で出力範囲を指定する出力範囲パラメータと、前記出力画像で修正する修正箇所を指定する修正パラメータと、を入力するパラメータ入力手順と、
前記出力画像の前記修正パラメータで指定された箇所を修正する画像修正手順と、を行い、
前記画像修正手順は、
前記修正箇所と、周辺画素と、の類似度の算出し、前記類似度と、前記周辺画素と、に基づいて前記出力画像の前記修正箇所を修正し、
前記出力画像は、
前記出力範囲パラメータで指定された前記パノラマ画像の範囲の画像から生成され、または前記修正によって修正された前記パノラマ画像である画像生成方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置、画像生成方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、画像処理装置において欠損画像を修正する方法が知られている（例えば、特許文献１参照）。
【０００３】
また、広い範囲を撮影する撮影装置で撮影された全方位動画像において、撮影装置の死角となる重力方向にある欠損領域を修復する方法が知られている（例えば、非特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法では、例えば魚眼レンズの光学系を２個用いた撮影装置などによって撮影する場合において、修正が必要な箇所を任意に設定ができなかったので撮影された画像において重力方向以外に修正が必要な箇所がある場合、修正が難しくなる虞があった。
【０００５】
本発明の１つの側面は、撮影装置で撮影された画像において、画像の任意の箇所を修正することができる画像生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一態様における、入力されたパノラマ画像に基づいて出力画像を生成する画像生成装置であって、前記パノラマ画像で出力範囲を指定する出力範囲パラメータと、前記出力画像で修正する修正箇所を指定する修正パラメータと、を入力するパラメータ入力手段と、前記出力画像の前記修正パラメータで指定された箇所を修正する画像修正手段と、を有し、前記画像修正手段は、前記修正箇所と、周辺画素と、の類似度の算出し、前記類似度と、前記周辺画素と、に基づいて前記出力画像の前記修正箇所を修正し、前記出力画像は、前記出力範囲パラメータで指定された前記パノラマ画像の範囲の画像から生成され、または前記修正によって修正された前記パノラマ画像であることを特徴とする。
【発明の効果】
【０００７】
撮影装置で撮影された画像において、画像の任意の箇所を修正することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る撮影システムの全体構成の一例を説明する図である。
【図２】本発明の一実施形態に係る撮影装置の一例を説明する図である。
【図３】本発明の一実施形態に係る撮影装置による撮影の一例を説明する図である。
【図４】本発明の一実施形態に係る撮影装置によって撮影された画像の一例を説明する図である。
【図５】本発明の一実施形態に係る撮影装置のハードウェア構成の一例を説明するブロック図である。
【図６】本発明の一実施形態に係る画像処理装置のハードウェア構成の一例を説明するブロック図である。
【図７】本発明の一実施形態に係る撮影システムの機能構成の一例を示す機能ブロック図である。
【図８】本発明の一実施形態に係る撮影システムによる全体処理の一例を説明するフローチャートである。
【図９】本発明の一実施形態に係る全天球画像を生成するための処理の一例を説明するフローチャートである。
【図１０】本発明の一実施形態に係る全天球画像を生成するための処理の一例を説明する図である。
【図１１】本発明の一実施形態に係る画像処理装置による処理の一例を説明するフローチャートである。
【図１２】本発明の一実施形態に係る全天球画像を3次元座標系で示した一例を説明する図である。
【図１３】本発明の一実施形態に係る投影方位指定データの一例を説明する図である。
【図１４】本発明の一実施形態に係る投影面を計算する処理の一例を説明する図である。
【図１５】本発明の一実施形態に係る投影面上の３次元座標を全天球画像上の極座標へ変換する処理の一例を説明する図である。
【図１６】本発明の一実施形態に係る出力画像の画素を生成する処理の一例を説明する図である。
【図１７】本発明の一実施形態に係るマスクデータ生成処理の一例を説明する図である。
【図１８】本発明の一実施形態に係る類似度に基づく処理の一例を説明するフローチャートである。
【図１９】本発明の一実施形態に係る類似度に基づく処理の一例を説明する図である。
【図２０】本発明の一実施形態に係る全天球画像へ反映する処理の一例を説明するフローチャートである。
【図２１】本発明の一実施形態に係る全天球画像へ反映する処理の一例を説明する図である。
【図２２】本発明の一実施形態に係る全天球画像の一例を説明する図である。
【図２３】本発明の一実施形態に係る全天球画像へ反映する処理による効果の一例を説明する図である。
【図２４】本発明の一実施形態に係る類似度に基づく処理を行う前の出力画像の一例を説明する図である。
【図２５】本発明の一実施形態に係る類似度に基づく処理の効果の一例を説明する図である。
【図２６】本発明の一実施形態に係る第２実施形態の画像処理装置による処理の一例を説明するフローチャートである。
【図２７】本発明の一実施形態に係る第２実施形態のマスク領域割合判定処理の一例を説明する図である。
【図２８】本発明の一実施形態に係る第２実施形態の出力範囲を拡大する処理の一例を説明する図である。
【図２９】本発明の一実施形態に係る第３実施形態の画像処理装置による処理の一例を説明するフローチャートである。
【図３０】本発明の一実施形態に係る第４実施形態の画像処理装置による処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について説明する。
【００１０】
＜第１実施形態＞
＜全体構成＞
図１は、本発明の一実施形態に係る撮影システムの全体構成の一例を説明する図である。
【００１１】
撮影システム１０は、撮影装置１と、画像処理装置２と、を有する。
【００１２】
撮影装置１は、複数の光学系を有し、例えば撮影装置１の全方位など広い範囲を撮影した画像（以下、全天球画像という。）を生成し、画像処理装置２へ出力する。撮影装置１、および全天球画像の詳細は、後述する。パノラマ画像は、例えば全天球画像である。以下、パノラマ画像を全天球画像の例で説明する。
【００１３】
画像処理装置２は、撮影装置１から入力された全天球画像を画像処理、および出力する。画像処理装置２の詳細は、後述する。
【００１４】
撮影装置１と、画像処理装置２と、は有線、または無線のインタフェース（Ｉｎｔｅｒｆａｃｅ）で接続されている。例えば、画像処理装置２は、撮影装置１が出力する全天球画像などのデータを撮影装置１からダウンロードし、画像処理装置２へ入力する。
【００１５】
なお、撮影装置１と、画像処理装置２と、の接続方法は、有線、または無線のインタフェースに限られない。例えば撮影装置１と、画像処理装置２と、は、フラッシュメモリ（登録商標）などの記憶媒体を接続するインタフェースを有し、記憶媒体を介してデータを入出力してもよい。また、撮影装置１と、画像処理装置２と、の接続方法は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、またはインターネットなどのネットワーク（図示せず）を介する接続でもよい。
【００１６】
なお、全体構成は、図１に示した構成に限られない。例えば撮影装置１と、画像処理装置２と、は一体の装置となっていてもよい。また、撮影装置１、および画像処理装置２以外の別のコンピュータを接続し、３以上の装置で構成してもよい。
【００１７】
＜撮影装置＞
図２は、本発明の一実施形態に係る撮影装置の一例を説明する図である。
【００１８】
図２は、撮影装置１の外観の一例を説明する図である。図２（ａ）は、撮影装置１の正面図の一例である。図２（ｂ）は、撮影装置１の左側面図の一例である。図２（ｃ）は、撮影装置１の平面図の一例である。
【００１９】
撮影装置１は、前面撮影素子１Ｈ１と、後面撮影素子１Ｈ２と、スイッチ１Ｈ３と、を有する。撮影装置１が内部に有するハードウェアについては後述する。
【００２０】
前面撮影素子１Ｈ１と、後面撮影素子１Ｈ２と、によって撮影された画像を用いて、撮影装置１は、全天球画像を生成する。
【００２１】
スイッチ１Ｈ３は、いわゆるシャッタボタンであり、ユーザが撮影装置１に撮影の指示を行うための入力装置である。
【００２２】
撮影装置１は、例えば図２（ａ）で示すようにユーザが手で持ち、スイッチ１Ｈ３を押すことによって撮影を行う。
【００２３】
図３は、本発明の一実施形態に係る撮影装置による撮影の一例を説明する図である。
【００２４】
図３に示すように、ユーザは、撮影装置１を手で持ち、図２のスイッチ１Ｈ３を押すことによって撮影を行う。撮影装置１は、図３に示すように、図２の前面撮影素子１Ｈ１と、図２の後面撮影素子１Ｈ２と、によって、撮影装置１の全方位を撮影することができる。
【００２５】
図４は、本発明の一実施形態に係る撮影装置によって撮影された画像の一例を説明する図である。
【００２６】
図４（ａ）は、図２の前面撮影素子１Ｈ１によって撮影された画像の一例である。図４（ｂ）は、図２の後面撮影素子１Ｈ２によって撮影された画像の一例である。図４（ｃ）は、図２の前面撮影素子１Ｈ１によって撮影された画像と、図２の後面撮影素子１Ｈ２によって撮影された画像と、に基づいて生成される画像の一例である。
【００２７】
図２の前面撮影素子１Ｈ１によって撮影された画像は、図４（ａ）に示すように、撮影装置１の前方方向の広い範囲、例えば画角で１８０°の範囲を撮影範囲とした画像である。図２の前面撮影素子１Ｈ１によって撮影された画像は、図２の前面撮影素子１Ｈ１が広い範囲を撮影するための光学系、例えばいわゆる魚眼レンズを用いる場合、図４（ａ）に示すように、歪曲収差を有する。図４（ａ）の図２の前面撮影素子１Ｈ１によって撮影された画像は、撮影装置１の一方の広い範囲、かつ、歪曲収差を有するいわゆる半球画像（以下、半球画像という。）である。
【００２８】
図２の後面撮影素子１Ｈ２によって撮影された画像は、図４（ｂ）に示すように、撮影装置１の後方方向の広い範囲、例えば画角で１８０°の範囲を撮影範囲とした画像である。
【００２９】
図４（ｂ）の図２の後面撮影素子１Ｈ２によって撮影された画像は、図４（ａ）と同様の半球画像である。
【００３０】
撮影装置１は、後述する歪補正処理、および合成処理などの処理を行い、図４（ａ）の前方の半球画像と、図４（ｂ）の後方の半球画像と、から図４（ｃ）に示す画像を生成する。図４（ｃ）は、例えばいわゆるメルカトル（Ｍｅｒｃａｔｏｒ）図法などで生成されるメルカトル画像、すなわち全天球画像である。
【００３１】
＜撮影装置のハードウェア構成＞
図５は、本発明の一実施形態に係る撮影装置のハードウェア構成の一例を説明するブロック図である。
【００３２】
撮影装置１は、撮影ユニット１Ｈ４と、画像処理ユニット１Ｈ７、撮影制御ユニット１Ｈ８と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１Ｈ９と、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）１Ｈ１０と、を有する。また、撮影装置１は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１Ｈ１１と、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１Ｈ１２と、操作Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１Ｈ１３と、を有する。さらに、撮影装置１は、ネットワークＩ／Ｆ１Ｈ１４と、無線Ｉ／Ｆ１Ｈ１５と、アンテナ１Ｈ１６と、を有する。撮影装置１の各構成要素は、バス１Ｈ１７で接続されて、データ、または信号の入出力を行う。
【００３３】
撮影ユニット１Ｈ４は、前面撮影素子１Ｈ１と、後面撮影素子１Ｈ２と、を有する。前面撮影素子１Ｈ１に対応してレンズ１Ｈ５、および後面撮影素子１Ｈ２に対応してレンズ１Ｈ６が設置されている。前面撮影素子１Ｈ１、および後面撮影素子１Ｈ２は、いわゆるカメラユニットである。前面撮影素子１Ｈ１、および後面撮影素子１Ｈ２は、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）、またはＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）などの光学センサ（図示せず）を有する。前面撮影素子１Ｈ１は、レンズ１Ｈ５を通して入射した光を変換し、画像データを生成するための処理を行う。後面撮影素子１Ｈ２は、レンズ１Ｈ６を通して入射した光を変換し、画像データを生成するための処理を行う。撮影ユニット１Ｈ４は、前面撮影素子１Ｈ１、および後面撮影素子１Ｈ２が生成した画像データを画像処理ユニット１Ｈ７へ出力する。画像データは、例えば図４（ａ）の前方の半球画像、および図４（ｂ）の後方の半球画像などである。
【００３４】
なお、前面撮影素子１Ｈ１、および後面撮影素子１Ｈ２は、レンズ以外に高画質の撮影を行うために、絞り、またはローパスフィルタなど他の光学要素（図示せず）を有してもよい。また、前面撮影素子１Ｈ１、および後面撮影素子１Ｈ２は、高画質の撮影を行うために、いわゆる欠陥画素補正、またはいわゆる手振れ補正などの処理を行ってもよい。
【００３５】
画像処理ユニット１Ｈ７は、撮影ユニット１Ｈ４から入力される画像データから図４（ｃ）の全天球画像を生成するための処理を行う。全天球画像を生成するための処理の詳細は後述する。なお、画像処理ユニット１Ｈ７が行う処理は、処理の一部または全部を他のコンピュータによって並列、または冗長して行ってもよい。
【００３６】
撮影制御ユニット１Ｈ８は、撮影装置１の各構成要素を制御する制御装置である。
【００３７】
ＣＰＵ１Ｈ９は、撮影装置１が行う各処理のための演算、制御を行う。例えばＣＰＵ１Ｈ９は、各種のプログラムを実行する。なお、ＣＰＵ１Ｈ９は、並列処理によって高速化を行うために、複数のＣＰＵ、デバイス、または複数のコア（ｃｏｒｅ）から構成されていてもよい。また、ＣＰＵ１Ｈ９による処理は、撮影装置１の内部、または外部に別のハードウェアリソース（図示せず）を有し、撮影装置１の処理の一部、または全部を行わせてもよい。
【００３８】
ＲＯＭ１Ｈ１０、ＳＲＡＭ１Ｈ１１、およびＤＲＡＭ１Ｈ１２は、記憶装置の例である。ＲＯＭ１Ｈ１０は、例えばＣＰＵ１Ｈ９が実行するプログラム、データ、またはパラメータを記憶する。ＳＲＡＭ１Ｈ１１、およびＤＲＡＭ１Ｈ１２は、例えばＣＰＵ１Ｈ９がプログラムを実行する際、プログラム、プログラムが使用するデータ、プログラムが生成するデータ、またはパラメータなどを記憶する。記憶装置は、いわゆるメモリ（Ｍｅｍｏｒｙ）であればよく、ＭＲＡＭ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などでもよい。なお、撮影装置１は、ハードディスクなど補助記憶装置（図示せず）を有してもよい。
【００３９】
操作Ｉ／Ｆ１Ｈ１３は、スイッチ１Ｈ３など撮影装置１に対するユーザの操作を入力するための処理を行うインタフェースである。操作Ｉ／Ｆ１Ｈ１３は、スイッチなどの操作デバイス、操作デバイスを接続するためのコネクタ（図示せず）、ケーブル（図示せず）、操作デバイスから入力された信号を処理する回路（図示せず）、ドライバ（図示せず）、および制御装置（図示せず）などである。なお、操作Ｉ／Ｆ１Ｈ１３は、ディスプレイなど出力装置（図示せず）を有してもよい。また、操作Ｉ／Ｆ１Ｈ１３は、入力装置と、出力装置が一体となったいわゆるタッチパネルなどでもよい。さらに、操作Ｉ／Ｆ１Ｈ１３は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などのインタフェース（図示せず）を有し、フラッシュメモリ（登録商標）など記憶媒体を接続し、撮影装置１からデータを入出力してもよい。
【００４０】
なお、スイッチ１Ｈ３は、シャッターの操作以外の操作を行う電源スイッチ、パラメータ入力スイッチなどを有してもよい。
【００４１】
ネットワークＩ／Ｆ１Ｈ１４、無線Ｉ／Ｆ１Ｈ１５、およびアンテナ１Ｈ１６は、無線、または有線で撮影装置１と、ネットワークを介して他のコンピュータと、を接続するためのデバイス、および周辺回路などである。例えば撮影装置１は、ネットワークＩ／Ｆ１Ｈ１４を介してネットワークに接続し、画像処理装置２へデータを送信する。なお、ネットワークＩ／Ｆ１Ｈ１４、無線Ｉ／Ｆ１Ｈ１５、およびアンテナ１Ｈ１６は、ＵＳＢなどコネクタ（図示せず）、およびケーブル（図示せず）などを用いて接続する構成としてもよい。
【００４２】
バス１Ｈ１７は撮影装置１の各構成要素間においてデータなどの入出力に用いられる。バス１Ｈ１７は、いわゆる内部バスである。バス１Ｈ１７は、例えばＰＣＩ  Ｅｘｐｒｅｓｓ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｂｕｓ  Ｅｘｐｒｅｓｓ）である。バス１Ｈ１７は、ＰＣＩ、またはＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などでもよい。
【００４３】
なお、撮影装置１は、撮影素子が２つの場合に限られない。例えば、３つ以上の撮影素子を有してもよい。さらに、撮影装置１は、１つの撮影素子の撮影角度を変えて、複数の部分画像を撮影するでもよい。また、撮影装置１は、魚眼レンズを用いる光学系に限られない。例えば、広角レンズを用いてもよい。
【００４４】
なお、撮影装置１の行う処理は、撮影装置１が行うに限られない。撮影装置１の行う処理の一部、または全部は、撮影装置１がデータ、およびパラメータを送信し、画像処理装置２、またはネットワークで接続された別のコンピュータ（図示せず）が行ってもよい。
【００４５】
＜画像処理装置＞
画像生成装置は、例えば画像処理装置２である。以下、画像生成装置の例を画像処理装置２で説明する。
【００４６】
画像処理装置２は、例えばスマートフォン（Ｓｍａｒｔｐｈｏｎｅ）などである。画像処理装置２は、コンピュータであればよく、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）、タブレット、携帯電話器などでもよい。
【００４７】
＜画像処理装置のハードウェア構成＞
図６は、本発明の一実施形態に係る画像処理装置のハードウェア構成の一例を説明するブロック図である。
【００４８】
画像処理装置２は、補助記憶装置２Ｈ１と、主記憶装置２Ｈ２と、出力装置２Ｈ３と、入力装置２Ｈ４と、ＣＰＵ２Ｈ５と、ネットワークＩ／Ｆ２Ｈ６と、を有する。画像処理装置２の各構成要素は、バス２Ｈ７で接続されて、データ、または信号の入出力を行う。
【００４９】
補助記憶装置２Ｈ１は、ＣＰＵ２Ｈ５、および制御装置（図示せず）などの制御によって、ＣＰＵ２Ｈ５が行う処理の中間結果を含む各種データ、パラメータ、またはプログラムなどの情報を記憶する。補助記憶装置２Ｈ１は、例えば、ハードディスク、フラッシュＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などである。なお、補助記憶装置２Ｈ１が記憶する情報は、情報の一部または全部を補助記憶装置２Ｈ１に代えてネットワークＩ／Ｆ２Ｈ６で接続されたファイルサーバ（図示せず）などが記憶してもよい。
【００５０】
主記憶装置２Ｈ２は、ＣＰＵ２Ｈ５が実行するプログラムが使用する記憶領域、いわゆるメモリ（Ｍｅｍｏｒｙ）などの主記憶装置である。主記憶装置２Ｈ２は、データ、プログラム、またはパラメータなどの情報を記憶する。主記憶装置２Ｈ２は、例えばＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭなどである。主記憶装置２Ｈ２は、メモリに記憶、および取出を行う制御装置（図示せず）を有してもよい。
【００５１】
出力装置２Ｈ３は、表示を行うための装置、例えばディスプレイ、周辺回路、およびドライバなどである。出力装置２Ｈ３は、画像処理された画像を表示する。
【００５２】
入力装置２Ｈ４は、入力用ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を操作するための装置、例えば出力装置２Ｈ３と一体となっているいわゆるタッチパネル、周辺回路、およびドライバなどである。出力装置２Ｈ３、および入力装置２Ｈ４は、例えば出力装置２Ｈ３がディスプレイ、入力装置２Ｈ４がキーボードである別々の装置となっている構成でもよい。なお、出力装置２Ｈ３、および入力装置２Ｈ４は、画像処理装置２がコネクタ（図示せず）を有し、ケーブル（図示せず）などで接続された外部装置であってもよい。
【００５３】
ＣＰＵ２Ｈ５は、画像処理装置２が行う各処理のための演算、制御を行う。例えばＣＰＵ２Ｈ５は、各種のプログラムを実行する。なお、ＣＰＵ２Ｈ５は、並列処理によって高速化を行うために、複数のＣＰＵ、デバイス、または複数のコア（ｃｏｒｅ）から構成されていてもよい。また、ＣＰＵ２Ｈ５による処理は、画像処理装置２の内部、または外部に別のハードウェアリソース（図示せず）を有し、画像処理装置２の処理の一部、または全部を行わせてもよい。
【００５４】
ネットワークＩ／Ｆ２Ｈ６は、無線、または有線でネットワークを介して他のコンピュータと接続し、データなどを入出力するためのアンテナなどの装置、周辺回路、ドライバなどである。例えば、画像処理装置２は、ＣＰＵ２Ｈ５、およびネットワークＩ／Ｆ２Ｈ６によって撮影装置１から画像データを入力するための処理を行う。画像処理装置２は、ＣＰＵ２Ｈ５、およびネットワークＩ／Ｆ２Ｈ６によって撮影装置１へ所定のパラメータなどを出力するための処理を行う。
【００５５】
＜撮影システムの機能＞
図７は、本発明の一実施形態に係る撮影システムの機能構成の一例を示す機能ブロック図である。
【００５６】
撮影システム１０は、全天球画像生成部１０Ｆ１と、画像処理部１０Ｆ２と、を有する。
【００５７】
全天球画像生成部１０Ｆ１は、例えば撮影装置１によって、画像を撮影し、撮影された画像から全天球画像を生成するための処理を行う。
【００５８】
画像処理部１０Ｆ２は、例えば画像処理装置２によって、全天球画像に後述する処理を行い、処理された画像を表示するための処理を行う。
【００５９】
全天球画像生成部１０Ｆ１は、撮影部１０Ｆ１１と、生成部１０Ｆ１２と、出力部１０Ｆ１３と、を有する。
【００６０】
撮影部１０Ｆ１１は、撮影装置１によって半球画像を生成するための処理を行う。撮影部１０Ｆ１１は、半球画像に後述する前処理を行ってもよい。
【００６１】
生成部１０Ｆ１２は、撮影装置１によって撮影部１０Ｆ１１が生成した半球画像から後述する全天球画像を生成するための処理を行う。
【００６２】
出力部１０Ｆ１３は、撮影装置１によって生成部１０Ｆ１２が生成した全天球画像などを画像処理装置２へ出力するための処理を行う。
【００６３】
なお、出力部１０Ｆ１３は、画像を出力する際、例えば出力する画像を後段の処理が処理可能なフォーマットなどに変換する処理を行ってもよい。
【００６４】
画像処理部１０Ｆ２は、入力部１０Ｆ２１と、画像修正部１０Ｆ２２と、表示部１０Ｆ２３と、記憶部１０Ｆ２４と、を有する。
【００６５】
入力部１０Ｆ２１は、パラメータ入力部１０Ｆ２１１と、画像入力部１０Ｆ２１２と、を有する。
【００６６】
パラメータ入力部１０Ｆ２１１は、画像処理装置２によって、ユーザから後述する画像修正処理に必要なパラメータの入力を行うための処理を行う。入力されるパラメータは、例えば出力範囲を指定する出力範囲パラメータ、出力画像で修正する修正箇所を指定する修正パラメータなどである。
【００６７】
画像入力部１０Ｆ２１２は、画像処理装置２によって、撮影装置１から全天球画像などのデータの入力を行うための処理を行う。
【００６８】
なお、入力部１０Ｆ２１は、パラメータ、または画像を入力する際、例えば入力されるデータなどを後段の処理が処理可能なフォーマットなどに変換する処理を行ってもよい。
【００６９】
画像修正部１０Ｆ２２は、画像処理装置２によって、入力部１０Ｆ２１に入力されたデータ、およびパラメータなどを用いて、例えば後述する全天球画像を修正する処理を行う。
【００７０】
画像修正部１０Ｆ２２は、マスク部１０Ｆ２２１と、類似度算出部１０Ｆ２２２と、修正部１０Ｆ２２３と、を有する。
【００７１】
マスク部１０Ｆ２２１は、後述するマスクデータ生成処理など後述するマスクデータに係る処理を行う。
【００７２】
類似度算出部１０Ｆ２２２は、後述する類似度の算出を行う処理など類似度に基づく処理を行う。
【００７３】
修正部１０Ｆ２２３は、後述するマスクデータ、および後述する類似度によって出力画像の修正する処理を行う。
【００７４】
表示部１０Ｆ２３は、画像処理装置２によって、例えば画像修正部１０Ｆ２２が処理した画像をユーザに表示するための処理を行う。
【００７５】
記憶部１０Ｆ２４は、画像処理装置２によって、後述する処理で生成する画像のデータを記憶する。
【００７６】
なお、各機能は、図７に示した構成に限られない。例えば全天球画像生成部１０Ｆ１の行う機能は、画像処理部１０Ｆ２が有していてもよい。また、各機能で行われる処理は、上述したハードウェアによって処理される構成に限られない。例えば全天球画像生成部１０Ｆ１の行う処理の全部または一部は、画像処理装置２、またはネットワークで接続されている別のコンピュータ（図示せず）が行う構成でもよい。
【００７７】
＜撮影システムによる全体処理＞
図８は、本発明の一実施形態に係る撮影システムによる全体処理の一例を説明するフローチャートである。
【００７８】
ステップＳ０８０１では、全天球画像生成部１０Ｆ１は、後述する全天球画像を生成するための処理を行う。
【００７９】
ステップＳ０８０２では、全天球画像生成部１０Ｆ１は、画像処理部１０Ｆ２へステップＳ０８０１で生成した全天球画像を出力するための処理を行う。
【００８０】
ステップＳ０８０３では、画像処理部１０Ｆ２は、ステップＳ０８０２で入力された全天球画像を後述する画像処理を行う。
【００８１】
ステップＳ０８０３では、画像処理部１０Ｆ２は、ステップＳ０８０３で画像処理された画像をユーザへ表示する処理を行う。
【００８２】
＜全天球画像を生成するための処理＞
図９は、本発明の一実施形態に係る全天球画像を生成するための処理の一例を説明するフローチャートである。全天球画像は、例えば全天球画像生成部１０Ｆ１によって生成される。図９の全天球画像を生成するための処理は、図８のステップＳ０８０１の処理に相当する。
【００８３】
ステップＳ０９０１では、全天球画像生成部１０Ｆ１は、撮影によって図４（ａ）、および図４（ｂ）を生成する。
【００８４】
ステップＳ０９０２では、全天球画像生成部１０Ｆ１は、ステップＳ０９０１で生成された半球画像に対して後述する前処理を行う。
【００８５】
ステップＳ０９０３では、全天球画像生成部１０Ｆ１は、ステップＳ０９０２で前処理された半球画像を合成する後述する合成処理を行う。合成処理によって、全天球画像生成部１０Ｆ１は、全天球画像を生成する。
【００８６】
図１０は、本発明の一実施形態に係る全天球画像を生成するための処理の一例を説明する図である。
【００８７】
図１０（ａ）は、図４（ａ）の半球画像を光軸に対して水平方向、および垂直方向の入射角が等位となる箇所を線で結んで示した図である。以下、光軸に対して水平方向の入射角をθ、光軸に対して垂直方向の入射角をφと記載する。
【００８８】
図１０（ｂ）は、図１０（ａ）と同様に、図４（ｂ）の半球画像を光軸に対して水平方向、および垂直方向の入射角が等位となる箇所を線で結んで示した図である。図９のステップＳ０９０２では、前処理は、例えば図１０（ａ）、および図１０（ｂ）の状態の画像をメルカトル図法によって後述する図１０（ｃ）の状態に変換する処理などである。
【００８９】
図１０（ｃ）は、メルカトル図法によって処理された画像の一例を説明する図である。図１０（ｃ）は、例えば図１０（ａ）に示した状態の画像を、例えばあらかじめ作成してあるＬＵＴ（ＬｏｏｋＵｐＴａｂｌｅ）などで対応させ、メルカトル図法によって処理した場合の例である。
【００９０】
図１０（ｄ）は、図９のステップＳ０９０３で行う合成処理の一例である。
【００９１】
図１０（ｄ）で示すように、合成処理は、例えば図１０（ｃ）で示した状態の画像を複数用いて画像を生成する。図１０（ｄ）は、例えば図１０（ａ）、および図１０（ｂ）の状態の画像を９のステップＳ０９０２で前処理した画像を用いて合成処理を行う場合の例である。なお、合成処理は、前処理された画像を単に連続して配置する処理に限られない。例えば全天球画像の水平方向中心がθ＝１８０°としない場合、合成処理は、図４（ａ）の前処理した画像を全天球画像の中心に配置し、左右に図４（ｂ）の前処理した画像を分割して配置して合成処理を行い図４（ｃ）に示す全天球画像を生成する処理でもよい。
【００９２】
なお、前処理は、メルカトル図法による処理に限られない。例えば図１０（ｂ）のようにφ方向の画素の並びが図１０（ａ）の並びに対して上下が逆、およびθ方向の画素の並びが図１０（ａ）の並びに対して左右が逆となっている、いわゆる天地逆転の場合である。天地逆転の場合、前処理は、図１０（ｂ）の状態の画像を図１０（ａ）のφ方向、およびθ方向の画素の並びと揃えるために、１８０°Ｒｏｌｌ回転させる処理をおこなってもよい。
【００９３】
また、前処理は、図１０（ａ）、および図１０（ｂ）の状態の画像が有する歪曲収差を補正するために補正処理を行ってもよい。さらに前処理は、画質を向上させるための処理、例えばシェーディング補正、ガンマ補正、ホワイトバランス、手振れ補正、オプティカル・ブラック補正処理、欠陥画素補正処理、エッジ強調処理、またはリニア補正処理などを行ってもよい。
【００９４】
なお、合成処理は、例えば半球画像の撮影範囲と、他方の半球画像の撮影範囲と、が重複する場合、高精度に合成処理をするために、重複する範囲を利用して補正を行ってもよい。
【００９５】
全天球画像を生成するための処理によって、半球画像から全天球画像を生成することができる。
【００９６】
＜画像処理装置による処理＞
図１１は、本発明の一実施形態に係る画像処理装置による処理の一例を説明するフローチャートである。図１１の画像処理装置による処理は、図８のステップＳ０８０３の処理に相当する。
【００９７】
ステップＳ１１０１では、画像処理部１０Ｆ２は、全天球画像を入力するための処理を行う。入力される全天球画像は、図８のステップＳ０８０２で出力された全天球画像である。全天球画像は、図４（ｃ）で示す画像である。以下、全天球画像が図４（ｃ）で示す画像の場合を例に説明する。
【００９８】
ステップＳ１１０２では、画像処理部１０Ｆ２は、後述する投影方位指定データを入力するための処理を行う。
【００９９】
図１２は、本発明の一実施形態に係る全天球画像を３次元座標系で示した一例を説明する図である。
【０１００】
全天球画像は、図３で説明したように全方位を撮影した画像であるため、３次元空間において全天球画像の３次元表現の球として示せる。ここで、全天球画像の３次元表現の球が形成する径をｒとし、ｒ＝１とする。全天球画像の３次元表現の球は、後述する投影面が内接する内接球（以下、内接球という。）である。全天球画像の３次元表現の座標系は、原点を撮影した場所、すなわちユーザの位置、および撮影装置１の位置とする。
【０１０１】
投影方位指定データは、出力画像の中心となる画素の座標を示すデータである。
【０１０２】
図１３は、本発明の一実施形態に係る投影方位指定データの一例を説明する図である。
【０１０３】
投影方位指定データは、中心座標４を示すためのデータである。投影方位指定データは、例えば全天球画像と同様の（θ、φ）座標系で示される。
【０１０４】
出力範囲は、出力画像の範囲を示すデータである。出力範囲５は、中心座標４に基づいて決定する。例えば、出力範囲５のθ方向の長さ、およびφ方向の長さは、中心座標４を中心とし、予め設定される画素数で決定する。
【０１０５】
投影方位指定データは、例えば全天球画像を画像処理装置２の出力装置２Ｈ３で表示し、画像処理装置２の入力装置２Ｈ４によって投影方位指定データの座標をユーザが入力することで生成される。
【０１０６】
ステップＳ１１０３では、画像処理部１０Ｆ２は、投影方位指定データに基づいて投影面を計算する処理を行う。
【０１０７】
図１４は、本発明の一実施形態に係る投影面を計算する処理の一例を説明する図である。
【０１０８】
ここで、出力画像６は、１辺の画素数がＬの場合を例にして説明する。
【０１０９】
出力画像６は、図１２で示した座標系において１辺の長さが２ＳＲの投影面７と示せる。出力画像６の上の任意の画素Ｐの座標を（Ｘｐ、Ｙｐ）とした場合、投影面７の上のＰに対応する座標Ｐ１（Ｘｐ１、Ｙｐ１）は下記の（式１）のように示せる。
【０１１０】
【数１】
2019021355.tif 000003
投影面７が図１４（ａ）で示すように半径ｒ＝１の球面に接する場合、Ｐ１の３次元座標系の座標は、（Ｘｐ１、Ｙｐ１、−１）となる。投影面７は、内接球３に内接する。
【０１１１】
投影面７をＸ軸、およびＺ軸まわりに回転させることで、半径ｒ＝１の球面に接した状態において投影面７は任意の位置に設定することができる。
【０１１２】
投影面７を図１４（ｂ）で示すようにＸ軸まわりにφ、およびＺ軸まわりにθ回転させる場合、Ｘ軸まわりの回転による座標の変換は、下記の（式２）、およびＺ軸まわりの回転による座標の変換は、下記の（式３）で示す回転行列によって計算できる。ここで、（式２）、および（式３）において（ｘ、ｙ、ｚ）は回転前の座標、（Ｘ、Ｙ、Ｚ）は回転後の座標とする。
【０１１３】
【数２】
2019021355.tif 000004
【０１１４】
【数３】
2019021355.tif 000005
（式２）、および（式３）からＸ軸まわりにφ、およびＺ軸まわりにθ回転させる場合、回転させた投影面８の座標は、下記の（式４）のように回転行列Ｒによって計算することができる。ここで、（式４）において、回転させた投影面８の座標は、（Ｘｄ、Ｙｄ、Ｚｄ）、および回転前の座標を（ｘｄ、ｙｄ、ｚｄ）とする。回転させた投影面８は、内接球３に内接する。
【０１１５】
【数４】
2019021355.tif 000006
画像処理部１０Ｆ２は、投影面７を（式４）に基づいて回転させて、回転させた投影面８とし、投影方位指定データで示された位置になるように計算できる。
【０１１６】
なお、回転の計算は、（式４）による計算に限られない。例えばロドリゲス（Ｒｏｄｒｉｇｕｅ）の回転公式、またはオイラー（Ｅｕｌｅｒ）角を用いる計算方法でもよい。
【０１１７】
ステップＳ１１０４では、画像処理部１０Ｆ２は、投影面上の３次元座標を全天球画像上の極座標系へ変換する処理を行う。
【０１１８】
図１５は、本発明の一実施形態に係る投影面上の３次元座標を全天球画像上の極座標へ変換する処理の一例を説明する図である。
【０１１９】
ステップＳ１１０３で計算した回転させた投影面８上の座標は、（式４）、および図１４で示したように（Ｘｄ、Ｙｄ、Ｚｄ）の３次元座標系である。回転させた投影面８上の座標が３次元座標系であるのに対して、全天球画像上の座標は、図１０で示した極座標系（θ、φ）である。図１５で示すように、ステップＳ１１０４では、画像処理部１０Ｆ２は、回転させた投影面８上の座標（Ｘｄ、Ｙｄ、Ｚｄ）の対応する全天球画像上の極座標（θ、φ）を下記（式５）によって計算する。
【０１２０】
【数５】
2019021355.tif 000007
ステップＳ１１０５では、画像処理部１０Ｆ２は、全天球画像上の極座標に対応する全天球画像上の座標値を計算する処理を行う。画像処理部１０Ｆ２は、ステップＳ１１０４で計算した全天球画像上の極座標（θ、φ）に対応する全天球画像上の座標Ｑ（Ｘｑ、Ｙｑ）を下記（式６）によって計算する。
【０１２１】
【数６】
2019021355.tif 000008
ここで、（式６）において、ＱＷは、全天球画像のθ方向の長さ、ＱＨは、全天球画像のφ方向の長さ、πは円周率である。なお、角度の単位はラジアン（ｒａｄ）である。
【０１２２】
ステップＳ１１０６では、画像処理部１０Ｆ２は、出力画像の画素を生成する処理を行う。
【０１２３】
図１６は、本発明の一実施形態に係る出力画像の画素を生成する処理の一例を説明する図である。
【０１２４】
図１６（ａ）は、ステップＳ１１０５で計算された座標Ｑ（Ｘｑ、Ｙｑ）を全天球画像上で示した場合の例である。
【０１２５】
図１６（ｂ）は、図１６（ａ）の座標Ｑ（Ｘｑ、Ｙｑ）周辺を拡大した図である。
【０１２６】
出力画像の画素を生成する処理は、例えば座標Ｑ（Ｘｑ、Ｙｑ）と、座標Ｑ（Ｘｑ、Ｙｑ）の示す座標の周辺画素と、に基づいて座標Ｑに相当する画素の画素値を計算する処理である。出力画像の画素を生成する処理は、例えば座標Ｑ（Ｘｑ、Ｙｑ）の示す座標の周辺４画素から補間する、いわゆるバイリニア法による補間（Ｂｉ−ｌｉｎｅａｒ  ｉｎｔｅｒｐｏｌａｔｉｏｎ）などである。
【０１２７】
バイリニア法による補間は、例えば座標Ｑ（Ｘｑ、Ｙｑ）の小数点以下の数値と、座標Ｑ（Ｘｑ、Ｙｑ）の示す座標の周辺４画素の輝度値と、に基づいて計算する。
【０１２８】
計算は、座標Ｑ（Ｘｑ、Ｙｑ）に対応する画素の画素値をＤｉｊとし、周辺４画素Ｐ００、Ｐ１０、Ｐ０１、およびＰ１１として説明する。周辺４画素Ｐ００、Ｐ１０、Ｐ０１、およびＰ１１の輝度値は、Ｄ００、Ｄ１０、Ｄ０１、およびＤ１１として説明する。
【０１２９】
図１６（ｃ）は、バイリニア法による補間の例を説明した図である。
【０１３０】
Ｄｉｊは、例えば下記（式７）によって計算する。
【０１３１】
【数７】
2019021355.tif 000009
ここで、α、およびβは、座標Ｑ（Ｘｑ、Ｙｑ）の小数点以下の数値である。
【０１３２】
出力画像の画素を生成する処理は、周辺４画素の輝度値に基づいて計算することで、自然な復元を行い、高画質な画像を生成することができる。
【０１３３】
なお、出力画像の画素を生成する処理は、（式７）のバイリニア法による補間に限られない。例えば、処理を簡易にするためにニアレストネイバー（Ｎｅａｒｅｓｔ  ｎｅｉｇｈｂｏｒ）法による補間、または高画質にするためにバイキュービック法による補間（Ｂｉ−ｃｕｂｉｃ  ｃｏｎｖｏｌｕｔｉｏｎ）の処理でもよい。
【０１３４】
ステップＳ１１０４乃至ステップＳ１１０６の処理は、出力画像の全画素について繰り返して処理を行い、図１６（ｄ）のように出力画像の画素を生成する。
【０１３５】
ステップＳ１１０７では、画像修正部１０Ｆ２２は、マスクデータ生成処理を行う。
【０１３６】
マスクデータ生成処理は、出力画像において画像修正処理の対象とする修正箇所をユーザの指定により定め、修正箇所の画素を特定するためのデータを生成する。
【０１３７】
図１７は、本発明の一実施形態に係るマスクデータ生成処理の一例を説明する図である。
【０１３８】
マスクデータ生成処理は、例えば、出力画像６を図７の表示部１０Ｆ２３によってユーザへ出力し、出力された出力画像６をユーザに見せ、ユーザに修正が必要と判断する箇所の指定をさせる。
【０１３９】
以下、図１７のように、出力画像６に第１の被写体６１と、第２の被写体６２が映っている場合で、ユーザは、第１の被写体６１の箇所が修正の必要があると判断する場合を例に説明する。
【０１４０】
図１７（ａ）は、指定を行う前の出力画像の一例である。ユーザは、図１７（ａ）の出力画像６を見て第１の被写体６１が修正の必要があると判断できる。
【０１４１】
指定は、例えばユーザが図７の入力部１０Ｆ２１によって行う。指定は、例えばユーザによって図１７（ｂ）に示すように第１の被写体６１の箇所となる画素を入力する処理である。なお、指定は、例えばユーザによって図１７（ｃ）に示すように第１の被写体６１の箇所となる画素を含む範囲を入力する処理である。また、指定は、例えばユーザによって図１７（ａ）において第１の被写体６１が有する画素いずれかを特定する入力を行わせる。ユーザの入力によって、入力された画素と同一または類似の輝度値など同じ特徴を持つと判定できる近接した画素を画像処理装置２は算出し、算出した複数の画素を指定する箇所としてもよい。
【０１４２】
マスクデータは、指定された箇所の座標を示すデータである。
【０１４３】
なお、画像処理装置２は、マスクデータで示された座標を所定の色で塗りつぶした出力画像を生成し、ユーザへ出力する処理を行ってもよい。
【０１４４】
ステップＳ１１０８では、画像修正部１０Ｆ２２は、類似度に基づく処理を行う。
【０１４５】
＜類似度に基づく処理＞
図１８は、本発明の一実施形態に係る類似度に基づく処理の一例を説明するフローチャートである。
【０１４６】
図１９は、本発明の一実施形態に係る類似度に基づく処理の一例を説明する図である。
【０１４７】
図１８、および図１９で説明する処理は、図１１のステップＳ１１０８の処理に相当する。
【０１４８】
図１８は、例えば出力画像の画素数が横２０４８画素、および縦１０２４画素となる場合を例に画像のサイズを説明する。
【０１４９】
１／１画像は、横２０４８画素、および縦１０２４画素の画像である。
【０１５０】
１／２画像は、出力画像の横、および縦の画素数をそれぞれ１／２倍した横１０２４画素、および縦５１２画素の画像である。
【０１５１】
１／４画像は、出力画像の横、および縦の画素数をそれぞれ１／４倍した横５１２画素、および縦２５６画素の画像である。
【０１５２】
１／８画像は、出力画像の横、および縦の画素数をそれぞれ１／８倍した横２５６画素、および縦１２８画素の画像である。
【０１５３】
なお、画像は、画素数が横２０４８画素、および縦１０２４画素である場合に限られない。例えば出力画像のサイズは、横１０２４画素、および縦５１２画素であってもよい。
【０１５４】
また、サイズの倍率は、１／８画像、１／４画像、１／２画像、および１／１画像に限られない。例えば１／１６画像などを用いてもよい。
【０１５５】
さらに、画像サイズの種類は、４種類に限られない。サイズの倍率を追加、または削除してもよい。
【０１５６】
ステップＳ１８０１では、画像修正部１０Ｆ２２は、図１１のステップＳ１１０７で生成したマスクデータ、および図１１のステップＳ１１０６で生成された出力画像を取得する。
【０１５７】
ステップＳ１８０２では、画像修正部１０Ｆ２２は、画像のサイズを選択する処理を行う。画像のサイズを選択する処理は、例えばサイズカウンタに応じて行われる。具体的には、画像修正部１０Ｆ２２は、サイズカウンタ＝０の場合、１／８画像を選択し、サイズカウンタ＝１の場合、１／４画像を選択する。同様に、画像修正部１０Ｆ２２は、サイズカウンタ＝２の場合、１／２画像を選択し、サイズカウンタ＝３の場合、１／１画像を選択するなどである。なお、画像のサイズの選択順序は、上述の場合に限られない。例えば１／１画像から行ってもよい。
【０１５８】
画像修正部１０Ｆ２２は、ステップＳ１８０２以降の処理を画像サイズの種類数繰り返す。図１８では、画像サイズの種類数よる繰り返しの始端をＬＳ１、終端をＬＥ１で示す。例えば画像サイズの種類が１／８画像、１／４画像、１／２画像、および１／１画像の４種類の場合、画像サイズの種類数は、４となる。ＬＳ１乃至ＬＥ１で繰り返しされる処理は、サイズカウンタが例えば０乃至３の値の場合である。
【０１５９】
ステップＳ１８０３では、画像修正部１０Ｆ２２は、初期化処理を行う。初期化処理は、例えばマスクデータに初期値データを生成する処理を行う。
【０１６０】
以下、ユーザによって指定範囲９１が図１９（ａ）で示すのように入力された場合を例に説明する。
【０１６１】
マスクデータ９は、指定範囲９１によって出力画像６の修正する箇所を指定するためのデータである。マスクデータ９は、出力画像と同じ画素数のデータである。
【０１６２】
初期値設定は、マスクデータ９に基づいて指定範囲９１の対象でない画素（以下、非マスク画素という。）と、指定範囲９１の対象となる画素（以下、マスク画素という。）と、で異なる値を設定したデータを生成する。図１９では、非マスク画素を白マス、およびマスク画素を色付きのマスで示す。
【０１６３】
図１９（ａ）は、画像修正部１０Ｆ２２は、マスクデータ９の非マスク画素に例えば「＋１００００」（図示せず）、およびマスク画素に「−１００００」（図示せず）の初期値データを生成した場合である。なお、初期値は、「＋１００００」、および「−１００００」に限られない。初期値は、マスク画素と、非マスク画素と、が区別できる数値であればよい。
【０１６４】
ステップＳ１８０４では、画像修正部１０Ｆ２２は、画像の回転処理を行う。画像の回転処理は、例えば画像の向きカウンタに応じて行われる。具体的には、画像の向きカウンタ＝０の場合、画像修正部１０Ｆ２２は、画像を入力された向きと同一の向きとする。画像の向きカウンタ＝１の場合、画像修正部１０Ｆ２２は、入力された向きの画像から画像の垂直軸を中心に回転させた左右反転の画像にする。画像の向きカウンタ＝２の場合、画像修正部１０Ｆ２２は、入力された向きの画像から画像の水平軸を中心に回転させた上下反転の画像にする。画像の向きカウンタ＝３の場合、画像修正部１０Ｆ２２は、入力された向きの画像から画像の対角線を中心に回転させた対角反転の画像にする。
【０１６５】
回転処理によって画像の向きを変更することで、放射状に広がる画像など直線、または曲線によって構成された抽象的模様、いわゆる幾何学的模様が含まれた画像の場合でも適切な類似度の算出ができる。なお、向きの種類、種類数、および順序は、上述の場合に限られない。例えば順序は、左右反転の画像から行ってもよい。
【０１６６】
ステップＳ１８０４以降の処理は、後述する類似度総和値が収束したか否かの判断（ステップＳ１８１０）によって繰り返し行われる。繰り返しの始端をＬＳ２、終端をＬＥ２で示す。
【０１６７】
ステップＳ１８０５では、画像修正部１０Ｆ２２は、マスク画素の距離値を計算する処理を行う。
【０１６８】
マスク画素の距離値を計算する処理は、各マスク画素が非マスク画素から何画素離れた画素であるかを計算する処理である。
【０１６９】
マスク画素の距離値を計算する処理は、例えば画像の左上画素から開始し、右下画素まで行われるいわゆるラスタスキャン（Ｒａｓｔｅｒ  Ｓｃａｎ）方式で行う。
【０１７０】
ステップＳ１８０５では、画像修正部１０Ｆ２２は、ラスタスキャンによってマスク画素を見つける処理を行う。マスク画素には、初期値設定によって「−１００００」が入力されているので、画像修正部１０Ｆ２２は、入力されている値でマスク画素か否かの判断を行う。
【０１７１】
図１９（ｂ）、および図１９（ｃ）は、画像修正部１０Ｆ２２は、マスク画素の距離値を計算する処理の一例である。
【０１７２】
ステップＳ１８０５では、画像修正部１０Ｆ２２は、マスクデータ９を左上から右下へラスタスキャンし、マスク画素の距離値を計算する処理によって第一のマスク画素計算データ９２を生成する。第一のマスク画素計算データ９２に入力される値の絶対値は、マスク画素の領域と、非マスク画素の領域と、の境界線からの距離を示す。
【０１７３】
第一のマスク画素計算データ９２を生成する処理は、例えば図１９（ｂ）のように示せる。第一のマスク画素計算データ９２を生成する処理は、対象となるマスク画素の上、または左に隣接する画素が非マスク画素の場合、対象となるマスク画素の値を「−１」とする処理である。第一のマスク画素計算データ９２を生成する処理は、対象となるマスク画素の上、または左に隣接する画素がいずれも非マスク画素でない場合、マスク画素の上に隣接する画素、または左に隣接する画素の大きい値をさらに−１した値とする処理である。第一のマスク画素計算データ９２を生成する処理は、画像の外周にある画素については、値を初期値のままとする。
【０１７４】
次に、画像修正部１０Ｆ２２は、第一のマスク画素計算データ９２を右下から右上へラスタスキャンし、マスク画素の類似度を計算する処理によって第二のマスク画素計算データ９３を生成する。
【０１７５】
第二のマスク画素計算データ９３を生成する処理は、例えば図１９（ｃ）のように示せる。第二のマスク画素計算データ９３を生成する処理は、対象となるマスク画素の下、または右に隣接する画素が非マスク画素の場合、対象となるマスク画素の値を「−１」とする処理である。第二のマスク画素計算データ９３を生成する処理は、対象となるマスク画素の下、または右に隣接する画素がいずれも非マスク画素でない場合、マスク画素の下に隣接する画素、または右に隣接する画素の大きい値をさらに−１した値とする処理である。第二のマスク画素計算データ９３を生成する処理は、画像の外周にある画素については、値を初期値のままとする。
【０１７６】
ステップＳ１８０６では、画像修正部１０Ｆ２２は、非マスク画素の距離値を計算する処理を行う。
【０１７７】
ステップＳ１８０６では、画像修正部１０Ｆ２２は、マスクデータ９を右上から左下へラスタスキャンし、非マスク画素の距離値を計算する処理によって第三のマスク画素計算データ９４を生成する。第三のマスク画素計算データ９４を生成する処理は、変数ステップカウントを１乃至１０までインクリメントしながら以下の操作をループする。非マスク画素には、初期値設定によって「＋１００００」が入力されているので、画像修正部１０Ｆ２２は、入力されている値で非マスク画素か否かの判断を行う。
【０１７８】
第三のマスク画素計算データ９４を生成する処理は、対象となる非マスク画素の周辺８画素に値が１乃至１０である画素がある場合、対象となる非マスク画素の値を変数ステップカウントの値とする処理である。第三のマスク画素計算データ９４を生成する処理は、対象となる非マスク画素の周辺８画素に値が１乃至１０である画素がない場合、対象となる非マスク画素の値を「＋１」とする処理である。
【０１７９】
図１９（ｄ）は、変数ステップカウントが「１」であった場合の非マスク画素の距離値を計算する処理を行ったマスクデータである。
【０１８０】
図１９（ｅ）は、変数ステップカウントが「２」であった場合の非マスク画素の距離値を計算する処理を行ったマスクデータである。
【０１８１】
図１９（ｆ）は、変数ステップカウントが「３」であった場合の非マスク画素の距離値を計算する処理を行ったマスクデータである。
【０１８２】
次に、画像修正部１０Ｆ２２は、変数ステップカウントが「１０」となるまで処理した後、「＋１００００」の値となっているマスク画素の処理を行う。画像修正部１０Ｆ２２は、「＋１００００」の値となっているマスク画素の値を「＋１００」とする処理を行う。図１９（ｇ）は、「＋１００００」の値となっているマスク画素を処理した場合の一例である。
【０１８３】
ステップＳ１８０７では、画像修正部１０Ｆ２２は、画像の外周にある画素の処理を行う。図１９（ｈ）は、画像の外周にある画素について処理を行った場合の一例である。画像修正部１０Ｆ２２は、画像の外周にある画素の値を「＋１００００」とする処理を行う。画像の外周にある画素について処理は、マスク画素、および非マスク画素であるか否かを関係なく行う。後述する距離値、および輝度値の計算処理では、画像の外周にある画素は、周辺に画素が存在しないため計算に用いることができないので無効フラグの値として入力する。
【０１８４】
マスク画素を修正するために参考にする非マスク画素は、近くにある画素を用いることで画質の向上を図ることができる場合が多い。画像修正部１０Ｆ２２は、ステップＳ１８０７までの処理によって、マスク画素に対して各非マスク画素に対する距離に基づいた値を入力したマスクデータを生成する処理を行っている。
【０１８５】
ステップＳ１８０８では、画像修正部１０Ｆ２２は、マスク画素、およびマスク画素の周辺に存在する非マスク画素について類似点を算出する処理を行う。
【０１８６】
類似点は、例えば任意の画素（以下、第一の画素という。）に対して類似度の値が最小となる第１の画素以外の画素（以下、第二の画素という。）である。
【０１８７】
類似度は、第一の画素と、第二の画素と、の輝度値、および距離値に基づいて計算される。類似度は、値が小さいほど第一の画素と、第二の画素と、判断する。第一の画素、および第二の画素の輝度値は、例えば周辺４画素以内の画素、すなわち計算対象となる画素を中心に９×９の画素の輝度値を平均した値などである。なお、輝度値の計算は、９×９の画素の輝度値を平均した値に限られない。９×９は、計算時間などを考慮して変更してもよい。
【０１８８】
また、類似度は、ＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）法、またはＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）法などによって求めた値に距離による重み付けを行って求められてもよい。
【０１８９】
ステップＳ１８０９では、画像修正部１０Ｆ２２は、ステップＳ１８０８で計算されている類似度を全画素分加算し、各画像の総和（以下、総和値という。）を算出する。総和値は、記憶部１０Ｆ２４に各画像について記憶される。以下、ステップＳ１８０９で算出された総和値を現在の総和値、記憶部１０Ｆ２４に記憶されている現在の総和値を算出した画像とは別の画像で算出された総和値を前回、または前回以前の総和値という。
【０１９０】
ステップＳ１８１０では、画像修正部１０Ｆ２２は、ステップＳ１８１０で算出された総和値、および記憶部１０Ｆ２４に記憶されている前回以前の総和値に基づいて収束の判断を行う。
【０１９１】
収束は、例えば下記（式８）と、下記（式９）と、両方の条件を満たした場合である。収束したと判断する場合（ステップＳ１８１０でＹＥＳ）、各画像サイズでの処理（ＬＳ１乃至ＬＥ１での処理）を終了する。収束していない場合と判断する場合（ステップＳ１８１０でＮＯ）、ループの始端ＬＳ２に戻り、ステップＳ１８０４乃至ステップＳ１８１９の処理を行う。ここで、閾値は予めユーザによって設定される任意の値である。直近５回の総和値は、現在の総和値、前回の総和値、前回の一回前の総和値、前回の二回前の総和値、および前回の三回前の総和値である。前回から前５回の総和値は、前回の総和値、前回の一回前の総和値、前回の二回前の総和値、前回の三回前の総和値、および前回の四回前の総和値である。
【０１９２】
【数８】
2019021355.tif 000010
【０１９３】
【数９】
2019021355.tif 000011
（式８）で示した通り、総和値を算出する処理は少なくとも５回以上、すなわちステップＳ１８０４乃至ステップＳ１８１０の処理は５種類以上の画像を選択して行われるが望ましい。少なくとも５回以上の処理を行うことで、総和値の変動が少なくできるためである。
【０１９４】
ステップＳ１８１１では、画像修正部１０Ｆ２２は、類似点に基づいてマスク画素の輝度値を算出する処理を行う。画像修正部１０Ｆ２２は、ステップＳ１８０８で計算される類似点に対応する輝度値を計算する。例えば類似点に対応する輝度値の計算は、類似点の周辺画素の輝度値を平均化して計算した値、またはバイリニア法で計算した値などである。
【０１９５】
＜全天球画像へ反映する処理＞
ステップＳ１１０９では、画像修正部１０Ｆ２２は、全天球画像へ反映する処理を行う。
【０１９６】
図２０は、本発明の一実施形態に係る全天球画像へ反映する処理の一例を説明するフローチャートである。
【０１９７】
図２１は、本発明の一実施形態に係る全天球画像へ反映する処理の一例を説明する図である。
【０１９８】
全天球画像へ反映する処理は、図１８で説明した類似度に基づく処理で修正されたマスク画素への処理を全天球画像においてマスク画素に対応する画素へ同様の修正を反映させるための処理である。
【０１９９】
ステップＳ２００１乃至ステップＳ２００９の処理は、全天球画像の有する全画素について行う。ステップＳ２００１乃至ステップＳ２００９の処理は、例えば全天球画像の左上画素から開始し、右下画素まで行われるいわゆるラスタスキャン方式で行う。図２０で示すように、ステップＳ２００１乃至ステップＳ２００９の処理は、反映処理カウンタでループする。
【０２００】
ステップＳ２００１では、画像修正部１０Ｆ２２は、全天球画像上において任意の座標である座標Ｑ（Ｘｑ、Ｙｑ）に対応する全天球画像上の極座標（θ１、φ１）へ変換する処理を行う。全天球画像上の極座標（θ１、φ１）は、例えば下記（式１０）によって変換する処理を行う。
【０２０１】
【数１０】
2019021355.tif 000012
ここで、（式１０）において、ＱＷは、全天球画像のθ方向の長さ、ＱＨは、全天球画像のφ方向の長さ、πは円周率である。なお、角度の単位はラジアン（ｒａｄ）である。
【０２０２】
ステップＳ２００２では、画像修正部１０Ｆ２２は、全天球画像上の極座標（θ１、φ１）と、投影面と、の距離ｄを計算する処理を行う。具体的には、画像修正部１０Ｆ２２は、ステップＳ２００１の処理によって算出された極座標（θ１、φ１）と、図１１のステップＳ１１０２で入力された投影方位指定データによって示された投影面の中心座標４の座標値（θｃ、φｃ）と、の距離ｄを計算する。
【０２０３】
図２１（ａ）は、距離ｄの一例を説明する図である。
【０２０４】
距離ｄは、図２１（ａ）で示すように、全天球画像上の極座標（θ１、φ１）と、投影面の中心座標４の座標値（θｃ、φｃ）と、の半径ｒ＝１上の距離である。
【０２０５】
ステップＳ２００３では、画像修正部１０Ｆ２２は、ステップＳ２００２で計算した距離ｄに基づいて、全天球画像上の極座標（θ１、φ１）が投影されている範囲か否か、すなわち投影面上の範囲か否かを判断する。具体的には、画像修正部１０Ｆ２２は、下記（式１１）によって投影面上の範囲か否かを判断する。
【０２０６】
【数１１】
2019021355.tif 000013
ここで２ＳＲは、投影面の一辺の長さである。後述するステップＳ２００５では、画像修正部１０Ｆ２２は、３次元座標（Ｘｄ、Ｙｄ、Ｚｄ）に対応する初期位置の投影面上における座標（Ｘｐ１、Ｙｐ１、−１）を計算する処理を行う。計算の際、計算式は、三角関数を用いる。三角関数は、１８０°周期で取る値が繰り返される関数である。
【０２０７】
三角関数の性質によって、後述するステップＳ２００５において、図２１（ｂ）で示すように、投影面７の原点に対して対称の位置にある対称投影面７１上の極座標（θ２、φ２）は、投影面７上の範囲である条件を満たす。すなわち、回転させた投影面８の原点に対して対称の位置にある回転させた投影面の対称投影面８１は、図２１（ｃ）のように示せる。回転させた投影面の対称投影面８１には、極座標（θ２、φ２）がある。
【０２０８】
極座標（θ２、φ２）の座標が反映されると不要な画素が反映されるため、画質が低下する。したがって、距離ｄは、図２１（ａ）で示したように半径ｒ＝１の球面に沿った距離で計算する。半径ｒ＝１の球面に沿った距離で計算することによって、距離ｄは、回転させた投影面の対称投影面８１上の極座標（θ２、φ２）を除外するように計算される。
【０２０９】
図２１（ｄ）は、図２１（ｂ）の正面図の一例である。距離ｄは、内角Ａｎｇと、半径ｒと、の積で計算できる。半径ｒ＝１であるため、距離ｄは、内角Ａｎｇと等しい値となる。投影面７上に極座標（θ１、φ１）がある場合では、図２１（ｄ）の場合が最大の値となる。したがって、距離ｄは、上記（式１１）の式によって投影面上の範囲か否かを判断される。
【０２１０】
（式１１）を満たしている場合（ステップＳ２００３でＹＥＳ）、画像修正部１０Ｆ２２は、ステップＳ２００４に進む。（式１１）を満たしていない場合（ステップＳ２００３でＮＯ）、座標Ｑ（Ｘｑ、Ｙｑ）は、投影面上の座標ではない、すなわち出力範囲に指定された範囲内の座標ではないため、修正は必要ないと判断できる。（式１１）を満たしていない場合、画像修正部１０Ｆ２２は、次の座標Ｑ（Ｘｑ、Ｙｑ）についての計算へ進む。
【０２１１】
ステップＳ２００４では、画像修正部１０Ｆ２２は、全天球画像上の極座標（θ１、φ１）に対応する投影面上の３次元座標（Ｘｄ、Ｙｄ、Ｚｄ）を計算する処理を行う。具体的には、ステップＳ２００４では、画像修正部１０Ｆ２２は、下記（式１２）によって極座標の座標値である（θ１、φ１）から直交座標系の３次元座標値（Ｘｄ、Ｙｄ、Ｚｄ）に変換する計算を行う。
【０２１２】
【数１２】
2019021355.tif 000014
ステップＳ２００５では、画像修正部１０Ｆ２２は、３次元座標（Ｘｄ、Ｙｄ、Ｚｄ）に対応する初期位置の投影面上における座標（Ｘｐ１、Ｙｐ１、−１）を計算する処理を行う。初期位置の投影面は、図１４（ａ）の投影面７である。３次元座標（Ｘｄ、Ｙｄ、Ｚｄ）から初期位置の投影面上における座標（Ｘｐ１、Ｙｐ１、−１）を計算する処理は、例えば上記（式４）の回転行列Ｒの逆行列Ｒ-1を用いて計算できる。図１１のステップＳ１１０３、および図１４（ｂ）では、画像修正部１０Ｆ２２は、初期位置の投影面上における座標（Ｘｐ１、Ｙｐ１、−１）から３次元座標（Ｘｄ、Ｙｄ、Ｚｄ）を上記（式４）の回転行列Ｒによって計算している。したがって、逆変換となる３次元座標（Ｘｄ、Ｙｄ、Ｚｄ）から初期位置の投影面上における座標（Ｘｐ１、Ｙｐ１、−１）を計算する処理は、逆行列Ｒ-1を用いて計算する。
【０２１３】
なお、３次元座標（Ｘｄ、Ｙｄ、Ｚｄ）から初期位置の投影面上における座標（Ｘｐ１、Ｙｐ１、−１）を計算する処理は、逆行列Ｒ-1を用いた計算に限られない。例えば、計算は、回転行列Ｒを用いて、入力する角度が符号プラスマイナス反転した角度を入力して実現してもよい。
【０２１４】
ステップＳ２００６では、画像修正部１０Ｆ２２は、ステップＳ２００５で計算したＸｐ１、およびＹｐ１の値によって、座標（Ｘｐ１、Ｙｐ１、−１）が投影面７上に位置するか否かの判断を行う。具体的には、画像修正部１０Ｆ２２は、下記（式１３−１）および下記（式１３−２）の両式を満たしているか否かで判断する。
【０２１５】
【数１３】
2019021355.tif 000015
（式１３−１）および（式１３−２）の両式を満たしている場合（ステップＳ２００６でＹＥＳ）、画像修正部１０Ｆ２２は、ステップＳ２００７に進む。（式１３−１）および（式１３−２）の両式においていずれか一方でも満たしていない場合（ステップＳ２００６でＮＯ）、座標（Ｘｐ１、Ｙｐ１、−１）は、投影面上の座標ではない。すなわち、座標（Ｘｐ１、Ｙｐ１、−１）は、出力範囲に指定された範囲内の座標ではないため、修正は必要ないと判断できる。（式１３−１）および（式１３−２）の両式においていずれか一方でも満たしていない場合、画像修正部１０Ｆ２２は、次の座標Ｑ（Ｘｑ、Ｙｑ）についての計算へ進む。
【０２１６】
ステップＳ２００７では、画像修正部１０Ｆ２２は、座標（Ｘｐ１、Ｙｐ１、−１）に対応する一辺の長さがＬの平面上の座標系（Ｘｐ、Ｙｐ）を計算する処理を行う。
【０２１７】
画像修正部１０Ｆ２２は、１辺の長さが２ＳＲの投影面７上の座標（Ｘｐ１、Ｙｐ１、−１）を１辺の長さがＬの画像上の座標系に対応する座標（Ｘｐ、Ｙｐ）を計算する。具体的には、画像修正部１０Ｆ２２は、下記（式１４）によって座標（Ｘｐ、Ｙｐ）を計算する。
【０２１８】
【数１４】
2019021355.tif 000016
ステップＳ２００８では、画像修正部１０Ｆ２２は、ステップＳ２００７で計算した座標（Ｘｐ、Ｙｐ）がマスクする領域か否かを判断する。
【０２１９】
図１９（ｅ）は、マスクする領域か否かを判断する一例を示した図である。画像修正部１０Ｆ２２は、図１９（ｅ）に示すマスク領域を示す画像データ９５を生成する。画像データ９５は、図１９（ｅ）に示すように、出力画像６にマスクデータ９を反映させた画像データである。ステップＳ２００８では、画像修正部１０Ｆ２２は、図１９（ｅ）に示すようにステップＳ２００７で計算した座標（Ｘｐ、Ｙｐ）がマスク領域を示す画像データ９５のマスク領域か否かで判断する。
【０２２０】
座標（Ｘｐ、Ｙｐ）がマスク領域であると判断した場合（ステップＳ２００８でＹＥＳ）、画像修正部１０Ｆ２２は、ステップＳ２００９に進む。座標（Ｘｐ、Ｙｐ）がマスク領域でないと判断した場合（ステップＳ２００８でＮＯ）、座標（Ｘｐ、Ｙｐ）は、ユーザに修正する箇所と指定された座標ではないため、修正は必要ないと判断できる。座標（Ｘｐ、Ｙｐ）がマスク領域でないと判断した場合、画像修正部１０Ｆ２２は、次の座標Ｑ（Ｘｑ、Ｙｑ）についての計算へ進む。
【０２２１】
ステップＳ２００８では、画像修正部１０Ｆ２２は、全天球画像の画素を修正する処理を行う。画像修正部１０Ｆ２２は、全天球画像の画素を図１８で説明した類似度に基づく処理で修正されたマスク画素の輝度値に基づいて修正する。修正は、例えば図１１のステップＳ１１０６および図１６で説明したバイリニア法を用いて画素の値を生成する。
【０２２２】
なお、出力画像は、画像修正処理が行われた画像に限られない。例えば、出力画像は、画像の一部が画像修正処理された画像などを出力画像とし、各処理の過程となる画像をユーザへ表示させるための処理を行ってもよい。
【０２２３】
ステップＳ１１１０では、画像修正部１０Ｆ２２は、出力画像を出力するための処理を行う。出力画像を出力するための処理は、例えばステップＳ１１０９で処理された全天球画像を出力画像として出力する処理、またはステップＳ１１０８で処理された出力画像を出力する処理である。
【０２２４】
また、出力画像は、例えばマスク画素について非マスク画素と境界になる数画素を修正する処理でもよい。例えば、マスク画素のうち、非マスク画素と二画素のマスク画素を修正し、他のマスク画素は画像処理装置２に入力されたデータを用いるとしてもよい。各フレームで二画素ずつ処理を行うことで、ユーザは修正箇所に指定した箇所が徐々に修正されていく様子を画像で見ることができる。
【０２２５】
図２２は、本発明の一実施形態に係る全天球画像の一例を説明する図である。
【０２２６】
図２２で示す例えば画像の下側に撮影されている人の手をマスク対象の被写体６３とする。
【０２２７】
図２２で示す画像を出力画像、マスク対象の被写体６３をマスクする領域として指定した場合で、図１１のステップＳ１１０９の処理が行われた全天球画像を出力する場合を例に説明する。
【０２２８】
図２３は、本発明の一実施形態に係る全天球画像へ反映する処理による効果の一例を説明する図である。
【０２２９】
図２３で示すように全天球画像へ反映する処理によって、出力画像は、マスク対象の被写体６３が削除され、かつ、マスク対象の被写体６３が撮影されていた範囲に自然な画像が出力されるように画像を修正することができる。
【０２３０】
図２４は、本発明の一実施形態に係る類似度に基づく処理を行う前の出力画像の一例を説明する図である。
【０２３１】
図２４は、図２２の全天球画像を画像処理装置２に入力し、ユーザが図１１のステップＳ１１０２で、マスク対象の被写体６３が撮影された範囲、すなわち図２２の全天球画像の画像下半分あたりを出力範囲と指定した場合で修正する前の出力画像の一例である。
【０２３２】
図２４で示すように、修正する前の出力画像は、マスク対象の被写体６３が撮影されている。
【０２３３】
図２５は、本発明の一実施形態に係る類似度に基づく処理の効果の一例を説明する図である。
【０２３４】
図２５で示すように、出力画像は、マスク対象の被写体６３が削除され、かつ、マスク対象の被写体６３が撮影されていた範囲に自然な画像が出力されるように画像を修正することができる。
【０２３５】
よって、撮影システム１０は、撮影された画像において、一部の被写体を自然な画像が出力されるように画像の修正をすることができる。
【０２３６】
＜第２実施形態＞
第２実施形態は、第１実施形態の撮影システム１０、撮影装置１、および画像処理装置２を用いる。したがって、撮影システム１０、撮影装置１、および画像処理装置２の説明は省略する。
【０２３７】
第２実施形態は、第１実施形態の図８で説明した全体処理を行う。第２実施形態は、図１１の画像処理装置による処理が第１実施形態と異なる。
【０２３８】
図２６は、本発明の一実施形態に係る第２実施形態の画像処理装置による処理の一例を説明するフローチャートである。図２６は、第１実施形態の図１１と同様の処理については同様の処理名、および符号を付しており、説明を省略する。図２６は、ステップＳ２６０１の処理と、ステップＳ２６０２の処理と、が加わっている点が第１実施形態の図１１の処理と異なる。
【０２３９】
ステップＳ２６０１の処理では、画像修正部１０Ｆ２２は、マスク領域割合判定処理を行う。
【０２４０】
図２７は、本発明の一実施形態に係る第２実施形態のマスク領域割合判定処理の一例を説明する図である。
【０２４１】
マスク領域割合判定処理は、出力範囲に指定された画素数に対してマスク画素９４が占める割合を計算し、割合が所定の値以上である場合、マスクする領域が所定の割合以上と判断する処理である。
【０２４２】
以下、出力範囲に指定された画素数が１００ｐｉｘｅｌ、および割合を５０％と所定の値とした場合を例に説明する。
【０２４３】
図２７（ａ）は、マスクする領域が所定の割合以上と判断される設定の一例である。例えばマスクデータ９で指定された範囲が７０ｐｉｘｅｌである場合、マスク画素９４が占める割合は、７０％と計算される。図２７（ａ）の場合、画像修正部１０Ｆ２２は、マスク画素９４が占める割合が所定の値５０％以上であるため、マスクする領域が所定の割合以上と判断し（ステップＳ２６０１でＹＥＳ）、ステップＳ２６０２に進む。
【０２４４】
図２７（ｂ）は、マスクする領域が所定の割合未満と判断される設定の一例である。例えばマスクデータ９で指定された範囲が１０ｐｉｘｅｌである場合、マスク画素９４が占める割合は、１０％と計算される。図２７（ｂ）の場合、画像修正部１０Ｆ２２は、マスク画素９４が占める割合が所定の値５０％未満であるため、マスクする領域が所定の割合以上ではないと判断し（ステップＳ２６０１でＮＯ）、ステップＳ１１０８に進む。
【０２４５】
なお、所定の値は、ユーザが任意に設定できる値である。
【０２４６】
ステップＳ２６０２の処理では、画像修正部１０Ｆ２２は、出力範囲を拡大する処理を行う。
【０２４７】
図２８は、本発明の一実施形態に係る第２実施形態の出力範囲を拡大する処理の一例を説明する図である。
【０２４８】
出力範囲を拡大する処理は、出力範囲を拡大し、マスク画素９４が占める割合を低下させるための処理である。
【０２４９】
出力範囲を拡大する処理は、図２８で示すように図１３の投影方位指定データで示される中心座標４に基づいて決定する出力範囲５に代えて拡大出力範囲５１を設定する処理である。例えば、出力範囲を拡大する処理は、ステップＳ２６０１の所定の値未満にマスク画素９４が占める割合となる画素数を計算し、中心座標４を中心に出力範囲５の縦、および横の範囲を変更して拡大出力範囲５１を設定する。
【０２５０】
なお、拡大出力範囲５１は上記の設定に限られない。例えば拡大出力範囲５１は、出力範囲５を左右上下の少なくともいずれか一方に広げた範囲とする設定でもよい。
【０２５１】
また、実施形態は、拡大出力範囲５１の拡大できる範囲を出力画像の歪みをおさえるために、上限を設定してもよい。
【０２５２】
マスク画素９４が占める割合を所定の割合未満にすることで、後段の類似度に基づく処理によって出力画像が高画質、かつ、類似度に基づく処理が高速に処理できる。
【０２５３】
＜第３実施形態＞
第３実施形態は、第１実施形態の撮影システム１０、撮影装置１、および画像処理装置２を用いる。したがって、撮影システム１０、撮影装置１、および画像処理装置２の説明は省略する。
【０２５４】
第３実施形態は、第１実施形態の図８で説明した全体処理を行う。第３実施形態は、図１１の画像処理装置による処理が第１実施形態と異なる。
【０２５５】
図２９は、本発明の一実施形態に係る第３実施形態の画像処理装置による処理の一例を説明するフローチャートである。図２９は、第１実施形態の図１１と同様の処理については同様の処理名、および符号を付しており、説明を省略する。図２９は、ステップＳ２９０１の処理と、ステップＳ２９０２の処理と、が加わっている点が第１実施形態の図１１の処理と異なる。
【０２５６】
ステップＳ２９０１の処理では、画像修正部１０Ｆ２２は、出力画像、および全天球画像の解像度を計算し、出力画像の解像度が全天球画像の解像度より高いか否かを判断する。
【０２５７】
出力画像の解像度が全天球画像の解像度より高いと判断された場合（ステップＳ２９０１でＹＥＳ）、画像修正部１０Ｆ２２は、ステップＳ２９０２に進む。出力画像の解像度が全天球画像の解像度より高くないと判断された場合（ステップＳ２９０１でＮＯ）、画像修正部１０Ｆ２２は、ステップＳ１１０３に進む。
【０２５８】
解像度は、画素の密度であり、例えば所定の画像を示すために用いる画素数である。
【０２５９】
ステップＳ２９０２の処理では、画像修正部１０Ｆ２２は、出力範囲を縮小する処理を行う。出力範囲を縮小する処理は、出力画像となる出力範囲で指定される画素数を減らすための処理である。なお、ステップＳ２９０２の処理は、出力範囲を縮小する処理に限られない。例えば、出力画像の所定の画素ごとにそれぞれ画素の輝度値を平均し、平均値を輝度値とする一つの画素を生成し、画素数を減らすようにしてもよい。
【０２６０】
出力画像の解像度を全天球画像の解像度以下の値にすることで、画質の低下を少なくし、処理時間を短くすることができる。
【０２６１】
＜第４実施形態＞
第４実施形態は、第１実施形態の撮影システム１０、撮影装置１、および画像処理装置２を用いる。したがって、撮影システム１０、撮影装置１、および画像処理装置２の説明は省略する。
【０２６２】
第４実施形態は、第１実施形態の図８で説明した全体処理を行う。第４実施形態は、図１１の画像処理装置による処理が第１実施形態と異なる。
【０２６３】
図３０は、本発明の一実施形態に係る第４実施形態の画像処理装置による処理の一例を説明するフローチャートである。図３０は、第１実施形態の図１１と同様の処理については同様の処理名、および符号を付しており、説明を省略する。図３０は、ステップＳ３００１の処理と、ステップＳ３００２の処理と、が加わっている点が第１実施形態の図１１の処理と異なる。
【０２６４】
ステップＳ３００１の処理では、画像修正部１０Ｆ２２は、出力画像および全天球画像の解像度を計算し、出力画像の解像度と、全天球画像の解像度と、の差が所定の値以上か否か判断する。
【０２６５】
出力画像の解像度と、全天球画像の解像度と、の差が所定の値以上か否かの判断は、出力画像の解像度と、全天球画像の解像度と、が同じ程度の画素数であるか否かの判断である。所定の値は、ユーザによって任意に設定できる値である。
【０２６６】
出力画像の解像度と、全天球画像の解像度と、の差が所定の値以上と判断された場合（ステップＳ３００１でＹＥＳ）、画像修正部１０Ｆ２２は、ステップＳ３００２に進む。出力画像の解像度と、全天球画像の解像度と、の差が所定の値以上ではないと判断された場合（ステップＳ３００１でＮＯ）、画像修正部１０Ｆ２２は、ステップＳ１１０３に進む。
【０２６７】
解像度は、画素の密度であり、例えば所定の画像を示すために用いる画素数である。
【０２６８】
ステップＳ３００２の処理では、画像修正部１０Ｆ２２は、出力範囲を変更する処理を行う。出力範囲を変更する処理は、出力画像の解像度を全天球画像の解像度と同一または近似の値にするための処理である。例えば出力画像の解像度が全天球画像の解像度より高い場合、図２９のステップＳ２９０２の処理を行う。例えば出力画像の解像度が全天球画像の解像度より低い場合、図２６のステップＳ２６０２の処理を行う。なお、ステップＳ３００２の処理は、図２６のステップＳ２６０２の処理、または図２６のステップＳ２６０２に限られない。例えば、出力画像の解像度が全天球画像の解像度と同一または近似の値になる出力範囲の一辺の長さを計算し、計算された一辺の長さで出力範囲を設定する処理でもよい。
【０２６９】
出力画像の解像度を全天球画像の解像度と同一または近似の値にすることで、解像度の落ちた出力を減らすため画像内のエッジ部分の再現が向上する画質の向上、および処理時間を短くすることができる。
【０２７０】
＜第５実施形態＞
第５実施形態は、第１実施形態の撮影システム１０、撮影装置１、および画像処理装置２を用いる。したがって、撮影システム１０、撮影装置１、および画像処理装置２の説明は省略する。
【０２７１】
第５実施形態は、第１実施形態の図８で説明した全体処理を行う。第５実施形態は、図１８の類似度に基づく処理のステップＳ１８１１の処理が第１実施形態と異なる。
【０２７２】
第５実施形態のステップＳ１８１１の処理は、出力画像の画素数によってステップＳ１８１１の判断条件を変更する。
【０２７３】
出力画像の画素数によって判断条件を変更することは、例えば出力画像の画素数が増えるのに伴ってステップＳ１８１１で収束したと判断する場合（ステップＳ１８１１でＹＥＳ）となりやすくするように判断条件を変更することである。具体的には、所定の画素数以上の場合、例えば判断条件は、上記（式８）と、上記（式９）と、少なくともどちらかの一方の条件を満たした場合に変更する処理である。なお、判断条件を変更は、適用する式の数を変更するに限られない。例えば、判断条件を変更は、上記（式８）と、上記（式９）と、の閾値を変更するでもよい。
【０２７４】
なお、画像処理装置２は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、およびＪａｖａ（登録商標）などのレガシープログラミング言語、またはオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムによって実現されてもよい。プログラムは、ＲＯＭ、またはＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの記録媒体に格納して頒布することができる。プログラムは、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの記録媒体に格納して頒布することができる。プログラムは、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、またはＤＶＤ−ＲＷなどの記録媒体に格納して頒布することができる。プログラムは、ブルーレイディスク、ＳＤ（登録商標）カード、またはＭＯなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。
【０２７５】
また、機能の一部または全部は、例えばフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などのプログラマブル・デバイス（ＰＤ）上に実装することができる。または機能の一部または全部は、ＡＳＩＣ（特定用途向集積）として実装することができる。
【０２７６】
機能の一部または全部は、ＰＤにダウンロードする回路構成データ（ビットストリームデータ）、回路構成データを生成するためのＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などで記述され、ＰＤにダウンロードして実現されてもよい。さらに、機能の一部または全部は、ＶＨＤＬ（ＶＨＳＩＣ（Ｖｅｒｙ  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ）ＨＤＬ）、またはＶｅｒｉｌｏｇ−ＨＤＬなどで記述され、ＰＤにダウンロードして実現されてもよい。
【０２７７】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【０２７８】
１  撮影装置
２  画像処理装置
１０  撮影システム
１０Ｆ１  全天球画像生成部
１０Ｆ１１  撮影部
１０Ｆ１２  生成部
１０Ｆ１３  出力部
１０Ｆ２  画像処理部
１０Ｆ２１  入力部
１０Ｆ２１１  パラメータ入力部
１０Ｆ２１２  画像入力部
１０Ｆ２２  画像修正部
１０Ｆ２２１  マスク部
１０Ｆ２２２  類似度算出部
１０Ｆ２２３  修正部
１０Ｆ２３  表示部
１０Ｆ２４  記憶部
３  内接球
４  中心座標
５  出力範囲
５１  拡大出力範囲
６  出力画像
６１  第１の被写体
６２  第２の被写体
６３  マスク対象の被写体
７  投影面
７１  対称投影面
８  回転させた投影面
８１  回転させた投影面の対称投影面
９  マスクデータ
９１  指定範囲
９２  初期データ
９３  非マスク画素
９４  マスク画素
９５  マスク領域を示す画像データ
【先行技術文献】
【特許文献】
【０２７９】
【特許文献１】特開２０１１−３５５６７号公報
【特許文献２】特許４２４２３８１号公報
【特許文献３】国際公開第２００９／１４２３３３号
【非特許文献】
【０２８０】
【非特許文献１】町北  幸大郎ほか著、「動画像の欠損修復による全方位カメラを用いた不可視領域のない全天球テレプレゼンスの実現」、画像の認識・理解シンポジウム（ＭＩＲＵ２００９）、２００９年７月
【図１】
2019021355.tif 000017
【図２】
2019021355.tif 000018
【図３】
2019021355.tif 000019
【図４】
2019021355.tif 000020
【図５】
2019021355.tif 000021
【図６】
2019021355.tif 000022
【図７】
2019021355.tif 000023
【図８】
2019021355.tif 000024
【図９】
2019021355.tif 000025
【図１０】
2019021355.tif 000026
【図１１】
2019021355.tif 000027
【図１２】
2019021355.tif 000028
【図１３】
2019021355.tif 000029
【図１４】
2019021355.tif 000030
【図１５】
2019021355.tif 000031
【図１６】
2019021355.tif 000032
【図１７】
2019021355.tif 000033
【図１８】
2019021355.tif 000034
【図１９】
2019021355.tif 000035
【図２０】
2019021355.tif 000036
【図２１】
2019021355.tif 000037
【図２２】
2019021355.tif 000038
【図２３】
2019021355.tif 000039
【図２４】
2019021355.tif 000040
【図２５】
2019021355.tif 000041
【図２６】
2019021355.tif 000042
【図２７】
2019021355.tif 000043
【図２８】
2019021355.tif 000044
【図２９】
2019021355.tif 000045
【図３０】
2019021355.tif 000046