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;
}