OpenCV计算机视觉实战(Python)| 04、图像形态学处理

简介

本节为《OpenCV计算机视觉实战(Python)》版第四讲,图像形态学处理,的总结。

总结

形态学-腐蚀操作

img = cv2.imread('dige.png')

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

kernel = np.ones((5,5), np.unit8)
erosion = cv2.erode(pie, kernel, iter=1)

cv2.imshow('img_erode', erosion)
cv2.waitKey(0)
cv2.destroyAllWindow()
  1. 腐蚀操作去除毛刺
  2. 腐蚀操作中的参数:kernel 表示卷积核,iter表示腐蚀操作的次数。
  3. 腐蚀的结果,与,迭代次数,核大小有关系。腐蚀次数增大,图像线条会变细。

形态学-膨胀操作

img = cv2.imread('dige.png')
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

kernel = np.ones((5,5), np.uint8)
dilate = cv2.dilate(img, kernel, iter=1)

cv2.imshow('dilate', dilate)
cv2.waitKey(0)
cv2.destroyAllWindows()
  1. 与腐蚀操作互为逆运算
  2. 参数的定义与腐蚀操作一致

形态学-开/闭操作

开运算

img = cv2.imread('dige.png')
cv2.imshow('img', img)
cv2.waitKey()
cv2.destroyAllWindows()

kernel = np.ones((5,5), np.unit8)
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

cv2.imshow('opening', opening)
cv2.waitKey()
cv2.destroyAllWindows()
  1. 先腐蚀,再膨胀
  2. 能够有效去除毛刺

闭运算

img = cv2.imread('dige.png')
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

cv2.imshow('closing', closing)
cv2.waitKey(0)
cv2.destroyAllWindows()
  1. 先膨胀,再腐蚀
  2. 无法去除毛刺,只是扩大了边缘

梯度运算

# 梯度 = 膨胀 - 腐蚀
pie = cv2.imread('pie.png')
kernel = np.ones((7,7),np.unit8)
dilate = cv2.dilate(pie,kernel, iter=5)
erosion = cv2.erode(pie,kernel, iter=5)

res = np.hstack((dilate, erosion))

cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 梯度
gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)

cv2.imshow('gradient', gradient)
cv2.waitKey(0)
cv2.destroyAllWindows()

  1. 梯度 = 膨胀 - 腐蚀
  2. 梯度运算可以得到轮廓

礼帽和黑帽

  • 礼帽 = 原始输入 - 开运算结果(带刺的-没刺的,剩下的是刺)
  • 黑帽 = 闭运算 - 原始输入(扩大后的刺-带刺的,剩下的是膨胀的刺的轮廓)

img = cv2.imread('dige.png')

# 礼帽
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)

# 黑帽
blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值