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

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

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

形态学-腐蚀操作

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

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

公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!

相关文章
|
6月前
|
存储 算法 数据可视化
使用计算机视觉实战项目精通 OpenCV:6~8
使用计算机视觉实战项目精通 OpenCV:6~8
82 0
|
6月前
|
计算机视觉
使用计算机视觉实战项目精通 OpenCV:1~5
使用计算机视觉实战项目精通 OpenCV:1~5
241 0
|
6月前
|
机器学习/深度学习 监控 算法
计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)
计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)
|
6月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A路径规划+单目测距与测速+行人车辆计数等)
114 2
|
2月前
|
机器学习/深度学习 编解码 自动驾驶
计算机视觉之图像到图像的翻译
图像到图像的翻译(Image-to-Image Translation)是指将一种图像从一种表示转换为另一种表示的过程。该任务的目标是在保证图像语义信息的前提下,将图像风格、颜色或其他视觉特征进行转换。该技术在计算机视觉领域具有广泛应用,例如图像风格迁移、图像修复、图像增强、超分辨率、语义分割等。
47 4
|
6月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
|
6月前
|
机器学习/深度学习 编解码 算法
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)-2
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)-2
|
6月前
|
机器学习/深度学习 监控 算法
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)-1
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)-1
|
6月前
|
编解码 边缘计算 自然语言处理
2024年5月计算机视觉论文推荐:包括扩散模型、视觉语言模型、图像编辑和生成、视频处理和生成以及图像识别等各个主题
五月发布的计算机视觉领域重要论文涵盖了扩散模型、视觉语言模型、图像生成与编辑及目标检测。亮点包括:1) Dual3D提出双模式推理策略,实现高效文本到3D图像生成;2) CAT3D利用多视图扩散模型创建3D场景,仅需少量图像;3) Hunyuan-DiT是多分辨率的中文理解扩散Transformer,可用于多模态对话和图像生成;4) 通过潜在扩散模型从EEG数据重建自然主义音乐,展示复杂音频重建潜力。此外,还有关于视觉语言模型和图像编辑的创新工作,如BlobGEN用于合成具有控制性的图像。
237 3
|
4月前
|
机器学习/深度学习 XML 计算机视觉
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。

热门文章

最新文章