아주 단순하게, 가우시안 필터와 캐니 엣지 검출에 대해서만 OpenCV 3.2 vs. OpenCV 3.3.0-rc 두 버전 간의 성능을 비교해봤습니다.


소스 코드는 매우 단순하게 레나 영상을 불러와서 가우시안 블러 & 캐니 엣지 검출을 100번 수행하도록 하였고, 그 실행 시간을 측정하여 출력했습니다.

#include "opencv2/opencv.hpp"
#include <iostream>

using namespace cv;
using namespace std;
 
int main(void)
{
	Mat src = imread("lenna.bmp", IMREAD_GRAYSCALE);

	if (src.empty()) {
		cerr << "Image load failed!" << endl;
		return -1;
	}
	
	cout << "Running GaussianBlur & Canny on 512x512 lenna image (100 times): " << endl;

	int64 t1 = getTickCount();

	Mat blurred, dst;
	for (int i = 0; i < 100; i++) {
		GaussianBlur(src, blurred, Size(), 1.0, 1.0);
		Canny(blurred, dst, 50, 150);
		cout << ".";
	}

	int64 t2 = getTickCount();

	cout << "\nIt took " << (t2 - t1) * 1000 / getTickFrequency() << " ms." << endl;

	return 0;
}


그 결과 OpenCV 3.2 버전을 사용하여 빌드했을 때에는 결과가 아래와 같구요..


OpenCV 3.3.0-rc 버전을 사용하여 빌드했을 때에는 결과가 이렇습니다.


미세하지만 3.3.0-rc 버전이 더 빠르게 동작하는 것 같습니다. OpenCV 3.3.0-rc 버전은 220~230ms 정도 걸리는데, OpenCV 3.2 버전은 240~260ms 정도로 분포하고 있네요. 좀 더 많은 함수를 사용해서 테스트를 해보면 좋겠지만, 일단은 이 정도만..



Posted by kkokkal
: