cv2.Canny 边缘检测

Canny边缘检测

 
Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:
  • 好的检测 - 算法能够尽可能多地标识出图像中的实际边缘。
  • 好的定位 - 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。
  • 最小响应 - 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。
 
函数原型
 
1 edge = cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]])

 

 
参数解释
  • image:源图像
  • threshold1:阈值1
  • threshold2:阈值2
  • apertureSize:可选参数,Sobel算子的大小
其中,较大的阈值2用于检测图像中明显的边缘,但一般情况下检测的效果不会那么完美,边缘检测出来是断断续续的。所以这时候用较小的第一个阈值用于将这些间断的边缘连接起来。
函数返回的是二值图,包含检测出的边缘
 
使用
 1 import numpy as np
 2 import cv2 as cv
 3 cv.namedWindow("images")
 4 def nothing():
 5     pass
 6 cv.createTrackbar("s1","images",0,255,nothing)
 7 cv.createTrackbar("s2","images",0,255,nothing)
 8 img = cv.imread("test/scene2.png",0)
 9 while(1):
10     s1 = cv.getTrackbarPos("s1","images")
11     s2 = cv.getTrackbarPos("s2","images")
12     out_img = cv.Canny(img,s1,s2)
13     cv.imshow("img",out_img)
14     k = cv.waitKey(1)&0xFF
15     if k==27:
16         break
17 cv.destroyAllWindows()

 

转载于:https://www.cnblogs.com/aoru45/p/9763988.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值