상세 컨텐츠

본문 제목

타이머 사용하기 TickMeter class - OpenCV

영상처리/OpenCV

by cepiloth 2021. 2. 14. 23:23

본문

728x90
반응형

 함수의 처리시간 및 성능을 확인 하기 위해서 timer 를 사용 합니다. OpenCV 에서 TickMeter 라는 class 를 사용하여 처리 가능합니다. 사용법은 아래 예시 처럼 간단 합니다. 성능 측정 할 메소드를 TickMeter class 의 start 메소드 호출 전에 기입 하면 쉽게 사용 할 수 있습니다.

int main() {
    // .....
    TickMeter tm;
    tm.start();
    
    // start, stop 메소드 사이에 성능 측정 할 메소드를 기입 합니다.
    {
        // TODO: 해당 스코프에서 수행 시간을 확인 할 수 있습니다.
    }
    
    tm.stop();
    // .....
    return 0;
}
 
전체 소스 코드입니다.
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>

#include <iostream>
#include <string>

using namespace std;
using namespace cv;

/*
* @brief - grayscale 영상으로 변경하는 메소드 
*/ 
void showCustomEffectWindow(Mat src) {

    Mat dst;
    edgePreservingFilter(src, dst, 1, 60, 0.4);
    imshow("dst", dst);
}

int main() {

    Mat img = imread("image.jpg", IMREAD_COLOR);
    
    if(img.empty()) {
        cout << "이미지가 없거나, 유효한 파일 형식이 아닙니다." << endl;
        return -1;
    }

    imshow("src", img);

    TickMeter tm;
    tm.start();
    
    // start, stop 메소드 사이에 성능 측정 할 메소드를 기입 합니다.
    {
        showCustomEffectWindow(img);
    }
    
    tm.stop();

    double average_time = tm.getTimeSec() / tm.getCounter();
    std::cout << "Average time in second per iteration is: " << average_time << std::endl;

    waitKey(0);
    
    return 0;
}

 

위의 소스를 실행하게 되면은 스코프내의 수행 시간을 아래와 같이 확인 할 수 있습니다.

 

 

728x90
반응형

관련글 더보기

댓글 영역