zoukankan      html  css  js  c++  java
  • OpenCV学习笔记(二)

    写入视频:

    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()
  • 相关阅读:
    beego——过滤器
    beego——session控制
    Differentiation 导数和变化率
    验证码识别
    pip 下载慢
    ORB
    决策树
    机器学习第二章 配对网站
    K-近邻算法
    ubuntu下安装配置OpenCV
  • 原文地址:https://www.cnblogs.com/zhengmeisong/p/10609559.html
Copyright © 2011-2022 走看看