通常のパノラマ画像を持っています。それを正距円筒図に変換するにはどうすればよいですか(通常→正距円筒)?
私がGoogleで見つけたほとんどの結果は、反対方向の変換(正距円筒→法線)です。
変換したい画像です(HRリンク)
通常のパノラマ画像を持っています。それを正距円筒図に変換するにはどうすればよいですか(通常→正距円筒)?
私がGoogleで見つけたほとんどの結果は、反対方向の変換(正距円筒→法線)です。
変換したい画像です(HRリンク)
回答:
正距円筒画像は球体を表し、球体上の子午線と緯線が垂直と水平の直線として表示されるように歪んでいます。ウィキペディアの例:
左側には球形のマップがあり、右側には同等の平面マップ、球から長方形への正距円筒図法があります。
赤道には伸縮はありませんが、画像は他の場所で水平に伸縮されます。伸ばすほど、赤道からのポイントが遠くなります。上端と下端には、実際には単一の点(極)のみが含まれています。
長方形の比率はW / H = 2:1です。これは、球に沿った極間の距離が、赤道に沿った完全な往復のちょうど半分であることを反映しています。
画像を正距円筒に変換したいと考えていました。一見、比率は2:1であるため、対応する球がこれである場合、すでに正四角形です。
画像の半分は球の後ろに隠れていますが、そこにあります。ご覧のとおり、画像の上端と下端がポイント、つまり極に挟まれています。
私はこれを数学の洗練された役に立たない部分とみなしていると思います。あなたが欲しいと思う
1)正四角形の画像で、画像の一部を表面にした球体を表します。球体全体を覆う必要はありません。
2)球の真ん中に座ってそれを見るとき、彼は歪みなく球上にあなたの画像を見ることができ、画像が視野の準統計的部分をカバーするほど大きいサイズ、例えば90度幅45高い度。
ゆがみを受け入れる場合は、キャンバスサイズを400%に増やすだけです。
外から見た球ではこれは:
(光沢のため申し訳ありませんが、私のフリーウェアCADプログラムはライトの編集を許可していません)
Affinity PhotoにはLayer> Live Projection> Equirectangularがあり、画像が球の内側の表面に描かれ、観察者が中点にいるように球の内側のwiewを表示できます。それはこれを示しています:
湾曲したフェンスと地平線は明らかに不要ですが、太陽はまだかなり丸いです。それはそれがはるかに小さく、赤道線の近くにあるからです。地平線とフェンスは、実際には水平な円(=球面マップの平行線)上にあるため、湾曲しています。少し下向きに見て、楕円の弧として見えます。
つまり、歪みを補正して元の画像領域をまっすぐにすることができます。数学の歪み方程式を使用して、より正確にワーピングします(アフィニティPもサポートしています)。
Affinity Photoでは、ライブプロジェクションモードで画像を編集できます。編集は基礎となる正距円筒イメージに適用されますが、球への投影を監視します。大まかなワープの試みは次のとおりです。
同様に、元の画像を貼り付けて、ライブプロジェクションの下にある裸のバックグラウンドレイヤーにマージすることもできます。
しかし、これは一般的な修正ではありません。ウォッチャーが少し頭を向けるとすぐに、彼は新しい方法で歪んだシーンを見る(=少し横から見たフラットカード)
3Dシーンがないため、一般的な修正はありません。3D球上のフラットなイメージのみです。
私の意見では、環境を単一の画像として球にマッピングし、それを中点から見ると、マッピングされたシーンが遠すぎて遠近感がない場合にのみ、もっともらしい仮想現実になる可能性があります。その場合でも、球の半径ではなく、見かけの距離を無限にするには、巧妙なビューポートの広い歪みが必要です。見る方向が変わると、歪みは生き続けるはずです。
この回答は、このずっと後のケースをチェックした後で完全に書き直されました。
あなたがそれを持っているので、あなたはあなたのイメージでそれをすることができません。
1)球体に円筒形の投影が必要です。まず、キャンバスは正確な比率である必要があります。3.1416:1(必要なピクセルサイズのキャンバスを使用します(例:3141x1000px))
2)そして、(通常は)地平線がキャンバスの中心にある必要があります。
(球からの)円筒投影では、垂直投影寸法とそのセグメントの実際の高さにより、投影に特定の変形があります。したがって、フラットキャンバスで漫画を描くときにそれを補正する必要があります。
これを行う簡単な方法は、PhotoshopでSpherizeフィルターを使用することです。(私が現在このコンピューターに持っているアルカイックバージョンでは、フィルター>変形>球状化にあります)
しかし、縦軸でそれを歪める必要があるだけです。
ただし、それ以外に、360パノラマのどの部分を使用するかを定義する必要があります。別の鶏が写真を撮っているところを想像してみてください。使用するレンズの角度は?
広角レンズだと感じて、120°の視野で撮ることができます。つまり、チキンカメラマンの背後にあるものにイメージを完成させる必要があります。
使用したいGoogle VRアプリケーションは、円筒投影が必要であると言いますが、画像上で2:1の比率を要求します。2:1のプロジェクションは通常、球形のプロジェクションであり、変形は異なりますが、たとえばビデオでは実現が難しくなります。
実際的な理由から、それらは実際には円筒形の投影を求めているため、最終ステップとして元の3.1416:1から2:1にリサンプリングするだけです。
最終的な画像をリサンプルするだけです。キャンバスが3141x1000ピクセルだった場合は、単純に2000x1000pxにリサンプリングします。トリミングしないでください。チキンはスリムに見えますが、VRアプリケーションでは再び太ります。
最初のキャンバスの場合:特定の画像では、画角を判別するのは困難ですが、3つのシナリオを見てみましょう。
(A)視野は120°です。投稿した画像が2048なので、かわいいペットの写真を3枚入れることができます。キャンバスは2048x3 = 6144pxである必要があり、これをpi = 1955pxで割ります。
6144x1955px
(B)しかし、ペットが小さすぎないようにしたい場合は、写真が180°= 2048x2 = 4096 / pi = 1303をカバーしていると仮定しましょう。
4096x1303ピクセル
(C)または、数字で遊んでください。
画像に非常に小さな情報が含まれており、小さすぎます。また、正距円筒形状は使用しないでください。しかし、無料のBlenderでそれを行うことができます。"Panorama"> "equirectangular"> "Renderでレンダリングするだけです。360でHDRI画像を表示するには、次のサイトを使用できます:http : //panoramaviewer.1bestlink.net/
元の画像:
キャンバスのサイズを大きくし、コンテンツに応じた塗りつぶしを使用して、画像の空と地面を増やします。私はPhotoshopを使用しました:
次の手順では、極座標フィルターを使用します。極座標が正確に機能する方法を示す画像は次のとおりです。
ご覧のとおり、下部(長方形)から上部の視点(極)に変換します。これを行うには、フィルター->変形->極座標->長方形から極座標に移動します。
コンテンツに対応した塗りつぶし、修復ツール、またはスタンプツールを使用して、中央と周辺の領域を修正します。
極座標を再度使用しますが、今回は極座標から長方形へ。この画像を360度の球に投影できます。
あなたが夜空の画像を持っているとしましょう。極座標を再び使用できます。しかし、画像の中心が正距円筒歪みの後に上になるので、極座標から極座標への極座標を一度だけ使用します。
3Dソフトウェア(私は無料のClara.ioを使用しました)では、これは球体でテクスチャーがどのように見えるかです。