더북(TheBook)

4.5.2 연산 시간 측정

대부분의 영상 처리 시스템은 대용량 영상 데이터를 다루고 복잡한 알고리즘 연산을 수행합니다. 여러 단계로 구성된 영상 처리 시스템을 개발하는 경우, 각 단계에서 소요되는 연산 시간을 측정하고 시간이 오래 걸리는 부분을 찾아 개선하는 시스템 최적화 작업이 필수적입니다. 특히 머신 비전 분야처럼 실시간 연산을 필요로 하는 시스템을 만드는 경우에는 각 단계의 연산 시간을 제대로 측정하여 분석하는 작업은 매우 중요합니다.

이러한 컴퓨터 비전 분야의 특성을 충족시키기 위해 OpenCV 라이브러리는 정밀한 시간 측정 방법을 제공합니다. 원래 특정 프로그램의 동작 시간을 측정하는 C/C++ 소스 코드 작성 방법은 운영 체제마다 각기 다르지만 OpenCV 라이브러리를 이용하면 운영 체제에 상관없이 통일된 인터페이스 함수를 사용하여 연산 시간을 측정할 수 있습니다. OpenCV에서는 getTickCount() 함수와 getTickFrequency() 함수를 사용하여 특정 연산의 수행 시간을 측정합니다.

먼저 getTickCount() 함수 원형은 다음과 같습니다.

int64 getTickCount(void)

반환값

시스템의 현재 틱(tick) 횟수

 

getTickCount() 함수는 컴퓨터 시스템의 특정 시점(예를 들어 컴퓨터 부팅 시점)부터 현재까지 발생한 틱(tick) 횟수를 반환합니다. 여기서 틱 횟수는 컴퓨터 시스템에서 발생하는 클럭(clock)처럼 매우 빠르게 증가하는 성능 측정 계수를 의미하며, 여러분이 사용하고 있는 컴퓨터 성능에 따라 틱 횟수는 빠르게 증가할 수도 있고 조금 느리게 증가할 수도 있습니다. getTickCount() 함수의 반환형으로 사용되는 int64는 OpenCV에서 64비트 정수를 저장하기 위해 사용하는 자료형입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.