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

[复制链接]
发表于 昨天 12:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

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

cv::cuda::flip 是 OpenCV 的 CUDA 模块中的一个函数,用于在 GPU 上对图像或矩阵进行 翻转(镜像)操作。它类似于 CPU 版本的 cv::flip,但运行在 GPU 上,实用于 cv::cuda::GpuMat 数据。
函数原型
  1. void cv::cuda::flip
  2. (
  3.     InputArray src,
  4.     OutputArray dst,
  5.     int flipCode,
  6.     Stream& stream = Stream::Null()
  7. )
复制代码
参数

参数名范例描述|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 版本的翻转规则。
示例代码
  1. #include <opencv2/opencv.hpp>
  2. #include <opencv2/cudaimgproc.hpp> // 必须包含这个头文件才能使用 cuda::flip
  3. int main() {
  4.     // 创建测试图像(CPU)
  5.     cv::Mat h_src = (cv::Mat_<uchar>(3, 4) <<
  6.         1, 2, 3, 4,
  7.         5, 6, 7, 8,
  8.         9, 10, 11, 12);
  9.     std::cout << "Original:\n" << h_src << std::endl;
  10.     // 上传到 GPU
  11.     cv::cuda::GpuMat d_src;
  12.     d_src.upload(h_src);
  13.     // 创建输出 GPU 图像
  14.     cv::cuda::GpuMat d_dst;
  15.     // 执行翻转操作:水平翻转
  16.     int flipCode = 1; // 水平翻转
  17.     cv::cuda::flip(d_src, d_dst, flipCode);
  18.     // 下载回 CPU 并显示结果
  19.     cv::Mat h_dst;
  20.     d_dst.download(h_dst);
  21.     std::cout << "Flipped (horizontal):\n" << h_dst << std::endl;
  22.     return 0;
  23. }
复制代码
输出示例(水平翻转):
  1. Original:
  2. [  1,   2,   3,   4;
  3.    5,   6,   7,   8;
  4.    9,  10,  11,  12]
  5. Flipped (horizontal):
  6. [  4,   3,   2,   1;
  7.    8,   7,   6,   5;
  8.   12,  11,  10,   9]
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表