为什么Python说"' int'对象不可调用"?

时间:2015-09-29 22:59:12

标签: python opencv3.0

我尝试执行我的代码,我的翻译说这个。我的错误在哪里?

import cv2
videoCapture = cv2.VideoCapture('opal.avi')
fps = videoCapture.get(cv2.CAP_PROP_FPS)
size = (int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),
        int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
videoW = (cv2.VideoWriter('opal2.avi',
    cv2.CAP_PROP_FOURCC('I', '4', '2', '0'), fps, size))
success, frame = videoCapture.read()
while success:  # Loop until there are no more frames.
    videoW.write(frame)
    success, frame = videoCapture.read()

2 个答案:

答案 0 :(得分:1)

这样的错误通常是由于这种类型的线:

success, frame = videoCapture.read()

这一行非常类似于:

aRet = videoCapture.read()
success = aRet[0]
frame = aRet[1]

如果videoCapture.read()返回一个int,那么行:

success = aRet[0]

成为int的迭代,这是不可能的,所以你的错误。

所以在此之前,请检查您的返回值是否为列表类型...

答案 1 :(得分:0)

cv2.CAP_PROP_FOURCC('I','4','2','0')行将生成错误。

CAP_PROP_FOURCC是一个常量,即一个int。

你不能调用int

3("hello") => impossible "int" object is not callable