问题描述
系统信息(版本)
详细说明
当我导入matplotlib.pyplot并使用cv2.imshow时,除了空格键和Esc之外,该窗口将仅按我按下的任何键关闭。以下代码不会运行,但不会返回错误,只是停止运行。我将opencv从4.2升级到4.4后,它开始了。我曾尝试仅导入matplotlib和其他matplotlib模块,它们不会引起任何问题。
Matplotlib版本3.3.2
复制步骤
import cv2
import matplotlib.pyplot
cap = cv2.VideoCapture("video/7.mp4")
while True:
(ret,frame) = cap.read()
cv2.imshow("Processed Output",frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
cap.release()
print("End")
编辑:已解决
一起使用时,似乎是PyQt5和OpenCV Qt5存在问题。您可以详细了解问题here。要解决该问题,您需要按如下所示导入matplotlib
。
import matplotlib
matplotlib.use('tkagg')
import matplotlib.pyplot as plt
解决方法
我找到了解决方案。当一起使用时,问题似乎出在 PyQt5 和 OpenCV Qt5 您可以阅读有关问题 here 的更多信息。要解决此问题,您需要按如下方式导入 matplotlib
。
import matplotlib
matplotlib.use('tkagg')
import matplotlib.pyplot as plt