1. 图像金字塔特点
图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。
2. 向下采样
2.1. 特点
从第i层获取第i+1层 Gi→Gi+1
-
对图像Gi进行高斯核卷积。
-
删除所有的偶数行和列。
原始图像 M×N→处理结果 M/2×N/2,每次处理后,结果图像是原来的1/4。重复执行该过程,构造图像金字塔。
注意:向下会丢失信息。
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()
结果
-
在每个方向上扩大为原来的2倍,新增的行和列以0填充。
-
使用与“向下采用”同样的卷积核乘以4,获取“新增像素”的新值。
注意:
3. 放大后的图像比原始图像要模糊。
4. 向上采样、向下采样不是互逆操作。经过两种操作后,无法恢复原有图像。
函数:
dst=cv2.pyrUp(src)
dst
—向上取样结果
src
—原始图像
python代码
结果
4.1. 特点
拉普拉斯金字塔(Laplacianpyramid): 用来从金字塔低层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。
4.2. 相关函数与程序实现
函数:
Li = Gi - PyrUp(PyrDown(Gi))
Gi
,原始图像
Li
,拉普拉斯金字塔图像
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的环境中就可以直接运行哦!嘿嘿嘿!这五福手到擒来啦!