博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python opencv使用回调函数
阅读量:3902 次
发布时间:2019-05-23

本文共 1234 字,大约阅读时间需要 4 分钟。

1,使用回调函数绘制标准的圆:

鼠标左键按下画圆

import cv2import numpy as npevents = [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:        breakcv2.destroyAllWindows()

在这里插入图片描述

2、自定义绘制矩形:

import cv2import numpy as npevents = [i for i in dir(cv2) if "EVENT" in i]print(events)xi,yi = -1,-1drawing = Falseimg = 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 = Falsecv2.namedWindow('image')cv2.setMouseCallback('image', draw_circle)while True:    cv2.imshow('image', img)    key = cv2.waitKey(1)    if key == ord('q') or key == 27:        breakcv2.destroyAllWindows()

在这里插入图片描述

转载地址:http://rqben.baihongyu.com/

你可能感兴趣的文章
使用sizeof计算类的大小
查看>>
乐观锁与悲观锁——解决并发问题
查看>>
operator 类型转换及重载
查看>>
HTTP状态码
查看>>
TCP/IP详解--举例明白发送/接收缓冲区、滑动窗口协议之间的关系
查看>>
TCP/IP详解--再次深入理解TCP网络编程中的send和recv
查看>>
TCP与UDP收发的时候TCP有缓冲区还是UDP有缓冲区,使用它们时该注意什么?
查看>>
C++中map、hash_map、unordered_map、unordered_set通俗辨析
查看>>
clone的fork与pthread_create创建线程有何不同&pthread多线程编程的学习小结
查看>>
运算符重载参数的顺序对运算是否有影响
查看>>
什么时候要用虚析构函数?
查看>>
序列化、反序列化与jsoncpp学习
查看>>
同步/异步与阻塞非阻塞的关系
查看>>
epoll模型讲解/源码分析
查看>>
java继承 long和float小记点
查看>>
记录几点在开发中遇到的问题 2015-7-28 (会更新)
查看>>
网银在线的异步操作代码示意图
查看>>
火狐Firefox浏览器安装Selenium_IDE的步骤以及其使用规则
查看>>
记录运行代码的时间长短
查看>>
关于yii2的一些知识的学习笔述
查看>>