Thank you for your response.
I see that setSensorCrop() requires the top left x and y coordinates of the box. In order to calculate this, i need to know the resolution of the camera (which i set to THE_4_K) and also the original resolution prior to any internal cropping. This is the piece I am not sure how to retrieve.
When I look at getIspSize() or getResolutionSize(), both return (3840, 2160) i.e. THE_4_K. In the case of the oak 1 max, is there a way to see that the initial resolution is (4056, 3040) which is then cropped to (3840, 2160).
For example, in the case of the oak 1 i believe this should return (3840, 2160), indicating i do not need to setSensorCrop(). In the case of the oak 1max this should return (4056, 3040) i.e. the resolution from THE_12_MP, which then allows me to correctly calculate the coordinates for setSensorCrop() for a resolution of (3840, 2160).
In general i always want the centre of my image to align with the centre of the camera, so it would be nice if I can write a function which always ensures this, even if i swap between cameras and/or resolutions.