29

我刚刚在 Windows 7(32 位)/Python 2.7.3 上安装了最新的 OpenCV 2.4,
但我仍然遇到使用 beta 版本时遇到的相同错误:

>>> import cv2
>>> a = cv2.imread(r"DMap.jpg")
>>> a.shape
(1080, 1920, 3)
>>> cv2.imwrite('img_CV2_90.jpg', a, [cv2.IMWRITE_JPEG_QUALITY, 90])
Traceback (most recent call last):
  File "<input>", line 1, in <module>
SystemError: error return without exception set

有任何想法吗 ?使用元组而不是列表,或在序列中添加尾随 0 无济于事 - 同样的错误。

谢谢 - 塞巴斯蒂安哈斯

4

1 回答 1

54

这可能是由于imwrite()从 Python 到 C 的参数包装错误cv2.IMWRITE_JPEG_QUALITY(它是“long”类型),并导致一些奇怪的问题。您应该尝试将此常量转换为“int”类型:

cv2.imwrite('img_CV2_90.jpg', a, [int(cv2.IMWRITE_JPEG_QUALITY), 90])

对我来说它解决了这个问题(python 2.7.2,opencv 2.4.1)

于 2012-07-04T21:23:24.887 回答