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

深入解析:OpenCV CUDA模块图像处理------创建CUDA加速的Canny边缘检测器对象createCannyEdgeDetector()

深入解析:OpenCV CUDA模块图像处理------创建CUDA加速的Canny边缘检测器对象createCannyEdgeDetector()

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

算法描述

该函数用于创建一个 CUDA 加速的 Canny 边缘检测器对象(CannyEdgeDetector),可以在 GPU 上高效执行 Canny 边缘检测算法。
它返回的是一个智能指针 Ptr,可以通过这个指针调用 .detect() 方法来对图像进行边缘检测。
Canny 是一种经典的多阶段边缘检测算法,包含以下几个步骤:

OpenCV 的 cv::cuda::CannyEdgeDetector 类在 GPU 上实现了上述流程,适用于需要实时性或大规模图像处理的场景。

函数原型

Ptr<CannyEdgeDetector> cv::cuda::createCannyEdgeDetector(double low_thresh,double high_thresh,int apperture_size = 3,bool L2gradient = false)

参数

代码示例

#
include <opencv2/cudaimgproc.hpp>#include <opencv2/opencv.hpp>int main(){// Step 1: 读取图像并转换为灰度图cv::Mat h_img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/stich1.png", cv::IMREAD_GRAYSCALE );if ( h_img.empty()){std::cerr <<"Failed to load image!" << std::endl;return -1;}// Step 2: 图像上传到 GPUcv::cuda::GpuMat d_img, d_edges;d_img.upload( h_img );// Step 3: 创建 Canny 边缘检测器(GPU 版)double low_thresh = 50;double high_thresh = 150;cv::Ptr< cv::cuda::CannyEdgeDetector > canny = cv::cuda::createCannyEdgeDetector( low_thresh, high_thresh );// Step 4: 执行边缘检测canny->detect( d_img, d_edges );// Step 5: 下载结果并显示cv::Mat h_edges;d_edges.download( h_edges );cv::imshow( "Original Image", h_img );cv::imshow( "Edges", h_edges );cv::waitKey( 0);return 0;}

运行结果

在这里插入图片描述

http://www.zskr.cn/news/16783.html

相关文章:

  • busybox 没有 clear 命令吗
  • 高阶数据结构——并查集 - 详解
  • 经过基于流视频预测的可泛化双手运行基础策略
  • 实用指南:实践篇:利用ragas在自己RAG上实现LLM评估②
  • Nova Premier模型安全评估结果解析
  • Paypal 设置不自动换汇
  • 诺贝尔生理与医学奖颁给这项革命技术,多家中国公司已布局!(附名单)
  • 华为员工工资待遇表:
  • 体验mcp服务的开发集成和演示过程 - 智慧园区
  • AI技术全景解析:从架构设计到社会影响
  • 随手记 | 关于AI最新趋势和未来发展方向探讨
  • AI骚扰电话:技术发展的双刃剑效应
  • 高三闲话 #2
  • 个人博客公告
  • 用 Kotlin 调用 Tesseract 实现验证码识别
  • Audacity导出音频后发声提醒
  • 防范AI提示词攻击(2025):AI-FOCUS团队「AI FENCE」实战方案
  • 做一个会Debug的程序员
  • 存一下刚开始学编程的东西
  • GO+RabbitMQ+Gin+Gorm+docker 部署 demo - 实践
  • 深入解析:rknn优化教程(一)
  • QBXT2025S刷题 Day5
  • Ai元人文系列:领域协同深耕:构建人机价值共生的文明实践框架
  • 深入解析:【C++项目】负载均衡在线OJ系统-1
  • 16_AiAgentMCP简单教程
  • 字节跳动开源图标库:2000+图标一键换肤的魔法 - 教程
  • 2025 --【J+S 二十连测】-- 第十三套 总结
  • 文件存储空间管理
  • 在A列连续且相等行的最后插入空行,并求和
  • @Prometheus 监控-MySQL (Mysqld Exporter) - 教程