cv2.imshow() 在循环中打开多个 window

cv2.imshow() is opening multiple window in a loop

当我运行这个简单的代码在我的笔记本里用opencv-python版本v4.3.0。然后我的屏幕充满了 windows 如图所示。

# importing the required modules 
  

import cv2 
  

import numpy as np 
  
  

# capturing from the first camera attached 
  

cap = cv2.VideoCapture(0) 
  
  

# will continue to capture until 'q' key is pressed 
 

 

while True: 
     ret, frame = cap.read() 
  
     # Capturing in grayscale 
     gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
  
     cv2.imshow('frame', frame) 
     cv2.imshow('gray', gray) 
  
     # Program will terminate when 'q' key is pressed 
     if cv2.waitKey(1) & 0xFF == ord('q'): 
         break
  
 

# Releasing all the resources 
cap.release() 
cv2.destroyAllWindows() 

我在使用 OpenCV 4.3.0 时遇到了同样的问题。我是如何解决的:

1/卸载之前的版本:

$ pip uninstall opencv-contrib-python

2/ 安装以前的版本:

$ pip install opencv-contrib-python==4.2.0.34

现在应该可以了。