机器学习进阶-图像形态学操作-梯度运算 cv2.GRADIENT(梯度运算-膨胀图像-腐蚀后的图像)...

本文详细介绍了如何使用OpenCV进行图像边缘检测,通过腐蚀和膨胀操作获取图像的边缘轮廓,对比两种不同的梯度运算方法,即直接相减和使用cv2.MORPH_GRADIENT函数,并展示了具体实现代码。

1.op = cv2.GRADIENT 用于梯度运算-膨胀图像-腐蚀后的图像

梯度运算:表示的是将膨胀以后的图像 - 腐蚀后的图像,获得了最终的边缘轮廓

代码:

第一步:读取pie图片

第二步:进行腐蚀和膨胀操作

第三步:将膨胀的图像 - 腐蚀的图像,获得相减得图像

第四步:使用cv2.morphologyEx(src, cv2.GRADIENT, kernel) 获得梯度运算的图片的操作

第五步:绘制第三步和第四步生成的图片

import cv2
import numpy as np

# 第一步:读取图片
pie = cv2.imread('pie.png')

# 第二步:绘制腐蚀和膨胀图片
kernel = np.ones((5, 5), np.uint8)
erosion = cv2.erode(pie, kernel, iterations=2)
dilate = cv2.dilate(pie, kernel, iterations=2)
# 第三步:相减获得对应的图片
decrease = dilate - erosion
print(decrease.shape)
cv2.imshow('pie', pie)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 第四步:使用cv2.MORPH_GRADIENT获得梯度运算的图片
gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel, iterations=2)
# 第五步:绘制两者的图片
cv2.imshow('gradient', np.hstack((decrease, gradient)))
cv2.waitKey(0)
cv2.destroyAllWindows()

 

转载于:https://www.cnblogs.com/my-love-is-python/p/10395127.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值