Canny 算法快速实现 opencv
一. 算法原理:
可参考:https://www.cnblogs.com/wojianxin/p/12533526.html https://www.jianshu.com/p/ff4c1a6a68d8
二. opencv 函数 cv.Canny 快速实现 Canny 边缘检测算法(必须先搞懂算法流程,才能正确使用该函数):
![](https://upload-images.jianshu.io/upload_images/17221499-0f07f34bd7ffc273.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
opencv 官方文档 函数说明 ↑
![](https://upload-images.jianshu.io/upload_images/17221499-7b46a5c46ff94ac9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
参数说明,有不懂的参数可参考第一部分的链接。 ↑
三. 使用函数快速进行边缘检测
1 import cv2 2 3 import numpy as np 4 5 from matplotlib import pyplot as plt 6 7 img = cv2.imread('../head_g.jpg',0) 8 9 # 80以下被归为0,200以上被归为255 10 11 edges = cv2.Canny(img,80,200) 12 13 plt.subplot(121),plt.imshow(img,cmap = 'gray') 14 15 # plt.xticks([]) 不显示x轴 16 17 plt.title('Original Image'), plt.xticks([]), plt.yticks([]) 18 19 plt.subplot(122),plt.imshow(edges,cmap = 'gray') 20 21 plt.title('Edge Image'), plt.xticks([]), plt.yticks([]) 22 23 plt.show()
四. 实验结果:
![](https://upload-images.jianshu.io/upload_images/17221499-5441c5c54dea8a7b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Canny 边缘检测算法输出结果 ↑
五. 本文章内容主要摘自 opencv 官方文档