03 计算机视觉-opencv图像形态学处理
发布日期:2021-06-29 15:45:42 浏览次数:2 分类:技术文章

本文共 2434 字,大约阅读时间需要 8 分钟。

# 先定义一个opencv展示函数import cv2import matplotlib.pyplot as pltimport numpy as np%matplotlib inlinedef cv_show(name,img):    cv2.imshow(name,img)    cv2.waitKey(0)    cv2.destroyAllWindows()

1 形态学-腐蚀操作

img = cv2.imread("dige.png")cv_show("img",img)plt.imshow(img)

在这里插入图片描述

kernel = np.ones((3,3),np.uint8)erosion = cv2.erode(img,kernel,iterations = 1)cv_show("erosion",erosion)plt.imshow(erosion)

在这里插入图片描述

pie = cv2.imread("pie.png")cv_show("pie",pie)plt.imshow(pie)

在这里插入图片描述

kernel = np.ones((30,30),np.uint8) erosion_1 = cv2.erode(pie,kernel,iterations = 1)erosion_2 = cv2.erode(pie,kernel,iterations = 2)erosion_3 = cv2.erode(pie,kernel,iterations = 3)res = np.hstack((erosion_1,erosion_2,erosion_3))cv2.imshow('res', res)cv2.waitKey(0)cv2.destroyAllWindows()plt.imshow(res)

在这里插入图片描述

2 形态学-膨胀操作

img = cv2.imread("dige.png")cv_show("image",img)plt.imshow(img)

在这里插入图片描述

# 腐蚀kernel = np.ones((3,3),np.uint8) dige_erosion = cv2.erode(img,kernel,iterations = 1)cv_show("erosion",dige_erosion)plt.imshow(dige_erosion)

在这里插入图片描述

# 膨胀kernel = np.ones((3,3),np.uint8) dige_dilate = cv2.dilate(dige_erosion,kernel,iterations = 1)cv_show("dilate",dige_dilate)plt.imshow(dige_dilate)

在这里插入图片描述

pie = cv2.imread("pie.png")kernel = np.ones((30,30),np.uint8) dilate_1 = cv2.dilate(pie,kernel,iterations = 1)dilate_2 = cv2.dilate(pie,kernel,iterations = 2)dilate_3 = cv2.dilate(pie,kernel,iterations = 3)res = np.hstack((dilate_1,dilate_2,dilate_3))cv_show("res",res)plt.imshow(res)

在这里插入图片描述

3 开运算与闭运算

# 开:先腐蚀,再膨胀img = cv2.imread("dige.png")kernel = np.ones((5,5),np.uint8)opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)cv_show("opening",opening)plt.imshow(opening)

在这里插入图片描述

# 闭:先膨胀,再腐蚀img = cv2.imread("dige.png")kernel = np.ones((5,5),np.uint8)closing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)cv_show("closing",closing)plt.imshow(closing)

在这里插入图片描述

4 梯度运算

  • 梯度=膨胀-腐蚀
pie = cv2.imread("pie.png")kernel = np.ones((7,7),np.uint8)dilate = cv2.dilate(pie,kernel,iterations=5)erosion = cv2.erode(pie,kernel,iterations=5)res = np.hstack((dilate,erosion))cv_show("res",res)plt.imshow(res)

在这里插入图片描述

gradient = cv2.morphologyEx(pie,cv2.MORPH_GRADIENT,kernel)cv_show("gradient",gradient)plt.imshow(gradient)

在这里插入图片描述

5 礼帽与黑帽

  • 礼帽 = 原始输入-开运算结果
  • 黑帽 = 闭运算-原始输入
#礼帽img = cv2.imread("dige.png")tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)cv_show("tophat",tophat)plt.imshow(tophat)

在这里插入图片描述

#黑帽img = cv2.imread("dige.png")blackhat  = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT, kernel)cv_show("blackhat",blackhat)plt.imshow(blackhat)

在这里插入图片描述

转载地址:https://codingchaozhang.blog.csdn.net/article/details/99474701 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:04计算机视觉-opencv图像梯度处理
下一篇:02 计算机视觉-opencv阈值与滤波处理

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月13日 13时32分55秒