C++の画像処理プログラムでいくつかの関数の実行時間を測定しています。特に、私のUSBカメラでフレームをキャプチャするための実際の実行時間が必要です。測定されたfpsが理論値より高い
問題は、結果がカメラのパラメータと一貫していないように見えるということです。カメラはたいてい30fpsと思われ、フレームを取得するために測定時間が33ms未満になることがあります。私が期待しなければならないと考えられる価値です。例えば、私は12ミリ秒の間隔をたくさん得て、それは実際にはあまりにも少ないようです。 @Revolver_Ocelotは、あなたが他の類似したコールの最後に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() '新しいフレームがフェッチされるまでブロックしますか? –