EXPLORE

LOG IN

CREATE ACCOUNT

In Development

CANVAS KIT PLANNER

Photograph a hand-painted needlepoint canvas and let InkEgg parse the thread grid into a pixel map — one pixel per intersection. From there, stitch counts and yarn estimates can be calculated automatically for any color in the design.

Training Data — Samples

SAMPLE 01
Needlepoint canvas sample 1
Pixel map output 1 2×2 pixel map
SAMPLE 02
Needlepoint canvas sample 2
Pixel map output 2 2×2 pixel map
SAMPLE 03
Needlepoint canvas sample 3
Pixel map output 3 2×2 pixel map

How It Will Work

1 — CAPTURE

User photographs their painted canvas with a phone or webcam. The image is sent to the parser.

2 — DETECT THE GRID

The parser locates the warp/weft thread intersections and builds a coordinate grid aligned to the canvas.

3 — SAMPLE COLORS

Each intersection is sampled for its dominant paint color, handling the organic variation of hand-painted canvas.

4 — KIT ESTIMATE

The resulting pixel map is used to count stitches per color. Yarn length estimates are computed per thread color.

Algorithm Pipeline — Planned

STAGE 1 — PREPROCESS

Convert photo to grayscale. Apply local contrast enhancement (CLAHE) to sharpen hole edges regardless of lighting.

STAGE 2 — HOLE DETECTION

Adaptive threshold to isolate dark pixels. Find blob centroids. Filter by expected hole size. Canvas photographed on dark background for maximum contrast.

STAGE 3 — GRID FITTING

Fit a projective homography to the detected hole centers. Rectify the image to correct perspective distortion. Grid becomes genuinely regular after correction.

STAGE 4 — SAMPLE INTERSECTIONS

Place sample points at the midpoint between every 4 adjacent holes. Average pixel color over a disc (~30% of grid period radius) at each point.

STAGE 5 — COLOR GROUPING

Convert sampled colors to CIE Lab space. Cluster by Delta-E distance with an adjustable tolerance slider. Perceptually accurate grouping.

STAGE 6 — OUTPUT

Render pixel map (one pixel per intersection). Generate stitch count per color group. Compute yarn length estimates per color for kit planning.

Outstanding Tasks

PHOTO TEST SET — IN PROGRESS

Shooting ~20 images across 4 groups on black felt background, diffuse natural light, max phone resolution.

Group 1 (5 shots): Single-color canvas, ~1"×1" (~13×13 holes), top-down. Light paint, dark paint, heavy paint variants.
Group 2 (6 shots): ~2"×2" section, varied angles — flat, 5°, 10°, 15° tilt on both axes, one corner-lifted. Grid fitting validation.
Group 3 (5 shots): ~2"×2" multi-color sections. 2-color, 3-4 color, and two similar adjacent hues (tolerance test).
Group 4 (4 shots): Casual hand-held real-world conditions. Stress test.

IMPLEMENTATION — NOT STARTED

Client-side JavaScript pipeline using Canvas API. All processing in the browser — no server roundtrip.

Stages: preprocess → hole detection → homography → intersection sampling → Lab color grouping → pixel map output.

UX DESIGN — NOT STARTED

Camera capture or file upload. Tolerance slider for color grouping. Live pixel map preview. Stitch count table. Yarn estimate output. Full canvas too large for single shot — UX will need to handle section-by-section capture.

CANVAS UPLOAD — COMING SOON

Test photo set being gathered. Implementation begins once dataset is validated.