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
相关产品推荐
相关产品推荐

