python鼠标点击事件
一、画矩形框
import cv2global img
global point1, point2
def on_mouse(event, x, y, flags, param):global img, point1, point2img2 = img.copy()if event == cv2.EVENT_LBUTTONDOWN: #左键点击point1 = (x,y)cv2.circle(img2, point1, 10, (0,255,0), 5)cv2.imshow('image', img2)elif event == cv2.EVENT_MOUSEMOVE and (flags & cv2.EVENT_FLAG_LBUTTON): #按住左键拖曳cv2.rectangle(img2, point1, (x,y), (255,0,0), 5)cv2.imshow('image', img2)elif event == cv2.EVENT_LBUTTONUP: #左键释放point2 = (x,y)cv2.rectangle(img2, point1, point2, (0,0,255), 5) cv2.imshow('image', img2)min_x = min(point1[0],point2[0]) min_y = min(point1[1],point2[1])width = abs(point1[0] - point2[0])height = abs(point1[1] -point2[1])cut_img = img[min_y:min_y+height, min_x:min_x+width]cv2.imwrite('lena3.jpg', cut_img)def main():global imgimg = cv2.imread('lena.jpg')cv2.namedWindow('image')cv2.setMouseCallback('image', on_mouse)cv2.imshow('image', img)cv2.waitKey(0)if __name__ == '__main__':main()
二、画线
import osimport cv2
import mathglobal img
global point1, point2def calculate_distance(pt1, pt2):x1, y1 = pt1x2, y2 = pt2dist = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)return distdef on_mouse(event, x, y, flags, param):global img, point1, point2img2 = img.copy()if event == cv2.EVENT_LBUTTONDOWN: # 左键点击point1 = (x, y)cv2.circle(img2, point1, 10, (0, 255, 0), 2)cv2.imshow('image', img2)elif event == cv2.EVENT_MOUSEMOVE and (flags & cv2.EVENT_FLAG_LBUTTON): # 按住左键拖曳cv2.line(img2, point1, (x, y), (255, 0, 0), 2)cv2.imshow('image', img2)elif event == cv2.EVENT_LBUTTONUP: # 左键释放point2 = (x, y)cv2.line(img2, point1, point2, (0, 0, 255), 2)cv2.imshow('image', img2)distance = calculate_distance(point1, point2)font = cv2.FONT_HERSHEY_SIMPLEXcv2.putText(img2, f'{int(distance)}', (point2[0]+2, point2[1]+2), font, 1.2, (255, 255, 255), 2)cv2.imshow('image', img2)img = img2def main():global img, base_nameimg_path = r"D:\work\data\ellipse_fitting\ori_resize\label_viz0.png"img_name = os.path.split(img_path)[-1]base_name = os.path.splitext(img_name)[0]save_name = base_name + '_gt.jpg'save_dir = r'D:\work\data\ellipse_fitting\gt_axis'os.makedirs(save_dir, exist_ok=True)img = cv2.imread(img_path)cv2.namedWindow('image')cv2.setMouseCallback('image', on_mouse)cv2.imshow('image', img)if cv2.waitKey(0) & 0xFF == ord('s'):cv2.imwrite(os.path.join(save_dir, save_name), img)print('save img:{}'.format(os.path.join(save_dir, save_name)))if __name__ == '__main__':main()
python鼠标点击事件相关推荐
- python鼠标点击事件event_opencv-python教程学习系列5-处理鼠标事件
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv-python处理鼠标事件,坚持学习,共同进步. 系统环境 系统:win_x64; p ...
- Python鼠标连续点击事件
需要先安装pyautogui 在cmd命令中输入 pip install pyautogui 在pyautogui的安装时容易报错: Command "python setup.py egg ...
- 10,python中tkinter模块里的鼠标点击事件
实践操作: from tkinter import * #鼠标点击事件的回调函数 def callback(event):print( "clicked at:", event.x ...
- python鼠标点击位置_python鼠标点击位置 Python3怎么模拟鼠标点击?
Python3怎么模拟鼠标点击? Python3怎么模拟鼠标点击?最好简单一点的方法 import win32api,win32condef click(x,y): win32api.SetCurso ...
- PyQt实现QSlider滑块鼠标点击事件
在PyQt添加SQlider滑动条后,发现鼠标点击时滑块只能按照设定步数一步步移动,不能点哪里滑块到哪里.网上查找资料后发现这方面相关参考资料比较少,且大多数文章表述对我个人来说比较难理解,最后综合参 ...
- css禁用鼠标点击事件
1.css禁用鼠标点击事件 .disabled { pointer-events: none; } 转载于:https://www.cnblogs.com/jiangtuzi/p/5728230.ht ...
- android 模拟点击localinstrumentation,Android Instrumentation模拟鼠标点击事件
看了几遍网上的博客一直没有 模拟出鼠标点击事件和按钮事件,后来抱着试试态度再重试的时候终于有所斩获.下面把具体的情况记录一下: 首先我们必须了解类 Instrumentation: Instrumen ...
- [css] 怎样用纯CSS实现禁止鼠标点击事件?
[css] 怎样用纯CSS实现禁止鼠标点击事件? pointer-events: none; 是css3新出现的属性,意思就是禁止鼠标点击事件,当元素中有这一属性时,链接.点击事件统统失效. 个人简介 ...
- 【Qt串口调试助手】1.3 - 重写ComboBox下拉框的鼠标点击事件,实现点击下拉框扫描可用串口
由于ComboBox没有鼠标点击信号,所以如果想实现点击下拉框响应,需要重写ComboBox下拉框的鼠标点击事件.在点击事件中,添加扫描可用串口代码,实现点击下拉框时重新扫描串口.并且下拉框内容输出端 ...
最新文章
- DOS 循环 FOR
- python学习之if条件句的使用
- ROSA 2012 Enterprise Linux Server 发布
- 异步Socket通信总结[转]
- boost::mp11::mp_filter相关用法的测试程序
- SpringBoot/Cloud AOP 统一日志输出
- AndroidStudio_android使用自己封装的消息队列处理问题_封装LinkedQueue---Android原生开发工作笔记242
- 英老汉3000个空酒瓶造房子
- 小程序学习笔记(7)-使用小程序的组件构建UI界面
- 人生中第一次在优品拍拍买二手手机的经历
- 11月27日“软件开发模式思考:传统与敏捷 我们在什么位置?”的主题活动成功举办
- 服务器c盘满了怎么清理? 服务器c盘空间不足清理方法
- dingo php,Laravel Lumen RESTFul API 扩展包:Dingo API(一) —— 安装配置篇
- swift UI 学习 (一)
- c语言 求矩阵各行元素之和
- 如何测试一个纸杯-----利用引导词整理测试思路
- SLCP认证辅导,SLCPCAFv1.4和v1.3相比较共同之处在哪
- 【ProjectEuler】ProjectEuler_046
- 海淘 海外购 iherb 礼券码 优惠码
- 服务办公软件金山偷换“核高基”重大软件专项课题名称,瞒天过海,欺骗大众...