piv_outlier_mask — PIV validate op

• 데이터 종류: flow2d → mask

• 호출: import fullseye as fs; fs.ledger.piv_outlier_mask(flow, threshold=2.0, epsilon=0.1)(구현을 직접 호출하려면 import pivops; pivops.piv_outlier_mask(flow, threshold=2.0, epsilon=0.1), 원장에서 가져오려면 opspiv.get("piv_outlier_mask"))

사용법

정규화 중앙값 검정(Westerweel & Scarano 2005)으로 이상 벡터를 찾는다.

각 벡터에 대해, 8 근방의 중앙값으로부터의 잔차를 근방 잔차의 중앙값으로 나눈다. 분모에 epsilon(기본값 0.1 px, PIV 측정 불확도의 기준)을 더하는 것은, 균일한 장에서 분모가 0이 되어 전부가 이상값이 되는 것을 막기 위해서이다 —— 이 항이없으면 이상적인 입력일수록 검정이 무너진다.

★경사가 급한 장에서는 해가 된다(2026-09-06 실측). Rankine형 소용돌이(심의 반경 28 px)에 다단 PIV를 걸었더니, 임계값 2가 주운 5개는모두 심의 가장자리(중심에서 32 px)에 늘어서 있었고, 실제 오차는 0.07-0.45 px —— 이상값이 아니라 속도 분포가 꺾이는 곳이었다. 근방 중앙값으로 고르게 하면 RMS가 0.134에서 0.230으로 악화된다(임계값 5에서는 1개도 줍지 않고 0.134 그대로).

검정은 "근방과 다름 = 잘못"이라는 가정에 서 있으므로, 진짜 불연속을잘못이라고 부른다. 걸지 말지는 장의 성질을 보고 정할 것.

Args:

flow: (2, h, w).

threshold: 이 값을 넘으면 이상값. 관행은 2.

epsilon: 분모의 바닥값 [px].

Returns:

(h, w)의 bool. True가 이상값(nan도 True).

자세한 사용 가이드

• piv_displacement 패밀리 가이드

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

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

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

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

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

• piv_flow_from_particles — py -3.11 examples/piv_flow_from_particles.py

• poc_change_detection_misreg — py -3.11 examples/poc_change_detection_misreg.py

• poc_river_surface_velocity — py -3.11 examples/poc_river_surface_velocity.py

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

piv_replace_outliers

같은 카테고리(validate)

piv_replace_outliers


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

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