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

opencv基础-38 形态学操作-闭运算(先膨胀,后腐蚀)cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

闭运算是先膨胀、后腐蚀的运算,它有助于关闭前景物体内部的小孔,或去除物体上的小黑点,还可以将不同的前景图像进行连接。

例如,在图 8-17 中,通过先膨胀后腐蚀的闭运算去除了原始图像内部的小孔(内部闭合的闭运算),其中:

  • 左图是原始图像。
  • 中间的图是对原始图像进行膨胀的结果。
  • 右图是对膨胀后的图像进行腐蚀的结果,即对原始图像进行闭运算的结果。

在这里插入图片描述
从图 8-17 可以看到,原始图像在经过膨胀、腐蚀后,实现了闭合内部小孔的目的。除此以外,闭运算还可以实现前景图像的连接。例如,在图 8-18 中,利用闭运算将原本独立的两部分前景图像连接在一起,其中:

  • 左图是原始图像。
  • 中间的图是对原始图像进行膨胀的结果。
  • 右图是对膨胀后的图像进行腐蚀的结果,即对原始图像进行闭运算的结果。

在这里插入图片描述
通过将函数 cv2.morphologyEx()中操作类型参数 op 设置为“cv2.MORPH_CLOSE”,可以实现闭运算。其语法结构如下:

closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

代码示例:

使用函数 cv2.morphologyEx()实现闭运算。

原图
在这里插入图片描述
在这里插入图片描述
代码如下:

import cv2
import numpy as np
img1=cv2.imread("closing.bmp")
img2=cv2.imread("closing2.bmp")
k=np.ones((10,10),np.uint8)
r1=cv2.morphologyEx(img1,cv2.MORPH_CLOSE,k,iterations=3)
r2=cv2.morphologyEx(img2,cv2.MORPH_CLOSE,k,iterations=3)
cv2.imshow("img1",img1)
cv2.imshow("result1",r1)
cv2.imshow("img2",img2)
cv2.imshow("result2",r2)
cv2.waitKey()
cv2.destroyAllWindows()

在本例中,分别针对两幅不同的图像做了闭运算。运行程序,结果如下图所示,其中:

  • 图(a)是原始图像 img1。
  • 图(b)是原始图像 img1 经过闭运算得到的图像 r1。
  • 图©是原始图像 img2。
  • 图(d)是原始图像 img2 经过闭运算得到的图像 r2。
    在这里插入图片描述
    在这里插入图片描述

相关文章:

opencv基础-38 形态学操作-闭运算(先膨胀,后腐蚀)cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

