OpenCV:开运算
目录
1. 简述
2. 用腐蚀和膨胀实现开运算
2.1 代码示例
2.2 运行结果
3. 开运算接口
3.1 参数详解
3.2 代码示例
3.3 运行结果
4. 开运算应用场景
5. 注意事项
6. 总结
相关阅读
OpenCV:图像的腐蚀与膨胀-CSDN博客
OpenCV:闭运算-CSDN博客
1. 简述
简而言之:开运算 = 腐蚀 + 膨胀
开运算 是一种形态学操作,通常用于去除图像中的小噪点,同时保留较大的前景物体。
它的操作顺序是:
- 先对图像进行 腐蚀,去除细小的噪点和瑕疵。
- 再进行 膨胀,恢复被腐蚀的前景物体形状。
开运算的主要作用是:
- 去除噪声(尤其是白色背景下的黑色小物体)。
- 平滑前景物体的边缘。
开运算的数学表达式为:
其中:
- A 是输入图像。
- B 是卷积核。
- ⊖ 表示腐蚀操作。
- ⊕ 表示膨胀操作。
2. 用腐蚀和膨胀实现开运算
2.1 代码示例
import cv2
import numpy as npimage = cv2.imread('D:\\resource\\filter\\q3.jpg')# 卷积核
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7))# 腐蚀操作
result1 = cv2.erode(image, kernel, iterations=1)# 膨胀操作
result2 = cv2.dilate(result1, kernel, iterations=1)# 显示原始图像、开运算(腐蚀 + 膨胀)图像
cv2.imshow('image', image)
cv2.imshow('result2', result2)cv2.waitKey(0)
cv2.destroyAllWindows()
2.2 运行结果

从左到右:
- 原始黑底白字图像,带一些白色的噪点。
- 图像腐蚀和膨胀之后的结果,白色噪点消失。
3. 开运算接口
在 OpenCV 中,开运算由函数 cv2.morphologyEx() 实现,其关键参数如下:
cv2.morphologyEx(src, op, kernel, dst=None, anchor=(-1, -1), iterations=1, borderType=cv2.BORDER_CONSTANT, borderValue=0)
3.1 参数详解
- src:输入图像。通常是二值化图像或灰度图像。
- op:操作类型,开运算的标识符为 cv2.MORPH_OPEN。
- kernel:结构元素(卷积核)。决定形态学操作的邻域范围和形状。可以使用 cv2.getStructuringElement() 创建。
- dst:输出图像。默认为 None。
- anchor:结构元素的锚点,默认为 (-1, -1),即以核的中心为锚点。
- iterations:操作的迭代次数,默认为 1。
- borderType:边界模式,定义图像边界的填充方式,常用 cv2.BORDER_CONSTANT。
- borderValue:边界值,仅在 borderType 为 cv2.BORDER_CONSTANT 时使用。
常用的参数为前3个:
cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)
3.2 代码示例
import cv2
import numpy as npimage = cv2.imread('D:\\resource\\filter\\q3.jpg')# 卷积核
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7))# 腐蚀操作
#result1 = cv2.erode(image, kernel, iterations=1)# 膨胀操作
#result2 = cv2.dilate(result1, kernel, iterations=1)# 开运算
result2 = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)# 显示原始图像、开运算(腐蚀 + 膨胀)图像
cv2.imshow('image', image)
cv2.imshow('result2', result2)cv2.waitKey(0)
cv2.destroyAllWindows()
3.3 运行结果

