当前位置: 首页 > news >正文

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.width2src.cols2dstsize.height2src.rows2

该函数执行高斯金字塔构建中的降采样步骤。首先,它使用以下核对源图像进行卷积:
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 中用于图像金字塔处理的一个函数。它主要用于图像降采样,即将图像缩小到较小的分辨率。这是构建图像金字塔的基础步骤之一,常用于图像处理和计算机视觉任务中,例如特征检测、对象识别等。

函数原型

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

参数

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

代码示例


#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;
}

运行结果

在这里插入图片描述

http://www.lryc.cn/news/425322.html

相关文章:

  • css如何使一个盒子水平垂直居中
  • 机器人等方向学习和研究的目标
  • 封装一个细粒度的限流器
  • 【Spring Boot - 注解】@ResponseBody 注解:处理 JSON 响应
  • 无人机航拍与ArcGIS融合实战:从地表观测到空间数据可视化的全方位指南!无人机图像拼接数据处理与分析、可视化与制图
  • 日期转时间濯
  • 【计算机网络】TCP实战
  • 使用Python制作贪吃蛇小游戏
  • 线程的退出
  • 【AI 绘画】Q版人物定制生成
  • Python爬虫——爬取某网站的视频
  • Android逆向题解攻防世界-easy-apk
  • Linux系统使用Typecho搭建个人网站并一键发布公网远程管理本地站点
  • 机器学习速成第三集——无监督学习之聚类(理论部分)!
  • 【机器学习】CNN的基本架构模块
  • 第八节AWK报告生成器(2)
  • Linux 进程间通信之管道
  • IDEA 无法启动,点击之后没有任何提示或者界面
  • ctf 堆栈结构
  • sqlserver的openquery配置
  • Spring boot logback日志框架加载初始化源码
  • qt-11基本对话框(消息框)
  • Windows11下wsl闪退的解决
  • 通过调整JVM的默认内存配置来解决内存溢出(‌OutOfMemoryError)‌或栈溢出(‌StackOverflowError)‌等错误
  • RCE---eval长度限制绕过技巧
  • C++11标准模板(STL)- 算法库 - 类似 std::accumulate,但不依序执行 -(std::reduce)
  • 反射机制的介绍
  • AI图文带货,手把手教学,傻瓜操作,轻松日入500+,小白教程
  • java:实现简单的验证码功能
  • MybatisPlus使用指南