相关文章推荐
会搭讪的饭盒  ·  linq to ...·  3 月前    · 
乐观的卤蛋  ·  Python/Matplotlib:使用co ...·  1 年前    · 
求醉的剪刀  ·  MD 组件之 ...·  1 年前    · 
宽容的莲藕  ·  Azure Databricks ...·  1 年前    · 

大部分这种情况都是因为 vw = cv2.VideoWriter(path, fourcc, output_fps, size) 的参数设置有问题,或者是 vw.write(frame) 的参数 frame 有问题,常见情况有:

  1. path 的父目录不存在,或者没有权限在 path 位置创建文件,或者 path 的扩展名不是有效的视频文件,或者 path 不是字符串
  2. fourcc = cv2.VideoWriter_fourcc(*FORMAT) 的参数 FORMAT 是无效格式,或者与 path 的扩展名格式不匹配
  3. output_fps 不是正浮点数或正整数
  4. size 不是有效的二元组 (width, height)
  5. 图片帧的尺寸 frame.shape[:2] size 规定大小不一致
大部分这种情况都是因为vw = cv2.VideoWriter(path, fourcc, output_fps, size)的参数设置有问题,或者是vw.write(frame)的参数frame有问题,常见情况有:path的父目录不存在,或者没有权限在path位置创建文件,或者path的扩展名不是有效的视频文件fourcc = cv2.VideoWriter_fourcc(*FORMAT)... 如果您希望从源代码编译绑定以启用其他模块(例如CUDA),请查看手动构建部分。 安装及使用 如果您已经安装了OpenCV先前/其他手动安装版本(=未通过pip进行安装)(例如,Python站点软件包根目录中的cv2模块),请在安装前将其删除以避免冲突。 确保您的pip版本为最新版本(最低支持版本为19.3): pip install --upgrade pip 。 用pip -V检查版本。 例如,Linux发行版通常附带非常旧的pip版本,这会引起很多意想不到的 问题 ,尤其是对于manylinux格式。 for dir in dir_name: dir_path = os.path.join(path, dir) img = imageio.imread(os.path.join(dir_path, os.listdir(dir_path)[0])) vid_writer = c
写在前面的话 OpenCV -Python为OpenCV提供了Python接口,从而使用户能够在Python中能够调用C / C ++,在保证易读性和运行上,使用OpenCV是计算机视觉中经典的专用库,其支持多语言,跨平台,功能强大。效率的预设下,实现所需的功能。 OpenCV-Python 教程是官方提供的文档,其内容全面,简单易懂,使得初学者能够快速上手使用。2014年段力辉在当时已翻译过OpenCV3.0,但时隔五年,如今的OpenCV4.1中许多函数和内容已经有所更新,因此有必要该官方文档再进行一次翻译。 翻译过程中难免有所疏漏,如发现错误,希望大家指出,谢谢支持。 OpenCV-P
最近因项目需要,刚刚开始接触OpenCV。使用 videoWriter 将处理完的 视频 帧转换为 视频 存到磁盘时 视频 大小总是为0 KB (mp4)或者6 KB (AVI)。查找资料都说是 视频 编码的 问题 ,但是换了好几种常见编码都无法 解决 问题 。后来在Stack Overflow找到一个关于vw.isOpened() 返回值为false(我的代码返回值为true)的回答,抱着试一试的心态 解决 问题 。代码如下:
解决 方案地址:https://www.douban.com/note/486083974/ 原因:cv2. VideoWriter ()第二个参数控制 视频 编码的格式, 教程上写的是out = cv2. VideoWriter ('output.avi',fourcc,20.0,(640,480)) 实际运行时生成的 视频 大小为0k,究其原因是运行环境没有相对应的 视频 编码器,故无法生成 视频 ,或者说第二
因为本人在做 视频 中的目标检测方面的 问题 ,所以避免不了要对 视频 进行处理。这个 问题 让我苦恼了两三天, 保存 不了avi格式的 视频 ,看了很多网上的办法,有的说 保存 成其他的比如MP4格式的就可以,可是我的电脑什么格式的都 保存 不上,程序是没有 问题 的,因为是ubuntu系统,那些针对windows的方法根本用不了。 查找 问题 原因,缺少编码库,需要安装ffmpeg,可是网上的安装办法都试了,还是不行,最后看到有的说...
因为在网上找了段写入 视频 的代码,发现最后 视频 文件大概只有 6 KB 左右。到网上搜了下,结果是输入 视频 帧的高度和宽度没有设置好。 下面代码是我随便整合的,能不能跑我不知道。关键部分就是 cv2. VideoWriter ('output.avi',fourcc, 20.0, (fwidth,fheight)) 中的 fwidth 和 fheight 要和你原始 视频 的帧宽度和帧高度一致 import n...
```python fourcc = cv2. VideoWriter _fourcc(*'XVID') out = cv2. VideoWriter ('output.avi', fourcc, 20.0, (640, 480)) - fourcc:是一个四字符代码,用于指定 视频 编解码器。例如,XVID表示使用Xvid编码器。 - out:是一个 VideoWriter 对象,用于写入 视频 文件。 - 第三个参数:是帧速率,表示 视频 的帧数。 - 第四个参数:是 视频 帧的大小,即宽度和高度。 3. 捕获 视频 帧并将其写入文件 ```python while True: ret, frame = cap.read() if ret == True: # 从 视频 捕获器中读取一帧 # process frame out.write(frame) else: break - cap.read():从 视频 捕获器中读取一帧。 - out.write(frame):将帧写入 视频 文件。 4. 释放资源 ```python cap.release() out.release() 完整代码示例: ```python import cv2 cap = cv2.VideoCapture(0) fourcc = cv2. VideoWriter _fourcc(*'XVID') out = cv2. VideoWriter ('output.avi', fourcc, 20.0, (640, 480)) while True: ret, frame = cap.read() if ret == True: # process frame out.write(frame) else: break cap.release() out.release()