canny 边缘检测五个流程:
- 使用高斯滤波器,用以平滑图像,滤除噪声。
- 计算每个像素点的梯度强度和方向。
- 应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测中带来的杂散响应。
- 应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘。
- 通过抑制孤立的弱边缘最终完成边缘检测。
用的是上一节中的Sobel算子。
非极大值抑制(NMS):找到局部极大值,并抑制领域内的其他值。
应用方向:边缘检测,人脸检测,目标检测(DPM,YOLO,SSD,Faster R-CNN)等领域。
以目标检测为例,同一目标位置上会出现很多的候选框,并且每个候选框有一个置信度得分(confidence score),我们根据
最大的置信度分数确定最终的候选框。
在实际的应用中,我们可以根据实际情况来调节 最大阈值 和 最小阈值,以期望获得最终的目的。
如果最小阈值过小,会导致噪音也被选中,导致结果驳杂。
如果最大阈值过大,会导致实际的边界被丢弃,影响效果。
img_canny = cv2.Canny(img,threshold1=minval,threshold2=maxval)
minval 对应于双阈值检测中的最小阈值;
maxval 对应着双阈值检测中的最大阈值;
import cv2img = cv2.imread('lena1.jpg',cv2.IMREAD_GRAYSCALE)
img_c = cv2.Canny(img,threshold1=30,threshold2=150)cv2.imshow('img',img_c)
cv2.waitKey(0)
cv2.destroyWindow()
本文发布于:2024-01-30 18:22:46,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170661016821941.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |