【问题标题】:Python OpenCV has a problem with matplotlib.pyplotPython OpenCV 的 matplotlib.pyplot 有问题
【发布时间】:2020-10-19 02:02:36
【问题描述】:

系统信息(版本)

  • OpenCV => 4.4.0.44
  • 操作系统/平台 => Ubuntu 18.04.5
  • 编译器 => Visual Studio 代码

详细说明

当我导入 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")

【问题讨论】:

  • 由于您正在阅读视频,如果frame 为空会发生什么情况,例如cap.read() 失败或视频结束?
  • 它将完美运行 End 将被打印

标签: python-3.x matplotlib opencv4


【解决方案1】:

我找到了解决方案。看起来问题出在 PyQt5 和 OpenCV Qt5 一起使用时您可以阅读有关问题的更多信息here。要解决这个问题,您需要导入matplotlib,如下所示。

import matplotlib
matplotlib.use('tkagg')
import matplotlib.pyplot as plt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-30
    • 2021-01-02
    • 2022-01-04
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多