GrabBag/AppModel/lib/Arm/docs/RGB_MASK.md

36 lines
2.1 KiB
Markdown

# RGB mask example: start in main.cpp
Both SDKs automatically include `examples/cpp/main.cpp`, `examples/c/main.c`,
public headers, matching libraries, docs and prebuilt C/C++ examples. For Seg,
the examples ALWAYS compose RGB instance IDs in memory after inference. No
`--rgb-mask` switch or BMP output is required; the old switch remains accepted.
The C++ main file directly demonstrates all 16 public APIs: lifecycle, model
info, image inference, count/performance/common results, bounding/rotated boxes,
Seg geometry/binary masks, pose keypoints and RGB composition. Task-specific
getters run only for the corresponding model. `write_result_json` is solely an
optional file-format illustration; the main's mask flow does not depend on it.
Read the numbered steps in main.cpp: get each borrowed 0/255 mask and geometry;
pass ordered mask views to yolo_masks_compose_rgb_ids; own the resulting RGB888
buffer; read a pixel at y*stride+x*3; remove zero and duplicate channel values
to obtain the one/two/three instance IDs. IDs are result index+1 (1..255), not
class IDs or cross-frame tracking IDs. RGB_PIXEL prints a real foreground pixel
and decoded IDs; ID_PIXELS prints membership counts. The C main shows the same
mask/RGB flow with explicit malloc/free.
Background=(0,0,0), single=(id,id,id), two=(id1,id2,id1),
three=(id1,id2,id3), ascending IDs. More than three overlaps returns an error.
Holes/disconnected regions stay intact. No dilation is performed by the SDK.
Do your processing at the marked location before RGB storage is freed; keep
the result set alive while using borrowed binary masks. RGB data requires no
file saving. A retained common/rgb_mask.h is an optional utility for older
integrations; the primary C/C++ examples no longer delegate mask handling to it.
Examples (use .exe on Windows):
```
yolo_cpp_example --config models/primary/model.yaml --image examples/assets/sample.bmp --json result.json --seg-geometry fit
```
Geometry modes: rect, circle, mean, fit. Seg RGB composition runs for each mode.
For other task types, RGB composition is not requested.