問題タブ [image-stabilization]
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.
c++ - C/++ OpenCV プログラムをビデオ安定化プログラムから CUDA に変更する
私は C++ ビデオ安定化/手ぶれ補正プログラムを実行しています。 - 参照フレーム上で関心のあるポイントを取得します (FAST、SURF、Shi-Matoshi、または SIFT を使用して、もう少し試してみてください) - Lucas-Kanade オプティカル フローを計算しますcalcOpticalFlowPyrLK を使用 - ホモグラフィ行列を取得します - warPerspective を使用して揺れている画像を修正します (以下のコードを参照)
私の安定化ソリューションに代わるものがあれば、遠慮なく言ってください。しかし、それはこのスレッドのトピックではありません。
これには多くの時間がかかるため (私の i5 コンピューターではフレームあたり約 300 ミリ秒なので、30 分のビデオでは非常に長い時間になります)、CUDA を使用して高速化することを検討しています。私はそれをインストールして動作させましたが、次にどのように進めればよいかわかりません。私はいくつかのテストを行いましたが、最も時間のかかる操作は、それぞれ calcOpticalFlowPyrLK と warpPerspective を使用してオプティカル フローとフレーム補正を取得することであることがわかっています。したがって、理想的には、少なくとも最初は、これら 2 つの関数の CUDA バージョンのみを使用し、残りは変更しません。
これは可能ですか?それとも全部書き直す必要がありますか?
ありがとう
ios - iOS8搭載のiPhone 6/6+で手ぶれ補正をONにできない
わかりましたので、壁にぶつかりましたが、どうすればよいか本当にわかりません。カメラアプリを書いています。実際に仕上げました。主にSwiftで書いています。アプリには、画像安定化のオンとオフを切り替えるオプションがあります。これは非常に簡単です。コードは次のようになります (stillImageOutput は AVCaptureStillImageOutput です):
presentMessegePopUp は単に Alert のラップです。問題の 1 つは、iPhone5S しか持っていないため、実際にデバッグできないことです。しかし!ベータ版の FlightTest を介して 6/6 以降の 4 つのデバイスでテストすると、すべてのデバイスでこのポップアップが表示されます。「stillImageStabilizationSupported」で false になっていることを意味します。これは、私の電話で問題なく動作するときです...
Apple のこの記事によると、6+ までのすべての電話がサポートされているはずです 。 CH1-SINGLE_SHOT__VIDEO__HDR (手ぶれ補正部)
何かがこのプロパティに干渉する可能性があるかどうかを調べようとしましたが、これまで (1 週間以上) 何も見つかりませんでした。
誰でも助けてもらえますか?
opencv - マット型とベクトル型のどちらか関数推定RigidTransform()で使用する方が良いですか?
estimateRigidTransform()
知られているように、 2 つの型のいずれかで 2 つのパラメーターを関数に渡すことができます。Mat estimateRigidTransform(InputArray src, InputArray dst, bool fullAffine)
cv::Mat frame1, frame2;
std::vector<cv::Point2f> frame1_features, frame2_features;
つまり、たとえば、ビデオの安定化 (シェイク削除) を実装するには、次の 2 つの方法のいずれかを使用できます。
- with
cv::Mat
: opencv を使用したビデオ安定化
- と
std::vector<cv::Point2f> features;
これらのアプローチのどれを使用するのが良いですか? また、その理由は何ですか?
つまり、どのタイプMat
またはvector<Point2f>
関数の推定RigidTransform()で使用するのが良いですか?
opencv - OpenCV: 画像安定化
OpenCV でビデオをポストプロセスしようとしています。私のカメラは固定されていないため (モバイルである必要があります)、結果として得られるビデオは、振動やパンによって非常にぎくしゃくしています。そのため、見ようとするすべてのフレームにはぼやけがあり、ぼやけた画像の一部を検出できたとしても、検出の精度が低下します。
私はオンラインで検索しましたが、ジャイロスコープでカメラの動きを補正することについて多くの議論があるようです.
これを助けるカメラはありますか?GoProを使ってきました。
ビデオの処理に役立つアルゴリズムはありますか?
私は画像安定化のバックグラウンドがなく、どこから始めればよいかわかりません。任意の推奨事項をいただければ幸いです。
ffmpeg - ワイドスクリーン フォーマットに同時にトリミングするときの垂直安定性の向上
まず第一に、ばかげた、またはやや情報不足の質問をしたことをお許しください。ビデオの後処理、安定化などはまったく初めてです。
Canon 5D2 で 1920x1080 の圧縮ムービー ファイルを撮影し、その後、映画のような 1920x800 (2.4:1) にトリミングします。(Magic Lantern では、撮影時にオーバーレイ ビットマップを使用します。もちろん、Magic Lantern では RAW で撮影できることは知っていますが、私のカードとコンピューターは、それほど多くのデータを処理するのに十分な速度ではありません。)
制作を行う前に、大きな .MOV ファイルを小さなファイルに変換し、同時にビデオを少し安定させ、1920x800 にトリミングします。私はffmpeg
おおよそ次のようにこれを行います:
ただし、垂直解像度の大部分がトリミングされているという事実は、安定化変換をより適切に処理できるようにするために使用されていません。多くの場合、画像は垂直方向に引き伸ばされたり、歪んだりしますが、これは、使用されているクロップを考えると実際には必要ありません。
安定化変換で作物を有益に使用することは何らかの方法で可能ですか?
下のフレームは一例です。ここでは、画像が垂直方向にまったく引き伸ばされないようにしたいと思います。このフレームでは、水平方向の黒い境界線が唯一の問題であるため、わずかな静的ズーム (クロップ) だけで済みます。
image - 一連の画像を効率的に安定させるにはどうすればよいですか?
一度に 1 時間 (100,000 フレーム以上) 30 Hz で定期的にデータを記録します。動きが最小限 (100 ピクセル未満) のオブジェクトを記録しています。各フレームは .tiff ファイルとして保存されます。
「安定化行列」を効率的に生成しようとしています。たとえば、画像が左に 2 ピクセル、上に 1 ピクセル移動した場合、次のような行を持つ行列を生成します。
[2、1]
画像を x 軸で 2 単位、y 軸で 1 単位シフトする必要があることを示します。マトリックスの各行は、このように必要な「シフト」を表します。
これは可能ですか?私はあらゆる言語やプラットフォームを使用することにオープンです。大学のクラスターにもアクセスできます。Matlabで書いたコードを譲り受けたのですが、実行に12時間ほどかかります。より効率的な解決策が見つかることを願っています。正しい方向へのポインタは大歓迎です。
前もって感謝します。
python - Opencv Python VIDEOSTAB クラス
opencv プロジェクトに安定化機能を実装する必要があります。videostab クラスがありますが、C++ についてのみ説明されています ( http://docs.opencv.org/trunk/d5/d50/group__videostab.html )。Pythonでそれを使用する方法を知っている人はいますか? ちなみに、ライブビデオフィードを安定させるつもりです。