dev-logs

카메라에서 frame 들어오는 속도 확인하는 법 본문

공부/영상처리

카메라에서 frame 들어오는 속도 확인하는 법

두룹두두 2018. 1. 19. 15:59

좋은 영상을 얻는 것은, 영상처리에서 중요한 것 중 하나라고 생각한다.


그러기 위해서는 내가 사용할 카메라에 대해서 잘 알아야 한다.


여러가지 정보중에 카메라가 영상 프레임을 몇초에 한번씩 주는지(fps)를 확인하는 것이 중요하다.




카메라가 그냥 카메라만 달려있다면 크게 상관하지 않고 카메라가 얻는 fps만 고려하면 된다.


하지만 카메라에 영상처리 기능 외 다른 기능의 알고리즘이 있다면 내 알고리즘을 얼마나 수행시킬 수 있는지 확인해야 한다.


나는 보통 1초에 frame 이 몇번 들어오는지 확인하는데 이걸 확인하는 매우매우 간단한 코드를 저장할 겸 올린다.


1
2
3
4
static int algoFlag = 0, algoCnt = 0//처음 시간만을 저장하기위한 플래그와 알고리즘 수행횟수 저장변수
static long algo_st, algo_end;   //시간 저장 변수
 
 
cs


필요한 변수이다.

내 알고리즘에 진입하는 소스 파일에 선언한다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
algoCnt++;
 
    if(algoFlag ==1){ 
        GetTime(&algo_end);//
 
        if(TICK_TO_MS(algo_end - algo_st) > 1000){
            printc("algoCnt per 1Sec: %d\n\n", algoCnt);
            algoFlag =0//알림 후 다시 초기화
            algoCnt = 0;
        }
    }
    else//처음에만 여기로 옴
        GetTime(&algo_st); //측정시작
        algoFlag = 1;
        }
 
cs


위 코드의 맨 마지막에 내 알고리즘이 호출된다.


GetTime 함수는 시간을 얻는 함수인데, clock() 같은 STL 을 써도 된다! 대신 변수 선언을 이에 맞게 해줘야 한다.




ms 기준으로 1000 이상이 되면 1초동안 알고리즘 수행 횟수를 출력한다.

Comments