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

OpenCV CUDA 模块中在 GPU 上对图像或矩阵进行 翻转(镜像)操作的一个函数 flip()

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

算法描述

cv::cuda::flip 是 OpenCV 的 CUDA 模块中的一个函数,用于在 GPU 上对图像或矩阵进行 翻转(镜像)操作。它类似于 CPU 版本的 cv::flip,但运行在 GPU 上,适用于 cv::cuda::GpuMat 数据。

函数原型

void cv::cuda::flip
(InputArray src,OutputArray dst,int flipCode,Stream& stream = Stream::Null()
)

参数

参数名类型描述

|src I|nputArray |输入图像(可以是 cv::Mat 或 cv::cuda::GpuMat)。
|dst |OutputArray |输出图像(与输入类型一致,通常为 cv::cuda::GpuMat)。
|flipCode |int |翻转方式,见下文说明。
|stream |Stream& |CUDA 流对象,用于异步执行。默认为 Stream::Null(),即同步执行。

功能描述

该函数将输入图像按照指定方向进行翻转:

  • 水平翻转(镜像)
  • 垂直翻转
  • 同时水平和垂直翻转

常用于图像增强、数据增强、预处理等场景。
翻转方式 (flipCode:)

flipCode 值含义
0垂直翻转(上下翻转
> 0水平翻转(左右翻转)
< 0同时水平和垂直翻转

等价于 CPU 版本的翻转规则。

示例代码

#include <opencv2/opencv.hpp>
#include <opencv2/cudaimgproc.hpp> // 必须包含这个头文件才能使用 cuda::flipint main() {// 创建测试图像(CPU)cv::Mat h_src = (cv::Mat_<uchar>(3, 4) <<1, 2, 3, 4,5, 6, 7, 8,9, 10, 11, 12);std::cout << "Original:\n" << h_src << std::endl;// 上传到 GPUcv::cuda::GpuMat d_src;d_src.upload(h_src);// 创建输出 GPU 图像cv::cuda::GpuMat d_dst;// 执行翻转操作:水平翻转int flipCode = 1; // 水平翻转cv::cuda::flip(d_src, d_dst, flipCode);// 下载回 CPU 并显示结果cv::Mat h_dst;d_dst.download(h_dst);std::cout << "Flipped (horizontal):\n" << h_dst << std::endl;return 0;
}

输出示例(水平翻转):

Original:
[  1,   2,   3,   4;5,   6,   7,   8;9,  10,  11,  12]Flipped (horizontal):
[  4,   3,   2,   1;8,   7,   6,   5;12,  11,  10,   9]

相关文章:

  • beyond compare 免密钥进入使用(删除注册表)
  • 信息安全模型全解:从机密性到完整性的理论基石
  • OpenCVCUDA 模块中在 GPU 上对图像或矩阵进行 边界填充(padding)函数copyMakeBorder()
  • 994. 腐烂的橘子
  • MiMo-7B-RL调研
  • 《Vuejs设计与实现》第 5 章(非原始值响应式方案) 中
  • 手机换地方ip地址会变化吗?深入解析
  • 开发工具分享: Web前端编码常用的在线编译器
  • 支持向量机算法
  • C++GO语言微服务之Dockerfile docker-compose
  • 深入理解Embedding Models(嵌入模型):从原理到实战(下)
  • 针对面试-mysql篇
  • 洛谷 P1955 [NOI2015] 程序自动分析
  • FPGA----petalinux开机启动自定义脚本/程序的保姆级教程(二)
  • 人工智能100问☞第21问:神经网络如何模拟人脑结构?
  • The Graph:区块链数据索引的技术架构与创新实践
  • 探索大语言模型(LLM):国产大模型DeepSeek vs Qwen,谁才是AI模型的未来?
  • 2025 年福建省职业院校技能大赛网络建设与运维赛项Linux赛题解析
  • 高速边坡监测成本高?自动化如何用精准数据省预算?
  • Java 语法基础(笔记)
  • “不为一时一事所惑,不为风高浪急所扰”——习近平主席对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典纪实
  • 侧记|青年为何来沪创新创业?从这一天寻找答案
  • 婚姻登记“全国通办”首日观察:数据多跑路,群众少跑腿
  • 竞彩湃|德甲欧冠资格竞争白热化,伯恩茅斯主场迎恶战
  • “一节课、两小时”,体育正在回归“C位”
  • 游戏论|暴君无道,吊民伐罪——《苏丹的游戏》中的政治