SystemError:新样式的getargs格式,但参数不是OpenCV中的元组

时间:2017-10-16 16:51:16

标签: python opencv

我使用OpenCV这行:

xsize = random.uniform(params['reshape_x_limits'][0],params['reshape_x_limits'][1])
ysize = random.uniform(params['reshape_x_limits'][0],params['reshape_x_limits'][1])
cv2.resize(fg,0,fg,xsize,ysize)

哪个给出了错误

SystemError: new style getargs format but argument is not a tuple

但是根据文件: https://docs.opencv.org/2.4/modules/imgproc/doc/geometric_transformations.html#resize

所有参数都不应该是元组。导致此错误的原因是什么?我使用的是Python 2.7和OpenCV 3.3.0.10。

3 个答案:

答案 0 :(得分:0)

从您发布的文档中,您可以看到示例:

resize(src, dst, Size(), 0.5, 0.5, interpolation);

参数Size()是一个元组(width, length)

另一个例子你可以find in this tutorial about geometric transformations,例如:

res = cv2.resize(img,(2*width, 2*height), interpolation = cv2.INTER_CUBIC)

答案 1 :(得分:0)

根据documentation,dsize是必需参数,因此必须提供。奇怪的是,d = 0给了我与您相同的错误。 指定dsize = None为我解决了这个问题。以下是代码段:

a=cv2.imread('lighthouse2.bmp',0)
b=cv2.resize(a,None,fx=0.5,fy=0.5,interpolation=cv2.INTER_AREA)
cv2.imshow('',b)
cv2.waitKey(0)

我正在使用Python 3.6和OpenCv 4.0.0

答案 2 :(得分:0)

好的,很旧的帖子,但我浪费了 30 分钟,所以如果有人遇到问题...... cv2 文档可能已经过时...

在较新版本中的使用是

destImage = cv.resize(srcImage, Size(), fx, fy, interpolation)

注意 second 参数是元组(如果你有 fx、fy,可以设为 None

希望对正在寻找的人有所帮助。