Python OpenCv中调用cv2.selectROI( )函数提取图像中指定区域(高效抠图)

目录

  • 一、cv2.selectROI()函数参数
  • 二、代码
  • 三、提取结果
  • 四、总结

一、cv2.selectROI()函数参数

下面是cv2.seletROI()函数中各个参数的解析:

selectROI(windowName, img, showCrosshair=None, fromCenter=None):.   参数windowName:选择的区域被显示在的窗口的名字.   参数img:要在什么图片上选择ROI.   参数showCrosshair:是否在矩形框里画十字线..   参数fromCenter:是否是从矩形框的中心开始画

二、代码

在我提供的代码中,需要修改的地方有读入图像路径,保存提取图像的路径,框选区域坐标,还可以在extract_roi函数中添加后处理代码。具体代码如下:

import cv2def extract_roi(img, x1, y1, x2, y2):# 提取图像中指定的区域img_r = cv2.selectROI("roi",img,False,False)roi = img[int(img_r[1]):int(img_r[1]+img_r[3]),int(img_r[0]):int(img_r[0]+img_r[2])]    # 这里image[int(r[1]):int(r[1]+r[3]),int(r[0]):int(r[0]+r[2])] 需要横纵坐标调换一下# 对提取出来的小图像块进行处理roi = cv2.GaussianBlur(roi, (5, 5), 0)cv2.imwrite("Images/Noise_Layer_Image/AdaFM/roi_processed.png", roi)return roiif __name__ == "__main__":# 读取图像img = cv2.imread("Images/Visible_Images/1.jpg")# 指定区域的左上角和右下角坐标x1, y1, x2, y2 = 200, 200, 500, 500# 提取区域img_roi = extract_roi(img, x1, y1, x2, y2)cv2.imshow("img_roi",img_roi)cv2.imshow("img",img)cv2.waitKey(0)

三、提取结果

运上面代码后,会先显示读入的原图,然后鼠标在弹出图像上直接拖拉框选出想要提取的目标,再按下键盘上的回车按钮,就可以继续运行后面代码将目标区域单独提取出来并保存到指定路径下。

在这里插入图片描述

在指定路径下保存目标区域图像,如下:

在这里插入图片描述

四、总结

以上就是Python OpenCv中调用cv2.selectROI( )函数提取图像中指定区域的高效抠图方法,在我提供的示例代码中,后处理部分加了高斯滤波处理,仅供参考,也可以注释了不加,直接保存目标区域。

总结不易,多多支持,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/614425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(Java企业 / 公司项目)配置Gateway + Nacos应用名路由转发?

首先看项目的gateway, 没有进行路由转发的时候的缺点 在gateway模块中的配置的路径都是写死的,到时候我们更改了IP地址又要改这个代码,会很麻烦所以我们应该怎么样做才能使得请求更加方便?这是子模块 在我们请求模块member中配置…

x-cmd pkg | llm - 用于与 OPENAI 交互的命令行工具

目录 简介首次用户功能特点进一步探索 简介 llm 是一个命令行工具和 Python 库,用于与大型语言模型(Large Language Models,简称 LLMs)交互,既可以通过远程 API 访问,也可以在本地机器上运行安装的模型。由…

游戏辅助从0到1-C++调用游戏Lua脚本实现辅助

课程地址:https://edu.csdn.net/course/detail/39240 你将收获 游戏辅助编程 Lua基础 C/CLua联合编程 适用人群 对游戏辅助技术感兴趣的人 课程介绍 本课程以TLB*和W*W为例子,讲述如何通过游戏的Lua脚本来实现一个游戏的辅助。众所周知&#xff…

蚁群算法解决旅行商问题的完整Python实现

蚁群算法(Ant Colony Optimization,简称ACO)是一种模拟蚂蚁觅食行为的启发式优化算法。它通过模拟蚂蚁在寻找食物时释放信息素的行为,来解决组合优化问题,特别是旅行商问题(TSP)。 蚁群算法的基…

C#.Net学习笔记——设计模式六大原则

***************基础介绍*************** 1、单一职责原则 2、里氏替换原则 3、依赖倒置原则 4、接口隔离原则 5、迪米特法原则 6、开闭原则 一、单一职责原则 举例:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修…

Kotlin 1.7.0 beta发布,改进构建器类型推断

Kotlin 1.7.0是JetBrains的跨平台、多用途编程语言的计划新版本,目前已进入beta发布阶段,主要特点是对构建器类型推断和新的内存管理器进行了更改。 改进编写泛型构建器时的构建器类型推断 构建器推断是调用泛型构建器函数时的一种特殊类型推断&#xf…

Gorm实战,轻松掌握数据库增删改查技巧!

