我在使用 OpenCV 的视频创建功能时遇到了一个小问题。
对于相同的图像,我会根据我想要的输出大小得到一个奇怪的输出。
这是我可以获得的结果的示例。
http://www.youtube.com/watch?v=1wm8VjyfdyA&feature=youtu.be
我在不同的计算机上尝试了几组不同的图像。它似乎在 Windows 上运行良好,我对 Ubuntu 软件包(当前 2.3.1-7)中附带的 Opencv 有问题。
由于这个问题在我的 Windows 上无法重现,我猜它要么在 2.4 中修复,要么特定于 Linux。
这是突出问题的(python)测试代码:
import os
import cv
in_dir = "../data/inputs/sample-test"
out = "output.avi"
# loading images, create Guys and store it into guys
frameSize = (652, 498)
#frameSize = (453, 325)
fourcc = cv.CV_FOURCC('F', 'M', 'P', '4')
my_video = cv.CreateVideoWriter(out,
fourcc,
15,
frameSize,
1)
for root, _, files in os.walk(in_dir):
for a_file in files:
guy_source = os.path.join(in_dir, a_file)
print guy_source
image = cv.LoadImage(guy_source)
small_im = cv.CreateImage(frameSize,
image.depth ,
image.nChannels)
cv.Resize(image, small_im, cv.CV_INTER_LINEAR)
cv.WriteFrame(my_video, small_im)
print "Finished !"
我担心的是,根据输出大小,视频很好(例如,652、498 可以)。无论我使用什么编解码器,行为都是一样的。
如果不是修复,我想了解更多有关此错误原因的信息。由于我想为 Ubuntu 发布,我最好使用他们的打包系统并保留 2.3 一段时间。
所以我想知道如何通过选择受过教育的尺寸来明智地解决问题。
欢迎任何信息
谢谢 !