linux怎么利用c++程序测试usb摄像头的帧率

linux怎么利用c++程序测试usb摄像头的帧率,第1张

比较好的方法是使用makefile. 首先安装make工具, 运行make -v, 如果正常返回版本信息就说明已经装好了。

然后在代码的目录里新建一个名为makefile的文本文件, 内容:

# makefile for test

all: test

CC=g++

test: test.o random.o

$(CC) test.o random.o -o test

random.o: random.cpp random.h

$(CC) -c random.cpp

test.o: test.cpp

$(CC) -c test.cpp

clean:

rm -rf test *.o

# end of makefile

然后在代码目录运行make就自动编译了。 make会自己检测源文件的时间戳,在最后一次编译之后修改过的项目才会被再次编译。

运行make clean, 就可以把编译生成的文件全部清除。

嗯,虽然没有编过游戏的说,但是你的问题就是循环结束时哪个环节吃掉了14ms吧

我把你的程序抄下来看下确实只有21的fps

但是把

timeStart=getTickCount()//重设开始时间

改为

timeStart+=33//33就是1000/fps

就是准确的fps=30了

总之改完之后

int Game_Main(){

static int timeStart=getTickCount()//在第一次调用函数的时候赋值

while(getTickCount()-timeStart <33)

timeStart+=33

return 1

}

说完实际的,那么来谈谈那里吃掉了10多ms吧

显然是循环最后一次的while(GetTickCount()-timeStart <1000/fps)和之后的GetTickCount()嘛

显然这之后再调用GetTickCount()得到的值比timeStart+33还大10多ms

还有不要用除法吧,没必要,毕竟fps不是30就是60,用自己设定的常数当然更快

最后说下吧,支持之前某位仁兄提到的不要过多占用CPU,至于方法如果不想自己包装Sleep的话多考虑下吧,老实说对33ms进行一次的循环我也没底...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8060245.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存