鼠标交互切割矩形

接下来,就是本文重点了。先吐个槽,网上有资源,但搜到的都是C++的。本来有点气馁的,还好,有官网在,文档写得很清楚,而且接口函数名字变化不大,稍微做下修改就行了。


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()
  • 实现效果:当按住左键不放且不动时,就会出现个绿圈在图片上,当按住左键拖曳鼠标时,就会画出个蓝色矩形,最后当释放鼠标时,则出现个红色的选定框.最后最后再随意按一个键盘键,就会结束程序。

  • 运行结果
    原图:

鼠标响应函数

参考:https://blog.csdn.net/qq_37674858/article/details/80434618

【图像处理】——Python鼠标框选ROI(感兴趣)区域并且保存(含鼠标事件)相关推荐

  1. OpenCV(十)ROI感兴趣区域

    目录 1.概念 2.代码 3.效果 参考资料 1.概念 在图像处理的时候,常常我们只想对一部分图像进行处理,也就是感兴趣区域(ROI,region of interest).我们把一部分图像区域分化独 ...

  2. Opencv 图像处理-Contours函数提取轮廓及感兴趣区域ROI的必用且实用操作技巧-(涵盖Contours的一切使用基础,附代码段)

            需求目的:一般都是做项目时使用opencv的findcontours和drawcontours搭配使用抓取图像内感兴趣区域. 1.Contours函数轮廓点大小排序 当使用findco ...

  3. ROI感兴趣区域提取与泛洪填充

    一.ROI提取 1.定义:ROI提取称对感兴趣区域提取. 2.作用:勾勒感兴趣的区域,可以是方框.圆.椭圆.不规则形状等. 3.应用:以视频监控领域ROI智能视频编码技术为例,具有ROI功能的摄像机可 ...

  4. openCV_C++笔记 : ROI感兴趣区域与Rect类

    序 在使用rect作为感兴趣区域的时候一直没有弄懂使用感兴趣区域如何将处理后图像拼到原图像中 以及 使用感兴趣区域定位的坐标要是不是原图像的坐标这两个问题,查了很多资料,大多数都是用代码一笔带过. 自 ...

  5. Opencv 学习笔记之——鼠标操作画出感兴趣区域

     本文为原创作品,转载请注明出处 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/ 作者 ...

  6. opencv-python 指静脉的ROI(感兴趣区域)的指节提取(原理+代码)

    静脉采集过程中,由于手指自由度比较大,所以可能会有手指旋转,平移等现象,这有可能使得同一个手指的两次采集图像差别较大.这是我们不希望看到的.所以对图像进行ROI的提取非常有必要,也是图像预处理的一个过 ...

  7. 指静脉代码学习---5.ROI感兴趣区域提取/图像分割

    一.相关论文 1.roi提取技术大概分为下面四类 2.论文一Qin:  经典的阈值确定方法有:

  8. C# opencvSharp实现鼠标移动选择感兴趣区域(ROI)

    C# opencvSharp实现鼠标移动选择感兴趣区域(ROI)主要通过鼠标响应事件来实现. 1.鼠标按下响应 MouseDown() 获取鼠标按下的开始坐标. private void pictur ...

  9. OpenCV-C++选择、提取感兴趣区域(ROI区域)【附用鼠标选取ROI区域的代码】

    在图像处理中,我们常常要对某个区域进行选择.提取,然后对这个区域进行单独分析.处理.显示. 这样的区域我们称为叫ROI区域,英文全称为Region of interest,中文名为"感兴趣区 ...

最新文章

  1. Fourinone2.0对分布式文件的简化操作
  2. 业务流程背后的服务管理
  3. expect自动登录以及远程脚本执行
  4. 升级数据库增加字段之OrmLite
  5. unexpectedly exited. Status code was
  6. 交通大数据应用细分_大数据、数据挖掘在交通领域有哪些应用?
  7. java收割者模式,王牌战士收割者怎么玩 海拉技巧玩法介绍
  8. java中mysql的优化,Java培训实战教程之mysql优化
  9. untiy 串口通信
  10. Python Flask,Jinja2模板,模板中使用特殊变量及函数,闪现信息,get_flashed_messages()
  11. ​华为回应出售手机业务传闻:假消息;微软将ChatGPT整合到更多工具中:不用写代码就能开发应用;苹果更新Mac产品线|极客头条...
  12. 淘宝/天猫平台API 接口及API文档
  13. linux下hwclock不能同步时间到硬件时钟
  14. 如何能做好软件项目(迭代开发)
  15. PCDMIS 零件坐标系创建技巧 4
  16. 《从1到N企业数字化生存指南》读书笔记
  17. 进行域名解析时,递归和迭代查询方式是什么意思?
  18. vue 实现简单表格分页功能
  19. Filter Listener——概述、应用、Filter的使用 细节
  20. 类与类之间的关系-继承

热门文章

  1. xcode8 升级后注释快捷键不能使用的解决方法
  2. Codeforces Round #540 (Div. 3)(部分题解)
  3. Rsyslog 日志相关内容
  4. 13点建议顺利通过JAVA面试【转载】
  5. c# 文件压缩、解压及下载
  6. 大型门户网站的可伸缩性架构设计
  7. css --- flex布局的应用(between)
  8. 紫书 例题8-10 UVa 714 (二分答案)
  9. 我与Linux系统的交集
  10. (五):C++分布式实时应用框架——微服务架构的演进