写入视频:

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. BZOJ 4644

    可以把修改当成删除再插入一个新的, 线性基不容易删除,就用线段树分治 好像手写的bitset在这里很慢 #include<bits/stdc++.h> using namespace st ...

  2. spring-boot-maven-plugin 安装本地jar 包

    本地使用nexus 进行maven仓库管理.项目deploy 引入之后,总是找不到jar中定义的class或者配置文件等. 从截图上可以看到虽然class文件是有的,但是引用的时候却是找不到的. Sp ...

  3. Java 整数型的进制间的互相转换

    /** * 整数型, 进制间的互相转换 */ public class IntConversion { public static void main(String[] args) { int num ...

  4. JavaFile I/O

    Java流类图结构: 流的概念和作用: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.及数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将抽象为各种类,方便更直观 ...

  5. [LeetCode] Random Point in Non-overlapping Rectangles 非重叠矩形中的随机点

    Given a list of non-overlapping axis-aligned rectangles rects, write a function pick which randomly ...

  6. 遍历文件后缀名 为 .java的文件

    import java.io.File; import java.io.FileFilter; //创建一个功夫类继承文件管理类 public  class FileFu implements Fil ...

  7. EASYUI combobox firefox 下取值为空的问题或不支持中文检索的问题

    输入中文包含数字 或者全部非中文是没问题的,这个是因为火狐浏览器输入中文输入法的时候 只能触发onkeyup而不能触发onkeydown的问题.而easyui渲染后赋值给隐藏input的过程需要 依赖 ...

  8. table表格固定前几列,其余的滚动

    我查了好多资料,只找到一个demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""h ...

  9. SQL 约束 索引

    --约束constraint--not null 非空约束create table demo01(empno number(4),ename varchar2(10) not null,job var ...

  10. shell脚本if语句的多种条件参数

    if语句有多种写法 [root@shell-yankerp sh]# [ -f file ] && echo "yes" || echo "no" ...