opencv教程(基于python)----图象金字塔
2018-01-31 10:11
323 查看
图象金字塔是我们创建一组图象,这些图象是具有不同分辨率的原始图像,如果把分辨率最大的放在底部,最小的放在上面,看起来就像一个金字塔,这也是他名字的由来。一般来说具体的应用是,不同的设备显示图像需要不同的分辨率,建立一个金字塔可以快速适应不同的设备;还用一个应用是图形分割方面的(基于区域)。
有两类金字塔:高斯金字塔和拉普拉斯金字塔。
cv2.pyrUp(src, dst=None, dstsize=None, borderType=None)
src是出入图形,det是输出,dstsize是图象大小,borderType是边界情况。这个函数是向下构建金字塔图象会变大,但是分辨率会减小。
cv2.pyrDown(src, dst=None, dstsize=None, borderType=None)
参数和上面的类似。注意这里的函数都是基于高斯金字塔的,图像的变化情况也是如此。
这里的放缩分别进行了两次,至于upper如果在matplotlib看的话,他的图象尺寸契税是变大了的,但是,show出来的效果就这么大,所以显示的和原始图像就一样了。
L i = G i − PyrUp(G i+1 )
上面的就是它的原理(csdn的公式编译出问题了吧)。这个没有专门的函数,要我们自己写的,例子我就不展示了。
有两类金字塔:高斯金字塔和拉普拉斯金字塔。
高斯金字塔
高斯金字塔的顶部是通过将底部图像中的连续 的行和列去除得到的。顶部图像的每个像素值等于下一层图像中5个像素的高斯加权平均值。这样下一层比上一层,图像的行和列分别变为原来的1/2。这里边主要用到两个函数cv2.pyrDown()和cv2.pyrUp()cv2.pyrUp(src, dst=None, dstsize=None, borderType=None)
src是出入图形,det是输出,dstsize是图象大小,borderType是边界情况。这个函数是向下构建金字塔图象会变大,但是分辨率会减小。
cv2.pyrDown(src, dst=None, dstsize=None, borderType=None)
参数和上面的类似。注意这里的函数都是基于高斯金字塔的,图像的变化情况也是如此。
import cv2 import numpy as np import matplotlib.pyplot as plt img=cv2.imread('C:/Users/dell/Desktop/cos.jpg') lower=cv2.pyrDown(img) lower=cv2.pyrDown(lower) upper=cv2.pyrUp(img) upper=cv2.pyrUp(upper) plt.subplot(1,3,1),plt.imshow(img) plt.title('original'),plt.xticks([]),plt.yticks([]) plt.subplot(1,3,2),plt.imshow(lower) plt.title('lower'),plt.xticks([]),plt.yticks([]) plt.subplot(1,3,3),plt.imshow(upper) plt.title('upper'),plt.xticks([]),plt.yticks([]) plt.show()
这里的放缩分别进行了两次,至于upper如果在matplotlib看的话,他的图象尺寸契税是变大了的,但是,show出来的效果就这么大,所以显示的和原始图像就一样了。
拉普拉斯金字塔
在高斯金字塔的运算过程中,图像经过卷积和下采样操作会丢失部分高频细节信息。为描述这些高频信息,人们定义了拉普拉斯金字塔。用高斯金字塔的每一层图像减去其上一层图像上采样并高斯卷积之后的预测图像,得到一系列的差值图像即为 拉普拉斯分解图像。L i = G i − PyrUp(G i+1 )
上面的就是它的原理(csdn的公式编译出问题了吧)。这个没有专门的函数,要我们自己写的,例子我就不展示了。
相关文章推荐
- opencv教程(基于python)----图象轮廓(一)
- opencv教程(基于python)----图象的特征与提取
- opencv教程(基于python)----图象轮廓(二)
- opencv教程(基于python)----图象轮廓(三)
- opencv教程(基于python)----图象平滑处理
- opencv教程(基于python)----几何变换
- opencv教程(基于python)----直方图反射投影
- opencv教程(基于python)----直方图
- opencv教程(基于python)----霍夫变换
- opencv教程(基于python)----关于滑条
- opencv教程(基于python)----grabcut前景提取
- 基于python的opencv教程
- opencv教程(基于python)----关于绘图
- opencv教程(基于python)----边缘检测
- opencv教程(基于python)----关于调用鼠标
- OpenCV Python教程2
- OpenCV(3.2)+Python(3.6)学习(基于官方API)(三)
- Opencv3 Python基础教程2_视频
- 【基于C++和Python的Opencv3学习笔记之图像载入、显示和保存】
- OpenCV-Python教程(6)(7)(8): Sobel算子 Laplacian算子 Canny边缘检测