2016-08-14 66 views
-1
import cv2 
import numpy as np 

img=cv2.imread("drop.jpg",cv2.IMREAD_GRAYSCALE) 

cv2.imshow("blue", img) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

imshow函數給出錯誤,其餘代碼工作正常。imshow()在Python中給圖像提供錯誤

錯誤消息:

OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file D:\Build\OpenCV\opencv-3.1.0\modules\highgui\src\window.cpp, line 289 Traceback (most recent call last): File "C:\Users\D\Desktop\new 2.py", line 6, in cv2.imshow("image",img) cv2.error: D:\Build\OpenCV\opencv-3.1.0\modules\highgui\src\window.cpp:289: error: (-215) size.width>0 && size.height>0 in function cv::imshow

+1

我們展示的錯誤信息! –

+1

可能重複的[斷言失敗(size.width> 0 && size.height> 0)](http://stackoverflow.com/questions/20821269/assertion-failed-size-width0-size-height0) –

+1

我的猜測是你的程序無法讀取drop.jpg。檢查它是否在正確的目錄中。其次,在imread之後,您應該驗證您的映像是否已成功修復,然後繼續進行imwrite。 –

回答

1

cv2.imread()無法找到您的圖像文件即drop.jpg

-1
import cv2 
import numpy as np 

img=cv2.imread("D:\Matlab\Images\d.jpg",cv2.IMREAD_COLOR) 

cv2.imshow("blue", img) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 
+2

歡迎來到Stack Overflow!感謝您的代碼片段,它可能會提供一些即時的幫助。通過展示*爲什麼*這是一個很好的解決方案,對未來的讀者會有更好的解決方案,這將爲它的教育價值提供一個合適的解釋[//大大提高](// meta.stackexchange.com/q/114762)但不完全相同的問題。請編輯您的答案以添加解釋,並指出適用的限制和假設。 –

1

我有同樣的問題,當我跑了OpenCV的3.0.1在窗口x64操作系統。

當我檢出代碼時,發現cv2.imread的第一個參數不正確,即圖像不存在。

當我將圖像文件複製到正確的路徑時,代碼運行正常。

我建議你確保圖像文件路徑是正確的。

1
img=cv2.imread("D:\Matlab\Images\d.jpg",cv2.IMREAD_COLOR) 

上面一行應修改爲:

img=cv2.imread("D:\\Matlab\\Images\\d.jpg",cv2.IMREAD_COLOR) 
+0

這解決了我面臨的問題。我的新人錯誤;我應該一直在使用系統無關的路徑引用(例如os.path.join)。 –