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实现保证只能运行一个脚本实例
Jun 24 Python
Python基于PycURL实现POST的方法
Jul 25 Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
深入理解Python中装饰器的用法
Jun 28 Python
python读取图片任意范围区域
Jan 23 Python
python如何制作缩略图
Apr 30 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
Python中list循环遍历删除数据的正确方法
Sep 02 Python
浅谈Python 参数与变量
Jun 20 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 Python
Django+Django-Celery+Celery的整合实战
Jan 20 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 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
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
JQuery UI皮肤定制
2009/07/27 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
简介JavaScript中Math.cos()余弦方法的使用
2015/06/15 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
js实现图片实时时钟
2020/01/15 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
python3序列化与反序列化用法实例
2015/05/26 Python
python装饰器深入学习
2018/04/06 Python
python保存文件方法小结
2018/07/27 Python
Python命令行click参数用法解析
2019/12/19 Python
python实现猜单词游戏
2020/05/22 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书