Gorm实战,轻松掌握数据库增删改查技巧! CRUD通常指数据库的增删改查操作,本文详细介绍了如何使用GORM实现创建、查询、更新和删除操作。 文章目录 Gorm实战,轻松掌握数据库增删改查技巧!一、Create(创建&a…

综合智慧能源监测管理平台,实现能源管理“透明”化

能源问题是全球面临的最大问题,在提高经济增长的同时,也引发了能源供应危机及环境严重等问题,降低能源管理、低碳环保是我们未来发展的必经之路。 为了解决这一问题,智慧能源管理平台应运而生。平台采用微服务架构,整…

内存溢出和内存泄露的区别

这道题是面试常考的,一定要区分好区别,我之前就是直接认为内存溢出就是内存泄漏了 概念 内存溢出:是指程序在申请内存时,没有足够的内存空间供其使用。比如,申请了一个整数的内存,但实际存了一个需要 lon…

MongoDB相关问题及答案(2024)

1、MongoDB是什么,它与其他传统关系型数据库的主要区别是什么? MongoDB是一种开源文档型数据库,它属于NoSQL数据库的一个分支。NoSQL数据库提供了一种存储和检索数据的机制,这种机制的建模方式与传统的关系型数据库不同。而Mongo…

rime中州韵小狼毫 词组注释 滤镜

在rime中州韵小狼毫 联想词组 滤镜一文中,我们通过Filter滤镜功能配置了联想词组的功能,这使得我们在输入一些关键词汇时,可以联想补充一些附加的词组,例如我输入“手机”,就可以联想补充对应的手机号,如下…

【c++】list迭代器失效问题

目录 一、list iterator的使用 二、list的迭代器失效 一、list iterator的使用 对于list的迭代器的用法,可以将它看做一个指针(实际要更加复杂)来使用,该指针指向list中的一个节点。 【注意】 (1)begin和end为正向迭代器&#x…

Golang 中可比较的数据类型详解

目录 可比较的概念 基本数据类型的比较 复合数据类型的比较 不可比较类型的替代方案 比较操作的注意事项 小结 在日常开发中,比较操作是最常用的基本操作之一,可以用来判断变量之间是否相等或者对应的大小关系,比较操作对于排序、查找和…

127. 单词接龙

和433.最小基因变化这道题一样的解法。 https://blog.csdn.net/qq_43606119/article/details/135538247 class Solution {public int ladderLength(String beginWord, String endWord, List<String> wordList) {Set<String> cnt new HashSet<>();for (int …

从学习投研流程的角度学习Qlib

许多同学只是把Qlib当做一个简单的工具来学习。其实Qlib隐含了一套正规的投研流程&#xff0c;从投研流程的视角去学习Qlib,则不仅能加深对Qlib的理解&#xff0c;而且能够掌握正确的投研流程&#xff0c;哪怕以后不使用Qlib而是使用其他系统了&#xff0c;这套流程还是适用的。…

第十一章 Cookie

第十一章 Cookie 1.什么是Cookie2.Cookie的创建3.Cookie的获取4.Cookie值的修改5.谷歌浏览器和火狐浏览器如何查看Cookie6.Cookie的存活设置7.Cookie的path属性8.Cookie练习之免用户名登入 1.什么是Cookie 2.Cookie的创建 下面我看看如何创建Cookie&#xff0c;如何让客户端保…

即时战略游戏的AI策略思考

想起来第一次玩RTS游戏&#xff0c;就是框住一大群兵进攻&#xff0c;看他们把对面消灭干净……我接触的第一款游戏是《傲世三国》那会儿是小学&#xff0c;后来高中接触了魔兽地图编辑器&#xff0c;我发现自己喜欢直接看属性而省去争论和试验的步骤——我喜欢能一眼看透的感觉…

【LeetCode:49. 字母异位词分组 | 哈希表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

ARCGIS PRO SDK 设置UI控件状态:启用/禁用

举例&#xff1a; 第一步&#xff1a;添加两个 Button 分别命名为Connect、Disconnect 第二步&#xff1a;nfig.daml添加状态和条件&#xff1a;在 DAML 中定义条件。请记住&#xff0c;条件存在于模块标记<modules>之外&#xff0c;下代码定义&#xff1a;Disconnected_…

AIGC大模型必备知识——LLM ,你知道它是如何训练的吗?小白必读深度好文

Look&#xff01;&#x1f440;我们的大模型商业化落地产品&#x1f4d6;更多AI资讯请&#x1f449;&#x1f3fe;关注Free三天集训营助教在线为您火热答疑&#x1f469;&#x1f3fc;‍&#x1f3eb; 近年来&#xff0c;人工智能&#xff08;AI&#xff09;领域经历了令人瞩目…