caliper op• 데이터 종류: image2d × measurehandle → table
• 호출: import fullseye as fs; fs.ledger.fuzzy_measure_pairing(image, measure, sigma=1.0, threshold=0.1, pair_size=None)(구현을 직접 호출하려면 import measuring1d; measuring1d.fuzzy_measure_pairing(image, measure, sigma=1.0, threshold=0.1, pair_size=None), 원장에서 가져오려면 opsmeasure1d.get("fuzzy_measure_pairing"))
퍼지 기준(예상 폭 pair_size)에 가장 잘 맞는 에지 쌍을 고른다(fuzzy_measure_pairing).
절차: measure_pairs(image, measure, sigma, threshold) 로 극성이 다른 인접에지의 쌍을 구하고, 각 쌍에 fuzzy_score = exp(-((width - pair_size) / (0.5 pair_size))^2) 를 붙여 점수 내림차순으로 다시 정렬한다. 상정 폭과 딱 맞으면 1, 폭이 ±0.5 pair_size 어긋나면 e^-1 ≈ 0.37. 첫 요소가 가장 잘 맞는 쌍.
• image: 2-D float(그레이 값의 단위는 입력 그대로).
• measure: gen_measure_rectangle2 / gen_measure_arc 의 dict.
• sigma: 프로파일의 평활화 σ [샘플]. threshold: 채택할 에지의최소 |그레이 차|(영상의 단위).
• pair_size: 상정 폭 [px]. None 이면 정렬도 점수 부여도 하지 않고 measure_pairs 의 결과(측정선을 따른 순서)를 그대로 반환한다. 0 이나 음수는 검증하지 않는다(0 이면 분모가 1e-9 가 되어 전 쌍의 점수가 거의 0 이나 1 로 뭉개진다).
• 반환값: 쌍 dict 의 list(table 형). 각 dict 는 first / second (샘플 index), width [px], first_point / second_point ((row, col)), first_amplitude / second_amplitude, fuzzy_score. 쌍이 1 개도 없으면 빈 list(예외로 하지 않는다).
폭의 하한·상한으로 자르고 싶은 경우에는 이 결과를 width 로 직접 필터한다(이 op 는 순위 매기기만 하며, 임계값에 의한 제외는 하지 않는다).
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_calipers_under_illusion — py -3.11 examples/poc_calipers_under_illusion.py
• poc_dimensional_inspection — py -3.11 examples/poc_dimensional_inspection.py
table 를 입력으로 받는 것)—
caliper)gen_measure_rectangle2 · gen_measure_arc · translate_measure · measure_pos · measure_pairs
*Provenance: measuring1d.py — MEASURE1D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.