You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下终止运行中的Python脚本问题求助

解决OpenCV摄像头脚本按q无法退出的问题

问题原因及修复步骤

1. 代码语法错误

你的脚本最后一行cv2.destroyAllWindows缺少括号,正确写法是cv2.destroyAllWindows()。这个函数需要调用执行才能关闭所有OpenCV创建的窗口,缺少括号会导致窗口无法正常销毁,进而让脚本卡住无法退出。

修复后的收尾代码片段:

# 释放摄像头资源
video.release()
cv2.destroyAllWindows()  # 添加括号完成函数调用

2. 键盘事件监听对象错误

cv2.waitKey(1)是监听摄像头预览窗口的键盘输入,而非终端窗口。你需要先点击摄像头弹出的"Capturing"窗口,确保焦点在该窗口上,再按q键才能触发退出逻辑。

3. 强制终止脚本的应急方法

如果上述方法仍无法退出,可在终端执行以下操作:

  • 直接按 Ctrl + C 发送中断信号终止Python进程
  • 若Ctrl + C无效,先通过ps aux | grep python找到脚本的进程ID(PID),再执行kill <PID>(替换成实际的PID)强制结束进程

完整修复后的脚本

import cv2

# 创建视频捕获对象
video = cv2.VideoCapture(0)
a = 0

while True:
    a += 1
    # 读取帧数据
    check, frame = video.read()
    # 显示捕获画面
    cv2.imshow("Capturing", frame)
    # 监听窗口键盘输入
    key = cv2.waitKey(1)
    if key == ord('q'):
        break

# 保存捕获的图片
showPic = cv2.imwrite("filename.jpg", frame)
print(showPic)
print(cv2.__version__)

# 释放资源并关闭窗口
video.release()
cv2.destroyAllWindows()

内容的提问来源于stack exchange,提问作者j ton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 18:01:24