OpenCV-Python 笔记(四)Canny边缘检测、图像金字塔

Canny边缘检测

因为边缘检测,容易受到噪声的干扰,所以第一步就是降噪。使用 5 X 5 的高斯滤波器进行过滤。
非极大值抑制:使用Sobel滤波器,只有在检测到边缘的时候,才会保留边缘像素,否则,就全部置零。(深度学习CNN基础部分有关内容)
磁滞阈值:该阶段确定哪些边缘全部是真正的边缘,哪些不是。为此,我们需要两个阈值minVal 和maxVal。强度梯度大于maxVal 的任何边缘必定是边缘,而小于minVal 的那些边缘必定是非边缘,因此将其丢弃。介于这两个阈值之间的对象根据其连通性被分类为边缘或非边缘。如果将它们连接到“边缘”像素,则将它们视为边缘的一部分。否则,它们也将被丢弃。
在这里插入图片描述

当我们设置为边缘是长像素特征边缘时,小像素边缘就会被丢弃。

img=cv.imread("text.jpg")
#Canny边缘检测(输入图片,minval,maxval)
edges=cv.Canny(img,100,200)

plt.subplot(121),plt.imshow(img,cmap="gray"),plt.title("Original")
plt.subplot(122),plt.imshow(edges,cmap="gray"),plt.title("Edges")
plt.show()

注意观察,不连续的小像素边缘,被去掉。
在这里插入图片描述

图像金字塔

不同分辨率组成的序列,精度从高到低,从上到下,像金字塔。

高斯金字塔

高斯金字塔中的较高级别(低分辨率)是通过删除较低级别(较高分辨率)图像中的连续行和列而形成的。然后,较高级别的每个像素由基础级别的5个像素的贡献与高斯权重形成。通过这样做,M×N图像变成M/2 × N/2图像。因此面积减少到原始面积的四分之一。它称为Octave。当我们在金字塔中越靠上时(即分辨率下降),这种模式就会继续。同样,在扩展时,每个级别的面积变为4倍。

img=cv.imread("gh.jpg")
#相对于原图低一级
lower_reso=cv.pyrDown(img)
#相对于原图高一级
higher_reso=cv.pyrUp(img)
#从低一级的图片,通过添加像素形成
higher_reso2=cv.pyrUp(higher_reso)

plt.subplot(221),plt.imshow(img),plt.title("Original")
plt.subplot(222),plt.imshow(lower_reso),plt.title("lower_reso")
plt.subplot(223),plt.imshow(higher_reso),plt.title("higher_reso")
plt.subplot(224),plt.imshow(higher_reso2),plt.title("higher_reso2")
plt.show()

在这里插入图片描述
从细节可以看出,由原始图片缩小以后,再进行拓展,结果与原图片相差非常大。因为在缩小图片时,有信息丢失,信息一旦丢失,就无法找回,只能通过高斯概率分布进行插值,插入缺失的像素。所以图片的画面看起来,就没有那么锐利,比较柔和。
在这里插入图片描述

拉普拉斯金字塔

拉普拉斯金字塔由高斯金字塔形成。没有专用功能。拉普拉斯金字塔图像仅像边缘图像。它的大多数元素为零。它们用于图像压缩。拉普拉斯金字塔的层由高斯金字塔的层与高斯金字塔的高层的扩展版本之间的差形成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值