如何使用python鼠标绘图_python opencv学习4:鼠标做画笔绘图

回调函数包含两部分,一部分画矩形,一部分画圆圈。

把这个回调函数与 OpenCV 窗口绑定在一起。在主循环中我

们需要将键盘上的“m”键与模式转换绑定在一起。

# -*- coding: utf-8 -*-

import cv2

import numpy as np

drawing = False

mode = True

ix,iy = -1,-1

def draw_circle(event,x,y,flags,param):

global ix,iy,drawing,mode

if event == cv2.EVENT_LBUTTONDOWN:

drawing = True

ix,iy = x,y

elif event == cv2.EVENT_MOUSEMOVE and flags == cv2.EVENT_FLAG_LBUTTON:

if drawing == True:

if mode == True:

cv2.rectangle(img,(ix,iy),(x,y),(0,255,0),-1)

else:

cv2.circle(img,(x,y),3,(0,0,255),-1)

elif event == cv2.EVENT_LBUTTONUP:

drewing = False

img = np.zeros((512,512,3),np.uint8)

cv2.namedWindow('image')

cv2.setMouseCallback('image',draw_circle)

while(1):

cv2.imshow('image',img)

k=cv2.waitKey(1)&0xFF

if k==ord('m'):

mode=not mode

elif k==27:

break

cv2.destroyAllWindows()

注意mode的使用,以及全局变量,鼠标的使用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值