本节主要介绍形态学的一些操作运算,通过代码跟效果可以清楚地认识到其大概的意思。

形态学-腐蚀操作

  通常都是二值的图像来做腐蚀操作。腐蚀的大概意思就是往里面缩一些。

import cv2
import numpy as np
img = cv2.imread('dige.png')
cv2.imshow('dige', img)
kernel = np.ones((3, 5), np.uint8)
erosion = cv2.erode(img,kernel,iterations = 1) #迭代次数表示做几次腐蚀操作
cv2.imshow('corrosion',erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()

  其结果如下图所示,可以看出腐蚀能够将边缘地小刺给清除掉:

形态学-膨胀操作

  通常都是二值的图像来做腐蚀操作。膨胀的大概意思就是往外面扩一些。

import cv2
import numpy as np
img = cv2.imread('dige.png')
kernel = np.ones((3,3), np.uint8)
dilate = cv2.dilate(img, kernel, iterations=1)
cv2.imshow('img', img)
cv2.imshow('erosion', dilate)
cv2.waitKey(0)
cv2.destroyAllWindows()

  其结果如下图所示,可以看出膨胀之后白线都变粗了:

开运算

   开:先腐蚀,再膨胀,这个操作能够将主体被腐蚀地部分补偿回去,但是边缘的毛刺很好的被清除掉。

import numpy as np
import cv2
img = cv2.imread('dige.png')
kernel = np.ones((5,5), np.uint8)
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
cv2.imshow('opening', opening)
cv2.waitKey(0)
cv2.destroyAllWindows()

  其结果如下图所示,可以看出效果比较好:

闭运算

   闭:先膨胀,再腐蚀,这个就对边缘的毛刺没有什么清除效果。

import numpy as np
import cv2
img = cv2.imread('dige.png')
kernel = np.ones((5,5), np.uint8)
opening = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
cv2.imshow('closing', opening)
cv2.waitKey(0)
cv2.destroyAllWindows()

  其结果如下图所示:

梯度运算

   梯度=膨胀-腐蚀,这是另一种计算图像边缘的方法,具体理解的话需要看一下实验结果:

import cv2
import numpy as np
pie = cv2.imread('pie.png')
kernel = np.ones((2,2),np.uint8)
gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)
cv2.imshow('gradient', gradient)
cv2.waitKey(0)
cv2.destroyAllWindows()

  其结果如下图所示:

礼帽与黑帽

   礼帽 = 原始输入-开运算结果

   黑帽 = 闭运算-原始输入。

import cv2
import numpy as np
img = cv2.imread('dige.png')
kernel = np.ones((7,7),np.uint8)
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
cv2.imshow('tophat', tophat)
cv2.waitKey(0)
cv2.destroyAllWindows()

  其结果如下图所示:

import cv2
import numpy as np
img = cv2.imread('dige.png')
kernel = np.ones((7,7),np.uint8)
blackhat  = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT, kernel)
cv2.imshow('blackhat', blackhat)
cv2.waitKey(0)
cv2.destroyAllWindows()

  其结果如下图所示:

  • https://github.com/ZhiqiangHo/Opencv-Computer-Vision-Practice-Python-

我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!

