OpenCV+python实现膨胀和腐蚀的示例


Posted in Python onDecember 21, 2020

1,概念及原理:

膨胀(Dilating) (或)
(1)将图像 A 与任意形状的内核 (B),通常为正方形或圆形,进行卷积。
(2)内核 B 有一个可定义的 锚点, 通常定义为内核中心点。
(3)进行膨胀操作时,将内核 B 划过图像A,将内核 B 覆盖区域的最大相素值提取,并代替锚点位置的相素。显然,这一最大化操作将会导致图像中的亮区开始”扩展” (因此有了术语膨胀 dilation )。

以3*3的内核为例:

OpenCV+python实现膨胀和腐蚀的示例

OpenCV+python实现膨胀和腐蚀的示例

腐蚀(Eroding) (与)
(1)腐蚀在形态学操作家族里是膨胀操作的孪生姐妹。它提取的是内核覆盖下的相素最小值。
(2)进行腐蚀操作时,将内核 B 划过图像,将内核 B 覆盖区域的最小相素值提取,并代替锚点位置的相素。

OpenCV+python实现膨胀和腐蚀的示例

OpenCV+python实现膨胀和腐蚀的示例

值得注意的是:腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。 膨胀就是图像中的高亮部分进行膨胀,“邻域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中高亮部分被腐蚀,“邻域被蚕食”,效果图拥有比原图更小的高亮区域。

源代码:

import cv2 as cv
import numpy as np


def erode_demo(image):
  # print(image.shape)
  gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
  ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
  #cv.imshow("binary", binary)
  kernel = cv.getStructuringElement(cv.MORPH_RECT, (15, 15))#定义结构元素的形状和大小
  dst = cv.erode(binary, kernel)#腐蚀操作
  cv.imshow("erode_demo", dst)


def dilate_demo(image):
  #print(image.shape)
  gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
  ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
  #cv.imshow("binary", binary)
  kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))#定义结构元素的形状和大小
  dst = cv.dilate(binary, kernel)#膨胀操作
  cv.imshow("dilate_demo", dst)



src = cv.imread("F:/images/test01.png")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
erode_demo(src)
dilate_demo(src)

cv.waitKey(0)

cv.destroyAllWindows()

运行结果:

OpenCV+python实现膨胀和腐蚀的示例

OpenCV+python实现膨胀和腐蚀的示例

OpenCV+python实现膨胀和腐蚀的示例

到此这篇关于OpenCV+python实现膨胀和腐蚀的示例的文章就介绍到这了,更多相关OpenCV 膨胀和腐蚀内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中关于使用模块的基础知识
May 24 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
Numpy之文件存取的示例代码
Aug 03 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
对Python中TKinter模块中的Label组件实例详解
Jun 14 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
Jul 04 Python
Python使用lambda表达式对字典排序操作示例
Jul 25 Python
Python接口开发实现步骤详解
Apr 26 Python
Django之腾讯云短信的实现
Jun 12 Python
如何在mac版pycharm选择python版本
Jul 21 Python
python基于pygame实现飞机大作战小游戏
Nov 19 Python
python中HTMLParser模块知识点总结
Jan 25 Python
python opencv肤色检测的实现示例
Dec 21 #Python
OpenCV+Python3.5 简易手势识别的实现
Dec 21 #Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 #Python
python 录制系统声音的示例
Dec 21 #Python
用python发送微信消息
Dec 21 #Python
关于多种方式完美解决Python pip命令下载第三方库的问题
Dec 21 #Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
Dec 21 #Python
You might like
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
浅析php数据类型转换
2014/01/09 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
JavaScript 特殊字符
2007/04/05 Javascript
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
详解Python循环作用域与闭包
2019/03/21 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
python处理RSTP视频流过程解析
2020/01/11 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
PHP面试题及答案一
2012/06/18 面试题
五一活动标语
2014/06/30 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
工作调动申请报告
2015/05/18 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
用Python实现屏幕截图详解
2022/01/22 Python