pyrDown () 与 resize () 核心区别(OpenCV)

📅 2026/7/8 17:05:51 👁️ 阅读次数 📝 编程学习
pyrDown () 与 resize () 核心区别(OpenCV)

pyrDown () 与 resize () 核心区别(OpenCV)

一、函数基础作用

1. pyrDown 高斯金字塔下采样(图像缩小专用)

cpp

运行

void pyrDown(InputArray src, OutputArray dst, const Size& dstsize = Size(), int borderType = BORDER_DEFAULT);

固定逻辑:

  1. 先对原图做5×5 高斯模糊(σ=1.0),消除高频噪点,防止缩小后出现锯齿、混叠;
  2. 隔行隔列采样:只保留偶数行、偶数列像素;
  3. 默认输出尺寸:Size(src.cols/2, src.rows/2),宽高严格变为原图 1/2。

2. resize 自由缩放(放大 / 缩小任意尺寸)

cpp

运行

void resize(InputArray src, OutputArray dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR);
  • 支持任意放大、任意缩小,尺寸完全自定义;
  • 模糊不是强制步骤,由插值算法决定像素重构规则;
  • 无内置高斯平滑,直接插值重采样。

二、关键维度对比表

表格

对比项pyrDownresize
缩放比例</