Menu

Friday, June 7, 2013

[OpenCV] วิธีการดึงภาพจากกล้อง
[OpenCV] How to Capture Image From Camera

  1. CvCapture* capture=cvCreateCameraCapture(0);
  2. IplImage* img;
  3. char c;

  4. cvNamedWindow("test",1);
  5. while(true){
  6.   img=cvQueryFrame(capture);
  7.   cvShowImage("test",img);
  8.   c=cvWaitKey(30);
  9.   if(c==27)
  10.     break;
  11. }
  12. cvReleaseCapture(&capture);

บรรทัดแรก, ประกาศ capture และตั้งค่าให้รับภาพจากกล้อง
At line 1, capture is declared and initiated to camera capture

บรรทัดที่ 2, ประกาศ img สำหรับเก็บภาพที่ได้จาก capture
At line 2, img is declared for store an image from capture

บรรทัดที่ 5, หน้าต่างชื่อ test จะถูกสร้างขึ้น
At line 5, the window named test will be created

บรรทัดที่ 7, ภาพจาก capture ถูกดึงและจัดเก็บไว้ใน img โดยใช้ cvQueryFrame 
At line 7, 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
ImportantDon't release the image from capture by using cvReleaseImage

บรรทัดที่ 8, แสดงภาพ img บนหน้าต่าง test
At line 8, img is shown on test window

บรรทัดที่ 9-11, สั่งให้รอการกดปุ่ม 30 มิลลิวินาที ถ้าปุ่มที่กดเป็นปุ่ม Esc (รหัสอักขระเป็น 27) ให้หยุดลูป
At line 9-11, it wait 30 millisecond for key pressing. If pressed key is Esc (ascii code equal to 27) then loop is stopped

บรรทัดที่ 13, ปลดปล่อยหน่วยความจำสำหรับ capture 
At line 13, capture is released

No comments:

Post a Comment