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中optparse模块使用浅析
Jan 01 Python
Python处理命令行参数模块optpars用法实例分析
May 31 Python
Python之列表的插入&替换修改方法
Jun 28 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
Python配置虚拟环境图文步骤
May 20 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
使用Python来做一个屏幕录制工具的操作代码
Jan 18 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 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后期静态绑定实例浅析
2018/12/21 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
jquery 新浪网易的评论块制作
2010/07/01 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Windows下python2.7.8安装图文教程
2016/05/26 Python
pandas object格式转float64格式的方法
2018/04/10 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
python爬虫之自动登录与验证码识别
2020/06/15 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
python文件操作的简单方法总结
2019/11/07 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
python 负数取模运算实例
2020/06/03 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
几个MySql的面试题
2013/04/22 面试题
优秀学生干部个人的自我评价
2013/10/04 职场文书
师范生个人推荐信
2013/11/29 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书