Skip to content

Commit e3745de

Browse files
authored
Merge pull request #2 from alrvid/zoom-documentation
Add documentation for Zoom feature
2 parents e11a39a + 410dcfc commit e3745de

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

libraries/Camera/src/camera.h

+76
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,87 @@ class Camera {
142142
int setMotionDetectionWindow(uint32_t x, uint32_t y, uint32_t w, uint32_t h);
143143
int setMotionDetectionThreshold(uint32_t threshold);
144144
int motionDetected();
145+
146+
/**
147+
* @brief Zoom to a specific region of the image by setting the zoom window size and its position.
148+
* The camera resolution must be set to a higher resolution than the zoom resolution for this to work.
149+
* The zooming is done by cropping a higher resolution image to the zoom window.
150+
* @note This function is currently only supported by the GC2145 sensor on the Arduino Nicla Vision.
151+
* @param zoom_resolution The resolution of the zoom window.
152+
* The resolution must be one of the following:
153+
* - CAMERA_R160x120
154+
* - CAMERA_R320x240
155+
* - CAMERA_R320x320
156+
* - CAMERA_R640x480
157+
* - CAMERA_R800x600
158+
* If the desired resolution doesn't fit in the built-in memory,
159+
* the framebuffer should be allocated on external RAM.
160+
* @param zoom_x The x position of the zoom window.
161+
* The value must be lower or equal to the width of the image minus the width of the zoom window.
162+
* @param zoom_y The y position of the zoom window.
163+
* The value must be lower or equal to the height of the image minus the height of the zoom window.
164+
* @return 0 on success, -1 on failure.
165+
*/
145166
int zoomTo(int32_t zoom_resolution, uint32_t zoom_x, uint32_t zoom_y);
167+
168+
/**
169+
* @brief Zoom to the center of the image by setting the zoom window size.
170+
*
171+
* @param zoom_resolution The resolution of the zoom window.
172+
* The resolution must be one of the following:
173+
* - CAMERA_R160x120
174+
* - CAMERA_R320x240
175+
* - CAMERA_R320x320
176+
* - CAMERA_R640x480
177+
* - CAMERA_R800x600
178+
* If the desired resolution doesn't fit in the built-in memory,
179+
* the framebuffer should be allocated on external RAM.
180+
* @return 0 on success, -1 on failure.
181+
*/
146182
int zoomToCenter(int32_t zoom_resolution);
183+
184+
/**
185+
* @brief Flips the camera image vertically.
186+
*
187+
* @param flip_enable Set to true to enable vertical flip, false to disable.
188+
* @return 0 on success, -1 on failure.
189+
*/
147190
int setVerticalFlip(bool flip_enable);
191+
192+
/**
193+
* @brief Mirrors the camera image horizontally.
194+
*
195+
* @param mirror_enable Set to true to enable horizontal mirror, false to disable.
196+
* @return 0 on success, -1 on failure.
197+
*/
148198
int setHorizontalMirror(bool mirror_enable);
199+
200+
/**
201+
* @brief Get the width of the current camera resolution.
202+
* This can for example be used to calculate the zoom window position and size.
203+
* In the following example, the camera is zoomed to the top right side of the image:
204+
* @code
205+
* // Calculate the zoom window position
206+
* uint32_t max_zoom_x = camera.getResolutionWidth() - 320;
207+
* // Zoom to the calculated position and size
208+
* camera.zoomTo(CAMERA_R320x240, max_zoom_x, 0);
209+
* @endcode
210+
* @return uint32_t The width of the camera resolution.
211+
*/
149212
uint32_t getResolutionWidth();
213+
214+
/**
215+
* @brief Get the height of the current camera resolution.
216+
* This can for example be used to calculate the zoom window position and size.
217+
* In the following example, the camera is zoomed to the bottom left side of the image:
218+
* @code
219+
* // Calculate the zoom window position
220+
* uint32_t max_zoom_y = camera.getResolutionHeight() - 240;
221+
* // Zoom to the calculated position and size
222+
* camera.zoomTo(CAMERA_R320x240, 0, max_zoom_y);
223+
* @endcode
224+
* @return uint32_t The height of the camera resolution.
225+
*/
150226
uint32_t getResolutionHeight();
151227
void debug(Stream &stream);
152228
};

0 commit comments

Comments
 (0)