马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
- 操作系统: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::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;
- }
复制代码 输出示例(水平翻转):
- 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]
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|