OpenCV学习笔记(7)--Canny Edge Detection Canny边缘检测

匿名 (未验证) 提交于 2019-12-02 22:56:40

1.减少噪音

利用以上取得的两个图像,可以用以下公式找到每个像素的边缘梯度和方向:

3.Non-maximum Suppression非最大值抑制

上述获取梯度的大小和方向之后,一张移除了不想要的像素(这些像素是指不组成边的)全图,为了得到这张全图(为了移除这些像素),对每一个像素进行查验,判断它是否是梯度方向上的像零点的相邻最大值(local maximum)。

4.Hysteresis Thresholding(滞后阈值法)

用OpenCV实现Canny边缘检测:

cv2.Canny(src,minVal,maxVal,aperture_size,L2gradient)

(默认为false)

 import cv2 import numpy as np from matplotlib import pyplot as plt  img = cv2.imread("r.jpg",0)  edges = cv2.Canny(img,100,200)  plt.subplot(121),plt.imshow(img,cmap ="gray") plt.title("Orignal"),plt.xticks([]),plt.yticks([])  plt.subplot(122),plt.imshow(edges,cmap="gray") plt.title("Edge Image"),plt.xticks([]),plt.yticks([])   plt.show() 

实现:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!