OpenCV-图像金字塔cv::buildPyramid

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

函数原型

void buildPyramid( InputArray src, OutputArrayOfArrays dst,
                   int maxlevel, int borderType = BORDER_DEFAULT );

参数说明

  1. InputArray类型的src,输入图像。
  2. OutputArrayOfArrays类型的dst,输出图像集合,一般为容器。
  3. int类型的maxlevel,图像金字塔层级。
  4. int类型的borderType,推断图像边缘像素的边界模式。

测试代码

#include <iostream>
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"

using namespace cv;
using namespace std;

int main()
{
	cv::Mat src = imread("test.jpg");
	vector<cv::Mat> ths;
	int row = src.rows;
	int col = src.cols;
	buildPyramid(src, ths, 3, 4);

	imshow("original", src);
	imshow("level 0", ths[0]);
	imshow("level 1", ths[1]);
	imshow("level 2", ths[2]);
	imshow("level 3", ths[3]);
	waitKey(0);
	return 0;
}

测试效果

图1 图像金字塔

       图像金字塔其实就是多次向下采样,原图为容器的第一个图,也就是0;若level为4,后面还有4张不同缩小程度的图,其尺寸为上一级图像的一半~

       如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

© 版权声明
THE END
喜欢就支持一下吧
点赞151 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容