【发布时间】:2021-11-19 01:48:04
【问题描述】:
我是第一次使用 macOS High Sierra 和 Spider IDE 进行 Python 编程。
当我按键盘上的q键时,窗口没有关闭。输出窗口在最后一帧冻结,控制返回到 Python 提示符。
我们将不胜感激任何解决方案或解决方法。我也很想知道原因。
以下是 Python 和 OpenCV 版本的详细信息。
Python 3.9.7 OpenCV 4.5.3 Spyder 5import cv2
The code is as follows,
import cv2
frameWidth = 640
frameHeight = 480
cap = cv2.VideoCapture(0)
cap.set(3, frameWidth)
cap.set(4, frameHeight)
cap.set(10,150)
window_name = "Result"
cv2.namedWindow(window_name)
while cap.isOpened():
success, img = cap.read()
if success:
cv2.imshow(window_name, img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyWindow(window_name)
【问题讨论】:
-
那是因为你被困在循环中……因为你没有在视频结束时打破循环。 --
isOpened将永远保持真实。它只告诉您文件可以打开和读取,而不是视频已经结束。创建 VideoCapture 实例后,您必须仅检查一次isOpened。你必须检查并打破:if not success: break。每个人都做错了,因为每个人似乎都遵循写得很糟糕的“教程”甚至“视频教程”。不得不一直重复这一点很累。 -
我将它替换为 true,它仍然无法正常工作。
-
是的,因为我说的还不止这些。我说你也必须跳出循环。请不要只忽略第一点以外的所有内容。
标签: python-3.x macos opencv