opencv python 8 Canny边缘检测
2018-01-11 15:24
399 查看
opencv python 8 Canny边缘检测
Canny边缘检测算法分为以下几步:去除噪声
边缘检测算法受噪声影响较大,所以先使用5x5的高斯滤波去除噪声。
计算图像梯度
经过高斯平滑的图像分别在水平和垂直方向上用sober算子计算得到一阶导数Gx和Gy,以及角度θ:
非极大值抑制
得到梯度大小和方向后扫描整张图像,移除不是边缘组成部分的像素。对每个像素,检查是否是梯度方向上邻域中的最大值。
对于点A,检查梯度方向上的相邻点B和C,若A是最大值则进入下一步,否则置为0。
阈值处理
对于给定的最大阈值和最小阈值,大于最大阈值的梯度必定为边缘,小于最小阈值的梯度必定不为边缘,对于中间部分,如果与必定为边缘的像素相连,则也视为边缘。
点A必定为边缘,C在最大最小阈值之间且与A相连所以视为边缘,B不为边缘。
在opencv中使用cv2.Canny()实现该检测算法。
edges = cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]])
edges:输出的边缘图像
image:输入图像
threshold1:第1个阈值
threshold2:第2个阈值,两个阈值中较小的作为最小阈值,较大的作为最大阈值
apertureSize:Sobel算子宽度,默认为3
L2gradient:是否使用L2梯度,默认为false
import cv2 img = cv2.imread('a.jpg', 0) edges = cv2.Canny(img, 100, 200) cv2.imshow('edges', edges) cv2.waitKey()
相关文章推荐
- Python OpenCV -- Canny 边缘检测 (十一)
- vim+python+OpenCV学习七 : Sobel算子、Laplacian算子和Canny边缘检测
- opencv-python(13):Canny边缘检测
- OpenCV-Python教程(6)(7)(8): Sobel算子 Laplacian算子 Canny边缘检测
- opencv for python (16)canny边缘检测原理及用滑动条设置阈值进行canny边缘检测
- OpenCV 摄像头Canny边缘检测 (python)
- OpenCV-Python—图像梯度和Canny边缘检测
- OpenCV-Python教程(6)(7)(8): Sobel算子 Laplacian算子 Canny边缘检测
- python opencv入门 Canny边缘检测(15)
- opencv-python 应用滑动条改变canny边缘检测的阈值
- Python OpenCV 学习笔记之:Canny边缘检测
- Python Opencv Canny 边缘检测算法
- OpenCV-Python教程(8、Canny边缘检测)
- Opencv3.0-python的那些事儿:(七)、Opencv中Canny边缘检测算法使用
- 【OpenCV入门指南】第三篇Canny边缘检测
- opencv学习(二)图像模糊及canny边缘检测
- OpenCV学习笔记(三):Canny边缘检测和滚动条制作
- OpenCV: Canny边缘检测算法原理及其VC实现详解
- 利用Canny边缘检测算子进行边缘检测的原理及OpenCV代码实现
- 【OpenCV】Canny 边缘检测