企业官方网站如何做蓝v认证,网站建设佰首选金手指十八,wordpress大站,个人做网站猛赚钱Opencv_CUDA应用之 关键点检测器和描述符
本节中会介绍找到局部特征的各种方法#xff0c;也被称为关键点检测器关键点(key-point)是表征图像的特征点#xff0c;可用于准确定义对象
1. 加速段测试特征功能检测器
FAST算法用于检测角点作为图像的关键点#xff0c;通过对…Opencv_CUDA应用之 关键点检测器和描述符
本节中会介绍找到局部特征的各种方法也被称为关键点检测器关键点(key-point)是表征图像的特征点可用于准确定义对象
1. 加速段测试特征功能检测器
FAST算法用于检测角点作为图像的关键点通过对每个像素应用分段测试来检测角点(corner)对每个像素以半径16像素形成的圆作为分段。如果在半径16的圆中有n个连续点强度大于Ipt或者小于Ip-t,那么该像素被认为是一个角点。Ip 是 p处的像素强度t是所选择的阈值。opencv和cuda提供了一种实现FAST算法的有效方法如下所示
#include iostream
#include opencv2/opencv.hpp
#includeopencv2/cudafeatures2d.hppusing namespace cv;
using namespace std;int main()
{Mat h_image imread(images/drawing.JPG, 0);//Detect the keypoints using FAST Detectorcv::Ptrcv::cuda::FastFeatureDetector detector cv::cuda::FastFeatureDetector::create(100, true, 2);std::vectorcv::KeyPoint keypoints;cv::cuda::GpuMat d_image;d_image.upload(h_image);detector-detect(d_image, keypoints);cv::drawKeypoints(h_image, keypoints, h_image);//Show detected keypointscv::namedWindow(Final Result, 0);imshow(Final Result, h_image);waitKey(0);return 0;
}2. 面向FAST和旋转BRIEF 的特征检测
ORB是一种非常有效的特征检测和描述算法结合FAST特征检测算法和二进制鲁棒独立初级特征(Binary Robust Independent Elementary Features, BRIEF)提供一种有效替代目前广泛用于对象检测的SURF和SIFT算法要使用这两个有专利保护的算法是需要付费的。ORB是免费的而且能匹配SIFT和SURF的性能。Opencv 和 CUDA 提供了一个简单的API 来实现ORB算法用于实现ORB算法的代码如下
#include iostream
#include opencv2/opencv.hpp
#includeopencv2/cudafeatures2d.hppusing namespace cv;
using namespace std;int main()
{Mat h_image imread(images/drawing.JPG, 0);cv::Ptrcv::cuda::ORB detector cv::cuda::ORB::create();std::vectorcv::KeyPoint keypoints;cv::cuda::GpuMat d_image;d_image.upload(h_image);detector-detect(d_image, keypoints);cv::drawKeypoints(h_image, keypoints, h_image);imshow(Final Result, h_image);waitKey(0);return 0;
}3. 加速强特征检测和匹配 opencv和cuda提供了一个API来计算SURF关键点和描述符如下