I currently understand that the frame size determines how pixels are scaled from the image sensor’s native resolution to the target frame size.
I’m using an OpenMV H7 Plus with an OV5640 sensor, which has a 4:3 aspect ratio. I’m not sure whether there is any performance benefit to using a square frame size. From what I can see, using a square frame size seems to simply crop the image.
For example:
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Reset and initialize the sensor.
csi0.pixformat(csi.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
csi0.framesize((240, 240)) # Set frame size to (240, 240)
csi0.snapshot(time=2000) # Wait for settings take effect.
clock = time.clock() # Create a clock object to track the FPS.
Compared to:
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Reset and initialize the sensor.
csi0.pixformat(csi.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
csi0.framesize(csi.QVGA) # Set frame size to QVGA (320x240)
csi0.snapshot(time=2000) # Wait for settings take effect.
clock = time.clock() # Create a clock object to track the FPS.