2016-10-01 159 views
0

我對計算機視覺非常陌生,並且使用OpenCV庫實現一些基本功能,例如打開攝像頭窗口。我使用OpenCV書籍中的代碼從那裏運行代碼。一部分如下所示:OpenCV,網絡攝像頭窗口不能打開

def run(self): 
     """Run the main loop""" 
     self._windowManager.createWindow() 
     while self._windowManager.isWindowCreated: 
      self._captureManager.enterFrame() 
      frame = self._captureManager.frame 

      self._captureManager.exitFrame() 
      self._windowManager.processEvents() 

我收到以下錯誤:

'module' object has no attribute 'nameWindow' 

這使其指向行:

139  def createWindow (self): 
    140   cv2.namedWindow(self._windowName) 
--> 141   self._isWindowCreated = True 
    142  def show(self, frame): 
    143   cv2.imshow(self._windowName, frame) 

有人可以幫助我這是怎麼回事?

回答

1

從代碼很難說問題是什麼,但我相信是cv2.namedWindow()而不是nameWindow。另外,在imshow()函數調用後添加cv2.waitKey(1)

這裏有一個簡單的方法來打開網絡攝像頭使用python和OpenCV:

import cv2 
video_capture = cv2.VideoCapture(0) 

cv2.namedWindow("Window") 

while True: 
    ret, frame = video_capture.read() 
    cv2.imshow("Window", frame) 

    #This breaks on 'q' key 
    if cv2.waitKey(1) & 0xFF == ord('q'): 
     break 

video_capture.release() 
cv2.destroyAllWindows() 
+0

謝謝你的回覆。問題來自我的身邊。我沒有完全重啓內核。這就是爲什麼即使我修復它也給了我同樣的錯誤。 唯一的問題是,編譯器爲什麼一次只給出一個錯誤,而不是一次發送所有錯誤。 –