基于opencv图像形态学操作-礼帽与黑帽_礼帽操作和黑帽操作-程序员宅基地

技术标签: OpenCV  计算机视觉  人工智能  opencv  

礼帽运算:开运算可以消除暗背景下的高亮区域,用原图减去开运算结果就可以得到原图中灰度较亮的区域,所以又称白顶帽变换。

黑帽运算:闭运算可以删除亮背景下的黑暗区域,用原图减去闭运算结果就可以得到原图中灰度较暗的区域,所以又称黑底帽变换。

#礼帽运算=原始输入-开运算结果(先腐蚀再膨胀)

#黑帽运算=闭运算结果(先膨胀再腐蚀)-原始输入

tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)

blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)

scr:表示需要处理的图像    cv2.MORPH_TOPHAT:礼帽运算     cv2.MORPH_BLACKHAT:黑帽运算     kernel:卷积核

#代码展示

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46572117/article/details/134362528

智能推荐

swiper滑动及动画特效_swiper上下滑动动画重置-程序员宅基地

文章浏览阅读4k次。Swiper基本使用方法:一、加载插件,需要用到的文件有swiper.min.js和swiper.min.css文件。二、HTML内容。(我是基于angular1.x)<div class="swiper-container jb_carousel" id="jb_carousel"> <div class="swiper-wrapper" > ..._swiper上下滑动动画重置

ansible的剧本-程序员宅基地

文章浏览阅读293次。ansible的playbook的介绍-yamlansible的playbook是使用yaml语言写的YAML标记语言介绍YAML是一个可读性高的用来表达资料序列的格式。YAML参考了其他多种语言包括XML、C语言、Python、Perl以及电子邮件格式RFC2822等。Clark Evans在2001年在首次发表了这种语言另外Ingy dtNet与Oren Ben-Kiki也是这语言的共..._192.168.16.139:5000

K8s 超详细总结!-程序员宅基地

文章浏览阅读5.4w次,点赞30次,收藏370次。一个目标:容器操作;两地三中心;四层服务发现;五种Pod共享资源;六个CNI常用插件;七层负载均衡;八种隔离维度;九个网络模型原则;十类IP地址;百级产品线;千级物理机;万级容器;相如无亿..._k 8 s

windows编译新版本linphone_windows编译 linphone-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏2次。​​​​​​​linphone-desktop是一款基于SIP的标准开源网络电话系统,它使用了Qt和mediastreamer2开源多媒体库,支持大部分音视频格式,包括H263和H264等。linphone-desktop允许用户通过互联网与他人进行语音、视频和即时文本消息的沟通。它能够通过查询朋友的IP地址并进行拨号,功能强大且支持多种平台,既可以在桌面系统上使用,也可以在移动设备上使用,甚至支持WEB浏览器。linphone-desktop遵循GPL开放源代码协议,可以自由下载和二次开发。_windows编译 linphone

Spring Cloud Alibaba 微服务开发实践_spring cloud alibaba微服务最佳实践-程序员宅基地

文章浏览阅读1.7k次。Spring Cloud Alibaba 是阿里巴巴开源的基于 Spring Cloud 的微服务框架。该项目从最初孵化到现在已经历经十多年的发展,得到了广泛的应用。其中主要集成了阿里巴巴中间件生态中的组件,比如 Nacos、Sentinel、RocketMQ 和 Dubbo。这些组件在 Spring Cloud 中进行了整合,让 Spring Cloud 用户能够更加简单方便地使用这些组件。因此,Spring Cloud Alibaba 如今已成为众多 Java 开发者的最爱。_spring cloud alibaba微服务最佳实践

映射与集合的可列性_可列集的映射-程序员宅基地

文章浏览阅读710次。映射基本概念给定两个集合X,YX,YX,Y,若对于任意的元素x∈Xx\in Xx∈X,都存在唯一的y∈Yy\in Yy∈Y与之对应,就称定义了一个从XXX到YYY的映射,记作f:X→Yf:X\to Yf:X→Y其中yyy称为xxx在映射fff下的象,记作f(x)f(x)f(x);XXX称为映射fff的定义域。设A⊂X,B⊂YA\subset X,B\subset YA⊂X,B⊂Y,定义象集f(A)f(A)f(A)和原象集f−1(B)f^{-1}(B)f−1(B):f(A)={f(x)∈Y∣x∈A_可列集的映射

随便推点

【5G】PDSCH/PUSCH DMRS CDM(OCC)原理_occ和pusch-程序员宅基地

文章浏览阅读591次,点赞9次,收藏9次。5G协议解读与原理解析:DMRS CDM需求及码分权值生成原理_occ和pusch

QML ListView实现惰性加载_qlistview实现懒加载-程序员宅基地

文章浏览阅读2.9k次。移动开发中,经常会看到这样的需求,用户拖动列表至列表最下端时,软件自动加载新的内容。这就是惰性加载,也叫延时加载。实现的关键是监控当用户拖动列表至最下端时的事件。上拉加载原理:contentY为列表上拉后列表左上角点距显示框左上解点的高度,listView1.height为可显示部分的高度,假设列表单元的高度为listViewCellHeight,列表个数为li_qlistview实现懒加载

UE4中FString转char* ,控制台字符输出乱码(不是编译期乱码)-程序员宅基地

文章浏览阅读3.1k次。刚接触ue4,原本想着一个很简单的打印字符串,找找博客就没事了 ,但是找来找去 不是要什么安装字体,就是vs只安装英文,启用 utf-8bate版,我只是想简单输出下字符打印啊!!!刚用libuv网络库所以需要从editor就是FString拿到字符转换成char* ,内存中的数值是正常的中英文字符都是正常传输的,但是一到log就不行,谁有时间去一步步调试看内存中是什么啊,找来找去我觉得应该是ue4打印函数不支持utf-8,或者是gbk是这样测试的-> std::string ..._fstring转char*

java.util.concurrent.CompletionException: java.lang.ArrayIndexOutOfBoundsException异常的原因分析及解决方-程序员宅基地

文章浏览阅读8.1k次,点赞2次,收藏7次。java.util.concurrent.CompletionException: java.lang.ArrayIndexOutOfBoundsException异常的原因分析及解决方案1.错误日志java.util.concurrent.CompletionException: java.lang.ArrayIndexOutOfBoundsException at java.util.concurrent.CompletableFuture.encodeThrowable(Compl.

Django学习之路2-环境的搭建(virtualenv)-程序员宅基地

文章浏览阅读45次。virtualenv简介:virtualenv 是一个创建独立python环境的工具。其要解决的最基本问题就是库的依赖和版本,以及间接权限。比如一个ubuntu环境默认安装了python2.7.11的版本,想要使用python3.5,如果再安装3.5,就会比较乱,再如pip安装的软件包,有..._django 重新搭建env

深入分析序列化和反序列化原理,终于知道serialVersionUID到底有什么用了_private static final long serialversionuid 和实现序列化有-程序员宅基地

文章浏览阅读3.2k次,点赞14次,收藏41次。深入序列化和反序列化原理一个问题引发的思考什么是序列化和反序列化序列化一个问题引发的思考下面是一个简单的socket通信demo。通信数据类:package com.zwx.serialize.demo;public class SocketUser { public SocketUser(String id, String name) { this.id = id; this.name = name; } private String _private static final long serialversionuid 和实现序列化有什么区别