To use the get_fps function, we have to create a Clock object:
clock = pygame.time.Clock()Then, use the tick method and get_fps:
clock.tick()Here is the testing code, which is almost the same with the one used in my old post:
print "fps:", clock.get_fps()
import pygame
import Image
import ImageOps
from pygame.locals import *
import sys
import opencv
from opencv import highgui
camera = highgui.cvCreateCameraCapture(0)
def get_image():
im = highgui.cvQueryFrame(camera)
return ImageOps.mirror(opencv.adaptors.Ipl2PIL(im))
pygame.init()
window = pygame.display.set_mode((640,480))
pygame.display.set_caption("WebCam Demo")
screen = pygame.display.get_surface()
clock = pygame.time.Clock()
while True:
events = pygame.event.get()
for event in events:
if event.type == QUIT or event.type == KEYDOWN:
highgui.cvReleaseCapture(camera)
sys.exit(0)
clock.tick()
print "fps:", clock.get_fps()
im = get_image()
pg_img = pygame.image.frombuffer(im.tostring(), im.size, im.mode)
screen.blit(pg_img, (0,0))
pygame.display.flip()
Note that the print slow down the program significantly, so what we get is actually NOT the original fps but a slower one.
What I have shown in this post may be not a good implementation of getting real-time fps information. It is just a trial to utilize the get_fps function. If you know any better approach, please show me related information. Thank you.
---
Ref: Pygame module for monitoring time
No comments:
Post a Comment