stroke_tone_error — PRINTPATH stroke op

• 데이터 종류: image2d × pairs → table

• 호출: import fullseye as fs; fs.ledger.stroke_tone_error(image, points, pen_width=1.0, blur_sigma=3.0, gamma=1.0)(구현을 직접 호출하려면 import printpath; printpath.stroke_tone_error(image, points, pen_width=1.0, blur_sigma=3.0, gamma=1.0), 원장에서 가져오려면 opsprintpath.get("stroke_tone_error"))

사용법

선을 그은 결과의 농담이 목표와 얼마나 다른가. → table

★이것이 한붓그리기의 진짜 목적 함수. "그림으로서 닮았다"를 사람의 눈에 맡기지 않고, 펜 폭으로 그려서 눈의 척도로 흐리고, 목표의 어두움과 비교하여 수로 반환한다.

반환값: dict

"rms" / "max_abs" / "bias" —— 어두움의 차([0, 1] 의 척도)

"corr" —— 목표의 어두움과 그린 어두움의 상관(1 에 가까울수록 농담을 따라가고 있다)

"ink_fraction" —— 종이에 올라간 잉크의 면적률

"target_darkness" —— 목표의 평균 어두움(잉크율과 균형을 이뤄야 할 양)

"length_px" —— 선의 길이[px]

★펜 폭은 연속적인 노브(피복률로 칠한다). 선이 겹치지 않는 범위에서는 잉크율 ≈ 선 길이 × 펜 폭 / 영상의 면적 이 성립하므로, 목표의 농도에 맞는펜 폭을 닫힌 식으로 푼 다음 확인할 수 있다:

pen_width ≈ target_darkness × area / length_px.

자세한 사용 가이드

• printpath 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• poc_one_stroke_epicycles — py -3.11 examples/poc_one_stroke_epicycles.py

타입이 이어지는 다음 연산자(table 를 입력으로 받는 것)

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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.