2012-05-02 26 views
4

我只是在Windows上安裝最新的OpenCV 2.4 7(32位)/ Python的2.7.3,
但我仍然得到我得到了使用測試版相同的錯誤:OpenCV Python保存jpg指定質量;給出關於SystemError

>>> 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不會有幫助 - 同樣的錯誤。

感謝 - 塞巴斯蒂安·哈澤

+0

你安裝新的之前刪除舊軟件包的所有痕跡? – Oz123

+0

是的。據我所知,我只有PYTHONPATH和PATH設置在c:/OpenCV2.4目錄中。 --- set PATH =%PATH%; C:\ opencv2.4 \ build \ x86 \ mingw \ bin --- 也許這就是問題....我應該指向vc9還是vc10而不是mingw? ?? – sebhaase

+0

當你導入cv2,然後cv2 .__ file__你真的看到它是新版本嗎? – Oz123

回答

10

可能由於imwrite()參數一些錯誤的包裝從Python來C,cv2.IMWRITE_JPEG_QUALITY(它的類型是「長」)會導致一些奇怪的問題...嘗試這個常數轉換爲「INT」類型:

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

對我來說,解決了這個問題(蟒蛇2.7.2,2.4.1 OpenCV的)

+0

這應該作爲bug提交 – sebhaase

+0

錯誤報告在這裏:http://code.opencv.org/issues/2193 – pcampr