python - 使用 Python、OpenCV 和 numpy 数组创建灰度视频

标签 python opencv numpy

我在 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 读取数据,我会发现它仍然存在。但是,编写框架似乎没有任何作用。没有正在制作文件或抛出任何错误。我做错了什么?提前致谢。

最佳答案

我从未使用过 OpenCV,但 FWIW 我通过将 numpy 数组传输到 mencoder(基于 VokkiCoder 的 VideoSinkhere )将它们写入视频文件。它速度非常快,而且似乎工作起来相当可靠,而且它还会写入 RGB 视频。

Here's a paste .它还包含一个 VideoSource 类,用于使用非常相似的方法将电影文件读取到 numpy 数组。

关于python - 使用 Python、OpenCV 和 numpy 数组创建灰度视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7716092/

相关文章:

python - 将整数拆分为 bin

numpy - xgboost 的 github 存储库中的自定义目标函数示例脚本中如何计算对数损失的梯度和粗麻布?

python - 使用 pydub 访问 ffprobe

python - 将连字符与换行符相结合

opencv - EDISON 和 cv PyrMeanShiftFiltering 有什么区别

python - OpenCV Python : Closed Contour Approximation For A Speech Bubble Shape

python - 多处理 - 具有多维 numpy 数组的共享内存

python - 将惰性求值转换为装饰器 (Python)

python - 如何检测空物体?

c++ - 我可以在 opencv 中使用哪个函数作为 matlab 中的 max()