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

OpenCV CUDA模块特征检测------创建Harris角点检测器的GPU实现接口cv::cuda::createHarrisCorner

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

算法描述

该函数创建一个 基于 Harris 算法的角点响应计算对象,专门用于在 GPU 上进行高效计算。
它返回的是一个 cv::Ptrcv::cuda::CornernessCriteria 类型的对象,可用于后续调用 .compute() 方法对图像进行角点响应值计算。

函数原型

Ptr<CornernessCriteria> cv::cuda::createHarrisCorner
(int  	srcType,int  	blockSize,int  	ksize,double  	k,int  	borderType = BORDER_REFLECT101 
) 		

参数

  • srcType 输入源类型。目前仅支持 CV_8UC1 和 CV_32FC1。

  • blockSize 邻域大小。

  • ksize Sobel 算子的孔径参数(用于计算梯度)。

  • k Harris 检测器的自由参数。

  • borderType 像素外推方法(边界填充方式)。目前仅支持 BORDER_REFLECT101 和 BORDER_REPLICATE。

代码示例


#include <opencv2/opencv.hpp>
#include <opencv2/cudaimgproc.hpp>
#include <iostream>int main() {// Step 1: 加载灰度图cv::Mat h_img = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/chessboard.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_corners;d_img.upload(h_img);// Step 3: 创建 Harris 角点检测器int srcType = d_img.type();int blockSize = 3;int ksize = 3;double k = 0.04;cv::Ptr<cv::cuda::CornernessCriteria> criteria = cv::cuda::createHarrisCorner(srcType, blockSize, ksize, k);// Step 4: 执行角点响应计算criteria->compute(d_img, d_corners);// Step 5: 下载结果并显示cv::Mat h_corners;d_corners.download(h_corners);cv::normalize(h_corners, h_corners, 0, 255, cv::NORM_MINMAX, CV_8U);cv::imshow("original picture", h_img);cv::imshow("Harris Corner Response", h_corners);cv::waitKey(0);return 0;
}

运行结果

在这里插入图片描述

http://www.lqws.cn/news/96301.html

相关文章:

  • 【运维】统信UOS操作系统aarch64自制OpenSSH 9.6p1 rpm包(含ssh-copy-id命令)修复漏洞
  • 基于 COM 的 XML 解析技术(MSXML) 的总结
  • mac下通过anaconda安装Python
  • c语言内存函数
  • Java 中执行命令并使用指定配置文件的最佳实践
  • Oracle双平面适用场景讨论会议
  • 云服务器宕机或重启后数据会丢失吗?
  • 数据驱动在线教育平台优化:用数据帮你变成“教书匠+数据控”
  • Agentic Workflow是什么?Agentic Workflow会成为下一个AI风口吗?
  • Springboot中Controller接收参数的方式
  • 第7章 :面向对象
  • Spring Security
  • tryhackme——Abusing Windows Internals(进程注入)
  • Qwen3高效微调
  • 服务器被攻击了怎么办
  • 机器学习与深度学习08-随机森林02
  • 解决MyBatis参数绑定中参数名不一致导致的错误问题
  • 服务器租用:高防CDN和加速CDN的区别
  • Java基础之数组(附带Comparator)
  • 《TCP/IP 详解 卷1:协议》第5章:Internet协议
  • electron-vite_18桌面共享
  • 电脑硬盘分几个区好
  • Oracle、PostgreSQL 与 MySQL 数据库对比分析与实践指南
  • React知识点梳理
  • pip安装python第三方库报错
  • ‌CDGP|数据治理的低效性:企业AI落地的另一大挑战
  • LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 下
  • chromedriver 下载失败
  • 使用Redis的四个常见问题及其解决方案
  • backend 服务尝试连接 qdrant 容器,但失败了,返回 502 Bad Gateway 问题排查