Is there a performance benefit to using a square frame size?

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.

It depends on the algorithm. What are you trying to do? Otherwise, it’s generally less pixels to process.

I’m trying to do image processing, such as blob detection, only within a square region at the center of the image, so the rest of the image is not used. I want to maximize the camera’s frame rate, but I’m not sure whether setting a square frame size will make csi0.snapshot() take less time than using a 4:3 frame size with the same image height as the side length of the square.

Hi, it doesn’t matter from the cameras perspective, its max fps includes the 4:3 res. The 1:1 res just reduces the CPU load on processing the image.