cv2.VideoWriter:要求一个元组作为大小参数,然后拒绝它

Tra*_*ams 9 python opencv video-processing cv2

我正在使用 OpenCV 4.0 和 Python 3.7 创建延时视频。

在构造 VideoWriter 对象时,文档说 Size 参数应该是一个元组。

当我给它一个元组时,它会拒绝它。当我尝试用其他东西替换它时,它不会接受它,因为它说参数不是元组。

当 Size 不是元组时:

out = cv2.VideoWriter('project.avi', 1482049860, 30, height, width)
SystemError: new style getargs format but argument is not a tuple
Run Code Online (Sandbox Code Playgroud)

当我将 Size 更改为元组时:

out = cv2.VideoWriter('project.avi', 1482049860, 30, (height, width))
TypeError: must be real number, not tuple
Run Code Online (Sandbox Code Playgroud)

我只想创建一个简单的 cv2.VideoWriter 对象。

Tra*_*ams 6

我试图使用以下方法从上传的视频中获取高度和宽度:

width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
Run Code Online (Sandbox Code Playgroud)

我把它改成:

width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
Run Code Online (Sandbox Code Playgroud)

现在我没有得到那个错误。它整体上还不起作用,但那个特定的错误不再存在。


小智 1

尝试更新到 opencv v4.1.0。那里没有看到这个问题。

否则尝试:

out = cv2.VideoWriter('project.avi', 1482049860, 30, frameSize=(height, width))
Run Code Online (Sandbox Code Playgroud)