1. 图像金字塔特点

图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。

image

2. 向下采样

2.1. 特点

从第i层获取第i+1层 Gi→Gi+1

  1. 对图像Gi进行高斯核卷积。
  2. 删除所有的偶数行和列。

原始图像 M×N→处理结果 M/2×N/2,每次处理后,结果图像是原来的1/4。重复执行该过程,构造图像金字塔。

注意:向下会丢失信息。

image

2.2. 相关函数与程序实现

函数: dst=cv2.pyrDown(src)

dst —向下取样结果

src —原始图像

python代码

#%%向下采样
import cv2
img1 = cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\man.bmp")
r1=cv2.pyrDown(img1)
r2=cv2.pyrDown(r1)
r3=cv2.pyrDown(r2)
cv2.imshow("original",img1)
cv2.imshow("PyrDown1",r1)
cv2.imshow("PyrDown2",r2)
cv2.imshow("PyrDown3",r3)
cv2.waitKey()
cv2.destroyAllWindows()

结果

image

3. 向上采样

3.1. 特点

  1. 在每个方向上扩大为原来的2倍,新增的行和列以0填充。
  2. 使用与“向下采用”同样的卷积核乘以4,获取“新增像素”的新值。

注意:

3. 放大后的图像比原始图像要模糊。

4. 向上采样、向下采样不是互逆操作。经过两种操作后,无法恢复原有图像。

3.2. 相关函数与程序实现

函数: dst=cv2.pyrUp(src)

dst —向上取样结果

src —原始图像

python代码

结果

image

4. 拉普拉斯 金子塔

4.1. 特点

拉普拉斯金字塔(Laplacianpyramid): 用来从金字塔低层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。

4.2. 相关函数与程序实现

函数: Li = Gi - PyrUp(PyrDown(Gi))

Gi ,原始图像

Li ,拉普拉斯金字塔图像

image

python代码

#%%
import cv2
o=cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\lena.bmp")
od=cv2.pyrDown(o)
odu=cv2.pyrUp(od)
lapPyr=o-odu
cv2.imshow("original",o)
cv2.imshow("lapPyr",lapPyr)
cv2.waitKey()
cv2.destroyAllWindows()
                Python中的self是什么你知道嘛?
            
在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。
最近看到一个 Up 主 Ele实验室 发布的一个视频:字符化视频是怎么做出来的,感觉很有意思。不如自己也实现一个来玩玩? 以前也没怎么写过 Python,只用来刷过 LeetCode。正好借这个机会再学一学 Python 吧。
用python画福字
春节快到了,一年一度的支付宝集五福活动就要来了,阿牛也是突发奇想,看能不能用python的turtle库画个"福"字,试了很久,我的这个“福“”字终于看起来可以了,现将源码分享给大家,拿过去放到python的环境中就可以直接运行哦!嘿嘿嘿!这五福手到擒来啦!