繁体   English   中英

OpenCV中的图像序列到视频

[英]Sequence of images to video in OpenCV

我有* .tif格式的一系列图像,我想用来制作视频。 我在Python 2.7中使用OpenCV 3.1.0。 以下是我的代码片段:

import cv2
import numpy as np

nIMAGES = 10
files = glob.glob(DIR + '\\' + tpname +'\\*.tif' )
image_stack = np.empty((500, 220, nIMAGES))
mov = DIR + '\\' + tpname + '\\' + tpname + '_mov.avi'
MOV = cv2.VideoWriter(filename=mov, fourcc=cv2.VideoWriter_fourcc('F', 'M', 'P', '4'), fps=2, frameSize=(220, 500)) # frame size is 220 x 500

for i in np.arange(0, nIMAGES):
    print 'Working on: ' + files[i][-14:-4]
    image = cv2.imread(files[i], 0)
    crop_image = image[50:550, 252:472] #crop y:h, x:w

 # now let's create the movie:
    crop_image = cv2.applyColorMap(crop_image, cv2.COLORMAP_JET)
    MOV.write(crop_image)

MOV.release()

当我运行此代码时,我创建一个0 Kb的AVI文件(它没有保存任何东西)。

我相信我错过了像frame = cv2.VideoCapture.read(crop_image)类的东西,在这种情况下我会将写行转换为MOV.write(frame) 但是,我得到一个AttributeError ,因为VideoCapture.read不是属性。

我使用这个OpenCV网页作为我的向导: http//docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html

我必须进行两项更改才能使其正常工作:

  1. 遵循这个问题的建议: OpenCV 2.4 VideoCapture无法在Windows上工作我必须将fmpeg.dll文件复制到我的Python目录( C:\\Anaconda )。 我还必须重新标记文件夹以包含我的opencv(3.1.0)版本,例如opencv_ffmpeg310_64.dll
  2. 我需要做的另一个改变是将我的编解码器改为MJPG

非常感谢@Micka帮助我很快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM