principal_moments — 3D moment_invariant op

• 데이터 종류: points → descriptor

• 호출: import fullseye as fs; fs.ledger.principal_moments(points) -> 'np.ndarray'(구현을 직접 호출하려면 import moments3d; moments3d.principal_moments(points) -> 'np.ndarray', 원장에서 가져오려면 ops3d.get("principal_moments"))

사용법

관성 텐서의 고유값(주관성 모멘트, 내림차순, 회전 불변).

관성 텐서는 대칭이므로 고윳값은 실수이다. 점군을 회전 R 로 돌리면 I → R I Rᵀ 로상사 변환되고, 고윳값은 불변(엄밀)이다. 반환값은 내림차순으로 정렬하므로 좌표계나회전에 의존하지 않고 일치한다.

Returns

np.ndarray, shape (3,)

내림차순의 주 관성 모멘트 λ1 >= λ2 >= λ3 >= 0.

보충:

• inertia_tensor 의 고윳값으로, 공분산의 고윳값 c_i 와는 λ_i = (c_1 + c_2 + c_3) - c_i 의 관계. 가늘고 긴 막대에서는 최소 고윳값(막대 축 둘레)이 0 에 가까워지고, 구에서는 3 개가 같다.

• 단위는 길이². 병진과 회전에는 불변이지만 스케일에는 불변이 아니다(s 배로 s² 배). 스케일 불변이 필요하면 moment_invariants.

• 입력은 (N,3), N >= 1(1 점이면 모두 0). 형상 부정·비유한은 ValueError.

• 주축 벡터(고유벡터)가 필요하면 moment_axes. 결정론적.

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

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

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

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

• shape_desc_pose — py -3.11 examples_3d/shape_desc_pose.py

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

fuse_to_voxel · shape_distance

같은 카테고리(moment_invariant)

moment_invariants · central_moments · inertia_tensor


*Provenance: moments3d.py — 3D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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