Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OpenCV3计算机视觉——处理文件、摄像头

OpenCV3计算机视觉——处理文件、摄像头

原创
作者头像
用户7180691
修改于 2020-04-10 02:13:16
修改于 2020-04-10 02:13:16
7100
举报

img=np.zeros((3,3),dtype=np.uint8)

# print(img.shape)

img=cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

print(img.shape)

import cv2

import numpy as np

import os

randomByteArray=bytearray(os.urandom(120))

print(randomByteArray)

flatNumpyArray=np.array(randomByteArray)

print(flatNumpyArray)

grayImage=flatNumpyArray.reshape(300,400)

cv2.imwrite('RandomGray.png',grayImage)

bgrImage=flatNumpyArray.reshape(100,400,3)

cv2.imwrite('RandomColor.png',bgrImage)

import cv2

import numpy as np

img=cv2.imread('cat.jpg')

img[0,0]=[255,255,255]

cv2.imshow('img',img)

cv2.waitKey(0)

cv2.destroyAllWindows()

print(img.item(150,120,0))

img.itemset((150,120,0),255)

print(img.item(150,120,0))

img[:,:,2]=-2

cv2.imshow('img',img)

cv2.waitKey(0)

cv2.destroyAllWindows()

my_roi=img[0:100,0:100]

img[300:400,300:400]=my_roi

cv2.imshow('img',img)

cv2.waitKey(0)

cv2.destroyAllWindows()

print(img.shape)

print(img.size)

print(img.dtype)

import cv2

videoCapture=cv2.VideoCapture('test.avi')

#得到视频的帧率

fps=videoCapture.get(cv2.CAP_PROP_FPS)

#得到视频的宽和高

size=(int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))

#创建视频流写入对象,VideoWriter_fourcc为视频编解码器,fps为帧播放速率,size为视频帧大小

videoWiter=cv2.VideoWriter('MyOutputVid.avi',cv2.VideoWriter_fourcc('I','4','2','0'),fps,size)

#fourcc意为四字符代码(Four-Character Codes),顾名思义,该编码由四个字符组成,下面是VideoWriter_fourcc对象一些常用的参数,注意:字符顺序不能弄混

#cv2.VideoWriter_fourcc('I', '4', '2', '0'),该参数是YUV编码类型,文件名后缀为.avi

#cv2.VideoWriter_fourcc('P', 'I', 'M', 'I'),该参数是MPEG-1编码类型,文件名后缀为.avi

#cv2.VideoWriter_fourcc('X', 'V', 'I', 'D'),该参数是MPEG-4编码类型,文件名后缀为.avi

#cv2.VideoWriter_fourcc('T', 'H', 'E', 'O'),该参数是Ogg Vorbis,文件名后缀为.ogv

#cv2.VideoWriter_fourcc('F', 'L', 'V', '1'),该参数是Flash视频,文件名后缀为.flv

success,frame=videoCapture.read()

while success:

videoWiter.write(frame)

success,frame=videoCapture.read()

#以上是书上的代码

cv2.imshow('capture', frame)

#等候50ms,播放下一帧,或者按q键退出

if cv2.waitKey(50) &0xFF ==ord('q'):

break

#释放视频流

videoCapture.release()

#关闭所有窗口

cv2.destroyAllWindows()

import cv2

cameraCapture=cv2.VideoCapture(0)

#设置视频的帧率,网上在线的视频一般都是30帧,所以设置fps为30

fps=30 #an assumption

#得到视频的宽和高

size=(int(cameraCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cameraCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))

#创建视频流写入对象,VideoWriter_fourcc为视频编解码器,fps为帧播放速率,size为视频帧大小

videoWiter=cv2.VideoWriter('MyOutputVid.avi',cv2.VideoWriter_fourcc('I','4','2','0'),fps,size)

success,frame=cameraCapture.read()

#该程序是摄像头捕获的10秒的视频,所以帧数为10*fps-1

numFrameRemaining=10*fps-1

while success and numFrameRemaining>0:

videoWiter.write(frame)

success,frame=cameraCapture.read()

numFrameRemaining-=1

cameraCapture.release()

学习过程中有疑问但已解决的问题:

帧率:每秒显示帧数(Frames per Second,简:FPS)或“赫兹”(Hz)。

疑问:

这两个语句到底有什么区别?搞不懂
这两个语句到底有什么区别?搞不懂

