OpenCV에서는 3.2.0 버전 이후부터 실행 시간을 쉽게 측정할 수 있는 TickMeter 클래스를 제공합니다. 초/밀리초/마이크로초 단위로 리턴하는 함수가 각각 있어서 사용이 편리합니다. 자세한 사용 방법은 예제 코드로 확인하시기 바랍니다. 영상을 시계반대방향으로 90도 회전하는 예제입니다.
예제 코드
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat src = imread("lena512.bmp", IMREAD_GRAYSCALE);
if (src.empty())
{
cerr << "Failed to read the image" << endl;
return 1;
}
Mat dst(src.cols, src.rows, src.type());
TickMeter tm;
tm.start();
for (int i=0 ; i < src.cols ; i++)
{
for (int j=0 ; j < src.rows; j++)
{
dst.at<uchar>(j, i) = src.at<uchar>(i, j);
}
}
tm.stop();
cout << "time elasped (sec): " << tm.getTimeSec() << endl;
cout << "time elasped (millisec): " << tm.getTimeMilli() << endl;
cout << "time elasped (microsec): " << tm.getTimeMicro() << endl;
cout << "시간측정 횟수: " << tm.getCounter() << endl;
imshow("image", dst);
waitKey();
destroyAllWindows();
return 0;
}