添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

【opencv-python】视频处理(5)
一、cv2.VideoCapture.grab()函数
二、cv2.VideoCapture.retrieve()函数
三、与cv2.VideoCapture.read()函数的联系
1.联系
2.示例
一、cv2.VideoCapture.grab()函数
函数cv2.VideoCapture.grab()用来指向下一帧,其语法格式为:

retval = cv2.VideoCapture.grab()
1
如果该函数成功指向下一帧,则返回值 retval 为 True。

二、cv2.VideoCapture.retrieve()函数
函数cv2.VideoCapture.retrieve()用来解码,并返回函数cv2.VideoCapture.grab()捕获的视频帧。该函数的语法格式为:

retval, image = cv2.VideoCapture.retrieve()
1
image 为返回的视频帧,如果未成功,则返回一个空图像。
retval 为布尔类型,若未成功,返回False;否则返回True。
三、与cv2.VideoCapture.read()函数的联系
1.联系
我们可以把函数cv2.VideoCapture.read()理解为是由函数 cv2.VideoCapture.grab() 和 函数 cv2.VideoCapture.retrieve() 组成的。函数 cv2.VideoCapture.grab() 用来指向下一帧,函数 cv2.VideoCapture.retrieve() 用来解码并返回一帧。因此,可以使用函数cv2.VideoCapture.grab() 和 函数 cv2.VideoCapture.retrieve() 获取多个摄像头的数据。

2.示例
对于一组摄像头,可以使用如下代码捕获不同摄像头的信息:

success0 = cameraCapture0.grab()
success1 = cameraCapture1.grab()
if success0 and success1:
frame0 = cameraCapture0.retrieve()
frame1 = cameraCapture1.retrieve()
————————————————
版权声明:本文为CSDN博主「恒天1020」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_51424157/article/details/117574708

【opencv-python】视频处理(5)一、cv2.VideoCapture.grab()函数二、cv2.VideoCapture.retrieve()函数三、与cv2.VideoCapture.read()函数的联系1.联系2.示例一、cv2.VideoCapture.grab()函数函数cv2.VideoCapture.grab()用来指向下一帧,其语法格式为:retval = cv2.VideoCapture.grab()1如果该函数成功指向下一帧,则返回值 retval 为 一个字节是 8 位 2 进制数,计数周期是 2^8 = 256。 -1 的补码,就是 255 = 1111 1111 (二进制); -2 的补码,就是 254 = 1111 1110 (二进制); -128 的补码,就是 128 = 1000 0000 (二进制)。 ------------------- 所有负数的补码(或补数),都是正数。 而正数,已经就是正数,当然就不需要再代替了。 所以,【正数,根本就没有补码】。 ------------------- 求补码,就是这么简单。 原码反码取反加一,都是没有任何用处的。 计算机老师为了混碗饭吃,才没完没了的讲这些垃圾。 补码和原码的转化过程 做而论道_CS: 显而易见的现象,也是有规律的。 =======【划重点】======= 求补数的通用公式:  代替负数的正数 (即补数) = 负数 + 周期。 =================== 计算机用二进制,补数,就改称为 “补码”。 为什么改名? 这就是计算机专业老师故弄玄虚而已。 他们就是 “诚心不让你理解补码” ! 太简单了不好讲,只好编造一些难懂的词汇,以显高深。 原码反码补码符号位,都是无中生有,人为编造出来的。