2017-08-01 391 views
0

我試圖寫一個保存圖像函數。預計下面的代碼將創建原始圖像的副本作爲saved-test-image.jpg。OpenCV-Python:img不是一個numpy數組,既不是一個標量

originalImage = "test-image.jpg" 
savedImage = cv2.imwrite("saved-test-image.jpg",originalImage) 

行的執行給follwing回:

Traceback (most recent call last): 
    File "UnitTest.py", line 159, in test_save_and_delete_image 
    savedImage = cv2.imwrite('unittest-images/saved-test-image.jpg', originalImage) 
TypeError: img is not a numpy array, neither a scalar 

什麼,這裏需要改變?

+1

你應該首先'imread(..)'圖像。 –

回答

1

那麼opencv是正確的,你保存originalImage,但originalImage是一個字符串(文件名,你的第一行)。

您需要cv2.imread(..)圖像成numpy的陣列第一:

originalImage = cv2.imread("test-image.jpg") 
savedImage = cv2.imwrite("saved-test-image.jpg",originalImage)

如果你只是想然而,複製圖像文件,沒有必要將其加載到內存中,你可以簡單地複製文件,在不使用的OpenCV:

from shutil import copyfile 

originalImage = "test-image.jpg" 
copyfile(originalImage,"saved-test-image.jpg") 

在這種情況下,它會簡單地複製文件 - 無論其內容是什麼 - 所以即使是已損壞的圖片,或根本不是圖像,它會被複制。

+0

解決了這個問題。謝謝 – Andrea

相關問題