写入视频:

import sys, os
import cv2
imgDir = '/Users/xxx/salient/'
videoName = 'vname'
fps = 30 #帧频
output_size = (720,1280) #先宽,后高
videoWriter = cv2.VideoWriter(videoName + '_out.avi',cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), fps, output_size) #不指定isColor,默认为1
for i in xrange(215):
imgname = imgDir+videoName+"_s"+str(i)+".jpg"
im = cv2.imread(imgname)
videoWriter.write(im)
videoWriter.release()

参考python-opencv将图片 / 视频帧写为视频,基本就是这样,但写出来的视频无论如何都是6KB,要注意图片格式和VideoWriter里指定的格式要一致,但我的不是这个原因。

因为读入的是显著性图,长这样:

自以为是灰度图(一个错误导致的第二个错误,保存的时候应该选择bmp格式),用了:

videoWriter = cv2.VideoWriter(videoName + '_out.avi',cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), fps, output_size,isColor=False) #isColor=0表示单色图

但是jpg格式是三通道的,如果用jpg保存灰度图,结果是b g r三个通道保存同样的像素值,因此去掉VideoWriter里面的isColor=False或把三个通道分离以后保存任意通道均可。

代码:

import cv2
imgDir = '/Users/xxx/salient/'
videoName = 'vname'
fps = 30
output_size = (720,1280)
videoWriter = cv2.VideoWriter(videoName + '_out.avi',cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), fps, output_size, isColor=False) #指定写单通道视频
for i in xrange(215):
imgname = imgDir+videoName+"_s"+str(i)+".jpg"
im = cv2.imread(imgname)
b,g,r = cv2.split(im) #bgr通道分离
videoWriter.write(b) #任意写入一个通道即可
videoWriter.release()

OpenCV学习笔记(二) - 写入视频、jpg格式的更多相关文章

  1. OpenCV学习笔记二:OpenCV模块一览

    注:本系列博客基于OpenCV 2.9.0.0 一,一览图: 二,模块: /* 基础库 */ 1,opencv_core(链接) ,opencv最基础的库.包含exception,point,rect ...

  2. 【opencv学习笔记二】opencv3.4.0组件结构说明

    在学习opencv使用之前我们先来看一下opencv有哪些组件结构.至于OpenCV组件结构的研究方法, 我们不妨管中窥豹,通过opencv安装路径下include目录里面头文件的分类存放,来一窥Op ...

  3. OpenCV学习笔记二十:opencv_ts模块

    一,简介: OpenCV测试库,用于单元测试.

  4. opencv学习笔记二

    1,读取照片(imread()) 2,处理照片(cvtcolor()) 3,命名窗口(namewindow()) 4,显示照片(imshow()) 5,保存照片(imwrite()) #include ...

  5. opencv学习笔记(二)寻找轮廓

    opencv学习笔记(二)寻找轮廓 opencv中使用findContours函数来查找轮廓,这个函数的原型为: void findContours(InputOutputArray image, O ...

  6. OpenCV 学习笔记 07 目标检测与识别

    目标检测与识别是计算机视觉中最常见的挑战之一.属于高级主题. 本章节将扩展目标检测的概念,首先探讨人脸识别技术,然后将该技术应用到显示生活中的各种目标检测. 1 目标检测与识别技术 为了与OpenCV ...

  7. opencv学习笔记(七)SVM+HOG

    opencv学习笔记(七)SVM+HOG 一.简介 方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子 ...

  8. opencv学习笔记(一)IplImage, CvMat, Mat 的关系

    opencv学习笔记(一)IplImage, CvMat, Mat 的关系 opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,M ...

  9. OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法

    函数中的代码是部分代码,详细代码在最后 1 cv2.boundingRect 作用:矩形边框(boundingRect),用于计算图像一系列点的外部矩形边界. cv2.boundingRect(arr ...

随机推荐

  1. Java面试宝典2018

    转 Java面试宝典2018 一. Java基础部分…………………………………………………………………………………….. 7 1.一个“.java”源文件中是否可以包括多个类(不是内部类)?有什么限制 ...

  2. .NET 文件格式相关开源项目

    在过去的2年里,我已确定把文件格式作为我的主要研究课题之一,NPOI就是在这样的研究课题下的产物.尽管从严格意义上讲NPOI只是POI的.NET版本,并不是我创造的,但是在开发过程中,我对OLE2有了 ...

  3. __x__(15)0906第三天__超链接

    HTML5 中的新属性. 属性 值 描述 charset char_encoding HTML5 中不支持.规定被链接文档的字符集. coords coordinates HTML5 中不支持.规定链 ...

  4. PC_官网设计

    1. 头部 header 固定 的两种方式 固定定位 内容区 包裹,使用 overflow: hidden; 2. 动画第二次起效 缺少动画初始参数 3. 隐藏元素 display: none; vi ...

  5. Android 小票打印USB

    第一步USB通信: Usb设备有两种,Host与Accessory 简单来说是主模式与从模式,主模式则android设备给外设供电,反之,外设给android设备充电,对于小票打印,使用的是Host模 ...

  6. shell变量的使用及输入输出

    1.shell 中变量名可以由字母,数字,下划线组成,但数字不能作为变量名的第一个数字 2.通过赋值符合“=” 来定义一个变量的值 如 myname='zhangjunjie'  #字符串类型,不解析 ...

  7. javascript的数组之includes()

    includes()方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false. var array1 = [1, 2, 3]; console.log(array ...

  8. Selenium 3 学习小结

    4个类+常用的46个方法 从以下知识内容对selenium 3自动化框架进行初步学习: 1.安装selenium pip install selenium pip list 2.驱动.关闭浏览器 首先 ...

  9. 微信小程序弹出操作菜单

    微信小程序弹出操作菜单 比如在页面上放一个按钮,点击按钮弹出操作菜单,那么在按钮的 bindtap 事件里,执行下面的代码即可: wx.showActionSheet({ itemList: ['A' ...

  10. workerman 安装event 扩展

    2018年7月31日10:07:47 一些小技巧 命令行直接运行PHP代码 php -r "phpinfo();" 交互模式运行PHP php -a PHP脚本作为shell脚本运 ...