闭运算是先膨胀、后腐蚀的运算,它有助于关闭前景物体内部的小孔,或去除物体上的小黑点,还可以将不同的前景图像进行连接。 例如,在图 8-17 中,通过先膨胀后腐蚀的闭运算去除了原始图像内部的小孔(内部闭合的…...

RocketMQ生产者和消费者都开启Message Trace后,Consume Message Trace没有消费轨迹

一、依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.0.3</version> </dependency>二、场景 1、生产者和消费者所属同一个程序 2、生产者开启消…...

JDV背后的技术-助力618 | 京东云技术团队

一、项目介绍 JDV&#xff08;可视化大屏&#xff09;是京东内部搭建可视化大屏的数据工具平台&#xff0c;内置10种模版特效&#xff0c;40种风格各异的图表、导航等组件。与集团其他数据工具打通&#xff0c;支持一站式、自助化、拖拽式搭建大屏&#xff0c;实现数据切换、联…...

0基础学习VR全景平台篇 第78篇:全景相机-拍摄VR全景

新手入门圆周率科技&#xff0c;成立于2012年&#xff0c;是中国最早投身嵌入式全景算法研发的团队之一&#xff0c;亦是全球市场占有率最大的全景算法供应商。相继推出一体化智能屏、支持一键高清全景直播的智慧全景相机--Pilot Era和Pilot One&#xff0c;为用户带来实时畅享…...

Spring MVC简介与概述

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

java基础复习(第六日)

java基础复习(五) 1.是否了解类似 RabbitMQ.kalka 之类的队列服务? 请简述队列取务中的常见要素和使用场景&#xff1f; 了解&#xff0c;队列服务是一种应用间的通信方式&#xff0c;可以实现异步处理、应用解耦、流量削峰和消息通信等功能 队列服务的常见要素&#xff1a…...

商用服务机器人公司【Richtech Robotics】申请纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于美国内华达州拉斯维加斯由华人领导的商用服务机器人公司【Richtech Robotics】近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&am…...

关于nn.Embedding如何使用预定义词表

直接使用&#xff0c;则是没有pretrained的词表。 若要使用预定义词表&#xff0c;则可以用 pretrained_weight np.array(pretrained_weight) embeds.weight.data.copy_(torch.from_numpy(pretrained_weight))参考&#xff1a; https://wmathor.com/index.php/archives/1435/…...

怎么设置文件夹密码?文件夹密码设置方法合集

为文件夹设置密码可以有效地保护文件夹的数据安全&#xff0c;那么该怎么设置文件夹密码呢&#xff1f;下面我们来一起了解一下。 文件夹保护3000 想要简单快捷的为文件夹设置密码&#xff0c;那么&#xff0c;文件夹保护3000就是最佳的选择。它提供了3种文件夹保护方式&#…...

PEMFC氢氧质子交换燃料电池MATLAB仿真模型

氢氧燃料电池静态模型&#xff1a; &#xff08;1&#xff09;热力学电动势En &#xff08;2&#xff09;活化极化过电势Vact 活化损失主要是因为电极表面的反应速度过慢&#xff0c;在驱动电子传递到或者传送出电极的化学反应时&#xff0c;部分电压会被消耗。 &#xff08;…...

创建PVC注意事项

On the one hand 创建永久卷&#xff08;Persistent Volume Claim&#xff0c;PVC&#xff09;时需要考虑以下几个因素&#xff1a; 存储类别&#xff08;Storage Class&#xff09;&#xff1a;选择适合需求的存储类别是创建 PVC 的第一步。存储类别定义了永久卷的属性&…...

Sencha Ext.NET Crack 快速应用程序的正确工具集

Sencha Ext.NET Crack 快速应用程序的正确工具集 Sencha Ext.NET是一个高级的ASP.NET核心组件框架&#xff0c;它包含了强大的跨浏览器Sencha Ext JS库。通过140多个预构建和专业测试的UI组件实现企业级性能和生产效率。Sencha Ext.NET使用尖端的Web技术创建功能强大的Web应用程…...

transformer学习

transformer 李宏毅老师的课&#xff1a;https://www.youtube.com/watch?vugWDIIOHtPA&listPLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index60 知乎上的文章&#xff1a;Transformer模型详解&#xff08;图解最完整版&#xff09; 主要参考tensorflow的官方文档&#xf…...

基于LNMP架构搭建Discuz论坛

LNMP: L---->linux系统&#xff0c;操作系统。 N----->nginx网站服务&#xff08;前端),提供前端的静态页面服务。同时具有代理、转发的作用。&#xff08;转发就是转发后端请求&#xff0c;转发PHP&#xff09;&#xff0c;nginx没有处理动态资源的功能&#xff0c;他有…...

乐鑫科技2021笔试题

笔试时间&#xff1a;2020.09.09&#xff0c;10&#xff1a;00-11&#xff1a;30 岗位&#xff1a;嵌入式软件工程师 题型&#xff1a;单选题20道&#xff0c;40分。编程题2道&#xff0c;60分。 单选题 1、算术右移指令执行的操作是&#xff1f;符号位会变化吗&#xff1f…...

VL 模型 Open-Set Domain Adaptation with Visual-Language Foundation Models 论文阅读笔记

Open-Set Domain Adaptation with Visual-Language Foundation Models 论文阅读笔记 一、Abstract 写在前面 又是一周周末&#xff0c;在家的时间感觉过得很快呀。今天没得时间写博客&#xff0c;留下个标题&#xff0c;明天搞完。 论文地址&#xff1a;Open-Set Domain Adapta…...

在IDEA同一个窗口中同时打开多个独立项目

文章说明 本文主要说明如何在Intellij Idea中同时打开多个独立的Maven项目。 我在使用idea的时候&#xff0c;由于自己负责了很多项目&#xff0c;经常要在不通的代码之间切换来切换去。然后搜索代码的时候也只能搜到当前打开的这个项目。因为这个原因&#xff0c;一些小项目…...

flask-session、数据库连接池

flask 自带session---》以cookie的形式放到了浏览器中---》加密 真正的session&#xff0c;是在服务端存储 -django中存在djangosession表中 -flask中&#xff0c;使用第三方&#xff0c;保存在---》redis中---》flask-session 使用步骤 pip install flask-session …...

基于EEGLAB的ICA分析

目录 1.ICA原理 2.ICA的实现 3.ICA成分识别 4.ICLabel识别并去除伪迹 5.ICA成分识别练习 1.ICA原理 得到的每一个地形图&#xff0c;实际上就是它的权重谱。 投射&#xff1a;根据原成分恢复原始信号。 选择性投射&#xff1a;去伪。 2.ICA的实现 extended&#xff0c;1&…...

Pytorch深度学习-----神经网络之线性层用法

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用&#xff08;ToTensor&#xff0c;Normalize&#xff0c;Resize &#xff0c;Co…...

代码随想录算法训练营day58

文章目录 Day58 每日温度题目思路代码 下一个更大元素 I题目思路代码 Day58 每日温度 739. 每日温度 - 力扣&#xff08;LeetCode&#xff09; 题目 请根据每日 气温 列表&#xff0c;重新生成一个列表。对应位置的输出为&#xff1a;要想观测到更高的气温&#xff0c;至少需…...

Grafana集成prometheus(4.Grafana添加预警)

上文已经完成了grafana对prometheus的集成及数据导入&#xff0c;本文主要记录grafana的预警功能&#xff08;以内存为例&#xff09; 添加预警 添加入口&#xff08;2个&#xff09; databorard面板点击edit&#xff0c;下方有个Alert的tab&#xff0c;创建Alert rules依赖…...

宏观上看Spring创建对象的过程

宏观上看Spring创建对象的过程 对于对象而言&#xff0c;可以分为简单对象和复杂对象&#xff1b; 简单对象 简单对象指可以直接new的对象&#xff1b; Spring在创建这些对象时&#xff0c;是基于反射来完成的。复杂对象 复杂对象指不能直接new的对象。 比如&#xff1a;要得到…...

Jtti:linux如何配置dns域名解析服务器

要配置Linux上的DNS域名解析服务器&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1. 安装BIND软件包&#xff1a;BIND是Linux上最常用的DNS服务器软件&#xff0c;您可以使用以下命令安装它&#xff1a; sudo apt-get install bind9 2. 配置BIND&#xff1a;BIND的配置…...

上网速度慢解决方案

方法 1&#xff1a;手动设置 Proxy 服务器 假如你是使用宽带的用户&#xff0c;使用宽带路由器后可能会发觉无法浏览一些网页&#xff0c;其中一个原因是一些 ISP 商 在后台使用了隐形的代理服务器&#xff0c;使部分网页无法正常显示。假如你多次按“F5”键也无法刷新网页&…...

解决 “fatal: Could not read from remote repository.

问题描述&#xff1a; 在使用Git将本地仓库推送到远程仓库或将远程仓库克隆到本地的时候&#xff0c;发生了如下错误&#xff1a;“fatal: Could not read from remote repository.” 原因分析&#xff1a; 出现这错误一般是以下两种原因&#xff1a; 客户端与服务端未生成 …...

TypeScript知识点总结

typescript是js的超集&#xff0c;目前很多前端框架都开始使用它来作为项目的维护管理的工具&#xff0c;还在不断地更新&#xff0c;添加新功能中&#xff0c;我们学习它&#xff0c;才能更好的在的项目中运用它&#xff0c;发挥它的最大功效 let b: null nulllet c: null …...

Map简单介绍

Map 是 Java 中用于存储键值对的接口&#xff0c;它是一个抽象类&#xff0c;有多个实现类&#xff0c;如 HashMap、TreeMap、LinkedHashMap 等。我将为你提供一些关于 Map 接口的源码解读。 首先&#xff0c;Map 接口的定义如下&#xff1a; public interface Map<K, V&g…...

Linux文本处理工具和正则表达式

Linux文本处理工具和正则表达式 一.查看、截取和修改文本的工具 1.查看文本的工具 cat 最常用的文件查看命令&#xff1b;当不指明文件或者文件名为一杠’-时&#xff0c;读取标准输入。 cat [OPTION]... [FILE]... -A&#xff1a;显示所有控制符(tab键:^I;行结束符:$) -…...

【WebRTC---源码篇】(二十三)JitterBuffer

PacketBuffer packetbuffer类中重要的一些变量 // buffer_.size() and max_size_ must always be a power of two.const size_t max_size_;//能存储的最大元素个数// The fist sequence number currently in the buffer.uint16_t first_seq_num_ RTC_GUARDED_BY(crit_);//这个…...