Since performance is critical to the application of our project, I thought it’d be important to log our current sampling frame rate by writing on top of the window.
So I went ahead and kept track of the initial time and the number of frames that have passed to find the average frame rate for every sample displayed.
I also went ahead and added some lines of code to reduce the resolution in an attempt to boost performance. This worked on my mac but not on the Raspberry Pi. I’m still getting around 14 FPS on the Raspberry Pi.
My final code looks something like below. As you can see I commented out the lower resolution settings for both cameras because I didn’t see a performance improvement on the Raspberry Pi.
import cv2 import time cv2.namedWindow("Left Camera") # New window for previewing the left camera cv2.namedWindow("Right Camera") # New window for previewing the right camera vcLeft = cv2.VideoCapture(0) # Load video campture for the left camera #vcLeft.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH,420); #vcLeft.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT,340); vcRight = cv2.VideoCapture(1) # Load video capture for the right camera #vcRight.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH,420); #vcRight.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT,340); firstTime = time.time() # First time log totalFramesPassed = 0 # Number of frames passed if vcLeft.isOpened() and vcRight.isOpened(): rvalLeft, frameLeft = vcLeft.read() rvalRight, frameRight = vcRight.read() else: rvalLeft = False rvalRight = False while rvalLeft and rvalRight: # If the cameras are opened cv2.putText(frameLeft, "FPS : " + str(totalFramesPassed / (time.time() - firstTime)),(40, 40),cv2.FONT_HERSHEY_SIMPLEX,1,(225,255,0)) cv2.imshow("Left Camera", frameLeft) cv2.putText(frameRight, "FPS : " + str(totalFramesPassed / (time.time() - firstTime)),(40, 40),cv2.FONT_HERSHEY_SIMPLEX,1,(225,255,0)) cv2.imshow("Right Camera", frameRight) rvalLeft, frameLeft = vcLeft.read() rvalRight, frameRight = vcRight.read() key = cv2.waitKey(20) totalFramesPassed = totalFramesPassed + 1 # One frame passed, increment if key == 27: break # When the user hits escape, the windows will get destroyed cv2.destroyWindow("Left Camera") cv2.destroyWindow("Right Camera") vcLeft.release() vcRight.release()