形态学 - 开运算和闭运算

article/2025/10/3 17:40:49

目录

1. 介绍

2. 代码实现 

2.1 开运算

2.2 闭运算


1. 介绍

膨胀和腐蚀操作都会有一个通病,就是会改变原目标的大小

开运算:先对目标腐蚀在膨胀

开运算能够平滑物体的轮廓、断开狭窄的狭颈、消除细长的突出物等等

开运算的一些理解:先腐蚀在膨胀,可以保证目标大致的形状不变

  • 改变的部分,是由于腐蚀操作可能会让某些目标消失,这样该目标就不能通过膨胀还原
  • 所以开运算后的图像是 原图的子集
  • 根据几何解释,所以对同一幅图像重复开运算结果是相同的

闭运算:先膨胀在腐蚀

闭运算能够弥合狭窄的断裂和细长的沟壑、消除小孔、填补轮廓中的缝隙等等

 闭运算:先膨胀在腐蚀

  • 原图 是 闭运算图像后的子集
  • 根据几何解释,所以对同一幅图像重复闭运算结果是相同的
  • 增加的部分,是由于膨胀操作可能会让目标之间产生连接,这样该目标就不能通过腐蚀还原

Tip : 看开、闭运算的作用,主要看第一次操作是膨胀还是腐蚀,因为第一次占的是主导作用,而第二次的膨胀腐蚀操作只是还原目标

 

2. 代码实现 

2.1 开运算

代码为:

这里iteration 代表open运算的迭代次数。

这里是先进行五次腐蚀,然后再五次膨胀

而不是重复五次开运算,因为重复开运算结果是不变的

import cv2
import numpy as npimg = cv2.imread('./img.png',0)kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))  # 获取矩形结构元
dst = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel,iterations=5)cv2.imshow('img',np.hstack((img,dst)))
cv2.waitKey()
cv2.destroyAllWindows()

处理结果为:

可以发现毛刺被处理掉了,这里因为腐蚀会将这种毛刺消去,然后膨胀将主要的前景还原

 

2.2 闭运算

代码为:

import cv2
import numpy as npimg = cv2.imread('./img.png',0)kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))  # 获取矩形结构元
dst = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel,iterations=3)cv2.imshow('img',np.hstack((img,dst)))
cv2.waitKey()
cv2.destroyAllWindows()

处理结果为:

膨胀的操作会将内部的孔洞填充,然后闭运算将目标的大小还原

 


http://chatgpt.dhexx.cn/article/w7H9cbfe.shtml

相关文章

RNN流程详解

RNN及其代码流程 本文重点关注RNN的 整个流程,而不是BP的推导过程 什么是RNN Recurrent Neural Network 循环神经网络 为什么需要RNN? 普通的神经网络都只能单独地处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是&#…

微信小程序:如何在{{}}中使用函数?WXML+WXS

前言 在项目中涉及到百分比的计算&#xff0c;js浮点数运算会出现精度问题&#xff0c;造成小数位数过多&#xff0c;因此想在模板语法中对值进行相应的处理。 开始 按照常规用法&#xff0c;使用js中的toFixed()进行处理&#xff1a; <view>&#xffe5;{{(cashMone…

wxPython:wx.Font详细解释用法

官方构造解释&#xff1a; 注解用法&#xff1a; wx.Font(pointSize, family, style, weight, underlineFalse, faceName"", encodingFONTENCODING_DEFAULT) pointSize &#xff1a;文字大小&#xff1a;floatfamily &#xff1a;字体系列&#xff1a;FontFamilyst…

小程序 - wxs

wxs&#xff1a; 在小程序里写函数表达式&#xff0c;做数据处理 官方文档 wxs WXS&#xff08;WeiXin Script&#xff09;是小程序的一套脚本语言&#xff0c;结合 WXML&#xff0c;可以构建出页面的结构。 WXS 与 JavaScript 是不同的语言&#xff0c;有自己的语法&#x…

如何在小程序的wxml中书写函数逻辑,wxs的使用

在小程序wxml的页面中我们可以使用{{}}内部来书写简单的js表达式&#xff0c;如三目运算符等&#xff0c;但是对于稍微复杂一点的逻辑我们就需要用函数来解决&#xff0c;如果写在js文件中有些繁琐还需要绑定数据等&#xff0c;此时wxs就配上了用场 wxs只支持ES5&#xff01;&…

【学习】HW5

机器学习/深度学习 一、HW5任务训练数据集评价指标——BLEU工作流程训练技巧Baseline Guidereport 代码数据集迭代器编码器attention解码器Seq2Seq模型初始化优化优化器&#xff1a;Adamlr scheduling验证和推断模型补充 一、HW5 任务 在这个家庭作业中&#xff0c;我们将把英…

WXSS-WXML-WXS语法

