# Module: dto/imageLabel

## Purpose
Container class for an image with its YOLO-format bounding box labels, plus a visualization method for debugging annotations.

## Public Interface

### ImageLabel
| Field/Method | Type/Signature | Description |
|-------------|----------------|-------------|
| `image_path` | str | Filesystem path to the image |
| `image` | numpy.ndarray | OpenCV image array |
| `labels_path` | str | Filesystem path to the labels file |
| `labels` | list[list] | List of YOLO bboxes: [x_center, y_center, width, height, class_id] |
| `visualize` | `(annotation_classes: dict) -> None` | Draws bounding boxes on image and displays via matplotlib |

## Internal Logic
- `visualize()` converts BGR→RGB, iterates labels, converts normalized YOLO coordinates to pixel coordinates, draws colored rectangles using `annotation_classes[class_num].color_tuple`, displays with matplotlib.
- Labels use YOLO format: center_x, center_y, width, height (all normalized 0–1), class_id as last element.

## Dependencies
- `cv2` (external) — image manipulation
- `matplotlib.pyplot` (external) — image display

## Consumers
augmentation (as augmented image container), dataset-visualiser (for visualization)

## Data Models
`ImageLabel` — image + labels container.

## Configuration
None.

## External Integrations
None.

## Security
None.

## Tests
Used by `tests/imagelabel_visualize_test.py`.
