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 Web框架Flask信号机制(signals)介绍
Jan 01 Python
Python迭代器和生成器介绍
Mar 06 Python
Windows下Python2与Python3两个版本共存的方法详解
Feb 12 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
详细分析python3的reduce函数
Dec 05 Python
利用python打开摄像头及颜色检测方法
Aug 03 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
Python常用模块之requests模块用法分析
May 15 Python
python函数与方法的区别总结
Jun 23 Python
对Python中画图时候的线类型详解
Jul 07 Python
PyQt5多线程防卡死和多窗口用法的实现
Sep 15 Python
Python jiaba库的使用详解
Nov 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
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
详谈js模块化规范
2017/07/07 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
python字符串连接方式汇总
2014/08/21 Python
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
Python中decorator使用实例
2015/04/14 Python
python 队列详解及实例代码
2016/10/18 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
python装饰器深入学习
2018/04/06 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
《独坐敬亭山》教学反思
2014/04/08 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
三方合作意向书范本
2015/05/09 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python
Golang 结构体数据集合
2022/04/22 Golang