OpenCV边缘检测的一般步骤为:
滤波
增强
检测
常用的边缘检测的算子和滤波器有:
Sobel算子
Laplacian算子
Canny算子
Scharr滤波器
Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:
好的检测- 算法能够尽可能多地标识出图像中的实际边缘。
好的定位- 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。
最小响应- 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。
算法步骤:
①高斯模糊 - GaussianBlur
②灰度转换 - cvtColor
③计算梯度 – Sobel/Scharr
④非最大信号抑制
⑤高低阈值输出二值图像
代码如下:
#Canny边缘提取
import cv2 as cv
def Canny_imag(image):
blur= cv.GaussianBlur(image, (3, 3), 0)
M = cv.cvtColor(blur, cv.COLOR_RGB2GRAY)
# x = cv.Sobel(gray, cv.CV_16SC1, 1, 0) #x方向梯度
# y = cv.Sobel(gray, cv.CV_16SC1, 0, 1) #y方向梯度
# edge_output = cv.Canny(x, y, 50, 150)
a = cv.Canny(M, 50, 150)
cv.i
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dcrkj.com 版权所有 赣ICP备2024042791号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务