현재 위치 - 법률 상담 무료 플랫폼 - 특허 조회 - Opencv 에서 템플릿 매칭 알고리즘의 기원
Opencv 에서 템플릿 매칭 알고리즘의 기원
이 방법은 다음과 같습니다.

OPENCV 에서 SIFT 라이브러리를 사용하여 이미지를 일치시키는 루틴

// opencv_empty_proj.cpp: 콘솔 응용 프로그램의 진입점을 정의합니다.

//

# "stdafx.h" 포함

# include & ltopencv2/opencv.hpp >

# include & ltopencv2/features2d/features2d.hpp >

# include & lt open cv2/nonfree/nonfree.hpp >

# include & ltopencv2/legacy/legacy.hpp >

# include & ltvector & gt

네임스페이스 STD 사용

네임스페이스 cv 사용

Int _tmain(int argc, _TCHAR* argv[])

{

Const char * imagename = "img.jpg

//파일에서 이미지 읽기

Matimg = imread (imagename);

Matimg2 = imread ("img2.jpg");

//이미지를 읽지 못하면 ,

If(img.empty ())

{

Fprintf(stderr, "이미지% s 을 (를) 로드할 수 없습니다. \ n", imagename);

리턴-1;

}

If(img2.empty ())

{

Fprintf(stderr, "이미지% s 을 (를) 로드할 수 없습니다. \ n", imagename);

리턴-1;

}

//이미지 표시

Imshow (전면 이미지, img);

Imshow("image2 before ",img2);

//sift 피쳐 체크

SiftFeatureDetector

벡터< 중요 팁 & gtkp 1, kp2

Siftdtc.detect(img, KP1);

Matoutimg1;

DrawKeypoints(img, KP 1, outimg1);

Imshow("image 1 keypoints ",outimg1);

키 KP;

벡터< 중요 팁> 반복 프로그램 itvc

For (itvc = KP1.begin (); Itvc! = KP1.end (); Itvc++)

{

Cout & lt& lt "각도:"<& ltitvc-& gt;; 각도<<& lt" \ t "<& ltitvc-& gt;; Class _ id<< "\ t"< & ltitvc-> Octave & lt< "\ t"< & ltitvc-> Pt<< "\ t"< & ltitvc-> 응답<& ltendl

}

Siftdtc.detect(img2, kp2);

Mat outimg2

키 그리기 (img2, kp2, outimg2);

Imshow ("이미지 2 키", outimg2);

추출기

Mat descriptor 1, descriptor2

Brute force matcher & ltl2 & ltfloat & gt> matcher

벡터 & ltDMatch & gt 성냥;

Mat img _ matches

Extractor.compute(img, KP 1, descriptor1);

Extractor.compute(img2, kp2, descriptor2);

Imshow("desc ",descriptor1);

Cout & lt< endl & lt< descriptor1< & ltendl

Matcher.match (설명자 1, 설명자 2, matches);

DrawMatches(img, KP 1, img2, kp2, Matches, img _ matches);

Imshow("matches ",img _ matches);

//이 함수는 키를 기다린 다음 키보드의 아무 키나 눌러 반환합니다.

Waitkey ();

0 을 반환합니다

}