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实现设置windows桌面壁纸代码分享
Mar 28 Python
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
Python和JavaScript间代码转换的4个工具
Feb 22 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
python匹配两个短语之间的字符实例
Dec 25 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
django重新生成数据库中的某张表方法
Aug 28 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
Sep 20 Python
关于多元线性回归分析——Python&SPSS
Feb 24 Python
Python3中对json格式数据的分析处理
Jan 28 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 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检测用户语言的方法
2015/06/15 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
获取body标签的两种方法
2011/10/13 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
jquery数组之存放checkbox全选值示例代码
2013/12/20 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
ExpressJS入门实例
2015/01/14 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
原生js代码能实现call和bind吗
2019/07/31 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
python 输出一个两行字符的变量
2009/02/05 Python
python实现批量转换文件编码(批转换编码示例)
2014/01/23 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
python使用tornado实现简单爬虫
2018/07/28 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
大学生怎样进行自我评价
2013/12/07 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
你知道Java Spring的两种事务吗
2022/03/16 Java/Android