【OpenCV learning】关于Canny中NMS和双阈值检测+图像金字塔

本文介绍了图像处理中的NMS非极大值抑制技术,用于边缘检测中的双阈值策略,以及Canny边缘检测的原理。同时,详细探讨了图像金字塔的概念,包括高斯金字塔和拉普拉斯金字塔的构建过程,分析了上采样和下采样的关系,并展示了相关代码示例。
摘要由CSDN通过智能技术生成

NMS非极大值抑制:

    关键词:线性插值法;梯度离散;IOU交并比;

双阈值检测:

  Canny边缘检测中对图像像素点进行筛选,取x>=maxVal的像素梯度进行保留,作为边缘值,对虽连接确定边缘但位于minVal<=x<maxVal的像素作为待确定边缘值,进行连续判定,若确定与边缘值有关的保留,否则将丢弃。参考下图:

A大于maxVAl,确定为边缘值,对其进行保留;

B大于minVal但未与确定边缘连接,全部舍弃;

C与确定边缘链接,为待确定边缘,因与确定边缘A连接,固然获得保留,以获取完整的边缘曲线。

参考:[图像处理]-Canny边缘检测算法_orangezs的博客-CSDN博客_canny边缘检测算法

图像金字塔:  

          图像金字塔可以以多分辨率、多维度解释图像。常用于图像分割、图像缩放(下采样)

原图:

原图大小尺寸为(537,609,3)

 

高斯金字塔(Gaussian pyramid):

下采样:Gi=cv2.pyrDown(img)  缩小:

     下采样分为两个步骤

  1. 对img进行高斯内核卷积(高斯模糊)
  2. 将所有偶数列、行去掉[丢失信息]

效果:

pyr_Down=cv2.pyrDown(img)
print(pyr_Down.shape)

cv_show(pyr_Down,'Down')

plt.imshow(pyr_Down)

可以看见pyr_Down 的shape值变成了(269,305,3)

上采样:Gi=cv2.pyrUp(img) 放大:

        上采样的步骤

  1. 将img在每个方向扩大2倍,新增的行、列将以0填充,获得img1
  2. 使用先前同样的高斯内核(*4)与img1卷积,获得新增像素值的近似值

效果:

shape值变成(1074,1218,3)

拉普拉斯金字塔:

        前面讲到,高斯金字塔中,上采样与下采样并不是互逆的,即上采样并不是下采样的逆操作,我们可以看一下先Up后Down或先Down后Up会有什么区别

 

Up_Down=cv2.pyrUp(pyr_Down)
Down_Up=cv2.pyrDown(pyr_Up)

print(img.shape)
print(Up_Down.shape)
print(Down_Up.shape)


 

 拉普拉斯金字塔的实现代码:

G1=cv2.pyrDown(pyr_Up)
L1=img-G1

print(L1.shape)
cv_show(L1,'l1')
plt.imshow(L1)

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值