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

【OpenCV|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 #include "opencv2/core.hpp" #include "opencv2/highgui.hpp" #include "opencv2/imgproc.hpp"using namespace cv; using namespace std; int main() { cv::Mat src = https://www.it610.com/article/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 向上采样
向下采样会先高斯平滑再缩小尺寸,对向下采样后的图进行向上采样,恢复到原来大小,但是因为经历了两次高斯模糊,所以采样后的图必然相较原图有微小程度的失真~
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

    推荐阅读