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

Posted 翟天保Steven

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 向上采样

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

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

以上是关于OpenCV-向上采样cv::pyrUp&&向下采样cv::pyrDown的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV--图像金字塔

OpenCV图像处理应用(面向Python)之图像金字塔

OpenCV图像处理应用(面向Python)之图像金字塔

OpenCV图像处理应用(面向Python)之图像金字塔

OpenCV 图像上采样和降采样

OpenCV 图像上采样和降采样