-
-
Notifications
You must be signed in to change notification settings - Fork 217
Description
Problem
😞 This is what happens when useGreyScale is set to true for the Nicla Vision:

😄 This is what is observed, when userGreyScale is set to false for the Nicla Vision

This creates three problems:
- The header comment and code in CameraRawBytesVisualizer conflict in what the default colour mode is
- From a UX perspective (cc @sebromero ) the User can face additional hurdles in testing out a basic function (e.g this forum post)
- There is no clear pathway for users to realise the problem, upon seeing the corrupt image.
Details
The CameraCaptureRawBytes sketch is used to send a video stream over Serial to the computer. Which can then be displayed with the CameraRawBytesVisualizer Processing sketch.
A series of pre-directives, configures the IMAGE_MODE to be either CAMERA_RGB (Nicla Vision and GIGA boards) or CAMERA-GREYSCALE (Portenta H7 family).
ArduinoCore-mbed/libraries/Camera/examples/CameraCaptureRawBytes/CameraCaptureRawBytes.ino
Lines 3 to 19 in 0504d34
| #ifdef ARDUINO_NICLA_VISION | |
| #include "gc2145.h" | |
| GC2145 galaxyCore; | |
| Camera cam(galaxyCore); | |
| #define IMAGE_MODE CAMERA_RGB565 | |
| #elif defined(ARDUINO_PORTENTA_H7_M7) | |
| #include "hm0360.h" | |
| HM0360 himax; | |
| Camera cam(himax); | |
| #define IMAGE_MODE CAMERA_GRAYSCALE | |
| #elif defined(ARDUINO_GIGA) | |
| #include "ov767x.h" | |
| // uncomment the correct camera in use | |
| OV7670 ov767x; | |
| // OV7675 ov767x; | |
| Camera cam(ov767x); | |
| #define IMAGE_MODE CAMERA_RGB565 |
In the default configuration, the accompanying CameraRawBytesVisualizer sketch is configured to be compatible with CAMERA_GREYSCLE, even though the header comment states that the Processing sketch is for RGB.
ArduinoCore-mbed/libraries/Camera/extras/CameraRawBytesVisualizer/CameraRawBytesVisualizer.pde
Lines 1 to 7 in 0504d34
| /* | |
| This sketch reads a raw Stream of RGB565 pixels | |
| from the Serial port and displays the frame on | |
| the window. | |
| Use with the Examples -> CameraCaptureRawBytes Arduino sketch. | |
| This example code is in the public domain. | |
| */ |
ArduinoCore-mbed/libraries/Camera/extras/CameraRawBytesVisualizer/CameraRawBytesVisualizer.pde
Lines 19 to 20 in 0504d34
| // Must match the image mode in the Arduino sketch | |
| final boolean useGrayScale = true; |
Thanks @marqdevx , @Hannes7eicher and @jacobhylen for letting me pick your brains 🧠