pyrDown () 与 resize () 核心区别(OpenCV)
📅 2026/7/8 17:05:51
👁️ 阅读次数
📝 编程学习
pyrDown () 与 resize () 核心区别(OpenCV)
一、函数基础作用
1. pyrDown 高斯金字塔下采样(图像缩小专用)
cpp
运行
void pyrDown(InputArray src, OutputArray dst, const Size& dstsize = Size(), int borderType = BORDER_DEFAULT);固定逻辑:
- 先对原图做5×5 高斯模糊(σ=1.0),消除高频噪点,防止缩小后出现锯齿、混叠;
- 隔行隔列采样:只保留偶数行、偶数列像素;
- 默认输出尺寸:
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);- 支持任意放大、任意缩小,尺寸完全自定义;
- 模糊不是强制步骤,由插值算法决定像素重构规则;
- 无内置高斯平滑,直接插值重采样。
二、关键维度对比表
表格
| 对比项 | pyrDown | resize |
|---|---|---|
| 缩放比例</ |
编程学习
技术分享
实战经验