美文网首页
计算机视觉实战(四)图像形态学操作

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

作者: 小小何先生 | 来源:发表于2019-12-19 11:08 被阅读0次

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

形态学-腐蚀操作

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

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()

  其结果如下图所示:

黑帽操作

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

相关文章

  • 计算机视觉实战(四)图像形态学操作

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

  • 【计算机视觉(五)】模板匹配

    前请提要 前三期(【计算机视觉(二)】常用颜色空间及其转换)、【计算机视觉(三)】形态学处理、【计算机视觉(四)】...

  • OpenCV图像处理(七)图像滤波(2)

    1、形态学滤波 简单来说,形态学操作就是基于形状的一系列图像处理操作,最基本的形态学操作:膨胀、腐蚀。在图像处理中...

  • 形态学操作

      图像形态学操作是基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学。主要有四个操作:膨胀,...

  • 人工智能的五大核心技术

    计算机视觉 计算机视觉是指计算机从图像中识别出物体、场景和活动的能力。计算机视觉技术运用由图像处理操作及其他技术所...

  • Morphology -形态学操作

    前言 简单的来讲,形态学操作是基于形状的图像处理操作,通过将结构元素作用于输入图像来输出图像。 对图像形态学运算,...

  • imgproce腐蚀膨胀

    形态学操作简单来讲,形态学操作就是基于形状的一系列图像处理操作。通过将 结构元素 作用于输入图像来产生输出图像。 ...

  • OpenCV for Android (5)——腐蚀、膨胀、开闭

    1. 形态学操作 形态学操作就是基于形状的一系列图像处理操作。通过将结构元素作用于输入图像来产生输出图像。最基本的...

  • 形态学操作-腐蚀与膨胀

    1.形态学操作形态学操作就是基于形状的一系列图像处理操作。一般情况下对二值化的图像进行操作。腐蚀与膨胀是最基本的形...

  • 形态学操作

    形态学操作 形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行的操作。需要输入两个参数,一个是原始...

网友评论

      本文标题:计算机视觉实战(四)图像形态学操作

      本文链接:https://www.haomeiwen.com/subject/ojlmnctx.html