计算机视觉 OpenCV (5)

作者 : 开心源码 本文共1259个字,预计阅读时间需要4分钟 发布时间: 2022-05-13 共211人阅读

我们鼠标或者者触控与 opencv 图像进行交互会触发事件,我们输出一下 EVENT 看一看 opencv 为我们提供哪些事件供我们调用。

events = [i for i in dir(cv2) if 'EVENT' in i]print(events)

输出事件,看看 opencv 提供我们如此多事件,我们今天只关注 EVENT_LBUTTONDOWN 和 EVENT_RBUTTONDOWN 这两个鼠标左键和右键事件。

['EVENT_FLAG_ALTKEY', 'EVENT_FLAG_CTRLKEY', 'EVENT_FLAG_LBUTTON', 'EVENT_FLAG_MBUTTON','EVENT_FLAG_RBUTTON', 'EVENT_FLAG_SHIFTKEY', 'EVENT_LBUTTONDBLCLK', 'EVENT_LBUTTONDOWN', 'EVENT_LBUTTONUP', 'EVENT_MBUTTONDBLCLK', 'EVENT_MBUTTONDOWN', 'EVENT_MBUTTONUP', 'EVENT_MOUSEHWHEEL', 'EVENT_MOUSEMOVE', 'EVENT_MOUSEWHEEL', 'EVENT_RBUTTONDBLCLK', 'EVENT_RBUTTONDOWN', 'EVENT_RBUTTONUP']

我们通过事件可以得到左键点击事件的位置信息,通过位置信息来显示鼠标左键点击事件的位置。

def click_event(event, x, y, flags, param):    if event == cv2.EVENT_LBUTTONDOWN:        print(x,',',y)        font = cv2.FONT_HERSHEY_SIMPLEX        strXY = str(x) + "," + str(y)        cv2.putText(img, strXY, (x,y), font, 1, (0,255,255),2)        cv2.imshow('image',img)

通过 setMouseCallback 以回调函数形式来实现获取鼠标事件。

img = np.zeros((512,512,3),np.uint8)cv2.imshow('image',img)cv2.setMouseCallback('image',click_event)cv2.waitKey(0)cv2.destroyAllWindows()

右键单击事件与左键单击相似没有什么不同地方,所以大家可以试一试,而且今天内容没有什么需要解释的。

    if event == cv2.EVENT_RBUTTONDOWN:        blue = img[y,x, 0]        green = img[y,x, 1]        red = img[y,x, 2]        font = cv2.FONT_HERSHEY_SIMPLEX        strBGR = str(blue) + "," + str(green) +","+ str(red)        cv2.putText(img, strBGR, (x,y), font, .5, (255,255,0),2)        cv2.imshow('image',img)


opencv.jpeg

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 计算机视觉 OpenCV (5)

发表回复