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. opencvでシーケンス画像を使ってビデオを作る方法
- 2. ビデオをJavaの画像フレームに分割
- 3. ビデオを画像シーケンスに変換する方法
- 4. OpenCV Javaを使用してビデオをフレームに分割する方法は?
- 5. jpeg画像のシーケンスをビデオ形式に変換する方法は?
- 6. スカラでシーケンスを分割する方法
- 7. 画像を16進法コードに分割する方法は?
- 8. 画像にOpenCV SVM分類子を訓練する方法
- 9. 画像/ビデオにクリップアートを追加OpenCV
- 10. OpenCV - 画像からツリーを分割する
- 11. 画像をカラーグループに分割する方法は?
- 12. Matlabで画像を線分(プロット)で分割する方法
- 13. 画像をタイルで分割する方法は?
- 14. FFmpeg画像シーケンスと可変画像期間のビデオへ
- 15. sattelite画像分類Opencv
- 16. OpenCV - 画像の暗い色の割合を計算する方法は?
- 17. 画像を素早く分割して画像を分割する
- 18. iOS:ページ分割を使って画像をスワイプする方法
- 19. Q:画像をブロックに分割する
- 20. ランダムに画像を分割する、Matlab
- 21. OpenCV Pythonは画像のある部分を別の画像にコピーします
- 22. WP7:画像シーケンスからビデオをレンダリングする
- 23. はC++ OpenCVのHSVの画像分離
- 24. フルハイトの分割画面ビデオを作成するには?
- 25. 画像シーケンスを透明にしてビデオに変換
- 26. ビデオや音声を無音部分で分割する方法
- 27. は、OpenCVの中でRGB画像から赤成分画像を分離2.3
- 28. Open cv C++:複数のビデオを分割する方法は?
- 29. ASIHTTPRequestにビデオと画像を投稿する方法は?
- 30. k個の均質な部分でシーケンスを分割する方法は?
のthnx *たくさんの入力ファイルを読み込み、* frame_xx.jpgという名前のカレントフォルダに画像のシーケンスを作成しますOpenCVの2.0.0は、その上にこのコードの動作は – meroz
uがplzは私に言ったことができていますどのようにこのコードを書いてそれを実行するのですか – meroz
@ mero0oそれはまったく異なる質問ですが、あなたが使っているプラットフォームによって異なります。私はこの質問がすでに解決されていると信じています。私の答えを受け入れることを忘れないでください。 – karlphillip