python摄像头采集视频,python获取摄像头
本文主要分享Python操作视频最基本的操作,包括视频的读取播放和视频的保存。文中的样例代码讲解的很详细,感兴趣的朋友可以看看。
00-1010看视频从摄像头看视频,从文件播放视频,保存视频前几天,有个读者在粉丝群问了一个问题:
Python如何提高视频清晰度和对比度?
之前没讲过用Python操作视频,不好意思告诉读者,现在还没讲。
想了两天,觉得应该补充一下这一块的内容。一方面可以增加自己研究的广度,另一方面可以为粉丝答疑解惑。
今天就来分享一下Python操作视频最基本的操作,包括视频的读取播放和视频的保存。
目录
要捕获视频,您需要创建一个VideoCapture对象。它的参数可以是设备索引或视频文件的名称。所以,我们阅读视频有两种方式,即从相机中阅读视频和从文件中阅读视频。
读取视频
对于带摄像头的设备,比如带摄像头的笔记本电脑,我们可以直接打开电脑的摄像头,读取摄像头的视频流。
importcv2ascv
cap=cv。视频捕获(0)
ifnotcap.isOpened():
打印( Cannotopencamera )
退出()
whileTrue:
#逐帧捕捉
ret,frame=cap.read()
如果帧被正确读取,则# ret为真
ifnotret:
破裂
#显示结果框
cv.imshow(框架,框架)
ifcv.waitKey(1)==ord(q):
破裂
#所有操作完成后,释放捕捉器
cap.release()
cv.destroyAllWindows()
这里,我向VideoCapture对象传入了参数0,它指示设备索引,设备索引是指定哪个摄像机的数字。通常情况下,会连接一个摄像头(就像我的情况)。所以我干脆传0。可以通过传递1来选择第二个摄像头,以此类推。
Cap.isopen()用于确定视频是否被捕获。
Cap.read()返回一个布尔值(真/假)。如果读框正确,则为真。因此,可以通过检查这个返回值来检查视频的结尾。
cv.imshow方法用于显示视频的帧。播放视频的原理是一帧一帧的播放。
最后,别忘了通过cap.release()释放俘虏。
运行这段代码,您会看到一个弹出窗口,可以实时播放计算机摄像头中的图像。
从相机中读取视频
与从摄像机捕捉相同,只是用视频文件名更改摄像机索引。
另外,在显示视频时,可以通过cv.waitKey()控制视频播放速度。如果设置太小,视频会很快,相当于倍速播放;如果太大,视频会变得很慢,相当于延迟播放。正常情况下,25毫秒就可以了。
importcv2ascv
cap=cv。视频捕获( video.mp4 )
whilecap.isOpened():
ret,frame=cap.read()
如果帧被正确读取,则# ret为真
ifnotret:
破裂
cv.imshow(框架,框架)
ifcv.waitKey(1)==ord(q):
破裂
cap.release()
cv.destroyAllWindows()
运行这段代码,您会看到一个弹出窗口来播放您选择的视频文件。
从文件中播放视频
从摄像机中读取视频,我们可以将视频保存在本地。我们捕捉视频并逐帧处理。
,如果我们想要保存这个视频,非常简单,只需使用cv.VideoWriter()
。
cv.VideoWriter()
有5个参数:
- 参数1:输出文件名,例如: output.mp4。
- 参数2:FourCC 代码,FourCC 是用于指定视频编解码器的4字节代码。
- 参数3:帧率的数量。
- 参数4:帧大小。
- 参数5:颜色标志。如果为 True,正常颜色输出,否则就是灰色图像输出。
关于FourCC
与视频格式的对照关系,我列举了一些常见的格式:
cv2.VideoWriter_fourcc(‘P’,‘I’,‘M’,‘1’) = MPEG-1 codec
cv2.VideoWriter_fourcc(‘M’,‘J’,‘P’,‘G’) = motion-jpeg codec --> mp4v
cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘2’) = MPEG-4.2 codec
cv2.VideoWriter_fourcc(‘D’, ‘I’, ‘V’, ‘3’) = MPEG-4.3 codec
cv2.VideoWriter_fourcc(‘D’, ‘I’, ‘V’, ‘X’) = MPEG-4 codec --> avi
cv2.VideoWriter_fourcc(‘U’, ‘2’, ‘6’, ‘3’) = H263 codec
cv2.VideoWriter_fourcc(‘I’, ‘2’, ‘6’, ‘3’) = H263I codec
cv2.VideoWriter_fourcc(‘F’, ‘L’, ‘V’, ‘1’) = FLV1 codec
保存视频的代码:
import cv2 as cvcap = cv.VideoCapture(0)
# 定义编解码器并创建VideoWriter对象
fourcc = cv.VideoWriter_fourcc(*MJPG)
out = cv.VideoWriter(output.mp4, fourcc, 20.0, (640, 480))
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
frame = cv.flip(frame, 1)
# 写翻转的框架
out.write(frame)
cv.imshow(frame, frame)
if cv.waitKey(1) == ord(q):
break
# 完成工作后释放所有内容
cap.release()
out.release()
cv.destroyAllWindows()
运行这段代码,你就可以在代码目录下找到一个output.mp4
的视频文件了。
上面几段代码中,如果想要退出视频操作,敲击键盘的q
就可以。
到此这篇关于基于Python实现捕获,播放和保存摄像头视频的文章就介绍到这了,更多相关Python摄像头视频内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。