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

OpenCV CUDA模块图像变形------对图像进行 尺寸缩放(Resize)操作函数resize()

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

算法描述

该函数用于对图像进行 尺寸缩放(Resize)操作,是 GPU 加速版本的图像缩放函数。你可以通过指定目标尺寸 dsize 或者缩放因子 fx 和 fy 来控制输出图像大小,并选择插值方式以平衡速度与质量。

函数原型

void cv::cuda::resize 	
(InputArray  	src,OutputArray  	dst,Size  	dsize,double  	fx = 0,double  	fy = 0,int  	interpolation = INTER_LINEAR,Stream &  	stream = Stream::Null() 
) 		

参数

参数名说明
src源图像。
dst目标图像,类型与 src 相同。尺寸为 dsize(当其非零时),否则根据 src.size()fxfy 自动计算。
dsize输出图像的尺寸(宽 x 高)。如果设为零,则按如下方式计算:

dsize = Size(round(fx * src.cols), round(fy * src.rows))

必须满足:dsize 非零,或者 fxfy 同时非零。
fx水平方向的缩放比例因子。如果为零,则自动计算为:

(double)dsize.width / src.cols
fy垂直方向的缩放比例因子。如果为零,则自动计算为:

(double)dsize.height / src.rows
interpolation插值方法。目前支持 INTER_NEARESTINTER_LINEARINTER_CUBIC
stream用于异步版本的 CUDA 流对象。

代码示例

#include <opencv2/cudaimgproc.hpp>  // 包含 resize
#include <opencv2/opencv.hpp>
#include <opencv2/cudawarping.hpp>int main()
{// 读取图像cv::Mat h_src = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_COLOR );if ( h_src.empty() ){std::cerr << "无法加载图像!" << std::endl;return -1;}// 上传到 GPUcv::cuda::GpuMat d_src, d_dst;d_src.upload( h_src );// 设置目标尺寸为原图的一半cv::Size dsize( h_src.cols / 2, h_src.rows / 2 );// 执行 resizecv::cuda::resize( d_src, d_dst, dsize, 0, 0, cv::INTER_LINEAR );// 下载并显示结果cv::Mat h_dst;d_dst.download( h_dst );cv::imshow( "Original Image", h_src );cv::imshow( "Resized Image", h_dst );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述

http://www.xdnf.cn/news/13840.html

相关文章:

  • Elasticsearch:使用 ES|QL 进行地理空间距离搜索
  • Linux612 chroot_list开放;FTP服务ftp:get put,指定上传路径报错553;ftp查看文件夹权限
  • 28-Oracle 23ai Fast Ingest(Memoptimized Rowstore)高频写入
  • 西电【信息与内容安全】课程期末复习笔记
  • jupyter notebook的相关知识及可能遇到的问题
  • LeetCode 2917.找出数组中的K-or值
  • Shell 脚本:系统管理与任务自动化的利器
  • docker compose安装Prometheus、Grafana
  • ubuntu网络连接失败 + mobaxterm拖拽文件出错等问题解决方法
  • CQL3D编译指南
  • PPIO 上线 Qwen3-Embedding 系列模型
  • C++学习-入门到精通【19】杂项汇总
  • 企业级人员评价系统Web端重构实战:前端架构效能升级
  • 【11408学习记录】考研数学核心突破:矩阵本质、系统信息与向量空间基
  • Linux系统lvm操作演示
  • 傲火集团传媒基地武汉启幕 构建数字娱乐产业生态闭环
  • 图像处理 | 基于matlab的多尺度Retinex(MSR)和自适应直方图均衡化(CLAHE)算法联合的低照度图像增强(附代码)
  • linux安装Redis6.0.8
  • 华为云物联网系统开发(纯云端)外包方案及项目需求说明书
  • PEP 8: E302 expected 2 blank lines, found 0
  • 在服务器上使用 Docker 部署 Node.js 后端服务和前端项目
  • 手写Antd的form组件源码
  • WPF调用Python心率监测脚本解决方案
  • 【iSAQB软件架构】以架构为中心的开发方法
  • 53. 最大的子数组和
  • iteration和每一轮,训练周期,迭代计数器 这些名词是什么关系?
  • 2025年中国人工智能发展研究报告:技术突破、行业变革与全球竞争新格局
  • ‘Target closed‘ error in Puppeteer解决
  • python打卡day52
  • 【GitOps】Kubernetes安装ArgoCD,使用阿里云MSE云原生网关暴露服务