FPS - 如何通过计时功能来划分数来确定FPS

问题描述 投票:5回答:3

我有一个统计每一帧的计数器工作。我想要做的是按时间划分这个决定我的节目的FPS。但我不知道如何在蟒蛇内的定时功能进行操作。

我试着初始化时间

fps_time = time.time 
fps_time = float(time.time)
fps_time = np.float(time.time)
fps_time = time()

然后计算帧,

FPS = (counter / fps_time)
FPS = float(counter / fps_time)
FPS = float(counter (fps_time))

但我发现了错误的对象不是可调用的或不支持的操作数/:“诠释”和“功能的buildin”

先谢谢您的帮助!

python opencv time frame-rate operations
3个回答
14
投票
  • 这里是一个非常简单的方式在每一帧打印程序的帧速率(不计需要): import time while True: start_time = time.time() # start time of the loop ######################## # your fancy code here # ######################## print("FPS: ", 1.0 / (time.time() - start_time)) # FPS = 1 / time to process loop
  • 如果你想在X秒期间的平均帧数,你可以做像这样(计数器需要): import time start_time = time.time() x = 1 # displays the frame rate every 1 second counter = 0 while True: ######################## # your fancy code here # ######################## counter+=1 if (time.time() - start_time) > x : print("FPS: ", counter / (time.time() - start_time)) counter = 0 start_time = time.time()

希望能帮助到你!


0
投票

你可能会想做些什么这个味道:

def program():
  start_time = time.time() #record start time of program
  frame_counter = 0

  # random logic 
  for i in range(0, 100):
    for j in range(0, 100):
      # do stuff that renders a new frame
      frame_counter += 1 # count frame

  end_time = time.time() #record end time of program
  fps = frame_counter / float(end_time - start_time)

当然,你不必等到节目结束时计算END_TIME和FPS,你可以做到这一点飘飞在程序运行报告的FPS。报告当前FPS估计也可能与报告更精确的FPS估计帮助后重新INITING START_TIME。


0
投票

奇迹般有效

import time
import collections

class FPS:
    def __init__(self,avarageof=50):
        self.frametimestamps = collections.deque(maxlen=avarageof)
    def __call__(self):
        self.frametimestamps.append(time.time())
        if(len(self.frametimestamps) > 1):
            return len(self.frametimestamps)/(self.frametimestamps[-1]-self.frametimestamps[0])
        else:
            return 0.0
fps = FPS()
for i in range(100):
    time.sleep(0.1)
    print(fps())

确保FPS被称为每帧一次

© www.soinside.com 2019 - 2024. All rights reserved.