python opencv使用回调函数

1,使用回调函数绘制标准的圆:
鼠标左键按下画圆

import cv2
import numpy as np

events = [i for i in dir(cv2) if "EVENT" in i]
print(events)
img = np.zeros((720,640,3), np.uint8)
def draw_circle(event,x,y,flags,param):
    if event == cv2.EVENT_LBUTTONDOWN:
        cv2.circle(img,(x,y),60,(255,0,0),-1)
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_circle)
while True:
    cv2.imshow('image', img)
    key = cv2.waitKey(1)
    if key == ord('q') or key == 27:
        break

cv2.destroyAllWindows()

在这里插入图片描述
2、自定义绘制矩形:

import cv2
import numpy as np

events = [i for i in dir(cv2) if "EVENT" in i]
print(events)
xi,yi = -1,-1
drawing = False
img = np.zeros((720,640,3), np.uint8)
def draw_circle(event,x,y,flags,param):
    global xi, yi, drawing
    if event == cv2.EVENT_LBUTTONDOWN:
        drawing =True
        xi,yi =x,y
    elif event == cv2.EVENT_MOUSEMOVE:
        if drawing:
            cv2.rectangle(img,(xi,yi),(x,y),(0,255,0),-1)
    elif event == cv2.EVENT_LBUTTONUP:
        if drawing:
            cv2.rectangle(img,(xi,yi),(x,y),(0,255,0),-1)
            drawing = False
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_circle)
while True:
    cv2.imshow('image', img)
    key = cv2.waitKey(1)
    if key == ord('q') or key == 27:
        break
cv2.destroyAllWindows()

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值