首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cv2.VideoWriter:请求一个元组作为大小参数,然后拒绝它

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

Stack Overflow用户
提问于 2019-05-30 10:12:29
回答 3查看 2K关注 0票数 9

我正在使用Python4.0和OpenCV 3.7创建一个时间流逝的视频。

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

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

当大小不是元组时:

代码语言:javascript
复制
out = cv2.VideoWriter('project.avi', 1482049860, 30, height, width)
SystemError: new style getargs format but argument is not a tuple

当我将大小更改为元组时:

代码语言:javascript
复制
out = cv2.VideoWriter('project.avi', 1482049860, 30, (height, width))
TypeError: must be real number, not tuple

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

EN

回答 3

Stack Overflow用户

发布于 2019-05-31 04:23:07

我试着从上传的视频中获取高度和宽度,使用:

代码语言:javascript
复制
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)

我将其更改为:

代码语言:javascript
复制
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

现在我不明白这个错误了。它还不能作为一个整体工作,但是那个特定的错误已经不存在了。

票数 6
EN

Stack Overflow用户

发布于 2020-04-09 18:29:19

我遇到了同样的情况,以下是我的解决方案:

似乎cv2.VideoWriter()倾向于“丢弃”类型错误的参数。在我的例子中,我使用pathlib.Path作为第一个输出文件名参数,如下所示:

代码语言:javascript
复制
p=Path('project.avi')

out = cv2.VideoWriter(p, 1482049860, 30, frameSize=(height, width))

但是cv2.VideoWriter()只接受str,所以它“丢弃”了p,并接收到:

代码语言:javascript
复制
out = cv2.VideoWriter(1482049860, 30, frameSize=(height, width))

那么(height, width)实际上处于实数位置,它需要实数,但得到了元组

所以我建议你检查每个参数,确保它们有正确的类型。

票数 4
EN

Stack Overflow用户

发布于 2019-05-30 10:18:33

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

否则,请尝试:

代码语言:javascript
复制
out = cv2.VideoWriter('project.avi', 1482049860, 30, frameSize=(height, width))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56370802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档