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

OpenCV CUDA模块特征检测------角点检测的接口createMinEigenValCorner()

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

算法描述

该函数创建一个 基于最小特征值(Minimum Eigenvalue)的角点响应计算对象,这是另一种经典的角点检测方法(类似于 Shi-Tomasi 角点检测器)。
返回的是 cv::Ptrcv::cuda::CornernessCriteria 类型的对象,可用于后续调用 .compute() 方法对图像进行角点响应计算。

函数原型

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

参数

  • srcType 输入源类型。目前仅支持 CV_8UC1 和 CV_32FC1。
  • blockSize 邻域大小。
  • ksize Sobel 算子的孔径参数。
  • borderType 像素外推方法(边界填充方式)。目前仅支持 BORDER_REFLECT101 和 BORDER_REPLICATE。

代码示例

#include <iostream>
#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/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: 创建 MinEigenVal 角点检测器int srcType   = d_img.type();  // 图像类型(如 CV_8UC1)int blockSize = 3;             // 邻域大小int ksize     = 3;             // Sobel 核大小cv::Ptr< cv::cuda::CornernessCriteria > criteria = cv::cuda::createMinEigenValCorner( srcType, blockSize, ksize );// 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( "Min EigenVal Corner Response", h_corners );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述

http://www.lryc.cn/news/2402325.html

相关文章:

  • Git 提交备注应该如何规范
  • 青少年编程与数学 02-020 C#程序设计基础 17课题、WEB与移动开发
  • Qt OpenGL 实现交互功能(如鼠标、键盘操作)
  • 【Go语言基础【3】】变量、常量、值类型与引用类型
  • 8天Python从入门到精通【itheima】-69~70(字符串的常见定义和操作+案例练习)
  • 在 Linux 中查看文件并过滤空行
  • GC1809:高性能音频接收与转换芯片
  • 项目实战——C语言扫雷游戏
  • 【Java】CopyOnWriteArrayList
  • 【JS进阶】ES6 实现继承的方式
  • mac 电脑Pycharm ImportError: No module named pip
  • C#入门学习笔记 #8(委托)
  • CSS 3D 变换中z-index失效问题
  • Vue3 中使用 i18n
  • vue:当前对象添加对应值
  • Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(七):消息框交互功能添加
  • JavaScript 核心原理深度解析-不停留于表面的VUE等的使用!
  • 【计算机网络】网络层IP协议与子网划分详解:从主机通信到网络设计的底层逻辑
  • 基于WSL搭建Ubnutu 20.04.6 LTS(二)-部署Docker环境
  • 【图像处理入门】6. 频域图像处理:傅里叶变换与滤波的奥秘
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的生态农庄留存运营策略研究
  • Jenkins实现自动化部署Springboot项目到Docker容器(Jenkinsfile)
  • 【Linux】Git原理与使用
  • Cursor 工具项目构建指南: Python 3.8 环境下的 Prompt Rules 约束
  • A*算法实现原理以及实现步骤(C++)
  • Devops自动化运维---py基础篇一
  • 平安养老险蚌埠中心支公司开展金融宣教活动
  • 游戏设计模式 - 子类沙箱
  • java-springboot文件上传校验之只允许上传excel文件,且检查不能是脚本或者有害文件或可行性文件
  • openvino如何在c++中调用pytorch训练的模型