measure op• 데이터 종류: labels2d → table
• 호출: import fullseye as fs; fs.ledger.blob_features(labels: 'Any', spacing: 'float' = 1.0) -> 'dict'(구현을 직접 호출하려면 import blob2d; blob2d.blob_features(labels: 'Any', spacing: 'float' = 1.0) -> 'dict', 원장에서 가져오려면 opsblob.get("blob_features"))
물체별 형상 특징량을 키마다 1개의 배열로 반환한다.
labels : array_like
blob_label 의 출력(정수, 배경 0).
spacing : float
화소 1 개의 크기[단위/px]. 길이에 이것을, 면적에 그 2 제곱을 곱한다.
기본값 1.0 = 화소 그대로.
dict
n(물체 수), spacing, units(항목 → 단위의 대응)와,
길이 n 의 배열 19 개(FEATURE_KEYS). 물체가 0 개여도
키는 전부 갖추어 빈 배열로 반환한다(호출자가 분기하지 않아도 된다).
• angle 은 행렬 좌표계의 기울기(+열 → +행 이 양 = 화면에서는 시계 방향).
• major / minor 는 같은 2 차 모멘트를 갖는 타원의 축 길이(4 sqrt(lambda)). 화소 나열의 외접이 아니므로, 정사각형에 대해서는변 길이보다 조금 길게 나온다 —— 이것은 정의대로이며 오차가 아니다.
• circularity 는 4 pi A / P^2. HALCON 의 circularity 는 "면적 / 최원점을 반지름으로 하는 원의 면적"으로 다른 것이므로, 값을 대조할때는 정의를 확인할 것.
• touches_border 가 True 인 물체는 면적도 둘레도 잘린 만큼 작다. 세기 전에 버리거나, 참값 쪽도 같은 규약으로 셀 것.
>>> import numpy as np
>>> m = np.zeros((20, 20), bool); m[4:14, 4:9] = True
>>> f = blob_features(blob_label(m))
>>> int(f["n"]), float(f["area"][0])
(1, 50.0)
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_am_thermal_to_ct — py -3.11 examples/poc_am_thermal_to_ct.py
• poc_bone_trabecular_thickness — py -3.11 examples/poc_bone_trabecular_thickness.py
• poc_bump_coplanarity — py -3.11 examples/poc_bump_coplanarity.py
• poc_fresco_craquelure — py -3.11 examples/poc_fresco_craquelure.py
• poc_gear_tooth_metrology — py -3.11 examples/poc_gear_tooth_metrology.py
• poc_leaf_disease_area — py -3.11 examples/poc_leaf_disease_area.py
• poc_metal_grain_size — py -3.11 examples/poc_metal_grain_size.py
• poc_nuclei_ploidy — py -3.11 examples/poc_nuclei_ploidy.py
• poc_particle_sizing — py -3.11 examples/poc_particle_sizing.py
• poc_particle_tracking — py -3.11 examples/poc_particle_tracking.py
• poc_peg_insertion_tactile — py -3.11 examples/poc_peg_insertion_tactile.py
• poc_print_warpage_risk — py -3.11 examples/poc_print_warpage_risk.py
• poc_pv_thermal_survey — py -3.11 examples/poc_pv_thermal_survey.py
• poc_real_coin_metrology — py -3.11 examples/poc_real_coin_metrology.py
• poc_rotation_invariance_audit — py -3.11 examples/poc_rotation_invariance_audit.py
• poc_sea_ice_concentration — py -3.11 examples/poc_sea_ice_concentration.py
• poc_solar_el_inspection — py -3.11 examples/poc_solar_el_inspection.py
• poc_solder_fillet_aoi — py -3.11 examples/poc_solder_fillet_aoi.py
• poc_traffic_counting — py -3.11 examples/poc_traffic_counting.py
• poc_vessel_network — py -3.11 examples/poc_vessel_network.py
• poc_weld_radiograph_porosity — py -3.11 examples/poc_weld_radiograph_porosity.py
• poc_wound_area_tracking — py -3.11 examples/poc_wound_area_tracking.py
table 를 입력으로 받는 것)—
measure)—
*Provenance: blob2d.py — BLOB 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.