13

iOS でパノラマ画像を表示する方法とライブラリはたくさんありますが、内蔵カメラにはパノラマ機能がありますが、アプリ内で使用する方法はありません。

パノラマ画像をキャプチャするために使用できるライブラリはありますか?

ありがとう!

4

1 に答える 1

35

これらの人々は、C++ ライブラリのライセンスをあなたに売りつけるかもしれません。彼らのコードは、App Store で入手できる素晴らしい Autostich アプリに入ります。

Autostitch は、SIFT 画像特徴検出に基づいています。openCv c++ ライブラリでは、SIFT およびその他の多くの手法を利用できます。ビルド済みの iOS フレームワークは、そのサイトから入手できます。

アップデート

OpenCV には大量Stitcherのドキュメントを含むクラスがあります...

OpenCV スティッチング パイプライン

OpenCV スティッチャー クラス

「高レベルのイメージ スティッチャー。スティッチング パイプライン全体を意識せずにこのクラスを使用することは可能です。ただし、より高いスティッチングの安定性と最終的なイメージの品質を実現するには、少なくとも理論に精通していることが推奨されます (スティッチング パイプラインを参照してください)。)」

更新 2

以前に openCV を使用したことがない場合、最初のハードルは、ライブラリをコンパイルしてプロジェクトにインストールすることです。ここで私の質問と回答(openCV をインストールして動作させる) とここ(サンプル github プロジェクトを使用して、目的の c から C++ コードを分離する方法の例) を参照してください。

openCV が動作している場合、これがクエリを開始する最も簡単な方法です。

Stitcher::stitch(InputArray images, OutputArray pano)

パラメータ:
images – 入力画像。
pano – 最後のパノラマ。

それからそれをスピードアップするために-もしあれば-関心のある領域の四角形を提供します(写真が重なる場所を示します)

Stitcher::stitch(InputArray images, const std::vector<std::vector<Rect>>& rois, OutputArray pano)  

スティッチング パイプラインを掘り下げて、プロセスの多くの詳細を最適化できますが、開始するにはこれで十分です。

openCV ディストリビューションの samples/cpp フォルダーを見ると、いくつかのステッチの例stitching.cppstitching_detailed.cpp.

入力画像を提供するには、カメラに接続し、ユーザーが適切な種類の写真を撮るのを支援する適切なユーザー インターフェイスを設計する必要があります (例: 適切なオーバーラップ)。

openCV を使用して既存のプロジェクトを見たい場合は、これが android 用のもので、プラットフォームは異なりますが、原則は同じです (同じライブラリへの Java インターフェイスを使用します)。特にPanoActivity.javaを見てください。

update 3非常に基本的なサンプルを github に
アップロードしました。最適化や微調整なしで、それがどれほどうまく機能するかに感銘を受けました. Autostitch アプリとほぼ同じように、私の github プロジェクトのサンプル写真をステッチします。

update 4 しばらくして... Swift と Cocoapods で使用するために更新された新しいサンプル プロジェクトを作成しました

于 2012-12-28T04:59:29.577 に答える