opencv_python学习笔记十六
19 canny边缘检测
函数原型:
def Canny(image, #单通道输入图像
threshold1, #第一个阈值
threshold2, #第二个阈值
edges=None, #单通道存储边缘的输出图像
apertureSize=None, #sobel算子内核大小
L2gradient=None) #
1 原理
A 噪声去除 Blur
B 计算图像梯度 sobel算子
C 非极大值抑制 检查每一个像素点的梯度是不是周围具有相同梯度方向的点中
最大的
D 滞后阈值 用两个阈值来确定真正的边界
2 canny边界检测
示例代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2016/11/21 13:24
# @Author : Retacn
# @Site :
边缘检测
# @File : imageCanny.py
# @Software: PyCharm
import
cv2
import
numpy
as
np
from
matplotlib
import
pyplot
as
plt
img=cv2.imread('../test.jpg',0)
edges=cv2.Canny(img,#源图像
100,#阈值一
200)#阈值二
plt.subplot(121),plt.imshow(img,cmap='gray')
plt.title('Original Image'),plt.xticks([]),plt.yticks([])
plt.subplot(122),plt.imshow(edges,cmap='gray')
plt.title('Edge Image'),plt.xticks([]),plt.yticks([])
plt.show()