알고리즘별 수행시간 측정 할 때 유용한 stopWatch() 함수입니다. 아래 소스를 맨위에 추가한 후 측정하고자 하는 알고리즘 시작할 때 한번, 종료할 때 한번 호출해주면 됩니다.
// 시간 측정 함수 소스
void stopWatch()
{
static double time = 0.0;
static bool bCheckTime = false;
static int timerCount = 0;
time = ((double)getTickCount() - time) / getTickFrequency();
cout << "Time" << timerCount << ": " << time << " sec" << endl;
}
bCheckTime = !bCheckTime;
}
void stopWatch()
{
static double time = 0.0;
static bool bCheckTime = false;
static int timerCount = 0;
if( !bCheckTime ) {
time = (double)getTickCount();
timerCount++;
}
time = ((double)getTickCount() - time) / getTickFrequency();
cout << "Time" << timerCount << ": " << time << " sec" << endl;
}
bCheckTime = !bCheckTime;
}
OpenCV 로 BRIEF 와 SURF 를 돌려보았습니다. 콘솔에 아래와 같이 찍힙니다.
사용법은 아래와 같습니다.
// detecting keypoints
SurfFeatureDetector detector(5000);
vector<KeyPoint> keypoints1, keypoints2;
stopWatch();
detector.detect(img1, keypoints1);
detector.detect(img2, keypoints2);
stopWatch();
// computing descriptors
SurfDescriptorExtractor extractor;
Mat descriptors1, descriptors2;
stopWatch();
extractor.compute(img1, keypoints1, descriptors1);
extractor.compute(img2, keypoints2, descriptors2);
stopWatch();
// matching descriptors
BruteForceMatcher<L2<float> > matcher;
vector<DMatch> matches;
stopWatch();
match(keypoints1, keypoints2, matcher, descriptors1, descriptors2, matches);
stopWatch();
SurfFeatureDetector detector(5000);
vector<KeyPoint> keypoints1, keypoints2;
stopWatch();
detector.detect(img1, keypoints1);
detector.detect(img2, keypoints2);
stopWatch();
// computing descriptors
SurfDescriptorExtractor extractor;
Mat descriptors1, descriptors2;
stopWatch();
extractor.compute(img1, keypoints1, descriptors1);
extractor.compute(img2, keypoints2, descriptors2);
stopWatch();
// matching descriptors
BruteForceMatcher<L2<float> > matcher;
vector<DMatch> matches;
stopWatch();
match(keypoints1, keypoints2, matcher, descriptors1, descriptors2, matches);
stopWatch();
'CLASS' 카테고리의 다른 글
모바일 플랫폼(iOS, Android) 개발 툴 정리 (1) | 2012.11.08 |
---|---|
증강현실 개발툴킷(AR SDK) 모음 (0) | 2012.11.05 |
[iOS] CoronaSDK로 iPhone 프로그래밍(Lua script) (3) | 2010.12.21 |
[iOS] iPhone, iPad (iOS 4.2)의 AirPlay 기능 동영상으로 보기 (1) | 2010.11.24 |
[openFrameworks] Hello 오픈프레임웍스 기초강의 (7) | 2009.08.13 |