Python-OpenCV学习笔记(使用opencv 获得鼠标点击点位,并画在图片上)

12 篇文章 3 订阅
11 篇文章 2 订阅

先看效果:

 

 

目标
• 学习使用 OpenCV 处理鼠标事件
• 你将要学习的函数是:cv2.setMouseCallback()

鼠标事件 :cv2.setMouseCallback()
cv2_EVENT_MOUSEMOVE 0 滑动 
cv2_EVENT_LBUTTONDOWN 1 左键点击 
cv2_EVENT_RBUTTONDOWN 2 右键点击 
cv2_EVENT_MBUTTONDOWN 3 中间点击 
cv2_EVENT_LBUTTONUP 4 左键释放 
cv2_EVENT_RBUTTONUP 5 右键释放 
cv2_EVENT_MBUTTONUP 6 中间释放 
cv2_EVENT_LBUTTONDBLCLK 7 左键双击 
cv2_EVENT_RBUTTONDBLCLK 8 右键双击 
cv2_EVENT_MBUTTONDBLCLK 9 中间释放

cv2_EVENT_FLAG_LBUTTON 1 左键拖拽  
cv2_EVENT_FLAG_RBUTTON 2 右键拖拽  
cv2_EVENT_FLAG_MBUTTON 4 中间拖拽  
cv2_EVENT_FLAG_CTRLKEY 8 (8~15)按Ctrl不放事件  
cv2_EVENT_FLAG_SHIFTKEY 16  (16~31)按Shift不放事件  
cv2_EVENT_FLAG_ALTKEY 32  (32~39)按Alt不放事件(后面8-39还有待研究)
 

代码如下:

import cv2
import numpy as np
import time

img  =  cv2.imread('0.jpg',1)#读取图片作为背景

#定义画圆事件,如果事件双击左键发生
#则以此时双击的点为原点画一个半径为1px BGR为(0, 0, 255)粗细为1px的圆圈
#并在点的周围显示坐标点位
def draw_circle(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDBLCLK:
        print('(x:',x,',y:',y,')')
        str1 = '(x:'+ str(x) + ',y:'+ str(y) + ')'
        cv2.putText(img,str1 , (x, y), cv2.FONT_HERSHEY_PLAIN,1.0, (0, 0, 255), thickness=1)
        cv2.circle(img,(x,y),1,(0, 0, 255),1)

cv2.namedWindow('src')
cv2.setMouseCallback('src',draw_circle)

while(1):
    cv2.imshow('src',img)
    if cv2.waitKey(100) == ord('q'):#按下q退出
        break
cv2.destroyAllWindows()

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值