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 数据。

函数原型

cpp 复制代码
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 版本的翻转规则。

示例代码

cpp 复制代码
#include <opencv2/opencv.hpp>
#include <opencv2/cudaimgproc.hpp> // 必须包含这个头文件才能使用 cuda::flip

int 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;

    // 上传到 GPU
    cv::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;
}

输出示例(水平翻转):

bash 复制代码
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]
相关推荐
ASS-ASH17 小时前
机器人灵巧手:技术演进、市场格局与未来前景
人工智能·深度学习·神经网络·机器学习·计算机视觉·机器人·灵巧手
Deepoch17 小时前
“即插即用”的智能升级:具身智能模块如何破解机器人产业化难题
人工智能·科技·机器人·开发板·未来·具身模型·deepoc
AI营销前沿17 小时前
原圈科技AI营销内容生产革新险企内容工厂新模式解析
人工智能
小北的AI科技分享17 小时前
科普AI搜索优化:传统SEO变革与新技术概述
人工智能
weixin_3954489117 小时前
TDA4工程和tda2工程相比,数据预处理部分tda4有哪些升级?带来了什么好处,tda2原来的数据预处理有哪些坏处
人工智能·python·机器学习
xiangzhihong817 小时前
GPU的集体运算是如何工作的
人工智能
黑客思维者17 小时前
一文读懂神经网络分类:从基础架构到前沿融合
人工智能·神经网络·分类
Francek Chen17 小时前
【自然语言处理】应用02:情感分析:使用循环神经网络
人工智能·pytorch·rnn·深度学习·神经网络·自然语言处理
AI营销前沿17 小时前
原圈科技AI CRM系统全景解析:智能化赋能营销增长新突破
人工智能
GIOTTO情17 小时前
多模态舆情监测技术深度解析:Infoseek 如何实现 AI 造假与短视频舆情的精准捕捉?
人工智能·音视频