opencv 形态学变换(开运算,闭运算,梯度运算)


Posted in Python onJuly 07, 2020

形态学里把腐蚀和膨胀单独拿了出来,其他操作(保括膨胀和腐蚀的组合操作)都叫形态学变换。
opencv里有包:cv2.morphologyEx()
morphology :译文 形态学
使用python +opencv讲解

开运算

开运算:对图像先进行腐蚀,然后对腐蚀后的图进行膨胀

opencv 形态学变换(开运算,闭运算,梯度运算)

opencv 形态学变换(开运算,闭运算,梯度运算)

morphologyEx
运算结果=cv2.morphologyEx(源图像img,cv2.MORPH_OPEN,卷积核k)
cv2.MORPH_OPEN:开运算

import cv2
import numpy as np
o=cv2.imread("opening.bmp",cv2.IMREAD_UNCHANGED)
k=np.ones((10,10),np.uint8)
r=cv2.morphologyEx(o,cv2.MORPH_OPEN,k)
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

opencv 形态学变换(开运算,闭运算,梯度运算)

闭运算

对图像进行先膨胀,再腐蚀。
有助于关闭前景物体上的小孔,或者小黑点。

opencv 形态学变换(开运算,闭运算,梯度运算)

morphologyEx
运算结果=cv2.morphologyEx(源图像img,cv2.MORPH_CLOSE,卷积核k)
cv2.MORPH_CLOSE:闭运算

合理选择卷积核大小,太小了无法去除前景图的黑点

import cv2
import numpy as np
o=cv2.imread("closing.bmp",cv2.IMREAD_UNCHANGED)
k=np.ones((10,10),np.uint8)
r=cv2.morphologyEx(o,cv2.MORPH_CLOSE,k)
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

opencv 形态学变换(开运算,闭运算,梯度运算)

梯度运算

对二值图像分别进行膨胀和腐蚀操作。
然后膨胀图像-腐蚀图像=结果
(像素相减)0-0=0,1-1=0,1-0=1

opencv 形态学变换(开运算,闭运算,梯度运算)

运算结果=cv2.morphologyEx(源图像img,cv2.MORPH_GRADIENT,卷积核k)
cv2.MORPH_GRADIENT:闭运算

import cv2
import numpy as np
o=cv2.imread("gradient.bmp",cv2.IMREAD_UNCHANGED)
k=np.ones((5,5),np.uint8)
r=cv2.morphologyEx(o,cv2.MORPH_GRADIENT,k)
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

opencv 形态学变换(开运算,闭运算,梯度运算)

到此这篇关于opencv 形态学变换(开运算,闭运算,梯度运算)的文章就介绍到这了,更多相关opencv 形态学变换内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python冒泡排序算法的实现代码
Nov 21 Python
Python 自动化表单提交实例代码
Jun 08 Python
python批量修改图片后缀的方法(png到jpg)
Oct 25 Python
Python设计模式之简单工厂模式实例详解
Jan 22 Python
python多线程下信号处理程序示例
May 31 Python
python中的colorlog库使用详解
Jul 05 Python
Python实现二叉搜索树BST的方法示例
Jul 30 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
Django 再谈一谈json序列化
Mar 16 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
Jun 14 Python
python实现简单遗传算法
Sep 18 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 #Python
Python基于httpx模块实现发送请求
Jul 07 #Python
opencv 图像腐蚀和图像膨胀的实现
Jul 07 #Python
Pytorch损失函数nn.NLLLoss2d()用法说明
Jul 07 #Python
浅析Python __name__ 是什么
Jul 07 #Python
Pytorch上下采样函数--interpolate用法
Jul 07 #Python
pytorch随机采样操作SubsetRandomSampler()
Jul 07 #Python
You might like
快速开发一个PHP扩展图文教程
2008/12/12 PHP
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
jquery 最简单的属性菜单
2009/10/08 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
js实现密码强度检验
2017/01/15 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
解读! Python在人工智能中的作用
2017/11/14 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
python实现的自动发送消息功能详解
2019/08/15 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
护士演讲稿优秀范文
2014/04/30 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书