摄像头和视频的读取和写入

本文总结了OpenCV对于摄像头的使用以及视频的读取和写入方法,涵盖了从OpenCV1+到2+的不同版本。重点介绍了1.0版本中使用指针的简单实用特性,以及在不同版本中视频操作的基本步骤。

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

总结一下视频的读取和写入,opencv1+和opencv2+以后的版本都总结一下。

先总结一下opencv1+的用法,现在使用的opencv都是2.0以后了,不过1.0版本是使用指针,用起来确实感觉很爽,简单实用。有人不喜欢1.0+的释放控件,我觉得这是个好习惯。

视频读入:

int main(int argc,char* argv[] )
{
	//argv[1] input video file
	//argv[2] name of new output file
	argv[1] = ".../12.mp4";
	CvCapture* capture = NULL;
	capture = cvCreateFileCapture(argv[1]);
	if (!capture)
		return - 1;
	IplImage *bgr_frame = cvQueryFrame(capture);
	//帧率,保证播放的正常速度
	double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
	//大小
	CvSize size = cvSize(
		(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH),
		(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT));
	while ((bgr_frame = cvQueryFrame(capture)) != NULL)//(bgr_frame = cvQueryFrame(capture))!=NULL
	{
		cvNamedWindow("capture", 1);
		cvShowImage("capture", bgr
在Python中使用OpenCV(Open Source Computer Vision Library)调用摄像头读取视频通常涉及以下几个步骤: 1. **安装OpenCV**: 首先确保已经安装了OpenCV,如果没有,你可以通过pip安装: ``` pip install opencv-python ``` 2. **导入必要的库**: 开始程序时需要导入cv2(OpenCV的主模块)time(用于暂停读取): ```python import cv2 import time ``` 3. **打开摄像头**: 使用`cv2.VideoCapture()`创建一个VideoCapture对象,并传入0(表示内置摄像头,也可以指定文件路径读取视频): ```python cap = cv2.VideoCapture(0) ``` 4. **检查设备连接**: 确保摄像头已连接,检查是否成功打开: ```python if not cap.isOpened(): print("Error opening camera.") exit() ``` 5. **读取帧**: 使用`cap.read()`函数连续读取帧,返回值是一个元组,包含当前帧的布尔状态实际的图像数据: ```python while True: ret, frame = cap.read() # 如果ret为False,则说明到达视频结尾或出错 if not ret: break ``` 6. **显示帧**: 可以使用OpenCV的imshow()函数展示帧: ```python cv2.imshow('Camera Feed', frame) # 按 'q' 键退出 if cv2.waitKey(1) & 0xFF == ord('q'): break ``` 7. **释放资源**: 最后关闭摄像头窗口释放内存: ```python cap.release() cv2.destroyAllWindows() ``` 如果你想保存视频,可以使用`cv2.VideoWriter()`创建一个VideoWriter对象,然后将每一帧写入到文件中: ```python # 规定视频编码,帧率等参数 fourcc = cv2.VideoWriter_fourcc(*'mp4v') out = cv2.VideoWriter('output.mp4', fourcc, 30, (frame.shape[1], frame.shape[0])) # 写入帧 for frame in frames_to_save: out.write(frame) # 关闭视频文件 out.release() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值