终止python循环

时间:2018-02-22 06:34:26

标签: python opencv3.0

我制作了一个从相机读取像素的程序。我用了一个while循环。但是我不能在没有按下> Ctrl + C'的情况下从终端关闭程序。我想使用ESC按钮(ASCII 27)关闭程序。我尝试了以下代码,但无效。任何帮助将不胜感激

import cv2 as cv
import numpy as np

cap = cv2.VideoCapture(0)

while True:
   _, frame = cap.read()

   redimage = frame[:,:,2]
   print(redimage)

   k = cv.waitKey(1) & 0xFF
   if k == 27:
      break

2 个答案:

答案 0 :(得分:0)

使用:

if k == chr(27):
   break

答案 1 :(得分:0)

cv.waitKey(1)仅适用于opencv gui。您无法使用此功能在控制台中捕获键盘事件。

因此,您可以更改代码以显示您正在从相机中读取的帧。

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while True:
   _, frame = cap.read()
   redimage = frame[:,:,2]
   cv2.imshow('frame', frame)
   print(redimage)
   k = cv2.waitKey(1) & 0xFF
   if k == 27:
      break

cap.release()
cv2.destroyAllWindows()

您可以在this answer中找到一种在控制台中捕获键盘事件的方法。