OpenCV学习笔记——图像金字塔

图像金字塔

分类

向上采样
  1. 步骤
    1. 对图像进行高斯滤波(从外围到中心不同权值的模糊化)
    2. 删除偶数行列
  2. 例子
    1. 拉普拉斯金字塔
向下采样
  1. 步骤
    1. 对图像进行高斯滤波(从外围到中心不同权值的模糊化)
    2. 删除偶数行列
  2. 例子
    1. 高数金字塔

高斯金字塔

  1. 高斯平滑处理(原始图像进行高斯内核卷积)->(从外围到中心不同权值的模糊化)
  2. 图像采样去除偶数行和列
  3. 采样之后图像分辨率和面积均成为原来的1/4
  4. 函数
    1. pyrDown()

      1. 从高分辨率的图像逐步向上构建(尺寸变小,分辨率降低)
        pyrDown(src,dst=None,dstsize=None,borderType=None)
        
        src->参数,dst->输出图像,dstsize->输出图像的大小默认为Size(),borderType->像素外推方法(仅支持BORDER_DEAFULT)
        向下取样的例子:
        import cv2 as cv
        img = cv.imread(r"test.jpg")
        down=cv.pyrDown(img)#图像向下取样
        cv.imshow("original",img)#显示原始图像
        cv.imshow("pyrDown",down)#显示修改后的图像
        cv.waitKey(0);
        cv.destroyAllWindows();#销毁所有的窗口```
        
        
    2. pyrUp():

      1. 从低分辨率的图像逐步向下构建(尺寸变大,分辨率升高)
        pyrUp(src,dst=None,dstsize=None,BorderType=None)
        
        src->输入图像,dst->输出图像(尺寸类型同输入),dstsize->输出图像大小,默认值为Size(),borderType->像素外推方法
        例子(验证不是互逆操作:先向下再向上(思考反向先向上在向下)):
      	import cv2 as cv 
      	img=cv.imread(r"img.jpg")
      	r1=cv.pyrDown(img)
      	r2=cv.pyrUP(r1)
      	cv.imshow("PD1",r1)
      	cv.imshow("PU1",r2)
      	cv.waitKey(0)
      	cv.destroyAllWindows()
      

拉普拉斯金字塔

  1. 原理
    1. L i = G i − P y r U P ( P y r D o w n ( G i ) ) L_i=G_i-PyrUP(PyrDown(G_i)) Li=GiPyrUP(PyrDown(Gi))
      1. G i G_i Gi->原始图像
      2. L i L_i Li->拉普拉斯金字塔图像
    2. ![[Pasted image 20230113174508.png]]
      1. 迭代的过程
    3. 拉普拉斯实例
    import cv2 as cv
    import numpy as np
    #拉普拉斯算子
    def Laplace_demo(image):
    	dst= cv.Laplacian(image,cv.CV_32F)
    	lpls_1=cv.convertScaleAbs(dst)
    	cv.imshow("lpls1",lpls_1)
    	#自定义拉普拉斯算子
    	kernel = np.array([[1,1,1],[1,-8,1],[1,1,1]])
    	dst=cv.filter2D(image,cv.CV_32F,kernel)
    	lpls_2=cv.convertScaleAbs(dst)
    	cv.imshow("lpls2",lpls_2)
    if __name__ == "__main__":
    	src=cv.imread(r"test.jpg")
    	src=cv.resize(src,None,fx=0.5,fy=0.5)
    	cv.imshow("image",src)#显示修改尺寸的原图
    	Laplace_demo(src)#变换
    	cv.waitKey(0)
    	cv.destoryAllWindows()
    

向上向下取样的差别

向上取样:
放大模糊化
向下取样:
放小丢失像素点
Ps:
向上向下取样不是互逆操作(模糊化之后无法恢复原来的样子)

图像金字塔的目的

通过建立图像金字塔,提取特征的时候不仅从原始图像当中提取特征->图像融合,而且也要从图像金字塔当中提取特征
通过不断的缩小图片(模糊化)强化提取的特征?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值