36 lines
2.1 KiB
Markdown
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.
|