形态学及二值操作

  • 1 形态学相关概念
  • 2 二值形态学操作
    • 2.1 二值膨胀
    • 2.2 二值腐蚀
    • 2.3 二值开操作
    • 2.4 二值闭操作
    • 2.5 二值形态学总结
  • 3 二值形态学应用

1 形态学相关概念

  应用领域:
  图像增强;图像分割;图像恢复;纹理分析;特征生成;边缘检测;图像压缩;形状分析;成分分析;曲线填充;特征检测;噪声去除…
  形态学基础概念:
  (1)结构单元(structuring element,SE):也被称为核
  (2)SE根据原点转换到图像中的每个像素位置.(空位置不计算)

2 二值形态学操作

2.1 二值膨胀

  定义: 一个图像F利用SE(结构元素)进行膨胀,被定义为:


  是使图像中高亮部分扩张,效果图拥有比原图更大的高亮区域;是求局部最大值的操作.
  具体操作: 用一个结构元素扫描图像中的每个像素,用结构元素中的每个像素与其覆盖的像素做‘与’操作,如果都为0,则该像素为0,否则为1。


  作用: 将与物体接触的所有背景点合并到物体中,使目标增大,可填补目标中的孔洞
  API: cv2.dilate(img,kernel,iterations)
  参数:
    img:要处理的图像
    kernel:核结构
    iterations:膨胀的次数,默认是1

import cv2
import matplotlib.pyplot as plt
import numpy as np
#1. 读取图像
img=cv2.imread('erode.png')#2. 膨胀
# 2.1 创建核结构
kenel=np.ones((5,5),np.uint8)# 2.2 膨胀
dilate_img=cv2.dilate(img,kenel,1)#3.显示图像
cv2.imshow('origin',img)
cv2.imshow('dilate',dilate_img)
cv2.waitKey(0)

2.2 二值腐蚀

  定义: 一个图像F利用SE(结构元素)进行腐蚀,被定义为:


  是原图中的高亮区域被蚕食,效果图拥有比原图更小的高亮区域;是求局部最小值的操作。
  具体操作: 用一个结构元素扫描图像中的每个像素,用结构元素中的每个像素与其覆盖的像素做‘与’操作,如果都为1,则该像素为1,否则为0。


  作用: 消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点。
  API: cv2.erode(img,kernel,iterations)
  参数:
    img:要处理的图像
    kernel:核结构
    iterations:腐蚀的次数,默认是1

import cv2
import matplotlib.pyplot as plt
import numpy as np
#1. 读取图像
img=cv2.imread('erode.png')#2. 腐蚀和膨胀# 2.1 创建核结构
kenel=np.ones((5,5),np.uint8)
# 2.2 腐蚀
erode_img=cv2.erode(img,kenel,1)#3.显示图像
cv2.imshow('origin',img)
cv2.imshow('erode',erode_img)
cv2.waitKey(0)

2.3 二值开操作

  定义: 一个图像F利用SE(结构元素)进行开操作,被定义为:


  定义: 先腐蚀后膨胀,其作用是:分离物体,消除小区域。
  特点: 消除噪点,去除小干扰,而不影响原来的图像

  API:
  cv2.morphologyEx(img,op,kernel)
  参数:
    img:要处理的图像
    op:处理方式,若进行开运算,则设为cv2.MORPH_OPEN;若进行闭运算,则设为cv2.MORPH_CLOSE
    kernel:核结构

import cv2
import matplotlib.pyplot as plt
import numpy as np
#1. 读取图像
img=cv2.imread('open_close.png')#2. 开运算和闭运算# 2.1 创建核结构
kenel=np.ones((10,10),np.uint8)# 2.2 开运算
open_img=cv2.morphologyEx(img,cv2.MORPH_OPEN,kenel)#开运算#3.显示图像
cv2.imshow('origin',img)
cv2.imshow('open',open_img)
cv2.waitKey(0)

2.4 二值闭操作

  定义: 一个图像F利用SE(结构元素)进行闭操作,被定义为:


  定义: 先膨胀后腐蚀,其作用是:消除闭合物体里面的孔洞(比结构体更小的孔洞得到填充)
  特点: 可以填充闭合区域

  API:
  cv2.morphologyEx(img,op,kernel)
  参数:
    img:要处理的图像
    op:处理方式,若进行开运算,则设为cv2.MORPH_OPEN;若进行闭运算,则设为cv2.MORPH_CLOSE
    kernel:核结构

import cv2
import matplotlib.pyplot as plt
import numpy as np
#1. 读取图像
img=cv2.imread('open_close.png')#2. 开运算和闭运算# 2.1 创建核结构
kenel=np.ones((10,10),np.uint8)# 2.2 开运算和闭运算
open_img=cv2.morphologyEx(img,cv2.MORPH_OPEN,kenel)#开运算
close_img=cv2.morphologyEx(img,cv2.MORPH_CLOSE,kenel)#闭运算#3.显示图像
cv2.imshow('origin',img)
cv2.imshow('open',open_img)
cv2.imshow('close',close_img)
cv2.waitKey(0)

2.5 二值形态学总结


  膨胀和闭操作: 信息都会增加。区别是膨胀是使整个区域进行膨胀,闭操作对孔洞进行膨胀,整体没有很大变化保留了原有图像特征
  腐蚀和开操作: 信息都会减少。区别是腐蚀使整个区域进行腐蚀,开操作对噪声点进行腐蚀,整体没有很大变化保留了原有图像特征