结果与2.2一致。
4. 开运算应用场景
- 去除小噪点:在二值化图像中,小的孤立噪声点可以通过开运算清除。
- 提取连通区域:对于连通区域的检测,开运算可以去掉孤立的小物体,仅保留目标区域。
- 平滑边缘:通过开运算,前景物体的边缘可以更加平滑。
5. 注意事项
- 核的大小与形状:卷积核的大小直接影响结果。核过大会过度去除图像细节,核过小则可能无法有效去除噪声。
- 输入图像类型:开运算适用于二值化或灰度图像,对于彩色图像需先转换。
- 多次操作:对于复杂噪声,可能需要多次开运算,或调整核的大小与形状。
6. 总结
开运算是图像形态学中的基本操作,用于去除小噪点、平滑边缘等。OpenCV 提供了功能强大的接口 cv2.morphologyEx(),可以灵活实现开运算及其他形态学操作。通过选择合适的卷积核,可以在实际项目中轻松应对各种图像处理问题。
相关文章:
OpenCV:开运算
目录 1. 简述 2. 用腐蚀和膨胀实现开运算 2.1 代码示例 2.2 运行结果 3. 开运算接口 3.1 参数详解 3.2 代码示例 3.3 运行结果 4. 开运算应用场景 5. 注意事项 6. 总结 相关阅读 OpenCV:图像的腐蚀与膨胀-CSDN博客 OpenCV:闭运算-CSDN博客 …...
38. RTC实验
一、RTC原理详解 1、6U内部自带到了一个RTC外设,确切的说是SRTC。6U和6ULL的RTC内容在SNVS章节。6U的RTC分为LP和HP。LP叫做SRTC,HP是RTC,但是HP的RTC掉电以后数据就丢失了,即使用了纽扣电池也没用。所以必须要使用LP,…...
Flutter 新春第一弹,Dart 宏功能推进暂停,后续专注定制数据处理支持
在去年春节,Flutter 官方发布了宏(Macros)编程的原型支持, 同年的 5 月份在 Google I/O 发布的 Dart 3.4 宣布了宏的实验性支持,但是对于 Dart 内部来说,从启动宏编程实验开始已经过去了几年,但…...
巴菲特价值投资思想的核心原则
巴菲特价值投资思想的核心原则 关键词:安全边际、长期投资、内在价值、管理团队、经济护城河、简单透明 摘要:本文深入探讨了巴菲特价值投资思想的核心原则,包括安全边际、长期投资、企业内在价值、优秀管理团队、经济护城河和简单透明的业务…...
C 或 C++ 中用于表示常量的后缀:1ULL
1ULL 是一个在 C 或 C 中用于表示常量的后缀,它具体指示编译器将这个数值视为特定类型的整数。让我们详细解释一下: 1ULL 的含义 1: 这是最基本的部分,表示数值 1。U: 表示该数值是无符号(Unsigned)的。这意味着它只…...
vue3中el-input无法获得焦点的问题
文章目录 现象两次nextTick()加setTimeout()解决结论 现象 el-input被外层div包裹了,设置autofocus不起作用: <el-dialog v-model"visible" :title"title" :append-to-bodytrue width"50%"><el-form v-model&q…...
程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<3>
大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。 今天我们来对上一节做一些小补充,了解学习一下assert断言,指针的使用和传址调用…...
(三)QT——信号与槽机制——计数器程序
目录 前言 信号(Signal)与槽(Slot)的定义 一、系统自带的信号和槽 二、自定义信号和槽 三、信号和槽的扩展 四、Lambda 表达式 总结 前言 信号与槽机制是 Qt 中的一种重要的通信机制,用于不同对象之间的事件响…...
Qt 5.14.2 学习记录 —— 이십이 QSS
文章目录 1、概念2、基本语法3、给控件应用QSS设置4、选择器1、子控件选择器2、伪类选择器 5、样式属性box model 6、实例7、登录界面 1、概念 参考了CSS,都是对界面的样式进行设置,不过功能不如CSS强大。 可通过QSS设置样式,也可通过C代码…...
Hot100之哈希
1两数之和 题目 思路解析 解法1--两次循环 解法2--哈希表一次循环 代码 解法1--两次循环 class Solution {public int[] twoSum(int[] nums, int target) {int nums1[] new int[2];int length nums.length;for (int i 0; i < length; i) {for (int j i 1; j < …...
油漆面积——蓝桥杯
1.题目描述 X 星球的一批考古机器人正在一片废墟上考古。 该区域的地面坚硬如石、平整如镜。 管理人员为方便,建立了标准的直角坐标系。 每个机器人都各有特长、身怀绝技。它们感兴趣的内容也不相同。 经过各种测量,每个机器人都会报告一个或多个矩…...
深度解析:网站快速收录与服务器性能的关系
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/37.html 网站快速收录与服务器性能之间存在着密切的关系。服务器作为网站运行的基础设施,其性能直接影响到搜索引擎对网站的抓取效率和收录速度。以下是对这一关系的深度解析&am…...
925.长按键入
目录 一、题目二、思路三、解法四、收获 一、题目 你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。 你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字&am…...
JavaScript 中的 var 和 let :关键区别与使用建议
在 JavaScript 开发中,变量声明是基础且重要的部分。 var 和 let 都是用于声明变量的关键字,但它们在作用域、变量提升、重复声明等方面存在显著差异。本文将详细探讨它们的区别,并给出使用建议。 1. 作用域 1.1 var 的作用域 …...
寒假刷题Day19
一、923. 三数之和的多种可能 class Solution { public:int threeSumMulti(vector<int>& arr, int target) {const int MOD 1000000007; // 正确的模数long long ans 0; // 使用 long long 防止溢出std::sort(arr.begin(), arr.end());for (size_t i 0; i < a…...
写好简历的三个关键认知
在当今竞争激烈的就业市场中,一份优秀的简历往往是敲开理想企业大门的第一把钥匙。然而,很多求职者在写简历时往往不得要领,让宝贵的机会从指间溜走。今天,让我们一起探讨如何提升简历写作水平,让你的职业之路走得更顺…...
工具的应用——安装copilot
一、介绍Copilot copilot是一个AI辅助编程的助手,作为需要拥抱AI的程序员可以从此尝试进入,至于好与不好,应当是小马过河,各有各的心得。这里不做评述。重点在安装copilot的过程中遇到了一些问题,然后把它总结下&…...
Koa 基础篇(二)—— 路由与中间件
let app new Koa() router.get(“/”,async ctx > { ctx.body “hello koa router” }) app.use(router.routes()) app.use(router.allowedMethods()) app.listen(3000) 运行项目,在浏览器访问本地3000端口,在页面上就会看到输出的语句。这就…...
帆软 FCA -业务分析师认证学习
帆软 FCA -业务分析师认证学习 认证概述 适合人群 企业中有需求管理、指标梳理、业务逻辑梳理、项目规划等需求的人员,想提升综合数据能力、推进数据应用落地的业务/IT骨干。 具体-FCA-业务分析理论 考试要求: FCA-业务分析理论考试- 费用:…...
Miniconda 安装及使用
文章目录 前言1、Miniconda 简介2、Linux 环境说明2.1、安装2.2、配置2.3、常用命令2.4、常见问题及解决方案 前言 在 Python 中,“环境管理”是一个非常重要的概念,它主要是指对 Python 解释器及其相关依赖库进行管理和隔离,以确保开发环境…...
量子支持向量机原理与硬件优化实践
1. 量子支持向量机基础原理与硬件挑战量子支持向量机(QSVM)是传统支持向量机在量子计算框架下的扩展,其核心创新点在于利用量子态空间的高维特性构建核函数。与传统核方法相比,量子核映射通过量子电路将经典数据编码到希尔伯特空间…...
Java集成ChatGPT实战:PlexPt SDK核心功能与生产部署指南
1. 项目概述与核心价值如果你是一名Java开发者,最近正琢磨着怎么在自己的应用里集成ChatGPT的能力,比如做个智能客服、代码助手或者内容生成工具,那你大概率已经搜过一圈了。官方的OpenAI API虽然强大,但直接用在Java项目里&#…...
Taotoken控制台的用量看板如何帮助团队管理API成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken控制台的用量看板如何帮助团队管理API成本 对于项目负责人或技术管理者而言,透明可控的支出至关重要。在集成多…...
云代理商:Hermes Agent如何通过技能沉淀降低长期算力消耗
在 AI 智能体规模化落地的今天,算力成本高、重复推理多、长期运行效率衰减,已成为企业和开发者的核心痛点。传统 AI 智能体每处理一次相似任务,都要从零开始推理、反复调用工具,大量算力浪费在重复劳动中,长期使用成本…...
3分钟搞定:Axure RP中文语言包完整安装指南
3分钟搞定:Axure RP中文语言包完整安装指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面…...
解读民法典基本规定第十条
民法典: 第一编 总则,第一章 基本规定 第十条 处理民事纠纷,应当依照法律;法律没有规定的,可以适用习惯,但是不得违背公序良俗。 一句话核心 先按国法判,国法没写明白,就按当地老规矩、民间习俗…...
github拆分小批量上传文件
Windows端1.把项目重置干净Remove-Item -Recurse -Force tool/.git2.打开文件夹3.把里面所有东西 全部剪切移到桌面只留 1 个小小的文件 就行4.回到终端,依次运行git initPS D:\soft\github\tool> git init Initialized empty Git repository in D:/soft/github/…...
深度解析Claude源码泄露事件:从Transformer到AI开源生态的技术思考
1. 项目概述与背景解析最近在开发者社区里,关于“noya21th/claude-source-leaked”这个仓库的讨论热度不低。作为一个长期关注AI模型开源生态的从业者,我第一眼看到这个标题时,内心是既好奇又警惕的。简单来说,这是一个在GitHub上…...
【Twitter算法适配型Prompt库】:2024Q2官方推荐权重结构解析+ChatGPT生成内容通过率提升67%的12个黄金句式
更多请点击: https://intelliparadigm.com 第一章:Twitter算法适配型Prompt库的演进逻辑与2024Q2权重变革本质 算法信号层重构驱动Prompt范式迁移 2024年第二季度,X(原Twitter)平台正式将Engagement Velocity Ratio&…...
企业级ai应用如何通过taotoken实现稳定低成本的多模型调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级AI应用如何通过Taotoken实现稳定低成本的多模型调用 在构建面向生产环境的企业级AI应用时,开发团队常常面临两个…...
