opencvを使って、どのようにビデオを画像シーケンスに分割できますか?
出力を一連の画像にするにはどうすればよいですか?でも、私の編集後openCV:ビデオを画像シーケンスに分割する方法は?
8
A
答えて
9
は、質問はより「送信-私を-codez」典型的なStackOverflowのより需要のように見えるOPは、詳細な情報を提供し、彼または彼女はいくつかの実際を入れていることを示していることにより、質問それに考えました。
私はちょうど "半分の答え"を与えます...とにかく、私はOpenCVのマシン学習モジュールと、ライブラリの残りの部分についてはほとんど認識していません。 ;-)
擬似コードはそのように見えるはずであり、実装では一般的に前述のOpenCVメソッドが必要です。
myCapt = cvCreateFileCapture("myInput.avi") // Assuming the feed is from a file.
while (there are frames and we still want them)
cvGrabFrame(myCapt)
myImg = cvRetrieveFrame(myCapt)
// alternatively to cvGrabFrame + cvRetrieveFrame, could use cvQueryFrame()
// save the file (or do something with it...)
cvSaveImage("some_file_name_with_seq_nr", myImage)
cvReleaseCapture(capture)
としては、停止するとき考え出す個々のフレームのファイル名を生成し、当然のことながら、適切に変数を宣言し、間接wの適切なレベルを使用して。例えば(上記のニーズに多くの構文とロジックの仕事を示唆しました/すべてそれらのポインタ;-)。もちろん、Pythonインタフェースを使用すると、これのほうが簡単になります。
Reading and Writing Images and Video OpenCV documentation pageには、個々のメソッドに関する詳細情報があります。
11
私の驚いたことに、私はStackoverflowでこの質問に対する答えを見つけることができませんでした。
私は現在使用していますOpenCV 2.1。これは少し古いかもしれませんが、それは魅力のように動作します。プログラムは、UIに
#include <stdio.h>
#include <stdlib.h>
#include "cv.h"
#include "highgui.h"
int main(int argc, char** argv)
{
if (argc < 2)
{
printf("!!! Usage: ./program <filename>\n");
return -1;
}
printf("* Filename: %s\n", argv[1]);
CvCapture *capture = cvCaptureFromAVI(argv[1]);
if(!capture)
{
printf("!!! cvCaptureFromAVI failed (file not found?)\n");
return -1;
}
int fps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
printf("* FPS: %d\n", fps);
IplImage* frame = NULL;
int frame_number = 0;
char key = 0;
while (key != 'q')
{
// get frame
frame = cvQueryFrame(capture);
if (!frame)
{
printf("!!! cvQueryFrame failed: no frame\n");
break;
}
char filename[100];
strcpy(filename, "frame_");
char frame_id[30];
itoa(frame_number, frame_id, 10);
strcat(filename, frame_id);
strcat(filename, ".jpg");
printf("* Saving: %s\n", filename);
if (!cvSaveImage(filename, frame))
{
printf("!!! cvSaveImage failed\n");
break;
}
frame_number++;
// quit when user press 'q'
key = cvWaitKey(1000/fps);
}
// free resources
cvReleaseCapture(&capture);
return 0;
}
関連する問題
- 1. ビデオをJavaの画像フレームに分割
- 2. jpeg画像のシーケンスをビデオ形式に変換する方法は?
- 3. 画像/ビデオにクリップアートを追加OpenCV
- 4. iOS:ページ分割を使って画像をスワイプする方法
- 5. はC++ OpenCVのHSVの画像分離
- 6. WP7:画像シーケンスからビデオをレンダリングする
- 7. ビデオや音声を無音部分で分割する方法
- 8. 画像シーケンスを透明にしてビデオに変換
- 9. (boolean)を連続シーケンスに分割する
- 10. は、OpenCVの中でRGB画像から赤成分画像を分離2.3
- 11. ASIHTTPRequestにビデオと画像を投稿する方法は?
- 12. CGI画像を分割する
- 13. CSSヘルプ - 画像を分割する
- 14. iPhoneの短いアニメーション:ビデオまたは画像シーケンス?
- 15. OpenCVでビデオを回転する方法
- 16. 積分画像(OpenCV)を使った高速ぼかし画像
- 17. ビデオを作るためにC#で画像のシーケンスをレンダリングする
- 18. OpenCVのHOG画像全体の分類
- 19. imcropを使用して画像を半分に分割する
- 20. シーケンスから画像にデータを入れる方法
- 21. 画像をopencvの行列に変換する方法
- 22. ノードjs/sails jsで入力ファイル(画像)ストリームを分割する方法は?
- 23. React Nativeで画像シーケンスを処理する方法
- 24. 画面を縦に3分割する方法は?
- 25. ビデオのサムネイル画像を取得する方法は?
- 26. ビデオから画像を抽出する方法は?
- 27. 画像シーケンスをロスレスムービーに変換する
- 28. Swiftのサーバーにビデオと画像をアップロードする方法
- 29. openCVを使用したビデオ画像の鮮明化
- 30. OpenCV:グレースケール画像を色付けする方法。
のthnx *たくさんの入力ファイルを読み込み、* frame_xx.jpgという名前のカレントフォルダに画像のシーケンスを作成しますOpenCVの2.0.0は、その上にこのコードの動作は – meroz
uがplzは私に言ったことができていますどのようにこのコードを書いてそれを実行するのですか – meroz
@ mero0oそれはまったく異なる質問ですが、あなたが使っているプラットフォームによって異なります。私はこの質問がすでに解決されていると信じています。私の答えを受け入れることを忘れないでください。 – karlphillip