OpenCV Python сохранить jpg, указав качество; дает SystemError

Я только что установил новейший OpenCV 2.4 на windows 7 (32bit) / Python 2.7.3,
но я все равно получаю ту же ошибку, что и в бета-версии:

>>> 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 в последовательность не помогает - та же ошибка.

спасибо - Себастьян Хаазе!--3-->

1 ответов


вероятно, из-за какой-то неправильной упаковки imwrite() параметры от Python до C,cv2.IMWRITE_JPEG_QUALITY (который имеет тип "длинного") вызывает некоторые странные проблемы... попробуйте преобразовать эту константу в тип "int":

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

для меня это решило проблему (python 2.7.2, opencv 2.4.1)