FAST特征点检测——opencv

来源:互联网 发布:快速排序算法举例说明 编辑:程序博客网 时间:2024/05/18 12:34

实现方法一:

#include "opencv2/core/core.hpp"  #include "opencv2/highgui/highgui.hpp"  #include "opencv2/imgproc/imgproc.hpp"  #include "opencv2/features2d/features2d.hpp"    //需要添加该头文件  #include <iostream>  using namespace cv;using namespace std;int main(int argc, char** argv){    Mat src, gray;    src = imread("D:\\ff.jpg");    if (!src.data)        return -1;    //彩色图像转换为灰度图像      cvtColor(src, gray, CV_BGR2GRAY);    //定义特征点KeyPoint向量      vector<KeyPoint> keyPoints;    //调用FAST函数,阈值选为55      FAST(gray, keyPoints, 55);    int total = keyPoints.size();    //在原图上画出特征点      for (int i = 0; i < total; i++)    {        circle(src, Point((int)keyPoints[i].pt.x, (int)keyPoints[i].pt.y), 2, Scalar(0, 0, 255), -1, 8, 0);    }    namedWindow("Corners", CV_WINDOW_AUTOSIZE);    imshow("Corners", src);    waitKey(0);    return 0;}

实现方法二:

#include "opencv2/core/core.hpp"  #include "opencv2/highgui/highgui.hpp"  #include "opencv2/imgproc/imgproc.hpp"  #include "opencv2/features2d/features2d.hpp"  #include <iostream>  using namespace cv;using namespace std;int main(int argc, char** argv){    Mat src, gray;    src = imread("D:\\8888.PNG");    if (!src.data)        return -1;    cvtColor(src, gray, CV_RGB2GRAY);    std::vector<KeyPoint> keyPoints;    cv::Ptr<cv::FastFeatureDetector> fast=cv::FastFeatureDetector::create(55);    //特征点检测      fast->detect(gray, keyPoints);    //在原图上画出特征点      drawKeypoints(src, keyPoints, src, Scalar(0, 0, 255), DrawMatchesFlags::DRAW_OVER_OUTIMG);    imshow("FAST feature", src);    waitKey(0);    return 0;}
0 0
原创粉丝点击