※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ビデオキャプチャ構造体から画像を保存するにはcvGrabFrame,cvRetrieveFrame,cvSaveImageを使用する.

cvGrabFrame(capture);
cvSaveImage("capture.jpg",cvRetrieveFrame(capture));


cvGrabFrame
カメラやファイルからフレームを取り出す

int cvGrabFrame( CvCapture* capture );

capture
   ビデオキャプチャ構造体. 

関数 cvGrabFrame は,カメラやファイルからフレームを取り出す.取り出されたフレームは内部的に保存される.この関数の目的は,高速にフレームを取り出すことである.これは複数台のカメラから同時に読み込むような場合に,カメラ間の同期のために重要となる.取り出されたフレームは,(カメラ/ドライバによって定義された)圧縮フォーマット の形で保存されるので,これらがそのまま公開されることはない.取り出されたフレームをユーザ側で利用するためには,cvRetrieveFrame を用いるべきである.

cvRetrieveFrame
cvGrabFrame によって取り出された画像を取得する

IplImage* cvRetrieveFrame( CvCapture* capture );

capture
   ビデオキャプチャ構造体. 

関数 cvRetrieveFrame は, cvGrabFrame 関数によって取り出された画像へのポインタを返す.返された画像は,ユーザが解放したり,変更したりするべきではない.

cvSaveImage
画像をファイルに保存する

int cvSaveImage( const char* filename, const CvArr* image );

filename
   ファイル名. 
image
   保存する画像. 

関数 cvSaveImage は,画像を指定したファイルに保存する.画像フォーマットは,filename の拡張子により決定される(cvLoadImage を参照).この関数で保存できるのは,8 ビット 1チャンネル,あるいは 8 ビット3 チャンネル('BGR' の順)画像だけである.フォーマットやデプス,チャンネルの順序などが異なる場合は,保存する前に cvCvtScale と cvCvtColor を使って画像を変換するか,あるいは汎用的な関数 cvSave を利用して XML/YAML フォーマットで保存すること.

|