- CvCapture* capture=cvCreateFileCapture("E:/Wildlife.wmv");
- IplImage* img;
- char c;
- double frame_width=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH );
- double frame_height=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT );
- double fps=cvGetCaptureProperty(capture,CV_CAP_PROP_FPS );
- printf("%f %f %f",frame_width, frame_height,fps);
- cvNamedWindow("test",1);
- img=cvQueryFrame(capture);
- while(img){
- cvShowImage("test",img);
- c=cvWaitKey(30);
- if(c==27)
- break;
- img=cvQueryFrame(capture);
- }
- cvReleaseCapture(&capture);
บรรทัดแรก, ประกาศ capture และตั้งค่าให้รับภาพจากไฟล์วีดิโอ
At line 1, capture is declared and initiated to file capture
บรรทัดที่ 2, ประกาศ img สำหรับเก็บภาพที่ได้จาก capture
At line 2, img is declared for store an image from capture
บรรทัดที่ 5-7, อ่านค่าคุณสมบัติของไฟล์วีดิโอ
At line 5-7, the capture properties are acquired
บรรทัดที่ 10, หน้าต่างชื่อ test จะถูกสร้างขึ้น
At line 10, the window named test will be created
บรรทัดที่ 11 และ 17, ภาพจาก capture ถูกดึงและจัดเก็บไว้ใน img โดยใช้ cvQueryFrame
At line 11 and 17, the image is queried and stored in img by using cvQueryFrame
หมายเหตุ: มีอีกสองฟังก์ชั่นสำหรับการดำเนินการดึงภาพจาก capture คือ cvGrabFrame และ cvRetrieveFrame
Notice: There are cvGrabFrame and cvRetrieveFrame for this operation
สิ่งสำคัญ: ห้ามใช้ cvReleaseImage กับภาพที่ถูกดึงจาก capture
Important: Don't release the image from capture by using cvReleaseImage
บรรทัดที่ 13, แสดงภาพ img บนหน้าต่าง test
At line 13, img is shown on test window
บรรทัดที่ 14-16, สั่งให้รอการกดปุ่ม 30 มิลลิวินาที ถ้าปุ่มที่กดเป็นปุ่ม Esc (รหัสอักขระเป็น 27) ให้หยุดลูป
At line 14-16, it wait 30 millisecond for key pressing. If pressed key is Esc (ascii code equal to 27) then loop is stopped
บรรทัดที่ 19, ปลดปล่อยหน่วยความจำสำหรับ capture
At line 19, capture is released
No comments:
Post a Comment