npr op• Data kinds: image2d → image2d
• Call: import fullseye as fs; fs.ledger.hatch_field(image, spacing_px=8.0, sigma=2.0, levels=3, cross_deg=90.0) (to call the implementation directly, import printpath; printpath.hatch_field(image, spacing_px=8.0, sigma=2.0, levels=3, cross_deg=90.0); from the registry, opsprintpath.get("hatch_field"))
Cross-hatching that follows the picture — direction from the structure tensor.
The stroke direction is the local structure orientation (the existing
`structure_tensor_orientation`: strokes run *along* edges, not across them),
and the number of superposed hatch layers comes from the tone — one layer for
a light grey, up to *levels* for a dark one, each rotated by *cross_deg*.
★Why this earns its place: the direction is checkable against a picture
whose orientation is known by construction (a sine grating at 30° must give
strokes at 30°), and the tone is checkable by blurring the result. The usual
NPR routine offers neither.
Returns an `image2d`: 1 = paper, 0 = ink.
Raises `ValueError`: spacing below 2 px; levels below 1; non-positive
sigma; a non-finite or oversized image.
Limits: a single orientation per pixel, so crossings and junctions (where the
structure tensor is isotropic) get an arbitrary but locally smooth direction —
the coherence, not the orientation, is what says whether to trust it.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_beats_fringes_and_screens — py -3.11 examples/poc_beats_fringes_and_screens.py
image2d as input)stipple_points_from_image · stipple_energy · stroke_tone_error · halftone_screen · engrave_lines · mosaic_tiles_sites · mosaic_tiles_render · print_layer_defect_map
npr)halftone_screen · halftone_moire_period · engrave_lines · mosaic_tiles_sites · mosaic_tiles_render
*Provenance: printpath.py — PRINTPATH operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.