# Node manifest: the typed contract a consumer wires against. # # No source package is shared between node repositories, so this file and its # type URNs are the only contract a consumer has. `dora validate` checks a # dataflow against it without running the node, so CI needs neither OpenCV nor # a display. apiVersion: 1 name: dora-image-view namespace: liria description: Displays an image and a depth map side by side in an OpenCV window, with bounding box and text overlays categories: [visualization, debug] keywords: [opencv, view, bbox, bounding-box, image, depth, visualization, object-detection] runtime: python entrypoint: dora-image-view # `dora build --uv` / `dora run --uv` rewrites this to `uv pip install .` and # gives the node its own managed venv under `.dora/python-envs/`, so the # dependencies it sees at runtime are the ones installed here. build: pip install . dora: ">=1.0" inputs: image: type: std/core/v1/UInt8 required: false description: >- Base image to draw on: a flat UInt8 buffer described by the metadata {width, height, encoding}. Supported encodings: bgr8, rgb8, jpeg/jpg/jpe/bmp/webp/png (encoded bytes), yuv420, avif. Receiving this input triggers a redraw and display. bbox: required: false description: >- Bounding boxes to overlay: an Arrow struct with fields {bbox, conf, labels} and metadata {format}. Supported formats: xyxy, xywh. Stored and drawn on the next image redraw. Deliberately untyped — senders differ in whether the numeric fields are 32- or 64-bit, and the node casts either. text: type: std/core/v1/String required: false description: >- Text string to overlay at the top-left corner. Stored and drawn on the next image redraw. depth: type: std/core/v1/Float32 required: false description: >- Depth map as a flat Float32 buffer, described by the metadata {shape: [height, width], units}. Millimetres unless `units` says `m`; 0 and non-finite values are missing depth and draw black. Colour-mapped into its own panel, which receiving this input redraws. outputs: {} env: VIEW_DEPTH_MIN_MM: type: float description: >- Pin the near end of the depth colour range, in millimetres. Each end is auto-ranged over the valid pixels of the current frame when it is unset. VIEW_DEPTH_MAX_MM: type: float description: Pin the far end of the depth colour range, in millimetres. VIEW_WIDTH: type: int description: Resize the displayed frame to this width (pixels). Defaults to the image input width. VIEW_HEIGHT: type: int description: Resize the displayed frame to this height (pixels). Defaults to the image input height. example: | - id: view git: ssh://git@gitea.liria.cl:5001/liria/dora-image-view.git tag: v0.1.0 build: pip install . path: dora-image-view inputs: image: camera/image_bgr depth: camera/depth bbox: detector/bbox text: detector/text