什么时候使用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()
5条答案
按热度按时间e4yzc0pl1#
ret
是一个布尔变量,如果帧可用,则返回true。frame
是基于显式或隐式定义的默认每秒帧数捕获的图像阵列向量ukdjmx9f2#
“Frame”将获取相机中的下一帧(通过“cap”)。“Ret”将从获取相机帧中获取返回值,true或false。我建议您阅读OpenCV教程(非常详细),例如面部识别:http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html
hiz5n14c3#
这在
cap.read
文档中有解释。由于cap
是VideoCapture
对象,使用Google的“VideoCapture opencv Read”将立即引导您到openCV的文档。read
函数文档将指向grab
,它将详细解释retval
:方法/函数从视频文件或相机中抓取下一帧并返回...
az31mfrm4#
请参阅文档here。
上面写着:
cap.read()
返回一个bool(True/False)。如果帧被正确读取,它将是True。所以你可以通过检查这个返回值来检查视频的结束。kg7wmglp5#
ret:ret用于检查网络摄像头是否可用(即)如果我们在运行OpenCV程序时打开摄像头应用程序,ret将识别网络摄像头现在不可用,因此它将返回False并通过错误。
frame:frame用于存储视频的各个像素的数组值