Menu

Saturday, June 8, 2013

[OpenCV] วิธีการบันทึกไฟล์วิดีโอ
[OpenCV] How to Write/Save Video File

ขั้นแรก นิยามตัวแปรที่ใช้เขียนไฟล์วิดีโอตามด้านล่างนี้
First, define the video writer as follow
CvVideoWriter* writer = cvCreateVideoWriter(filepath,fourccfpsframe_size, iscolor);

โดยที่
filepath เป็นที่อยู่ของวิดีโอที่ต้องการจะบันทึก ในที่นี้ใช้นามสกุล avi
fourcc เป็น codec ของวิดีโอที่จะบันทึก ในที่นี้ใช้ CV_FOURCC('M','J','P','G') 
where
filepath is the path of output video file, in this case, file extension is avi
fourcc is the codec of video, in this case, CV_FOURCC('M','J','P','G') is used

ขั้นที่สอง เขียนเฟรมแต่ละเฟรมไปยังวิดีโอที่บันทึก
Second, write frame to output video as follow
cvWriteFrame(writer, frame);

ขั้นสุดท้าย ปลดปล่อยหน่วยความจำสำหรับตัวแปรที่ใช้เขียนไฟล์วิดีโอ
Last, release the video writer 
cvReleaseVideoWriter(&writer);

อันนี้เป็นตัวอย่างที่บันทึกภาพจากกล้องเป็นไฟล์วิดีโอ
This is an example that capture image from camera then write to video file
  1. CvCapture* capture=cvCreateCameraCapture(0);
  2. IplImage *img=cvQueryFrame(capture);
  3. CvVideoWriter* writer = cvCreateVideoWriter("E:/test.avi", CV_FOURCC('M','J','P','G'), 30, cvGetSize(img), 1);
  4. while(true){
  5.      img=cvQueryFrame(capture);
  6.      cvWriteFrame(writer, img);
  7.      cvShowImage("img", img);
  8.      c=cvWaitKey(1000/25.0);
  9.      if(c==27)
  10.           break;
  11. }
  12. cvReleaseCapture(&capture);
  13. cvReleaseVideoWriter(&writer);

No comments:

Post a Comment