解决啦!第一句就是在while前调用一下,以便读取第一帧,判断视频是否读取成功,后面是在while循环里不断的读取后续的帧,相当于读一帧写一帧。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python+Opencv读取高帧率USB摄像头问题
前几次使用Python+Opencv,对网络摄像头,USB摄像头进行数据采集,基本流程已经跑通,没什么大问题。最近项目中使用了一款120fps/s的USB摄像头,但是调试好代码运行后,问题来了。
虫无涯
2023/01/17
3.2K0
用 dlib 计算人脸68个关键点
dlib 是较流行的人脸识别的开源库,使用c++编写,里面包含了许多的机器学习算法,。其官网链接是 dlib C++ Library - Machine Learning
用户6021899
2022/11/18
2K0
用 dlib 计算人脸68个关键点
使用OpenCV调用摄像头,显示图片,获取视频并保存
友情链接:https://blog.csdn.net/u012348774/article/details/78255130
种花家的奋斗兔
2020/11/13
4.3K0
自建OBS推流服务器
官方下载: https://obsproject.com/zh-cn/download
R0A1NG
2022/02/19
11.1K1
自建OBS推流服务器
Python 调用摄像头进行人脸识别
之前发过一篇关于对图片上人脸检测的博客。 链接:https://blog.csdn.net/weixin_43582101/article/details/88702254
李玺
2021/11/22
1.7K0
Python 调用摄像头进行人脸识别
OpenCV 读写视频
下面是完整的代码,里面额外添加了一些边缘检测,求帧差,镜像,添加文字等功能。(上传的动图像素差是腾讯的锅,压缩得太厉害)
用户6021899
2019/08/28
2K0
OpenCV 读写视频
cv2.VideoWriter_fourcc()
#环境:opencv 3.4.0 python 3.5.2#读取视频import cv2cap = cv2.VideoCapture('video.avi')#读取摄像头,0为摄像头索引,当有多个摄像头时,从0开始编号cap = cv2.VideoCapture(0)#从视频或摄像头中读取一帧(即一张图像),返回是否成功标识ret(True代表成功,False代表失败),img为读取的视频帧ret,frame = cap.read()----#完整的读取视频流并播放视频流代码 # -*- coding
狼啸风云
2019/09/19
15.5K0
OpenCVSharp学习笔记(三)显示摄像头视频和媒体视频&录制
视频录制的方法也比较简单,只需要使用VideoWriter类进行录制,将获取到的每帧画面放入,并设置路径和输出格式即可
MaybeHC
2024/04/23
6800
OpenCVSharp学习笔记(三)显示摄像头视频和媒体视频&录制
opencv调取摄像头录制
淼学派对
2023/10/14
3380
opencv调取摄像头录制
opencv 操作计算机摄像头
文章目录 opencv 操作计算机摄像头 opencv 操作计算机摄像头 # -*- coding:utf-8 -*- # /usr/bin/python ''' @Describe: @Evn : @Date : 2019-08-14 09:25 ''' import cv2 import numpy as np # 创建相机 def camera_video(time): cap = cv2.VideoCapture(0) fourcc = cv2.Vide
AI拉呱
2021/01/14
4250
03: 打开摄像头
学习打开摄像头捕获照片、播放本地视频、录制视频等。图片/视频等可到文末引用处下载。
CodecWang
2021/12/07
2K0
opencv︱图片与视频的读入、显示、写出、放缩与基本绘图函数介绍
opencv中读入、显示、写出图片:cv2.imread(), cv2.imshow(), cv2.imwrite()
悟乙己
2019/05/26
5.8K0
OpenCV与图像处理(一)
以下代码均在python3.6,opencv4.2.0环境下试了跑一遍,可直接运行。
Must
2020/07/28
7270
OpenCV与图像处理(一)
OpenCV从入门到精通:安装、配置、依赖、基本语法与常用方法详解
本文旨在为计算机视觉初学者提供一份详尽的OpenCV入门指南。从OpenCV的安装配置、依赖项安装,到基本语法和常用方法的解析,我们力求以通俗易懂的方式,配合丰富的代码示例,帮助读者快速掌握OpenCV的核心概念和技术,并为后续深入学习打下坚实的基础。无论您是Python爱好者还是C++开发者,都能从中受益。最后,欢迎大家加我的微信一起交流学习!
默 语
2025/05/12
3140
保存rtsp视频流
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/02
2.3K0
opencv之打开摄像头、边缘检测
许多工业相机或某些视频I / O设备不为操作系统提供标准的驱动程序接口。因此,您不能在这些设备上使用VideoCapture或VideoWriter。
全栈程序员站长
2022/07/23
3.7K0
opencv之打开摄像头、边缘检测
Python生成字符视频
在之前也写过生成字符视频的文章,但是使用的是命令行窗口输出,效果不是很好,而且存在卡顿的情况。于是我打算直接生成一个mp4的字符视频。大致思路和之前一样:Python20行代码实现视频字符化。
ZackSock
2021/05/18
6120
Python生成字符视频
基于OpenCv-Python的视频组合
step0:概述 动机:手头有数个20秒左右的短视频(守望先锋最佳镜头),期望能组合成一个长视频 英雄不朽,图片来源http://upload-images.jianshu.io/upload_ima
月见樽
2018/04/27
1.9K0
基于OpenCv-Python的视频组合
视频存储
算法:视频存储是读取视频写入存储文件的过程。其中,VideoWriter_fourcc类用于定义视频文件的写入格式,其参数有多种格式可选。
裴来凡
2022/05/29
3.6K0
视频存储
计算机视觉:1.1~2.5 初等概念及OpenCV的使用
现在说的机器视觉(Machine Vision)一般指计算机视觉(Computer Vision),简单来说就是研究如何使机器看懂东西。就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更合适人眼观察或传送给仪器检测的图像。
DioxideCN
2022/08/05
1.4K0
计算机视觉:1.1~2.5 初等概念及OpenCV的使用
相关推荐
Python+Opencv读取高帧率USB摄像头问题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档