目录&#xff1a; 1 WXSS编写程序样式 2 Mustache语法绑定 3 WXML的条件渲染 4 WXML的列表渲染 5 WXS语法基本使用 6 WXS语法案例练习 小程序的自适应单位rpx。在设计稿为iPhone6的时候1px2rpx wxml必须是闭合标签&#xff0c;或者单标签加/&#xff0c;否则会报错&#…

WX:用法

1.条件渲染wx:for 在组件上绑定一个数组&#xff08;默认当前标下变量为index.数组变量为item) wx:for-item可以指定当前元素的变量名 wx:for-index可以指定数组当前下标的变量名 2.条件渲染wx:if wx:if是一个控制属性&#xff0c;需要添加到标签中使用 使用多个标签时可…

【微信小程序】WXML WXSS JS

目录 &#x1f353;小程序代码的构成 - WXML 模板 1. 什么是 WXML 2. WXML 和 HTML 的区别 &#x1f347;小程序代码的构成 - WXSS 样式 1. 什么是 WXSS 2. WXSS 和 CSS 的区别 &#x1f352;小程序代码的构成 - JS 逻辑交互 1. 小程序中的 .js 文件 2. 小程序中 .js 文…

【HW4】

HW4 一、Unsupervised LearningSharing ParametersFormulationIn PracticeVarious ArchitecturesApplication机器翻译 总结 二、HW41、Task2、数据集分析mapping.json文件metadata.json文件testdata.json文件 3、Dataset 4、Dataloader5、Model6、Learning rate scheduleLambda…

【微信小程序】--WXML WXSS JS 逻辑交互介绍(四)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#…

微信小程序 | 小程序WXSS-WXML-WXS

&#x1f5a5;️ 微信小程序 专栏&#xff1a;小程序WXSS-WXML-WXS &#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; ✨ 个人主页&#xff1a;CoderHing的个人主页 &#x1f340; 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ &#x1…

【wx】

.js: //message.js const app getApp() Page({data: {background: #D1EEEE,activeKey: 0,motto: Hello World,userInfo: {},hasUserInfo: false,canIUse: wx.canIUse(button.open-type.getUserInfo),navData: [{text: 首页},{text: 健康},{text: 情感},{text: 职场},{text: 育…

wx-wx-wx-wx-wx-wx-wx-wx-wx-wx-wx

一.⼩程序和H5的区别是什么呢&#xff1f; 运⾏环境&#xff1a;⼩程序基于微信&#xff0c;⽽h5的运行环境是浏览器&#xff0c;所以小程序中没有DOM和BOM的相关API&#xff0c;jquey和一些NPM(2.2.1版本前)包都不能在小程序中使用。小程序可以调用宿主环境/微信提供的微信客…

TensorFlow学习笔记——(11)循环神经网络

文章目录 一、循环核二、循环核时间步展开三、循环计算层四、TF描述循环计算层五、循环计算过程1、RNN实现单个字母预测&#xff08;1&#xff09;过程&#xff08;2&#xff09;完整代码 2、RNN实现输入多个字母&#xff0c;预测一个字母&#xff08;1&#xff09;过程&#x…

【mysql组合查询】

mysql组合查询&#xff1a;将查询出来的值作为表头&#xff0c;并统计类别数量 SELECTa.enterprise_name AS 事业部,sum( IF ( a.alarm_reason 3, a.countt, 0 ) ) AS 正常操作,sum( IF ( a.alarm_reason 4, a.countt, 0 ) ) AS 人员操作,sum(IF( a.alarm_reason NULL, a.c…

mysql 组合查询_mysql组合查询

使用UNION 多数SQL查询都只包含一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询(多条SELECT语句)&#xff0c;并将结果作为单个查询结果集返回。这些组合查询通常称为并(union) 有两种情况需要使用组合查询&#xff1a; 在单个表查询中从不同的表返回类似结构…

SQL学习十一、组合查询

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意&#xff0c; 1、UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时&#xff0c;每个 SELECT 语句中的列的顺序必须相同。 即多个 SELECT 语句查询出来的结果集要能合并到一起…

【MySQL】联合查询

目录 1、前言 2、联合查询 3、内连接和外连接 4、案例演示 4.1 查询篮球哥每科的成绩 4.2 查询所有同学的总成绩及邮箱 5、自连接 5.1 显示所有计算机原理成绩比java成绩高的同学 6、子查询 6.1 查询出篮球哥的同班同学 6.2 多行子查询 7、合并查询 1、前言 在实际…

数据库组合查询

在使用数据库的过程中&#xff0c;数据的查询是使用最多的&#xff0c;所以&#xff0c;数据的精确查询是一个很重要的问题。以前的数据查询是最简单的数据查询&#xff0c;也从来没想过组合查询的问题&#xff0c;可是在做机房收费系统的时候&#xff0c;遇到了一个很大的问题…