OpenCV-向上采样cv::pyrUp&&向下采样cv::pyrDown

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

函数原型

// 向上采样
void pyrUp( InputArray src, OutputArray dst,
            const Size& dstsize = Size(), int borderType = BORDER_DEFAULT );
// 向下采样
void pyrDown( InputArray src, OutputArray dst,
              const Size& dstsize = Size(), int borderType = BORDER_DEFAULT );

参数说明

  1. InputArray类型的src,输入图像。
  2. OutputArray类型的dst,输出图像。
  3. const Size&类型的dstsize,输出图像尺寸,一般默认即可。
  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",0);
	cv::Mat th1,th2;
	int row = src.rows;
	int col = src.cols;
	// 向下采样。高斯平滑+缩小尺寸
	pyrDown(src, th1, Size(0, 0), 4);
	// 向上采样。放大尺寸+高斯平滑
	pyrUp(th1, th2, Size(0, 0), 4);
	imshow("original", src);
	imshow("pyrDown", th1);
	imshow("pyrUp", th2);
	waitKey(0);
	return 0;
}

测试效果

图1 原图
图2 向下采样
图3 向上采样

       向下采样会先高斯平滑再缩小尺寸,对向下采样后的图进行向上采样,恢复到原来大小,但是因为经历了两次高斯模糊,所以采样后的图必然相较原图有微小程度的失真~

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

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

昵称

取消
昵称表情代码图片

    暂无评论内容