python opencv3 窗口显示摄像头的帧

 git:https://github.com/linyi0604/Computer-Vision

 1 # coding:utf8
 2 
 3 import cv2
 4 
 5 
 6 """
 7 在窗口显示摄像头帧
 8 
 9     namedWindow() 指定窗口名
10     imshow() 创建窗口
11     DestroyWindow() 销毁所有窗口
12     waitKey() 获取键盘输入
13     setMouseCallback() 获取鼠标输入    
14 
15 """
16 """
17     opencv窗口只有调用waitKey()后才能实时更新
18     waitKey() 只有窗口创建后才能捕获键盘
19 """
20 
21 clicked = False
22 
23 
24 def onMouse(event, x, y, flags, param):
25     global clicked
26     if event == cv2.EVENT_LBUTTONUP:
27         clicked = True
28 
29 
30 cameraCapture = cv2.VideoCapture(0)     # 传入摄像头设备的索引
31 cv2.namedWindow("MyWindow")     # 设置窗口名称
32 cv2.setMouseCallback("MyWindow", onMouse)  # 传入窗口名称和响应捕获的函数
33 """
34 setMouseCallback() 第二个参数接收一个回调函数
35 回调事件可以取值如下:
36     cv2.EVENT_MOUSEMOVE 鼠标移动
37     cv2.EVENT_LBUTTONDOWN 左按键按下
38     cv2.EVENT_RBUTTONDOWN 右按键按下
39     cv2.EVENT_MBUTTONDOWN 中间键按下
40     cv2.EVENT_LBUTTONDBLCLK 双击左键
41     cv2.EVENT_RBUTTONDBLCLK 双击右键
42     cv2.EVENT_MBUTTONDBLCLK 双击中间
43     
44 鼠标回调的标志参数可能是以下事件的桉位组合:
45     cv2.EVENT_FLAG_LBUTTON 按下鼠标左键
46     cv2.EVENT_FLAG_RBUTTON 按下鼠标右键
47     cv2.EVENT_FLAG_MBUTTON 按下中间
48     cv2.EVENT_FLAG_CTRLKEY 按下ctrl键
49     cv2.EVENT_FLAG_SHITKEY 按下shift键
50     cv2.EVENT_FLAG_ALTKEY 按下alt键
51 """
52 
53 print("点击窗口或者按键停止")
54 
55 success, frame = cameraCapture.read()
56 while success and cv2.waitKey(1) == -1 and not clicked:
57     cv2.imshow("MyWindow", frame)
58     success, frame = cameraCapture.read()
59 
60 cv2.destroyAllWindows()
61 cameraCapture.release()

猜你喜欢

转载自www.cnblogs.com/Lin-Yi/p/9393048.html