80 lines
2.5 KiB
Markdown
80 lines
2.5 KiB
Markdown
---
|
|
name: polygon-drawer
|
|
description: Takes an image and adds a polygon to it at the user's request. Typically the user will ask to add a polygon around a particular object
|
|
---
|
|
# Polygon Drawer Skill
|
|
|
|
This skill uses @tools/draw_polygon.py to help you draw polygons on any image. It's useful for highlighting areas, drawing boxes, marking regions, or annotating images with colored shapes.
|
|
|
|
## Usage Examples
|
|
|
|
### Draw a red box around an object
|
|
```
|
|
Draw a red box around the door in <image>
|
|
```
|
|
|
|
### Highlight a specific area in green
|
|
```
|
|
Highlight the pool area in <image> with a green polygon
|
|
```
|
|
|
|
### Draw a blue rectangle with percentage coordinates
|
|
```
|
|
Draw a blue polygon on <image> using coordinates: 0.5,0.3 0.7,0.3 0.7,0.6 0.5,0.6
|
|
```
|
|
|
|
### Mark a triangular region with fill
|
|
```
|
|
Draw a semi-transparent yellow triangle on <image>: 0.5,0.1 0.9,0.9 0.1,0.9 --fill
|
|
```
|
|
|
|
### Draw a custom-colored polygon with thick lines
|
|
```
|
|
Draw a cyan polygon on <image>: 0.2,0.2 0.8,0.2 0.8,0.8 0.2,0.8 --color cyan --thickness 5
|
|
```
|
|
|
|
### Use pixel coordinates (absolute mode)
|
|
```
|
|
Draw a red box using pixel coordinates: 100,50 400,50 400,300 100,300 --absolute
|
|
```
|
|
|
|
Make sure to quote the coordinates when calling the script: "100,50 400,50 400,300 100,300"
|
|
|
|
## How It Works
|
|
|
|
1. **Analyze** the image to identify what needs highlighting
|
|
2. **Calculate** polygon coordinates (default: percentage mode 0.0-1.0)
|
|
3. **Execute** `@tools/draw_polygon.py` with the calculated points
|
|
4. **Output** the resulting image to `./tmp/` directory
|
|
5. **Display** the save path so you can open it
|
|
|
|
## Coordinate Systems
|
|
|
|
- **Percentage mode** (default): 0.0-1.0 coordinates where (0,0) is top-left and (1,1) is bottom-right
|
|
- **Absolute mode**: Use `--absolute` flag for actual pixel coordinates
|
|
|
|
## Output Location
|
|
By default, the image is just shown to the user without writing anything.
|
|
|
|
If the user asks to save it, use the --save flag.
|
|
|
|
All generated images are saved to:
|
|
```
|
|
./tmp/
|
|
```
|
|
|
|
The skill will output the full path to the saved image, e.g., `./tmp/output_1234567890.png`
|
|
|
|
## Color Options
|
|
|
|
- Named colors: red, green, blue, yellow, cyan, magenta, white, black, orange, purple, brown, pink, gray, grey, lime, navy, teal, maroon
|
|
- Hex codes: #FF0000, #00FF00FF, etc.
|
|
|
|
## Flags
|
|
|
|
- `--fill`: Fill polygon with semi-transparent color
|
|
- `--absolute`: Use pixel coordinates instead of percentages
|
|
- `--color <name>`: Specify polygon color (default: red)
|
|
- `--thickness <pixels>`: Line thickness (default: 4)
|
|
- `--save <path>`: Override default save location (still goes to ./tmp/)
|