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()


posted @ 2016-11-21 16:34  retacn_yue  阅读(159)  评论(0编辑  收藏  举报