SURF 피쳐 점 체크

SURF는 개체 위치 파악과 식별, 안면인식, 3D 재구성, 개체 추적과 취미 포인트 추출 등에 활용할 수 있다.물체 식별과 이미지 일치에 자주 사용된다.
1. SURF 전체 명칭 speed up robust feature 는 가속판 SIFT 이다
2. SURF 피쳐는 어떻게 추출합니까?2단계: 테스트 및 설명
  • 검측특징점
  • 특징점 묘사
  • 3. 어떤 점이 특징점입니까?
    먼저 이미지에 있는 점 중 하나로, 이러한 특성이 있습니다.
  • 쉽게 검출될 수 있다. 이 점에 대응하는 물체가 카메라의 시야 범위 안에 있다면 이 점은 검출될 수 있다.예를 들어 각점, 경계점, 밝은 곳의 암점, 어두운 곳의 하이라이트 등은 한마디로 주위와 반차가 있는 점
  • 이다.
  • 명암 광선 변화의 영향을 받지 않음
  • 핵심 함수:
    클래스 SURF의 멤버 함수 create() 매개변수 설명:
    static Ptr create(double hessianThreshold=100,        //hessian , 300-500 
                             int nOctaves = 4,              // 4 
                             int nOctaveLayers = 3,     // 
                             bool extended = false, // (true 128 ,false 64 )
                             bool upright = false// (true ,false )
    );

    함수 detect () 는 이미지나 이미지의 집중을 측정하는 관건, 파라미터 설명
    void detect(  InputArray image,     // 
                  vector& keypoints,//   
                  InputArray mask=noArray() // ( 8 )
    );
    

    함수 drawKeypoints() 드로잉 키점, 매개변수 설명:
    void drawKeypoints(InputArray image, // 
                       vector& keypoints, // 
                       InputOutputArray outImage,// 
                       const Scalar& color=Scalar::all(-1), // 
                       int flags=DrawMatchesFlags::DEFAULT // 
    );
    

     
    피쳐 점 추출 코드의 예:
    #include 
    #include "opencv2/opencv.hpp"
    #include "opencv2/xfeatures2d/nonfree.hpp"
    
    using namespace cv;
    using namespace cv::xfeatures2d;
    using namespace std;
    
    int main(int argc, char** argv) 
    {
    	Mat src = imread("D:/cv400/data/lena.jpg", 0);
    	if (src.empty()) 
    	{
    		cout< detector = SURF::create(minHessian);
    	vector keypoints;
    	detector->detect(src, keypoints, Mat());
    	double t2 = (double)getTickCount();
    	double t = (t2-t1) / getTickFrequency();
    	cout << "spend time: " << t << " s"<

    실행 캡처:
    속도가 매우 빠르다.

    좋은 웹페이지 즐겨찾기