1、窗口循环读取
import numpy as np
import cv2
import matplotlib.pyplot as plt
import os
from itertools import cycle
filename = os.listdir("../images")
img_iter = cycle([cv2.imread(os.sep.join(["../images",x]))for x in filename])
key = 0
while key != 27:
cv2.imshow("img",next(img_iter))
key = cv2.waitKey(42)
2、获取键盘值
import numpy as np
import cv2
import matplotlib.pyplot as plt
import os
from itertools import cycle
img = cv2.imread("../images/img.jpg")
key = 0
while key != 27:
cv2.imshow("img",img)
key = cv2.waitKey()
msg = "{} if pressed!".format(chr(key) if key < 256 else key)
print(msg)
3、鼠标
import numpy as np
import cv2
import matplotlib.pyplot as plt
import os
from itertools import cycle
def on_mouse(event,x,y,flags,param):
if event == cv2.EVENT_LBUTTONDOWN:
print("鼠标左键按下,位置({},{})".format(x,y))
elif event == cv2.EVENT_LBUTTONUP:
print("鼠标左键抬起,位置({},{})".format(x,y))
elif event == cv2.EVENT_LBUTTONDBLCLK:
print("鼠标左键双击,位置({},{})".format(x,y))
elif event == cv2.EVENT_RBUTTONDOWN:
print("鼠标右键按下,位置({},{})".format(x,y))
elif event == cv2.EVENT_RBUTTONUP:
print("鼠标右键抬起,位置({},{})".format(x, y))
elif event == cv2.EVENT_RBUTTONDBLCLK:
print("鼠标右键双击,位置({},{})".format(x, y))
elif event == cv2.EVENT_MBUTTONDOWN:
print("鼠标滚轮按下,位置({},{})".format(x, y))
elif event == cv2.EVENT_MBUTTONUP:
print("鼠标滚轮抬起,位置({},{})".format(x, y))
elif event == cv2.EVENT_MBUTTONDBLCLK:
print("鼠标滚轮双击,位置({},{})".format(x, y))
elif event == cv2.EVENT_MOUSEMOVE:
print("鼠标移动,位置({},{})".format(x, y))
cv2.namedWindow("mouse event")
cv2.setMouseCallback("mouse event",on_mouse)
cv2.waitKey(0)