- 追加された行はこの色です。
- 削除された行はこの色です。
- ビデオの読み込み へ行く。
OpenCVでビデオを読み込む
#contents
*CvCapture* cvCaptureFromFile(char *filename); [#r5757b22]
ビデオからのキャプチャ構造体を生成する
**引数 [#n7fd104b]
-filename:const char*型のファイル名
**返り値 [#j3585c59]
-失敗した場合はNULL
-成功した場合は有効なキャプチャ構造体のポインタを返す
*void cvReleaseCapture(CvCapture **capture); [#daefdefe]
確保されたキャプチャ構造体を解放する
**引数 [#l605943f]
-capture:CvCapture**型のキャプチャ構造体
**返り値 [#z85e913f]
-void型なのでなし
*IplImage* cvQueryFrame(CvCapture *capture); [#b06e8c15]
ファイルから1フレーム画像を取得してくる
**引数 [#s74a2c83]
-capture:CvCapture*型のキャプチャ構造体
**返り値 [#dc099679]
-IplImage*型の画像のポインタ
*解説 [#kd2241a9]
-OpenCVで生成した非圧縮AVIはOpenCVで読み込むと失敗する模様
-1度圧縮する必要がある
-失敗した場合はいずれも1024バイトだけ先頭のポインタがずれる.
-image->imageData += 0x400 とすると合う.
|ソフト|サイズ|fps|色|codec|結果|
|OpenCV|320x240|29.97|24bpp|非圧縮|×|
|OpenCV|640x480|29.97|24bps|非圧縮|×|
|OpenCV|512x512|29.97|24bps|非圧縮|×|
|AviUtl 0.99d3|320x240|29.97|24bpp|非圧縮|×((AviUtlの入力動画が既に壊れてるのか,出力するときに壊れたのか不明))|
|AviUtl 0.99d3|640x480|29.97|24bpp|非圧縮|×((AviUtlの入力動画が既に壊れてるのか,出力するときに壊れたのか不明))|
|QuickCapture|160x120|29.97|24bpp|IndeoR video 5.10|○|
|QuickCapture|320x240|29.97|24bpp|IndeoR video 5.10|○|
|QuickCapture|640x480|14.98|24bpp|IndeoR video 5.10|○|
*サンプルコード [#m745369e]
CvCapture *video; // キャプチャ構造体
IplImage *image; // 画像のポインタ(領域確保は不要)
cvNamedWindow(WINDOW_INPUT); // ウィンドウ生成
video = cvCaptureFromAVI(DEFAULT_VIDEO);//キャプチャ構造体生成
while(c = cvWaitKey(1), c != 27){ // ループ
image = cvQueryFrame(video); // ビデオから1枚取得
cvShowImage(WINDOW_INPUT, image); // 画面に表示
}
cvReleaseCapture(&video); // ビデオ構造体解放
cvDestroyWindow(WINDOW_INPUT); // ウィンドウ破棄
// imageはこの場合解放してはいけないらしい
*実体ファイル [#c2fe10d0]
-otherlibs/highgui.highgui.h
-内部構造はブラックボックス的
ジャンル[[:OpenCV]][[:OpenCV 1.0]]準拠