1,概念及原理:

膨胀(Dilating) (或)

(1)将图像 A 与任意形状的内核 (B),通常为正方形或圆形,进行卷积。

(2)内核 B 有一个可定义的 锚点, 通常定义为内核中心点。

(3)进行膨胀操作时,将内核 B 划过图像A,将内核 B 覆盖区域的最大相素值提取,并代替锚点位置的相素。显然,这一最大化操作将会导致图像中的亮区开始”扩展” (因此有了术语膨胀 dilation )。

以3*3的内核为例:

腐蚀(Eroding) (与)

(1)腐蚀在形态学操作家族里是膨胀操作的孪生姐妹。它提取的是内核覆盖下的相素最小值。

(2)进行腐蚀操作时,将内核 B 划过图像,将内核 B 覆盖区域的最小相素值提取,并代替锚点位置的相素。

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

源代码:

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实现膨胀和腐蚀的示例相关推荐

  1. halcon区域腐蚀膨胀算子_OpenCV 图像处理之膨胀与腐蚀

    1.什么是膨胀与腐蚀 膨胀与腐蚀属于形态学范围,具体的含义根据字面意思来理解即可.但是更形象的话就是"增肥"与"减肥". 它们的用途就是用来处理图形问题上.总结 ...

  2. python爬虫文件代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)...

    WechatSogou[1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典.[1]: https://github ...

  3. python入门基础代码图-python入门代码指南教程书籍推荐2020总结全集汇总

    python入门代码指南教程书籍推荐2020总结全集汇总 记住,如果您想学习Python,市场上有很多可用的资源.这些可以包括书籍,甚至在线课程..在这篇文章中,我们为Python编写了最好的书籍,无 ...

  4. python乘法表代码注释_Python统计python文件中代码,注释及空白对应的行数示例【测试可用】...

    本文实例讲述了Python实现统计python文件中代码,注释及空白对应的行数.分享给大家供大家参考,具体如下: 其实代码和空白行很好统计,难点是注释行 python中的注释分为以#开头的单行注释 或 ...

  5. python简单编程代码表白,Python简单编程游戏代码

    什么是python编程 Python是一门新兴的编程语言,编程语言有很多,比如C++.Java.C#.PHP.JavaScript等,Python也是其中之一,在学习Python前,我们需要对它有一定 ...

  6. python做购物车代码大全-python 字典实现简单购物车

    # -*- coding: utf-8 -*- #总金额 asset_all=0 i1=input('请输入总资产:') asset_all=int(i1) #商品列表 goods=[ {'name' ...

  7. python程序编程代码大全,python编程代码详解

    大家好,本文将围绕python程序编程代码大全展开说明,python编程游戏代码是一个很多人都想弄明白的事情,想搞清楚python代码大全简单需要先了解以下几个事情. 1.python编程例子有哪些? ...

  8. python编程游戏代码tkinter,python编程游戏代码大全

    python有趣的编程代码 class Point:  row=0  col=0  def __init__(self, row, col):    =row    =col  def copy(se ...

  9. python车牌字符分割_OpenCV+Python识别车牌和字符分割的实现

    本篇文章主要基于python语言和OpenCV库(cv2)进行车牌区域识别和字符分割,开篇之前针对在python中安装opencv的环境这里不做介绍,可以自行安装配置! 车牌号检测需要大致分为四个部分 ...

最新文章

  1. MYSQL外键(Foreign Key)的使用
  2. 学习篇之软件测试——初
  3. 系统业务逻辑书籍_咨询行业书籍推荐
  4. 微软总裁呼吁:AI刷脸,美国政府该管一管了
  5. HTML、CSS、JS对unicode字符的不同处理
  6. Kubernetes 常见运维技巧总结
  7. php判断搜索引擎来路,php实现判断访问来路是否为搜索引擎机器人的方法
  8. Executor框架(转载)
  9. Illustrator 教程,在 Illustrator 中了解图层
  10. PM2服务器启动nodejs项目
  11. 金山助手流氓软件-被进程sjk_daemon.exe坑死
  12. 电脑一夜之间变卡的问题
  13. 国外知名音视频领域的科技公司
  14. 考研数学:有理函数中多项式分解定理
  15. S3C2440 开发板实战(8):中断驱动
  16. stripe国际支付(对接支付宝、微信)
  17. visual svn for visual studio 2019
  18. 技术汇总:第七章:三种验证方式
  19. 说说tushare pro积分规则或积分获取的那些坑!
  20. Unity查找游戏对象及组件

热门文章

  1. 我就是不敢的openeim002
  2. 谈谈我的程序人生程序生涯-飞鸽传书
  3. 一个简单的学生成绩管理软件(ODBC开发)
  4. 这6大核心技能,程序员升职加薪的利器
  5. 我的代码第一次运行时的样子
  6. 老粉丝来:再来一波免费送书
  7. 实用c语言程序设计教材,实用C语言程序设计
  8. python模块下载连接清华镜像的具体步骤_anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror...
  9. string类的erase函数属于stl吗_C++ STL快速入门
  10. 她的癌细胞救了上亿条命,却很少有人知道她的名字