当前位置: 首页 > news >正文

OpenCV 在ImShow窗体上选择感兴趣的区域

窗体上选择感兴趣ROI区域

在计算机视觉处理中, 通常是针对图像中的一个特定区域进行处理, 有时候这个特定区域需要人来选择, OpenCV 也提供了窗口选择ROI机制.
窗体支持两种选择ROI区域的方法, 一个是单选, 一个是多选, 操作方法如下:

  • 单选: 通过鼠标在屏幕上选择区域, 然后通过"空格键" 或 "回车键"完成确定, 或者通过"C"键取消, 对应的 SelectROI()函数返回一个Rect对象, 如果取消选择, 返回值为 Rect.Empty
  • 多选: 通过鼠标键屏幕上完成多次选择, 每一次是通过"空格键" 或 "回车键"完成确定, 最后一次通过"ESC"结束选择.
  • 单选的函数是 Cv2.SelectROI()
  • 多选的函数是 Cv2.SelectROIs()

测试代码

private void readWriteTest(){string pngFile = @"D:\my_workspace\opencv\images\draw.png";var srcMat = Cv2.ImRead(pngFile, ImreadModes.Color);Cv2.ImShow("srcMat", srcMat);//选择单个 ROIvar rect = Cv2.SelectROI("srcMat", srcMat, true);if (rect != OpenCvSharp.Rect.Empty){Cv2.ImShow("Single ROI", srcMat[rect]);}//选择多个 ROIvar rects = Cv2.SelectROIs("srcMat", srcMat, true);int i = 0;foreach (var myRect in rects){if (myRect != OpenCvSharp.Rect.Empty){i++;Cv2.ImShow($"Mulptie ROI #{i}", srcMat[myRect]);}}Cv2.WaitKey();Cv2.DestroyAllWindows();}

测试结果截图:

相关文章:

OpenCV 在ImShow窗体上选择感兴趣的区域

窗体上选择感兴趣ROI区域 在计算机视觉处理中, 通常是针对图像中的一个特定区域进行处理, 有时候这个特定区域需要人来选择, OpenCV 也提供了窗口选择ROI机制. 窗体支持两种选择ROI区域的方法, 一个是单选, 一个是多选, 操作方法如下: 单选: 通过鼠标在屏幕上选择区域, 然后通过…...

ubuntu 安装redis详细教程

下载redis安装包 链接如下: http://redis.io/download 本例版本为:redis-7.2.3.tar.gz 下载安装包到目录/opt下,路径可修改,本例为/opt wget https://github.com/redis/redis/archive/7.2.3.tar.gz 解压安装包,并…...

qframework 架构 (作者:凉鞋)使用笔记

一些准则: 根据VIEW->SYSTEM->MODEL的分层架构 初始架构: app. using FrameworkDesign;namespace ShootingEditor2D(项目的命名空间) {public class ShootingEditor2D (游戏名称): Architecture&l…...

【JMeter】定时器分类以及场景介绍

1. 定时器分类 固定定时器 作用:请求之间设置等待时间应用场景:查询商品列表后,去查看列表商品详情页。针对商品列表数据量比较大的,响应时间会比较长,就需要设置等待时间然后去查看商详 2.定时器的作用域&#xff1…...

Spring Boot 请求/actuator/beans 无法访问 返回404

问题复现 在保证项目加入了spring-boot-starter-actuator依赖,并成功启动后。通过浏览器进行访问,返回如下图结果: 问题排查 1. 查看日志 从日志中可以看到基于路径’/actuator’下只暴露了一个端点 2. 访问http://localhost:8080/actua…...

AVD联网

AVD联网: 解决Android Studio模拟器无法联网_android studio模拟器没有网络-CSDN博客 挺好的,就是访问网站的时候只能用ip,而不能用域名。 AVD设置代理: android studio踩坑记 AVD模拟器代理设置_android studio avd 配置代理-…...

[Vue warn]: Missing required prop: “action“

控制台显示错误信息 vue.runtime.esm.js:4605 [Vue warn]: Missing required prop: "action" found in ---> <ElUpload> at packages/upload/src/index.vue <ElTableRow> <ElTableBody> <ElTable> at pack…...

Python标准库有哪些

概述 可用性注释 内置函数 内置常量 由 site 模块添加的常量 # Author : 小红牛 # 微信公众号&#xff1a;wdPython内置类型 逻辑值检测 布尔运算 — and, or, not 比较运算 数字类型 — int, float, complex 布尔类型 - bool 迭代器类型 序列类型 — list, tuple, range 文本…...

基于ssm的校园办公室报修管理系统

基于ssm的校园办公室报修管理系统 摘要 基于SSM的校园办公室报修管理系统是一个现代化的、高效的报修平台&#xff0c;它能够帮助校园内的教职工和学生更方便、更快捷地提交和处理报修请求。该系统基于Spring、SpringMVC和MyBatis&#xff08;简称SSM&#xff09;开发&#xff…...

1Panel 升级 Halo报错

1Panel 升级 Halo报错 通过 1panel 升级 2.10.0 -> 2.10.1 后启动失败,出现 No value found for protocol 错误&#xff0c; 1Panel-halo-rzxY | Caused by: io.r2dbc.spi.NoSuchOptionException: No value found for protocol 1Panel-halo-rzxY | at io.r2dbc.spi.Conn…...

spring-clound基础开发

一、使用openfeig调用远程另外一个服务接口 1、创建一个spring boot工程,并且创建2个模块来当微服务模块 2、分别配置2个模块的启动文件 3、分别两个模块下创建一个测试的控制器 4、在项目的根目录的pom.xml中添加spring-cloud配置 <properties><java.version>1…...

基于SSM的劳务外包管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…...

uni-app学习笔记(二)

目录 一、路由与页面跳转 1、tabar与普通页面跳转例子 2、navigateTo 3、switchTab 二、vue组件 1、传统vue组件的使用 2、easycom 三、uView组件库 1、安装配置 2、引入配置 3、使用 四、Vuex 1、认识 2、state基本使用 3、mapState使用 五、网络请求 1、封装…...

使用axios拦截器解决前端并发冲突问题

使用 axios 拦截器解决「 前端并发冲突 」 问题 背景 并发冲突问题&#xff0c; 是日常开发中一个比较常见的问题。 不同用户在较短时间间隔内变更数据&#xff0c;或者某一个用户进行的重复提交操作都可能导致并发冲突。 并发场景在开发和测试阶段难以排查全面&#xff0c…...

IPv6详解

目录: 第一部分 IPv6的诞生背景和引起的主要变化 第二部分 IPv6数据报的基本首部和扩展首部 第三部分 IPv6地址 第四部分 IPv4向IPv6过渡 第一部分 IPv6的诞生背景和引起的主要变化 一.IPv6的诞生背景 IPv4存在设计缺陷: IPv4的设计者最初并没有想到该协议会在全球范围内广…...

【C++干货铺】STL简述 | string类的使用指南

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 什么是STL STL的版本 STL的六大组件 STL的缺陷 string类 C语言中的字符串 标准库中的string类 string类常用的接口使用指南 string类中常见的构造 strin…...

合肥工业大学数字逻辑实验三

** 数字逻辑 实验报告** ✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 :hfut实验课设 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台,永远是个观众。平台再好,你不参与,永远是局外人。能力再大,你不行动,只能看别人成功!…...

【mmrotate】*** is not in the task util registry

问题&#xff1a; 使用mmrotate-1.x 自定义类时&#xff0c;明明已经注册&#xff0c;并添加到__init__.py中&#xff0c;但提示没有注册 from mmdet.registry import MODELSMODELS.register_module() class RotatedATSSAssigner(BaseAssigner): 分析&#xff1a; 具体看提…...

使用bitmap实现可回收自增id

需求描述 设计一个方法&#xff0c;每次调用返回一个自增id&#xff0c;同时需要满足以下要求。 可更新id的状态为已使用&#xff0c;已使用的id下次调用时不再返回可修改某个id的状态为未使用&#xff0c;下次调用时设为未使用状态的id可重新被返回 思路 思路一&#xff1…...

0基础学习VR全景平台篇第118篇:利用动作录制器功能避免重复操作 - PS教程

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 嗨&#xff0c;大家好。欢迎收看蛙色VR系列教程之PS利用动作记录器节约补地时间。 大家拍摄在补地的时候&#xff0c;利用插件选择输入输出选项的时候&#xff0c;每次重复操作…...

Weka机器学习工具实战:7种高效求助与问题解决指南

1. 项目概述Weka作为一款开源的机器学习工具集&#xff0c;自1997年由怀卡托大学开发以来&#xff0c;已成为学术界和工业界广泛使用的数据挖掘平台。但在实际应用中&#xff0c;许多用户&#xff08;尤其是初学者&#xff09;常面临文档晦涩、社区响应慢、问题排查困难等挑战。…...

AliceTools终极指南:如何轻松编辑AliceSoft游戏文件

AliceTools终极指南&#xff1a;如何轻松编辑AliceSoft游戏文件 【免费下载链接】alice-tools Tools for extracting/editing files from AliceSoft games. 项目地址: https://gitcode.com/gh_mirrors/al/alice-tools 你是否曾经想要修改AliceSoft游戏的文本、提取游戏资…...

告别无效修改!2026年最聪明的降AI率工具盘点,精准降低AI率

今天&#xff0c;我们就来盘点几款在2026年备受关注的降AI率工具。它们不单是简单的改写&#xff0c;而是更能从思维逻辑、语言习惯和内容特质入手&#xff0c;帮助你将AI生成内容转化为富有个人特色的自然内容&#xff0c;让你告别无效修改。第一款&#xff1a;智媒ai降ai率工…...

uni-app项目实战:用ECharts打造一个动态数据看板(附完整代码)

uni-app项目实战&#xff1a;用ECharts打造一个动态数据看板&#xff08;附完整代码&#xff09; 在移动应用开发领域&#xff0c;数据可视化已经成为提升用户体验和决策效率的关键要素。本文将带您深入探索如何在uni-app框架中&#xff0c;利用ECharts这一强大的数据可视化库&…...

旁路部署PXE:在Debian12与树莓派上实现无干扰网络启动服务

1. 为什么需要旁路PXE服务&#xff1f; 每次给办公室新电脑装系统都要找U盘实在太麻烦了。我去年负责公司30台新设备的部署&#xff0c;用传统方式一台台安装系统花了整整两天。后来发现PXE网络启动可以批量安装&#xff0c;但问题来了——公司主路由器的DHCP服务不能随便动&am…...

别再按着按钮上电了!HC-05蓝牙模块AT指令模式一键进入的两种实用方法(附串口助手配置)

HC-05蓝牙模块AT指令模式一键进入的两种实用方法 每次调试HC-05蓝牙模块时&#xff0c;最让人头疼的就是进入AT指令模式的操作——按住按钮再上电。这个看似简单的动作在实际开发中却可能成为效率杀手。想象一下&#xff0c;当你需要反复修改参数时&#xff0c;每次都要小心翼翼…...

Phi-4-mini-reasoning部署案例:边缘服务器(Jetson AGX Orin)可行性评估

Phi-4-mini-reasoning部署案例&#xff1a;边缘服务器&#xff08;Jetson AGX Orin&#xff09;可行性评估 1. 项目背景与模型概述 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型&#xff0c;专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这款模型主打&quo…...

C++ MCP网关从3万到87万RPS的跃迁之路(工业级网关压测全链路复盘)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;C MCP网关从3万到87万RPS的跃迁之路&#xff08;工业级网关压测全链路复盘&#xff09; 在超低延迟金融交易与高频物联网接入场景中&#xff0c;我们重构了基于 C20 的 MCP&#xff08;Message Control…...

3分钟速通:Apache Commons FileUpload 2.0如何彻底解决Java文件上传难题?

3分钟速通&#xff1a;Apache Commons FileUpload 2.0如何彻底解决Java文件上传难题&#xff1f; 【免费下载链接】commons-fileupload Apache Commons FileUpload is a robust, high-performance, file upload capability to your servlets and web applications 项目地址: …...

基于ASP.NET Core的医院不良事件管理系统的架构设计

基于ASP.NET Core的医院不良事件管理系统的架构设计 前言 医院不良事件管理是医疗质量安全管理的重要环节&#xff0c;一个优秀的不良事件管理系统需要覆盖事件上报、审核追踪、分析统计的完整闭环。本文将详细介绍如何基于ASP.NET Core构建一个完整的医院不良事件管理系统&…...