問題タブ [image-stitching]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opencv - openCVを使用したイメージングスティッチング-最終段階の難易度
私はOpenCV2.4を使用して、ビデオを長い(狭い)モザイクに変換しています。OpenCVを使用するのはこれが初めてですが、これまでのところ、いくつかの成功を収めて次のことを管理しています。
- ビデオからフレームを取得します。
- SIFTを使用してキーポイント記述子を取得します。
- RANSACを使用して外れ値を分類します
- ホモグラフィ行列を見つけます。
問題は、ホモグラフィマトリックスをフレーム/画像の1つに適用して、モザイクを生成しようとしたときです。時々、warpPerspective()の宛先行列のサイズが小さすぎるというエラーが表示されます。これを回避するために、結果が収まるようにサイズが大きすぎると思います。ただし、フレームのコピーを結合すると、ほとんどが黒の巨大な画像になります。だから私の質問は、どうすればこれを賢く行うことができるかということです。モザイクをwarpPerspective()に渡す前に、モザイクに必要な宛先マトリックスのサイズを計算するにはどうすればよいですか?私はROI/Rectで物事を試してきましたが、それで何をしているのかよくわかりません。
何か提案があれば、私は永遠に感謝します。
parallel-processing - CUDA で PFactory の複数のインスタンスを実行するには?
PFactory (パノラマ ファクトリー) を使用してバッチ モードで画像をステッチしています。現在、複数のスレッドを使用して CPU で同じことを行っています。nvidia GPU (144 コア) で実行したい。system(pfactory) を呼び出して PFactory の 1 つのインスタンスを実行するカーネル プログラムを作成しました。しかし、nvcc を使用してコンパイルすると、エラーが発生します - デバイスでホスト関数を実行できません..."
GPU コアでこのプログラムの複数のインスタンスを実行する方法はありますか?
c++ - OpenCV スティッチング
opencv ステッチング モジュールのヘルプがどうしても必要です。opencv で「ステッチ」メソッドを使用してパノラマ写真を作成する必要があります。以下は私がこれまでに持っているものです..しかし、プログラムを実行すると、次のエラーが表示されます:さらに画像が必要です。このエラーを解決できる OpenCV の専門家はいますか?
c++ - OpenCvのstitcher()のエラー
私はこのコードを持っています:
ビルド後、次のエラーが発生します。
エラー 4 エラー C2248: 'cv::Stitcher::Stitcher': クラス 'cv::Stitcher' で宣言されたプライベート メンバーにアクセスできません C:\Users\Desktop\Projects\SamplePanorama - PanoramaStitch\SamplePanorama \StitchEngine.cpp 602
Stitch() を正しく機能させるには何を追加すればよいですか?
image - ステッチなしの360度の視野?
ステッチングアルゴリズムや後処理ステップを使用せずに、1回のショットで360度の視野を持つことができるタイプのカメラはありますか?または、レンズやその他の光学部品を適切に使用して、そのようなカメラを1台持つことは可能ですか?
opencv - カメラの動きによるOpenCVビデオ/画像のスティッチング。SIFTの機能が足りませんか?
短編映画から抽出した画像を、カメラを動かし続けて登録しようとしています。検出->一致->クリーン一致->ホモグラフィが機能する「通常の」パイプラインがあります。典型的なSIFTの例(Basmati、Cookiebox ...)での結果は非常にうまく機能します。
私の画像
a)多くの特徴が得られない
b)同一に非常に近い
c)大きな類似領域(壁)が含まれている可能性がある
質問
1)あなたが提案するいくつかの異なるアプローチはありますか?連続的な動きが想定でき、画像が非常に似ている場合のEsp。
2)「findHomography」が計算するものを最適化するために、初期推測(ID、単純なスクロール...)をどのように実装できますか?
3)一致のどの分析/フィルター(画像を参照)を提案しますか?PCAはカメラパンの動きの制約?
4)他に欠けている/間違っていることはありますか?
これらの画像は、平均から悪い結果を示しています。(右側の緑色の線は変換されたクワッドです。中央の小さな緑色の線は無視してください)一部のペアは、登録が大幅に悪化します。
http://www.cs.hs-rm.de/~schweitz/siftmatch.jpg
http://www.cs.hs-rm.de/~schweitz/siftmatch2.jpg
h ** p://www.cs .hs-rm.de /〜schweitz / siftmatch3.jpg
iphone - カメラの姿勢を OpenCV スティッチャーに提供する
OpenCV を使用して、iPhone でキャプチャした画像から 360° パノラマをつなぎ合わせようとしています。
スティッチング アルゴリズムはうまく機能していますが、キャプチャしていない領域に空きスペースを提供していません。電話から姿勢 (ピッチ、ヨー、ロール) 情報を受け取ることができ、作成するパノラマにどのくらいの空きスペースを含めるかを決定するのに十分な追加情報であると信じていますが、この情報を提供する方法が見つかりません。スティッチャーに。
知りたい:
- OpenCV を使用すると、スティッチャーにカメラ情報を提供できますか?
- OpenCV は空きスペースを考慮して 360° パノラマを作成しますか?
- そうでない場合は、コンパイルされたパノラマに正しい量の空きスペースを追加できる後処理手順を提案できますか?
c++ - OpenCV WarpPerspective の問題
現在、Eclipse で基本的なイメージ ステッチング C++ (OpenCV) コードを実装しようとしています。特徴検出部分は、SURF 特徴に対して優れた結果を示しています。ただし、2 つの画像を一緒にワープしようとすると、画像の半分しか出力されません。どこでも解決策を見つけようとしましたが、役に立ちませんでした。この回答OpenCV warpperspectiveのように、ホモグラフィ行列をオフセットしようとさえしました。これまでのところ何も役に立ちませんでした。
評判ポイントが足りないので、出力画像をコメントに添付します。
機能の検出とホモグラフィについては、ここから正確なコードを使用しました http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html
そして、指定されたコードの後に次のコードを追加しました。
私はこれにまったく慣れておらず、ピースをまとめようとしています。ですので、基本的な間違いがありましたら申し訳ありません。
c++ - 複数の画像のスティッチング - 3 番目の画像の追加
2 つの画像をつなぎ合わせた後、3 番目の画像をつなぎ合わせようとしていますが、うまくいかないようです。
詳しく説明すると、opencv ドキュメント ( http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html ) に記載されているコードを使用して 2 つの画像をうまくつなぎ合わせ、この画像を取得しました。 http://i.stack.imgur.com/gqQjV.jpg
次に、ROIに関する多くの読み取りと問題の後、画像の黒い部分を削除してこの画像を取得しました。
今、同じコードを使用して 3 番目の画像 ( http://i.stack.imgur.com/nXD86.jpg ) をこれにステッチしようとしていますが、ステッチは機能しません。機能の一致は完全に機能します。
しかし、プログラムを実行した後、(ROI のため) 黒い領域が大きく、3 番目の画像がない同じ画像が得られます。(出力: http://i.stack.imgur.com/WzZA0.jpg )
ステッチされた画像の最後にある小さな黒い帯と関係があると考えたので、WarpPerspective ステートメントはステッチされた領域をマップしません。コード :
warpperspective の結果は、残りの領域ではなく黒い画像になります。
誰かが私が間違っている可能性がある場所とそれを修正する方法を教えてもらえますか? ありがとう
opencv - ある画像から別の画像へのピクセルの再投影
平面シーンの写真を撮るキャリブレーション済みのカメラが多数あります。簡単にするために、カメラが 3 台あるとします。これらのカメラは一般的な動きをしていますが、ほとんどが平行移動と若干の回転です。カメラの位置例
タスクは、それらを完全にステッチすることです。キャリブレーションされたカメラで撮影された一連の画像だけで、3D 座標についての知識はありません。
私がやること:
OpenCV で SURF/SIFT 実装を使用して特徴を検出し、各画像ペア (1->2、2->3、1->3) 間でfindHomographyを使用して初期ホモグラフィを取得します。これらのホモグラフィから、各カメラのポーズの初期推定を取得します(これと同様の手順)
次に、バンドル調整手法を使用して、一致する各ペアの再投影エラーを最小限に抑えます。最適化されたパラメーターは、3 つの並進値と 3 つの回転値 (ロドリゲスの回転式から取得) ですが、後で固有パラメーター (焦点、主点など) を追加できます。
画像 #2 が参照フレームであると仮定すると (他の 2 つの画像との一致が最も多いため)、その回転行列と平行移動行列はそれぞれ恒等行列とゼロ行列です。
イメージ #2 からイメージ #1 へのキーポイント (イメージ #2 とイメージ #1 の両方で表示) の再投影を (疑似コード) として計算します。
また
ここで、r__ は R1 行列の要素であり、両方の組み込み行列は次の形式です。
参照フレームの Z2 座標を 1 と仮定しています。
次の段階では、取得したカメラ行列 (K1、R1、T1、K3、R3、T3) を使用して、画像 #1 と #3 を画像 #2 の共通の座標系にワープします。
問題は、画像 #1->#2 からの逆再投影が次のようになるため、画像 #2 の参照フレームへの正しい再投影に必要な Z1 と Z3 についての知識がないことです。
ここで、R__ は inv(R1) 行列の要素です。
バンドル調整 (2d->2d) の再投影誤差を計算し、画像を共通の座標系にワープするより良い方法はありますか? OpenCV のステッチング モジュールには非常によく似たフレームワークがあることに気付きましたが、ここではそうではなく、純粋な回転運動を想定して動作します。