blob_features — BLOB 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개의 배열로 반환한다.

Parameters

labels : array_like

blob_label 의 출력(정수, 배경 0).

spacing : float

화소 1 개의 크기[단위/px]. 길이에 이것을, 면적에 그 2 제곱을 곱한다.

기본값 1.0 = 화소 그대로.

Returns

dict

n(물체 수), spacing, units(항목 → 단위의 대응)와,

길이 n 의 배열 19 개(FEATURE_KEYS). 물체가 0 개여도

키는 전부 갖추어 빈 배열로 반환한다(호출자가 분기하지 않아도 된다).

Notes

• angle 은 행렬 좌표계의 기울기(+열 → +행 이 양 = 화면에서는 시계 방향).

• major / minor 는 같은 2 차 모멘트를 갖는 타원의 축 길이(4 sqrt(lambda)). 화소 나열의 외접이 아니므로, 정사각형에 대해서는변 길이보다 조금 길게 나온다 —— 이것은 정의대로이며 오차가 아니다.

• circularity 는 4 pi A / P^2. HALCON 의 circularity 는 "면적 / 최원점을 반지름으로 하는 원의 면적"으로 다른 것이므로, 값을 대조할때는 정의를 확인할 것.

• touches_border 가 True 인 물체는 면적도 둘레도 잘린 만큼 작다. 세기 전에 버리거나, 참값 쪽도 같은 규약으로 셀 것.

Examples

>>> 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)

자세한 사용 가이드

• blob_analysis 패밀리 가이드

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

• 샘플 데이터 카탈로그(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.