Tic商业评论

关注微信公众号【站长自定义模块】,定时推送前沿、专业、深度的商业资讯。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

OpenCV视频读取与摄像头读取

0
回复
3386
查看
[复制链接]
已绑定手机

49

主题

4

回帖

1228

积分

管理员

积分
1228
QQ
来源: 2021-6-9 16:11:33 显示全部楼层 |阅读模式
一般情况下,我们需要摄像头进行读取图像,这里我们就需要了解读取摄像头的函数,以及读取视频的函数。

这里主要有两个函数:cv.VideoCapture(),cv.VideoWriter()
在获取图像时,首先要对函数cv.VideoCapture()进行实例化。它的参数可以是设备索引或视频文件的名称。设备号就是那个摄像头,查看设备号一般是使用函数cat  目录一般在/dev下面
实现代码如下:
import cv2 as cv

cap = cv.VideoCapture(0)

if not cap.isOpened():

    print("Cannot open camera")

    exit()

while True:

 # 逐帧捕获

    ret, frame = cap.read()

    # 如果正确读取帧,ret为True

    if not ret:

        print("Can't receive frame (stream end?). Exiting ...")

        break

    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

    # ## 显示结果帧e

    cv.imshow('frame', gray)

    if cv.waitKey(1) == ord('q'):

        break

 ## 完成所有操作后,释放捕获器

cap.release()

cv.destroyAllWindows()
上面例子是我调用的电脑摄像头。

从视频中读取图片,代码如下:
import numpy as np

import cv2 as cv

cap = cv.VideoCapture('vtest.avi')

while cap.isOpened():

    ret, frame = cap.read()

    # 如果正确读取帧,ret为True

    if not ret:

        print("Can't receive frame (stream end?). Exiting ...")

        break

    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

    cv.imshow('frame', gray)

    if cv.waitKey(1) == ord('q'):

        break

cap.release()

cv.destroyAllWindows()



下面为视频保存例子:
import numpy as np

import cv2 as cv

cap = cv.VideoCapture(0)

# 定义编解码器并创建VideoWriter对象

fourcc = cv.VideoWriter_fourcc(*'XVID')

out = cv.VideoWriter('output.avi', fourcc, 20.0, (640, 480))

while cap.isOpened():

    ret, frame = cap.read()

    if not ret:

        print("Can't receive frame (stream end?). Exiting ...")

        break

    frame = cv.flip(frame, 0)

 # 写翻转的框架

    out.write(frame)

    cv.imshow('frame', frame)

    if cv.waitKey(1) == ord('q'):

        break

 # 完成工作后释放所有内容

cap.release()

out.release()

cv.destroyAllWindows()
上面的几个代码就是OpenCV在读取摄像头和视频的例子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
电话咨询: 135xxxxxxx
关注微信