opencv视频读写

本文介绍了如何使用OpenCV进行视频操作,包括打开摄像头、播放本地视频、录制视频,以及如何进行特定颜色(如蓝色)物体的追踪。在摄像头操作中,详细讲解了如何设置和获取摄像头属性,而在视频录制部分,提到了如何设置帧率和分辨率。颜色追踪部分则阐述了从BGR到HSV颜色空间转换,以及如何提取和显示特定颜色的物体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视频操作

目标
  • 打开摄像头并捕获照片
  • 播放本地视频,录制视频
import cv2
import numpy as np
import matplotlib.pyplot as ply

打开摄像头

cv2.VideoCapture(0): 创建VideoCapture,对象,0是摄像头编号

windows系统下,采用dshow流媒体机制时需要使用cv2.CAP_DSHOW作为cv2.VideoCapture(0, cv2.CAP_DSHOW)的参数

capture = cv2.VideoCapture(0)
cv2.namedWindow("thresh", cv2.WINDOW_AUTOSIZE)
while(True):
    ret, frame = capture.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    # 二值化
    # _, thresh = cv2.threshold(gray, 100, 255, cv2.THRESH_BINARY)
    # 获取捕获的分辨率
    # propId可以直接写数字,也可以用OpenCV的符号表示
    width, height = capture.get(3), capture.get(4)
    # print(width, height)

    # 以原分辨率的一倍来捕获
    capture.set(cv2.CAP_PROP_FRAME_WIDTH, width * 2)
    capture.set(cv2.CAP_PROP_FRAME_HEIGHT, height * 2)
    cv2.imshow('frame', frame)
    # 灰度图
    # cv2.imshow('gary', gray)
    # cv2.imshow('thresh', thresh)
    if cv2.waitKey(1) == 27:
        break
  • capture.read()函数返回的第一个参数是一个布尔值,表示当前这一帧是否获取正确。
  • capture.get()可以获取摄像头的一些属性
  • capture.set()可以修改这些属性值
参数 含义
0:CV_CAP_PROP_POS_MSEC 视频文件的当前位置(毫秒)
1:CV_CAP_PROP_POS_FRAMES 基于0的索引的下一个要解码/捕获的帧。
CV_CAP_PROP_POS_AVI_RATIO 视频文件的相对位置:0-胶片开始,1-胶片结束。
CV_CAP_PROP_FRAME_WIDTH 视频流中帧的宽度。
CV_CAP_PROP_FRAME_HEIGHT 视频流中帧的高度。
CV_CAP_PROP_FPS 帧速率。
CV_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值