计算机视觉实战(四)图像形态学操作相关推荐

  1. Opencv学习笔记四——图像形态学操作

    需要的库和自定义函数 import cv2 import numpy as np import matplotlib.pyplot as pltdef cv_show(name, mat):cv2.i ...

  2. OpenCV中图像形态学操作

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:视学算法 图像形态学是图像处理的分支学科,在二值图像处理 ...

  3. OpenCV与图像处理学习六——图像形态学操作:腐蚀、膨胀、开、闭运算、形态学梯度、顶帽和黑帽

    OpenCV与图像处理学习六--图像形态学操作:腐蚀.膨胀.开.闭运算.形态学梯度.顶帽和黑帽 四.图像形态学操作 4.1 腐蚀和膨胀 4.1.1 图像腐蚀 4.1.2 图像膨胀 4.2 开运算与闭运 ...

  4. 2020.11.01 使用OpenCV进行图像形态学操作(开、闭、梯度)【OpenCV C++】

    进行基础的图像形态学操作练习 (开操作.闭操作.梯度.顶帽.黑帽操作) 源代码: // #include <opencv2/opencv.hpp> #include <iostrea ...

  5. 详细分析图像形态学操作

    原文链接:http://blog.csdn.net/poem_qianmo/article/details/23710721 还是比教科书上的图文并茂的多.以防删除,如有疑问或者版权问题,请移步原博客 ...

  6. [图像形态学操作]——腐蚀和膨胀、开闭运算、黑帽礼帽

    形态学转换是基于图像形状的一些简单操作,它通常在二进制图像上执行.腐蚀和膨胀是两个基本的形态学运算符.然后它的变体形式如:开运算.闭运算.礼帽黑帽等. 一.连通性 在图像学当中,图像的最小单位是像素, ...

  7. 【opencv】基本图像形态学操作

    图像形态学的作用是简化图像数据,保持基本图像特性,取出不相干结构等. 目录: 1.erode() 2.dilate() 3.morphologyEx()//MORPH_OPEN 4.morpholog ...

  8. opencv 实现图像形态学操作 膨胀和腐蚀 开闭运算 形态学梯度 顶帽和黑帽

    图像膨胀和腐蚀 图解 原理及python实现 更多内容:图像膨胀和腐蚀原理及python实现 opencv中膨胀和腐蚀函数 dilation = cv.dilate(img, kernel) # 膨胀 ...

  9. opencv c++ 图像形态学操作

    1.图像的形态学操作 包括图像的腐蚀.膨胀.开.闭.形态学梯度.顶帽.黑帽.分支主题.结构元素等操作. 具体概念参考:(41条消息) 图像处理-形态学处理_Good@dz的博客-CSDN博客_图像处理 ...

  10. opencv进阶学习笔记13:图像形态学操作大全(膨胀,腐蚀,开闭,黑帽,顶帽,梯度)python版

    基础版学习笔记: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 基础版形态学: opencv学 ...

最新文章

  1. TVM交叉编译和远程RPC
  2. NHibernate.ADOException: cannot open connection
  3. JAVA:this的使用
  4. linux用户管理最常用的三个文件说明(不完整版)
  5. opencv图像识别
  6. 102 二叉树层序遍历
  7. 谷歌guava_Google Guava:您永远不会知道的5件事
  8. linux inputuevent使用
  9. 从0开始做Windows Phone 7开发
  10. mysqlinsert触发器的创建
  11. 通向架构师的道路(第十四天)Axis2 Web Service安全之rampart
  12. HashMap hash 原理分析
  13. 一键获取系统特殊权限 - TrustedInstaller权限,可以直接修改hosts等系统文件
  14. bugku-writeup-MISC-宽带信息泄露
  15. 用 UrlSchemes 实现调用应用并传参
  16. 干货!最全的AI速查表|神经网络,机器学习,深度学习
  17. 【python】pdf转png
  18. 【x86架构】APIC -- 高级可编程中断控制器
  19. OSFormer阅读笔记
  20. JS利用正则快速格式化手机号

热门文章

  1. 二叉树中和为某一值的路径(一)(C++)
  2. 复习Javascript专题(三):面向对象(对象的创建与继承,原型及原型链)
  3. 记录一次Tomcat内存泄露原因的追溯
  4. Android 获取有规律资源Id解决方案
  5. Hyper-V里安装Linux虚机
  6. MySQL Partition扫盲
  7. 用sqoop从mysql导数hive_使用sqoop从mysql导入到hive基本操作
  8. Linux服务器性能的重要指标:打开文件数的限制
  9. DNF怎么查看服务器状态,dnf显示服务器读取中进不去怎么办 dnf显示服务器读取中进不去解决方法...
  10. Unity播放声音的两种方式以及相关遇到的