OpenCv之图像形态学(二)

news2024/12/25 0:28:26

目录

一、形态学梯度

二、顶帽操作

三、黑帽操作


一、形态学梯度

  • 梯度=原图 - 腐蚀
  • 腐蚀之后原图边缘变小,原图 - 腐蚀 就可以得到腐蚀掉的部分,即边缘

案例代码如下:

import cv2
import numpy as np

# 导入图片
img = cv2.imread('6.jpg')

# 注意调节kernel大小以获得更清晰的边缘
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))

dst = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel,iterations=1)

cv2.imshow('img',np.hstack((img,dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果如下:

二、顶帽操作

  • 顶帽 = 原图 - 开运算
  • 开运算的效果是去除图形外的噪点,原图 - 开运算就得到了去掉的噪点

案例代码如下:

import cv2
import numpy as np


img = cv2.imread('6.jpg')

# 注意调整kernel以保留小图形
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(19,19))

dst = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel,iterations=1)

cv2.imshow('img',np.hstack((img,dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()

三、黑帽操作

  • 黑帽 = 原图 - 闭运算
  • 闭运算可以将图形内部的噪点去掉,那么原图 - 闭运算的结果就是图形内部的噪点

案例代码如下:

import cv2
import numpy as np


img = cv2.imread('6.jpg')

# 注意调整kernel以保留小图形
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(19,19))

dst = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel,iterations=1)

cv2.imshow('img',np.hstack((img,dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()

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

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

相关文章

nginx基础2——配置文件详解(网页配置篇)

文章目录 一、基本了解二、nginx.conf配置参数2.1 调试参数2.2 必配参数2.3 优化性能参数2.4 event{}段配置参数2.5 网络连接参数2.6 fastcgi配置参数2.7 总结常配参数 三、http{}段配置参数3.1 配置结构3.2 精简配置网页3.3 location定义网页3.3.1 root path用法3.3.1 alias p…

atc201(组合数学)+cf1400(溢水法)

C - Secret Number 题意:给你一个字符串,分别表示0-9的状态。求一个四位密码的组合有多少种。 O:表示密码一定有该数字。 X:表示密码一定没有该数字。 ?:不确定密码里有没有,可能有可能没有&…

bgp联邦

1、ip配置 [r1-LoopBack0]ip address 192.168.1.1 24 [r1-LoopBack1]ip address 10.0.0.1 24 [r1-GigabitEthernet0/0/0]ip address 12.0.0.1 24[r2-GigabitEthernet0/0/0]ip address 12.0.0.2 24 [r2-GigabitEthernet0/0/1]ip address 172.16.1.1 29 [r2-GigabitEthernet0/0/…

js - 对forEach()函数的一些理解

1,定义和用法 定义: forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。注意: forEach() 对于空数组是不会执行回调函数的。 用法: // 箭头函数 forEach((element) > { /* … */ }) forEach((element, index) &…

RS485远传电表有哪些功能?

RS485远传电表是一种具有远程传输功能的电表,可以通过RS485接口进行数据传输。它主要用于远程测量电能消耗、监测电力质量和实时控制电力负载等方面。 RS485远传电表具有多种功能,如: 1.远程测量电能消耗:RS485远传电表可以通过远…

【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3(GDB调试器的基础使用)

【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3(GDB调试器的基础使用) 目录 【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3(GDB调试器的基础使用)背景gdb的一些指令gdb实际运用显示代码运行程…

spring boot +vue 读取excel数据代码生成器

项目介绍 最近在开发工程中,需要根据excel中的数据生成标签类,手写太费劲啦,还得一边写一边对,受不了啦 决定写一个解析工具,自动生成代码 项目架构 项目采用springboot vue的开发方式,但vue并不是分离项目…

day38-Mybatis映射

0目录 Mybatis映射 1.2.3 1. Mybatis映射 1.1 映射文件XXMapper.xml语法 1.2 namespace:命名空间 namespace 的命名必须跟某个接口同名 1.3 id:命名空间中的唯一标识符 接口中的方法与映射文件中的SQL语句id一一对应 1.4 parameterType&#xf…

尚硅谷大数据Flink1.17实战教程-笔记03【Flink运行时架构】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址:尚硅谷大数据Flink1.17实战教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据Flink1.17实战教程-笔记01【Flink概述、Flink快速上手】尚硅谷大数据Flink1.17实战教程-笔记02【Flink部署】尚硅谷…

好用的Net反编译工具,界面和VS差不多,供大家学习研究参考

1、无需设置 由于它是一个便携式工具,它不需要您将其安装在目标计算机上,因为只需拆包其存档并启动可执行文件即可完全访问其功能。 您还可以从可移动存储介质(如USB闪存驱动器或外部HDD)运行它。此外,它不会修改系统中的注册表项&#xff0c…

学习记录——SpectFormer、DilateFormer、ShadowFormer

SpectFormer: Frequency and Attention is what you need in a Vision Transformer, arXiv2023 频域混合注意力SpectFormer 2023 论文:https://arxiv.org/abs/2304.06446 代码:https://badripatro.github.io/SpectFormers/ 摘要视觉变压器已经成功地应用…

【Spring——Spring的基础与创建】

目录 🍧1. 什么是 Spring ? 🫖1.1 容器 🍙1.2 IoC 🥽1.3 汽车类——传统写法 🍘1.4 汽车类——IoC 写法 🌭2. 配置 maven 国内源 🌮2.1 在设置中勾选文件 🍤2.2 在…

SpringCloud学习路线(4)—— Nacos注册中心

一、认识和安装Nacos (一)概念: Nacos是Alibaba的产品,现在是SpringCloud中的一个组件,相较于Eureka功能更加丰富。 (二)下载地址: https://github.com/alibaba/nacos/releases &am…

一文看懂《关于网络安全和信息化工作重要指示》

7月14日至15日,全国网络安全和信息化工作会议在京召开。《关于网络安全和信息化工作重要指示》也在会上得到解读与传达。 从近年来党的二十大等重大会议上网络安全和数据安全等相关话题多次被提及、我国陆续发布多部网络安全&数据安全相关政策法规等等&#xf…

个人微信号二次开发的实现,api接口

各位兄弟姐妹们大家好!!!! 我又瞧到了好玩的微信机器人分享给大家! 社群运营这几年风头正盛,不能落伍啊,我们也赶紧组建了社群。 但是微信群还是社交属性为主的,当我们运营多个社群的…

(栈队列堆) 剑指 Offer 09. 用两个栈实现队列 ——【Leetcode每日一题】

❓ 剑指 Offer 09. 用两个栈实现队列 难度:简单 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead …

如何通过振动传感器实现设备的故障诊断和预测性维护?

在现代工业生产中,设备的故障和停机时间对于企业的生产效率和经济效益有着巨大的影响。为了提高设备的可靠性和降低维护成本,越来越多的企业开始采用振动传感器作为关键的监测工具。振动传感器能够实时监测设备的振动情况,并通过数据分析和算…

自制编译器代码4.6含义

规则一,识别一个" 规则二,识别除了",,\n.\r的其他字符 规则三,这里第一个\意思是一个转义字符\,意思是ASCII码 比如\077就是八进制ASCII码的? 规则四,识别其他所有字符 规则五,回到defailt状态 …

不懂代码也不用怕!10款无代码网站搭建平台

作为设计师,对网站满脑子的构思,却受限于时间和技能(比如写代码),这是何其无奈!那个在你脑中盘桓许久的网站,或许是一个博客,可能是作品展示网站,但无论是哪种&#xff0…