3 二值形态学应用

  open:去除噪点
  close:断裂填充
  二值开运算:
  (1)强大的形状检测器,通过使用不同的结构元素。例利用半径为5的圆形结构元素,对原图进行二值开运算,得到

【医学图像处理】9 二值形态学相关推荐

  1. 什么叫做形态学图像处理_数字图像处理在二值形态学及其灰度形态学方面的应用.ppt...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp图形图像 数字图像处理在二值形态学及其灰度形态学方面的应用.pp ...

  2. 数字图像处理三 | 二值形态学操作(Distance Transform, 骨架提取,Conditional Dilation)的原理及Python实现

    图像处理总结3 文末有代码链接. 二值形态学 形态学起源于法国巴黎高等矿业学院,因为人家是搞地质的. 可见一斑,形态学的精要就是在于将图像看作是等高线组成的地形图,他的基本操作就是动土,平高填低等等. ...

  3. 图像处理-二值形态学运算

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-10.html 数学形态学 数学形态学(Mathematical ...

  4. 图像算法七:【形态学图像处理】二值运算、膨胀、腐蚀

    二值图像腐蚀函数 [算法说明]:二值图像腐蚀操作属于图像形态学的范畴,形态学运算是只针对二值图像进行,并依据数学形态学(Mathermatical Morphogy)集合论方法发展起来的数字图像处理方 ...

  5. 9.2.1 Python图像处理之图像数学形态学-二值形态学应用之噪声消除

    9.2.1 Python图像处理之图像数学形态学-二值形态学应用之噪声消除 文章目录 9.2.1 Python图像处理之图像数学形态学-二值形态学应用之噪声消除 1 算法原理 2 代码 3 效果 1 ...

  6. 9.2.3 Python图像处理之图像数学形态学-二值形态学应用-区域填充

    9.2.3 Python图像处理之图像数学形态学-二值形态学应用-区域填充 文章目录 9.2.3 Python图像处理之图像数学形态学-二值形态学应用-区域填充 1 算法原理 2 代码 3 效果 1 ...

  7. 9.2.2 Python图像处理之图像数学形态学-二值形态学应用-目标检测

    9.2.2 Python图像处理之图像数学形态学-二值形态学应用-目标检测(击中与击不中) 文章目录 9.2.2 Python图像处理之图像数学形态学-二值形态学应用-目标检测(击中与击不中) 1 算 ...

  8. 9.1 Python图像处理之图像数学形态学-二值形态学(腐蚀、膨胀、开启、闭合)

    9.1 Python图像处理之图像数学形态学-二值形态学(腐蚀.膨胀.开启.闭合) 文章目录 9.1 Python图像处理之图像数学形态学-二值形态学(腐蚀.膨胀.开启.闭合) 1 算法原理 1.1 ...

  9. 二值形态学操作、图像的边缘检测、图像编码

    实验五 二值形态学操作 一.实验目的  了解二值形态学的基本运算  掌握基本形态学运算的Matlab实现  了解形态操作的应用 二.原理     收缩和膨胀是数学形态学最基本的变换,数学形态学的 ...

最新文章

  1. Linux下使用ping出现destination is unreachable的问题可能性
  2. at指令 fpga_FPGA毕设系列 | 无线通信
  3. Eclipse IDE for Enterprise Java Developers和JDK8与apache-tomcat-8下载地址
  4. hdu 3863 No Gambling (不会证明,但是是对的,,)
  5. Android显示广播写法,【Android】广播的写法
  6. 卓越性能代码_装好win10后,应该这样设置,才能压榨出系统十足的性能
  7. 渗透测试 已学课时 1 个_我14岁上创业课时学到的东西
  8. 打开c语言运行不了_C语言——菜鸟和大神的分水岭:内存、线程、进程
  9. emacs自动连接mysql数据库
  10. windows环境下oracle安装教程
  11. 苹果ppt_苹果又开发布会了,这几个PPT设计技巧值得学习
  12. ASP.NET中IsPostBack详解
  13. 九峰影业创始人_《勇士之城》林永健扮演棠德县县长魏九峰
  14. Akka Actors入门案例解析
  15. SUSE11挂载目录seems to be mounted read-only错误 2022_11_08
  16. ADAMS 常用快捷键速记
  17. 嵌入式是什么?为什么引入嵌入式技术?嵌入式技术的优缺点?
  18. 计算机组成原理DMA的全称,直接存贮器存取(DMA) -计算机组成原理与汇编语言-电子发烧友网站...
  19. k8s集群Deployment与Service+名称空间
  20. 动态规划-钢条切割问题

热门文章

  1. CDH6.2环境中启用Kerberos
  2. 用C语言基础及数学公式来简单实现土味表白
  3. 检测按键正确的小游戏
  4. kindle for pc版本更新后无法打开解决办法
  5. leetcode — 46. 全排列(不含重复数字)
  6. 程序员的8条解bug(甩锅)大招!
  7. Discarding record on action DISCARD on error 0
  8. 记一次云服务器挖矿病毒处理过程
  9. mac上的kindle打开mobi文件的方式
  10. pump-probe技术简介