# -*- coding: utf-8 -*-# 图像Canny边缘检测""" Canny算法是John F. Canny in 1986发明的一个多级边缘检测算法。实现步骤如下: 1、应用高斯滤波来平滑图像,目的是去除噪声 2、找寻图像的强度梯度(intensity gradients) 3、应用非最大抑制(non-maximum suppression)技术来消除边误检(本来不是但检测出来是) 4、应用双阈值的方法来决定可能的(潜在的)边界 5、利用滞后技术来跟踪边界 参考:http://baike.baidu.com/item/canny%E7%AE%97%E6%B3%95"""import cv2 as cvimport matplotlib.pyplot as pltimport numpy as np# 读取灰度图像img = cv.imread("../../../datas/images/fish.jpg",0)# 执行边缘检测edges = cv.Canny(img,100,200)plt.subplot(121)# 显示灰度图像plt.imshow(img,cmap="gray")plt.xticks([])plt.yticks([])plt.title("Original Image")plt.subplot(122)plt.imshow(edges,cmap='gray')plt.xticks([])plt.yticks([])plt.title("Edge detect result")plt.show()# cv.imshow("Image",img)# cv.imshow("Edge-Canny",edges)## cv.waitKey()# cv.destroyAllWindows()