C++의 이미지 처리 프로그램에서 여러 함수의 실행 시간을 측정하고 있습니다. 특히 USB 카메라로 프레임을 캡처하기위한 실제 실행 시간을 갖고 싶습니다.측정 된 fps가 이론적 인 것보다 높음
문제는 결과가 카메라 매개 변수와 일치하지 않는 것입니다. 카메라는 최대 30fps로 가정하고 프레임을 가져 오는 데 33ms 미만의 측정 시간을 자주 얻습니다. 내가 예상해야한다고 생각하는 가치입니다. 예를 들어, 12ms 간격을 많이 얻었고 실제로는 너무 적게 보입니다. 다른 유사한 전화의 끝에 get_wall_time
의 끝에서 소비
#include <time.h>
#include <sys/time.h>
double get_wall_time(){
struct timeval time;
if (gettimeofday(&time,NULL)){
// Handle error
return 0;
}
return (double)time.tv_sec + (double)time.tv_usec * .000001;
}
int main(){
while (true) {
double previoustime = get_wall_time();
this->camera.readFrame();
double currenttime = get_wall_time();
std::cout << currenttime-previoustime << std::endl;
// Other stuff
// ...
// ...
usleep(3000);
}
}
"5 분마다 버스가 있어야합니다.하지만 버스 정류장에 와서는 5 분 정도 기다려야 할 때가 있습니다. 버스가 도착하기까지 1 분에서 2 분 정도 지연됩니다." –
'this- > camera.readFrame()'새로운 프레임을 가져올 때까지 차단 하시겠습니까? –