4.5.2 연산 시간 측정
대부분의 영상 처리 시스템은 대용량 영상 데이터를 다루고 복잡한 알고리즘 연산을 수행합니다. 여러 단계로 구성된 영상 처리 시스템을 개발하는 경우, 각 단계에서 소요되는 연산 시간을 측정하고 시간이 오래 걸리는 부분을 찾아 개선하는 시스템 최적화 작업이 필수적입니다. 특히 머신 비전 분야처럼 실시간 연산을 필요로 하는 시스템을 만드는 경우에는 각 단계의 연산 시간을 제대로 측정하여 분석하는 작업은 매우 중요합니다.
이러한 컴퓨터 비전 분야의 특성을 충족시키기 위해 OpenCV 라이브러리는 정밀한 시간 측정 방법을 제공합니다. 원래 특정 프로그램의 동작 시간을 측정하는 C/C++ 소스 코드 작성 방법은 운영 체제마다 각기 다르지만 OpenCV 라이브러리를 이용하면 운영 체제에 상관없이 통일된 인터페이스 함수를 사용하여 연산 시간을 측정할 수 있습니다. OpenCV에서는 getTickCount() 함수와 getTickFrequency() 함수를 사용하여 특정 연산의 수행 시간을 측정합니다.
먼저 getTickCount() 함수 원형은 다음과 같습니다.
int64 getTickCount(void)
|
|
• 반환값 |
시스템의 현재 틱(tick) 횟수 |
getTickCount() 함수는 컴퓨터 시스템의 특정 시점(예를 들어 컴퓨터 부팅 시점)부터 현재까지 발생한 틱(tick) 횟수를 반환합니다. 여기서 틱 횟수는 컴퓨터 시스템에서 발생하는 클럭(clock)처럼 매우 빠르게 증가하는 성능 측정 계수를 의미하며, 여러분이 사용하고 있는 컴퓨터 성능에 따라 틱 횟수는 빠르게 증가할 수도 있고 조금 느리게 증가할 수도 있습니다. getTickCount() 함수의 반환형으로 사용되는 int64는 OpenCV에서 64비트 정수를 저장하기 위해 사용하는 자료형입니다.