OpenCV图像滤波(12)图像金字塔处理函数pyrDown()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

函数主要是对图像进行模糊处理并将其降采样。

默认情况下,输出图像的大小计算为 Size((src.cols+1)/2, (src.rows+1)/2),但无论如何,以下条件必须满足:
∣ dstsize.width ∗ 2 − s r c . c o l s ∣ ≤ 2 ∣ dstsize.height ∗ 2 − s r c . r o w s ∣ ≤ 2 \begin{array}{l} | \texttt{dstsize.width} *2-src.cols| \leq 2 \\ | \texttt{dstsize.height} *2-src.rows| \leq 2 \end{array} ∣dstsize.width∗2−src.cols∣≤2∣dstsize.height∗2−src.rows∣≤2

该函数执行高斯金字塔构建中的降采样步骤。首先,它使用以下核对源图像进行卷积:
1 256 [ 1 4 6 4 1 4 16 24 16 4 6 24 36 24 6 4 16 24 16 4 1 4 6 4 1 ] \frac{1}{256} \begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\ 4 & 16 & 24 & 16 & 4 \\ 6 & 24 & 36 & 24 & 6 \\ 4 & 16 & 24 & 16 & 4 \\ 1 & 4 & 6 & 4 & 1 \end{bmatrix} 2561 1464141624164624362464162416414641

然后,通过丢弃偶数行和列来对图像进行降采样。

pyrDown() 函数是 OpenCV 中用于图像金字塔处理的一个函数。它主要用于图像降采样,即将图像缩小到较小的分辨率。这是构建图像金字塔的基础步骤之一,常用于图像处理和计算机视觉任务中,例如特征检测、对象识别等。

函数原型

cpp 复制代码
void cv::pyrDown	
(
	InputArray 	src,
	OutputArray 	dst,
	const Size & 	dstsize = Size(),
	int 	borderType = BORDER_DEFAULT 
)		

参数

  • 参数src 输入图像。
  • 参数dst 输出图像;具有指定的大小和与输入图像相同的类型。
  • 参数dstsize 输出图像的大小。
  • 参数borderType 像素外推方法,参见 BorderTypes(不支持 BORDER_CONSTANT)。

代码示例

cpp 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>

int main()
{
    // 加载图像
    cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/erik.jpg", cv::IMREAD_COLOR );

    if ( img.empty() )
    {
        std::cout << "无法加载图像,请检查路径是否正确。" << std::endl;
        return -1;
    }

    cv::Size sz2Sh( 400, 600 );
    cv::resize( img, img, sz2Sh, 0, 0, cv::INTER_LINEAR_EXACT );

    // 使用 pyrDown 对图像进行降采样
    cv::Mat smaller_img;
    cv::pyrDown( img, smaller_img );

    // 显示结果
    cv::namedWindow( "Original Image", cv::WINDOW_NORMAL );
    cv::imshow( "Original Image", img );

    cv::namedWindow( "Downsampled Image", cv::WINDOW_NORMAL );
    cv::imshow( "Downsampled Image", smaller_img );

    cv::waitKey( 0 );  // 等待按键

    return 0;
}

运行结果

相关推荐
2501_920953865 小时前
工业4.0时代,制造企业精益管理咨询的标准化实施步骤
大数据·人工智能·制造
~央千澈~5 小时前
《2026鸿蒙NEXT纯血开发与AI辅助》第四章 对鸿蒙next项目结构目录详解以及实战解决一个最初的依赖安装的报错·卓伊凡
人工智能
xinlianyq6 小时前
2026企业流量破局:四大主流短视频矩阵获客系统深度解析与选型指南
人工智能·矩阵
workflower7 小时前
用硬件换时间”与“用算法降成本”之间的博弈
人工智能·算法·安全·集成测试·无人机·ai编程
AI人工智能+8 小时前
施工许可证识别技术:深度融合计算机视觉(CV)与自然语言处理(NLP)
深度学习·计算机视觉·ocr·施工许可证识别
Cx330❀8 小时前
一文吃透Linux System V共享内存:原理+实操+避坑指南
大数据·linux·运维·服务器·人工智能
OPHKVPS8 小时前
Anthropic 为 Claude Code 推出“自动模式”:AI 编码工具迈向更高自主性
网络·人工智能·安全·ai
Allen_LVyingbo8 小时前
斯坦福HAI官网完整版《2025 AI Index Report》全面解读
人工智能·数学建模·开源·云计算·知识图谱
金融小师妹8 小时前
基于AI通胀预期建模与能源冲击传导机制的政策分析:高频信号下的风险再评估
人工智能·svn·能源
胡摩西8 小时前
当大模型遇上毫米级定位:机器人将拥有“空间思维”?
人工智能·机器人·slam·gps·室内定位·roomaps