【发布时间】:2011-10-10 16:53:44
【问题描述】:
我在 OpenCV 2.3.1 中使用 32 位 python。我正在尝试将二维 numpy 数组写入 opencv 视频编写器。我的代码类似于:
import cv2 as cv
import numpy as np
fourcc = cv.cv.CV_FOURCC('D', 'I', 'V', 'X')
writer = cv.cv.CreateVideoWriter("test.mpg", courcc, 10, (256,256))
if not writer:
print "Error"
sys.exit(1)
for ii in range(numberOfFrames):
numpy_image = GetFrame(ii) #Gets a random image
cv_image = cv.cv.CreateImage((256,256), cv.IPL_DEPTH_8U, 1)
cv.cv.SetData(cv_image, numpy_image.tostring(), numpy_array.dtype.itemsize*1*256)
cv.cv.WriteFrame(writer, cv_image)
del writer
我可以看到我的 numpy 数组中有适当的数据。如果我尝试从 iplImage 读取数据,我会发现它仍然存在。但是,编写框架似乎没有做任何事情。没有文件被制作或抛出任何错误。我可能做错了什么?提前致谢。
【问题讨论】:
-
这个 sn-p 看起来不完整。
GetFrame来自哪里(应该是cv.cv.GetFrame)?您对此代码的导入是什么? -
GetFrame 是一个单独的函数,我从中获取图像。它与 cv.cv.GetFrame() 无关。
-
面临与 cv2 和 numpy 矩阵类似的问题,它没有给我任何错误,但它没有将任何内容写入文件!!!!