作者:RayChiu_Labloy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
目录
原理和定义:
常用边缘检测算法相关API:
# 索贝尔边缘识别
# 拉普拉斯边缘识别
# Canny边缘识别参数解释
实验:
原理和定义:
物体的边缘检测是物体识别常用的手段。边缘检测常用亮度梯度方法。通过识别亮度梯度变化最大的像素点从而检测出物体的边缘。
详细原理看我另一篇文章: opencv-python 详解图像梯度、边缘检测_RayChiu757374816的博客-CSDN博客
常用边缘检测算法相关API:
# 索贝尔边缘识别
# cv.CV_64F:卷积运算使用数据类型为64位浮点型(保证微分的精度)
# 1:水平方向索贝尔偏微分
# 0:垂直方向索贝尔偏微分
# ksize:卷积核为5*5的方阵
cv.Sobel(original, cv.CV_64F, 1, 0, ksize=5)
# 拉普拉斯边缘识别
cv.Laplacian(original, cv.CV_64F)
# Canny边缘识别参数解释
# 50:水平方向阈值 240:垂直方向阈值
# original 原始灰度图
cv.Canny(original, 50, 240)
实验:
图片:
测试代码:
import cv2 as cvoriginal = cv.imread( './chair.jpg', cv.IMREAD_GRAYSCALE)
original = cv.resize(original, None, fx=0.4, fy=0.4, interpolation=cv.INTER_LINEAR)
_, original = cv.threshold(original, 100, 255, cv.THRESH_BINARY+ cv.THRESH_OTSU)#+ cv2.THRESH_OTSUhsobel = cv.Sobel(original, cv.CV_64F, 1, 0, ksize=5)
cv.imshow('H-Sobel', hsobel)
vsobel = cv.Sobel(original, cv.CV_64F, 0, 1, ksize=5)
cv.imshow('V-Sobel', vsobel)
sobel = cv.Sobel(original, cv.CV_64F, 1, 1, ksize=5)
cv.imshow('Sobel', sobel)
laplacian = cv.Laplacian(original, cv.CV_64F)
cv.imshow('Laplacian', laplacian)
canny = cv.Canny(original, 50, 240)
cv.imshow('Canny', canny)
cv.waitKey(0)
测试效果:
【如果对您有帮助,交个朋友给个一键三连吧,您的肯定是我博客高质量维护的动力!!!】