Skip to content

[AE-49] Colour mode mismatch between CameraCaptureRawBytes.ino and CameraRawBytesVisualizer.pde #662

Open
@aliphys

Description

@aliphys

Problem

😞 This is what happens when useGreyScale is set to true for the Nicla Vision:
image
😄 This is what is observed, when userGreyScale is set to false for the Nicla Vision
image

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).

#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.

/*
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.
*/

// Must match the image mode in the Arduino sketch
final boolean useGrayScale = true;


Thanks @marqdevx , @Hannes7eicher and @jacobhylen for letting me pick your brains 🧠

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions