camera_set_focus_regions()

Updated: April 19, 2023

Configure the focus regions on the camera

Synopsis:

#include <camera/camera_3a.h>
camera_error_t camera_set_focus_regions(camera_handle_t handle,
                                        int numregions,
                                        camera_region_t *regions)

Arguments:

handle
The handle returned by a call to the camera_open() function.
numregions
The number of regions to apply, which is the number of elements in the regions array.
regions
A pointer to an array of focus regions to apply. The region co-ordinates are interpreted relative to a viewfinder buffer with (0, 0) representing the top-left corner of the frame, and (width-1, height-1) representing the bottom-right corner. If CAMERA_IMGPROP_ROTATION is applied to the viewfinder, then the co-ordinate frame of reference is also rotated accordingly.

Library:

libcamapi

Description:

When focus regions are defined, the autofocus algorithm will give priority to focusing on objects in the defined areas of the scene.

Only call this function if the CAMERA_FEATURE_REGIONFOCUS feature is available. You can determine whether this feature is available by calling the camera_can_feature() function.

The maximum number of focus regions that you can configure is returned by the numsupported argument of the camera_get_focus_regions() function.

After setting the regions, you must call the camera_set_focus_mode() function to commit the changes.

Returns:

CAMERA_EOK when the function successfully completes, otherwise another camera_error_t value that provides the reason that the call failed.