2016-09-18 73 views
0

當我嘗試使用cv2.imshow()時,它會顯示一秒圖像,然後使窗口變灰。除了我應該使用cv2.waitKey(0),而且我也使用cv2.namedWindow(),我似乎無法找到任何有關它的信息。我的代碼:imshow()函數顯示空的灰色圖像。我該怎麼辦?

import numpy as np 
import cv2 
import sys 

cv2.namedWindow('img') 
img = cv2.imread(sys.argv[1]) 
cv2.imshow('img', img) 
cv2.waitKey(0) 
cv2.destroyAllWindows 

同樣,它顯示圖像一秒鐘然後灰顯。提前致謝。

+0

此代碼適用於我可以通過Fedora 24中的dnf安裝的OpenCV 2.4.12版本。您使用的是什麼版本的OpenCV?你從頭開始編譯它嗎? –

+0

@RobertPrévost我正在使用OpenCV 3.0.0。另外,我從頭開始編譯它。 – Awesomeness01

+0

關於這個代碼,OpenCV 3.0.0應該和2.4.12非常相似。我必須拉它,然後試一試。同時,我唯一的想法是運行時存在一些問題。也許有OpenCV的多個版本或像libpython一些依賴庫? –

回答

0
  1. 檢查sys.argv中[1],嘗試用真實的路徑(即 「圖像/ 1.png」)
  2. destroyAllWindows()是函數(使用括號內)的
  3. 參數替換waitKey(在你的例子0)它是在毫秒延時,0表示「永遠」,延遲的默認值是其實你不需要namedWindow這裏destroyAllWindows

試試這個0

  • import cv2 
    import sys 
    
    img = cv2.imread(sys.argv[1]) 
    cv2.imshow('img', img) 
    cv2.waitKey() 
    
  • +0

    這是它的圖像路徑。謝謝 – Awesomeness01