- Mastering OpenCV 4 with Python
- Alberto Fernández Villán
- 310字
- 2021-07-02 12:07:18
Calculating frames per second
In the Reading camera frame and video files section, we saw how we can get some properties from the cv2.VideoCapture object. fps is an important metric in computer vision projects. This metric indicates how many frames are processed per second. It is safe to say that a higher number of fps is better. However, the number of frames your algorithm should process every second will depend on the specific problem you have to solve. For example, if your algorithm should track and detect people walking down the street, 15 fps is probably enough. But if your goal is to detect and track cars going fast on a highway, 20-25 fps are probably necessary.
Therefore, it is important to know how to calculate the fps metric in your computer vision projects. In the following example, read_camera_fps.py, we are going to modify read_camera.py to output the number of fps. The key points are shown in the following code:
# Read until the video is completed, or 'q' is pressed
while capture.isOpened():
# Capture frame-by-frame from the camera
ret, frame = capture.read()
if ret is True:
# Calculate time before processing the frame:
processing_start = time.time()
# All the processing should be included here
# ...
# ...
# End of processing
# Calculate time after processing the frame
processing_end = time.time()
# Calculate the difference
processing_time_frame = processing_end - processing_start
# FPS = 1 / time_per_frame
# Show the number of frames per second
print("fps: {}".format(1.0 / processing_time_frame))
# Break the loop
else:
break
First, we take the time before the processing is done:
processing_start = time.time()
Then, we take the time after all the processing is done:
processing_end = time.time()
Following that, we calculate the difference:
processing_time_frame = processing_end - processing_start
Finally, we calculate and print the number of fps:
print("fps: {}".format(1.0 / processing_time_frame))
- 數據庫系統原理及MySQL應用教程(第2版)
- 摩登創客:與智能手機和平板電腦共舞
- Rust編程從入門到實戰
- CentOS 7 Linux Server Cookbook(Second Edition)
- 深入理解Java7:核心技術與最佳實踐
- OpenShift在企業中的實踐:PaaS DevOps微服務(第2版)
- The Complete Coding Interview Guide in Java
- PHP 7+MySQL 8動態網站開發從入門到精通(視頻教學版)
- R Data Analysis Cookbook(Second Edition)
- PLC應用技術(三菱FX2N系列)
- Instant Debian:Build a Web Server
- ExtJS Web應用程序開發指南第2版
- JavaScript機器人編程指南
- 編程改變生活:用Python提升你的能力(進階篇·微課視頻版)
- Apache Solr PHP Integration