Apparently it doesn't...
Using camera.setStillSize() as in following code
#!/usr/bin/env python3
import depthai as dai
import cv2 as cv
import time
pipeline = dai.Pipeline()
# Define sources and outputs
cam_rgb: dai.node.Camera = pipeline.create(dai.node.Camera)
#Properties
cam_rgb.setBoardSocket(dai.CameraBoardSocket.CAM_A)
cam_rgb.setStillSize((4208, 3120))
# I/O
control_in = pipeline.create(dai.node.XLinkIn)
still_out = pipeline.create(dai.node.XLinkOut)
# Linking
## RGB
cam_rgb.still.link(still_out.input)
control_in.out.link(cam_rgb.inputControl)
# Streamnames
control_in.setStreamName('control')
still_out.setStreamName('still')
with dai.Device(pipeline) as device:
print("Camera initialized and ready to use.")
control_queue = device.getInputQueue('control', maxSize=1, blocking=False)
still_queue = device.getOutputQueue('still', maxSize=20, blocking=False)
ctrl = dai.CameraControl()
ctrl.setCaptureStill(True)
control_queue.send(ctrl)
time.sleep(2)
color_frame = still_queue.get().getCvFrame()
cv.imshow('still', color_frame)
Retrieves
RuntimeError: Camera(0) - 'still' width or height (4208, 3120) bigger than maximum at current sensor resolution (1920, 1080)
Looks very wild to me, because now i don't even have 4k resolution available...
For some reason this seems super weird to me because the ColorCamera-node accepts the following code, with my png file as output:
#!/usr/bin/env python3
import depthai as dai
import cv2 as cv
import time
pipeline = dai.Pipeline()
# Define sources and outputs
cam_rgb = pipeline.create(dai.node.ColorCamera)
#Properties
cam_rgb.setBoardSocket(dai.CameraBoardSocket.CAM_A)
#cam_rgb.setStillSize((4208, 3120))
cam_rgb.setResolution(dai.ColorCameraProperties.SensorResolution.THE_13_MP)
# I/O
control_in = pipeline.create(dai.node.XLinkIn)
still_out = pipeline.create(dai.node.XLinkOut)
# Linking
## RGB
cam_rgb.still.link(still_out.input)
control_in.out.link(cam_rgb.inputControl)
# Streamnames
control_in.setStreamName('control')
still_out.setStreamName('still')
with dai.Device(pipeline) as device:
print("Camera initialized and ready to use.")
control_queue = device.getInputQueue('control', maxSize=1, blocking=False)
still_queue = device.getOutputQueue('still', maxSize=20, blocking=False)
ctrl = dai.CameraControl()
ctrl.setCaptureStill(True)
control_queue.send(ctrl)
time.sleep(2)
color_frame = still_queue.get().getCvFrame()
cv.imwrite("test_image.png", color_frame)