树莓派opencv(基于Spyder进行编写)学习笔记三,读取、保存和显示视频的基本操作

一、开启摄像头进行实时显示

import cv2

#设置显示内容的框大小
cv2.namedWindow('video',cv2.WINDOW_NORMAL)
cv2.resizeWindow('video',640,480)

cap = cv2.VideoCapture(0)

while True:
    ret,frame = cap.read()
    if not ret:
        #判断是否读到数据,没有的话直接退出
        break
    cv2.imshow('video',frame)
    key = cv2.waitKey(10)
    if key == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

        在输入上述代码后即可在电脑(树莓派)上显示出相应大小的框,按q即可退出

二、播放已有的 视频

        如果你想将已有的视频进行播放,需要进行几步操作:

1.命名视频

        将视频通过电脑vnc传输到树莓派上,并进行好命名,我在此举例的命名为 test.mp4 ,同时需要记住你对视频的命名

2.路径放置

        将你想播放的视频命名好之后放置在这里

        

3.修改代码

        将代码进行修改,显示的内容不是摄像头而是已有的视频,同时由于存放在相同路径下,所以 ./文件名 即可,其余代码部分相同,点击运行开始播放,按 q 退出播放,同时可以设置播放速率 cv2.waitkey(num)的num设置的越大,播放的速率越慢,即视频会显得略微卡顿。值得注意的是,这里的参数只能是整数。

        值得注意的是,这里的本质仅仅是将视频的图片以一帧一帧的形式进行播放,播放的快了则形成我们肉眼所见的视频,也就是说,这个视频将会是静音的,没有任何的声音。

cap = cv2.VideoCapture(0)
#将 开启摄像头进行实时显示的这行代码 替换为下行代码
cap = cv2.VideoCapture('./test.mp4')

三、视频录制

        在这个程序之中,树莓派会将摄像头捕获的数据逐帧写入,并按我们的要求进行命名,同时文件将会储存在代码的同一路径下。视频的录制时长由我们自己决定,但不由代码控制,而是由我们按键q控制。按下q时退出录制同时结束程序。如果需要查看该视频的话,可以将保存的文件名 output1.mp4 替换入前面播放已有视频的程序中相应位置即可。

        需要注意的是,这里是以20帧的帧率进行保存,如果需要播放的速度与录制的速度相同的话,cv2.keywait(1000/帧率),即一秒播放20张图片,其他帧率同理。

import cv2

cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
# mpv4 是解包操作

vw = cv2.VideoWriter('output1.mp4',fourcc,20,(640,480))
#  output1.mp4是自定义的保存文件名    fourcc 是指定你所保存的格式 
#  20是帧率     640 480是摄像头的分辨率 与摄像头需匹配否则无法保存

while cap.isOpened():
    ret,frame = cap.read()
    if not ret:
        print('can not recive frame,Exting...')
        break
    
    vw.write(frame)
#逐帧写入视频

    cv2.imshow('frame',frame)
    if cv2.waitKey(1) == ord('q'):
        break
cap.release()
vw.release()
cv2.destroyAllWindows()

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值