stroke op• Data kinds: image2d × pairs → table
• Call: import fullseye as fs; fs.ledger.stroke_tone_error(image, points, pen_width=1.0, blur_sigma=3.0, gamma=1.0) (implementation को सीधे call करना हो तो import printpath; printpath.stroke_tone_error(image, points, pen_width=1.0, blur_sigma=3.0, gamma=1.0), registry से लेना हो तो opsprintpath.get("stroke_tone_error"))
line खींचने से बना tone लक्ष्य से कितना अलग है। → table
★यही single-stroke drawing का असली objective function है। "तस्वीर जैसा दिखता है" को इंसानी आँख पर छोड़ने के बजाय, pen width से बनाकर, आँख के scale पर blur करके, target darkness से तुलना करके संख्या लौटाई जाती है।
return value: dict
"rms" / "max_abs" / "bias" -- darkness का अंतर ([0, 1] scale पर)
"corr" -- target darkness और बनाई गई darkness का correlation (1 के जितना क़रीब, tone उतना अच्छे से follow हो रहा है)
"ink_fraction" -- काग़ज़ पर ink का area fraction
"target_darkness" -- target की औसत darkness (वह मात्रा जिसके बराबर ink fraction होना चाहिए)
"length_px" -- line की लंबाई [px]
★pen width एक continuous knob है (coverage से रंगा जाता है)। जहाँ lines overlap नहीं करतीं वहाँ ink fraction ≈ line length × pen width / image area लागू होता है, इसलिए target darkness से मेल खाने वाली pen width को पहले closed form में हल करके फिर जाँचा जा सकता है:
pen_width ≈ target_darkness × area / length_px।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• poc_one_stroke_epicycles — py -3.11 examples/poc_one_stroke_epicycles.py
table को input के रूप में लेते हैं)gcode_write · gcode_extrusion_volume · gcode_time_estimate · gcode_layer_image · contours_to_gcode
stroke)stipple_points_from_image · stipple_energy · stroke_tour_closed · mst_length · stroke_resample_closed
*Provenance: printpath.py — PRINTPATH operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.