我有一系列的图片,格式为*.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
(220, 500)
吗?如果不是,你需要通过编程进行调整大小(使用cv2.resize),以适应录制器的设置。此外,请检查颜色/灰度是否正确设置并适合你的图片,或者通过编程转换图片。 - Micka