buildPyramid函数:
函数的调用方式:
void buildPyramid(InputArray src, OutputArrayOfArrays dst, int maxlevel, int borderType=BORDER_DEFAULT )
函数参数的详解:
第一个参数:InputArray src输入图像
第二个参数: OutputArrayOfArrays dst输出图像
第三个参数:int maxlevel 表示建立金字塔的层数
第四个参数:int borderType=BORDER_DEFAULT 表示对边界的处理方式
该函数的功能:
高斯金字塔为一层一层的图像,层级越高,图像越小。如下图所示,每一层都按从下到上的次序编号, 层级 (i+1) (表示为 Gi+1 尺寸小于层级 i(Gi) )。
前面已经了解到,缩小图像可以使用下采样技术。而高斯金字塔就是基于 下采样 实现的:通过对输入图像 G0 (原始图像) 下采样多次就会得到整个金字塔。
OpenCV 提供了一个函数 buildPyramid()
用来从一幅图像创建高斯金字塔
#include<highgui.h> #include<string> #include<cv.h> using namespace std; using namespace cv; int main() { Mat img = imread("D:6.jpg"); vector<Mat> gpyramid; buildPyramid(img, gpyramid, 4); vector<Mat>::iterator it = gpyramid.begin(); vector<Mat>::iterator itend = gpyramid.end(); int i = 0; stringstream title; for (; it < itend; it++) { title << "jinzita" << i; namedWindow(title.str()); imshow(title.str(), *it); i++; } waitKey(0); return 0; }