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

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

函数原型

// 向上采样
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;
}


测试效果

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

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

相关文章
|
3月前
|
机器学习/深度学习 人工智能 算法
Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。
【7月更文挑战第5天】Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。CV涉及图像处理、模式识别和机器学习,用于图像理解和生成。Python的跨平台特性和活跃社区使其成为CV的理想工具。基本流程包括图像获取、预处理、特征提取、分类识别及图像生成。例如,面部识别通过预处理图像,使用如`cv2.CascadeClassifier`进行检测;物体检测类似,但需适应不同目标;图像生成则利用GAN创造新图像。
59 4
|
2月前
|
计算机视觉 索引
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
本文介绍了解决OpenCV读取视频失败的错误,指出问题通常由视频路径错误或摄像头索引错误导致,并提供了相应的解决方法。
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
|
2月前
|
计算机视觉
OpenCV 图像类型标识符 CV_<bit_depth><S|U|F>C<number_of_channels>
OpenCV 图像类型标识符 CV_<bit_depth><S|U|F>C<number_of_channels>
33 0
|
5月前
|
计算机视觉
OpenCV报错: cv::Exception,位于内存位置 0x00000078226FEE58 处。
OpenCV报错: cv::Exception,位于内存位置 0x00000078226FEE58 处。
|
计算机视觉
OpenCV-模板匹配cv::matchTemplate
OpenCV-模板匹配cv::matchTemplate
|
计算机视觉
OpenCV-矩形边框cv::boundingRect
OpenCV-矩形边框cv::boundingRect
|
5月前
|
计算机视觉 Python
opencv cv::Range()和cv::Rect()用于crop来获得感兴趣区域
opencv cv::Range()和cv::Rect()用于crop来获得感兴趣区域
179 0
|
计算机视觉
OpenCV-绘制标记符cv::drawMarker
OpenCV-绘制标记符cv::drawMarker
238 2
|
计算机视觉 容器
OpenCV-图像金字塔cv::buildPyramid
OpenCV-图像金字塔cv::buildPyramid
OpenCV-图像金字塔cv::buildPyramid
|
算法 计算机视觉
OpenCV-自适应阈值函数cv::adaptiveThreshold
OpenCV-自适应阈值函数cv::adaptiveThreshold
107 0
OpenCV-自适应阈值函数cv::adaptiveThreshold