When will you grow up?

23. SURF 특징 검출기 본문

02. Study/Computer Vision(openframworks&opencv)

23. SURF 특징 검출기

미카이 2016. 12. 4. 15:23

reference

->

http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_surf_intro/py_surf_intro.html


SURF 특징 검출기는 저작권 문제로 contrib로 따로 빠져있다.

예제로 연습하는것은 문제가 안되며 상용화 되는것은 라이센스를 확인해봐야 한다.


cv::SURF는

디폴트 임계 값이 300~500정도 사이가 적당하다고 한다.

값이 올라가면 올라갈수록 검출되는 점의 갯수가 적어진다.

 


결과 이미지 입니다.




소스코드 입니다


//SURF Detector
	Mat img_1 = imread("img1.png");
	Mat img_2 = imread("img2.png");
	//-- Step 1: Detect the keypoints using SURF Detector
	int minHessian = 4000;

	Ptr detector = SURF::create(minHessian);

	std::vector keypoints_1, keypoints_2;

	detector->detect(img_1, keypoints_1);
	detector->detect(img_2, keypoints_2);

	//-- Draw keypoints
	Mat img_keypoints_1; Mat img_keypoints_2;

	drawKeypoints(img_1, keypoints_1, img_keypoints_1, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
	drawKeypoints(img_2, keypoints_2, img_keypoints_2, Scalar::all(-1), DrawMatchesFlags::DEFAULT);

	//-- Show detected (drawn) keypoints
	imshow("Keypoints 1", img_keypoints_1);
	imshow("Keypoints 2", img_keypoints_2);

	waitKey(0);


Comments