我有* .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
答案 0 :(得分:1)
我必须做两处修改才能让它发挥作用:
fmpeg.dll
文件复制到我的Python目录(C:\Anaconda
)。我还必须重新标记文件夹以包含我的opencv(3.1.0)的版本,例如opencv_ffmpeg310_64.dll
非常感谢@Micka帮助我很快。