Canny 边缘检测
Posted 陨星落云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Canny 边缘检测相关的知识,希望对你有一定的参考价值。
Canny 边缘检测
在 OpenCV 中,使用函数:cv2.Canny()
cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]])
参数解释
- image:源图像
- threshold1:阈值1
- threshold2:阈值2
- apertureSize:可选参数,Sobel算子的大小,默认值为 3
- L2gradient,它可以用来设定求梯度大小的方程。如果设为 True,就会使用方程: E d g e − Gradient ( G ) = G x 2 + G y 2 E d g e_{-} \\text {Gradient}(G)=\\sqrt{G_{x}^{2}+G_{y}^{2}} Edge−Gradient(G)=Gx2+Gy2 ,否则使用方程:KaTeX parse error: Expected \'}\', got \'_\' at position 12: \\text {Edge_̲Gradient}(G)=\\l…代替,默认值为 False。
def nothing(x):
pass
img = cv2.imread(\'lena.jpg\')
cv2.namedWindow(\'edges\',cv2.WINDOW_NORMAL)
cv2.createTrackbar(\'minVal\',\'edges\',0,255,nothing)
cv2.createTrackbar(\'maxVal\',\'edges\',0,255,nothing)
while(1):
minval=cv2.getTrackbarPos(\'minVal\',\'edges\')
maxval=cv2.getTrackbarPos(\'maxVal\',\'edges\')
edges = cv2.Canny(img,minval,maxval)
cv2.imshow(\'edges\',edges)
k=cv2.waitKey(1)&0xFF
if k==27:
break
cv2.destroyAllWindows()
参考文献:《数字图像处理》《OpenCV-Python 中文教程》
以上是关于Canny 边缘检测的主要内容,如果未能解决你的问题,请参考以下文章