ret和frame在这里意味着什么?

时间:2015-02-27 19:52:56

标签: python opencv image-processing numpy

什么时候使用ret和frame?这些变量有什么价值? 我刚开始使用图像处理,所以如果有更多更改,请告诉我。

谢谢

import numpy as np
import cv2
cap = cv2.VideoCapture('Sample Lap HUL_OB_1.56.641_Graphic.mpg')

# Define the codec and create VideoWriter object
# fourcc = cv2.cv.CV_FOURCC(*'MJPG')
out = cv2.VideoWriter('output.mpg',0, 60.0, (640,480))
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
         # frame = cv2.flip(frame,0)
         # write the flipped frame
        out.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
             break
     else:
        break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()

4 个答案:

答案 0 :(得分:7)

"帧"将获得相机中的下一帧(通过" cap")。 "惩戒"从获取相机帧获得返回值,或者为假。我建议你阅读OpenCV教程(非常详细),就像这个用于人脸识别的教程: http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html

答案 1 :(得分:1)

cap.read文档中对此进行了解释。由于cap是一个VideoCapture对象,因此使用Google" VideoCapture opencv Read"将立即引导您访问openCV的文档。 read函数文档会指向grab,它会详细解释retval

  

方法/功能从视频文件或相机中抓取下一帧并返回...

答案 2 :(得分:0)

请查看文档here

它说:

  

cap.read()返回布尔值(True / False)。如果正确读取框架,   这将是真实的。因此,您可以通过检查以下内容来检查视频的结尾   返回值。

答案 3 :(得分:0)

ret, frame = cap.read()
  1. ret是一个布尔型变量,如果框架可用,则返回true。
  2. frame是根据显式或隐式定义的每秒默认帧捕获的图像阵列矢量