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实现自动登录人人网并访问最近来访者实例
Sep 26 Python
python清除字符串里非字母字符的方法
Jul 02 Python
浅谈Python基础之I/O模型
May 11 Python
PyQT实现多窗口切换
Apr 20 Python
Python生成指定数量的优惠码实操内容
Jun 18 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
Python3离线安装Requests模块问题
Oct 13 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
一篇文章搞懂python的转义字符及用法
Sep 03 Python
Python数据可视化常用4大绘图库原理详解
Oct 23 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
python基于selenium爬取斗鱼弹幕
Feb 20 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的面试题集
2006/11/19 PHP
php构造函数实例讲解
2013/11/13 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
JavaScript学习笔记之ES6数组方法
2016/03/25 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
python一些性能分析的技巧
2020/08/30 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
农场厂长岗位职责
2013/12/28 职场文书
秋季运动会通讯稿
2014/01/24 职场文书
开会迟到检讨书
2014/02/03 职场文书
人资专员岗位职责
2014/04/04 职场文书
师范生求职信
2014/06/14 职场文书
司机岗位职责
2015/02/04 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书