在python中使用OpenCV 2.4.0创建视频

ATO*_*TOA 12 python video opencv

我正在尝试使用OpenCV 2.4.0in 创建视频python 2.7.2.但avi文件大小为0.

我的代码:

from cv2 import *

im1 = cv.LoadImage("1.jpg")

fps = 20
frame_size = cv.GetSize(im1)

#writer = cv.CreateVideoWriter("out.avi", CV_FOURCC('M', 'J', 'P', 'G'), fps, frame_size, True)

v = VideoWriter()

v.open("out.avi", cv.CV_FOURCC('F', 'M', 'P', '4'), fps, (800,600), True)
print v.isOpened()
Run Code Online (Sandbox Code Playgroud)

isOpened()总是回来false.

另一个尝试:

#!/usr/bin/env python
import sys

from cv2 import *

im1 = cv.LoadImage("1.jpg")

if not im1:
    print "Error loading image"

im2 = cv.LoadImage("2.jpg")

if not im1:
    print "Error loading image"

fps = 20
frame_size = cv.GetSize(im1)

writer = cv.CreateVideoWriter("out.avi", cv.CV_FOURCC('M', 'J', 'P', 'G'), fps, frame_size, True)

if not writer:
    print "Error in creating video writer"
    sys.exit(1)
else:
    cv.WriteFrame(writer, im1)
    cv.WriteFrame(writer, im2)

del writer
Run Code Online (Sandbox Code Playgroud)

没有错误,但输出为空.

我错过了什么?

Ayu*_*han 40

import cv2

img1 = cv2.imread('1.jpg')
img2 = cv2.imread('2.jpg')
img3 = cv2.imread('3.jpg')

height , width , layers =  img1.shape

video = cv2.VideoWriter('video.avi',-1,1,(width,height))

video.write(img1)
video.write(img2)
video.write(img3)

cv2.destroyAllWindows()
video.release()
Run Code Online (Sandbox Code Playgroud)

您想要做的简单代码.详情请点击这里

  • 我得到:AttributeError:'cv2.VideoWriter'对象没有属性'release' (7认同)

lam*_*345 6

找到了适合我的代码(产生彩色噪声):

writer = cv2.VideoWriter("output.avi", cv2.VideoWriter_fourcc(*"MJPG"), 30,(640,480))
for frame in range(1000):
    writer.write(np.random.randint(0, 255, (480,640,3)).astype('uint8'))
writer.release()
Run Code Online (Sandbox Code Playgroud)

来源:https : //github.com/ContinuumIO/anaconda-issues/issues/223#issuecomment-285523938