Hi,
From the panorama, it looks like each camera is running its own auto-exposure and auto-white-balance. Since the cameras see different parts of the scene, they may select different exposure, ISO, and white-balance values, creating visible seams. These automatic controls are enabled by default.
You have three options:
Set the same manual exposure, ISO, and white balance on all four cameras.
Keep one camera in automatic mode and continuously copy its values to the other three. This is the recommended option when lighting may change during streaming.
Let all four cameras run automatically, read their values, choose a middle reading, and apply it to all four. However, once all four are switched to manual control, their automatic values will no longer update. Therefore, this method only provides a one-time lock unless you periodically switch them back to automatic mode.
In DepthAI v3, the values can be read from the master camera’s ImgFrame:
exposure = master_frame.getExposureTime()
iso = master_frame.getSensitivity()
white_balance = master_frame.getColorTemperature()
Create runtime control queues for the other cameras:
control_queues = [
camera.inputControl.createInputQueue()
for camera in follower_cameras
]
Then periodically apply the master camera’s values:
for queue in control_queues:
control = dai.CameraControl()
control.setManualExposure(exposure, iso)
control.setManualWhiteBalance(white_balance)
queue.send(control)
DepthAI v3 exposes these values in each frame and supports both runtime manual exposure and white-balance control.
This should reduce the visible seams, although some remaining color differences may still require correction in the panorama-stitching stage.