perceptual op• 데이터 종류: rgbimage × rgbimage → table
• 호출: import fullseye as fs; fs.ledger.fsim_pair(ref, dist, data_range: 'float' = 255.0, downsample: 'bool' = True) -> 'dict'(구현을 직접 호출하려면 import iqafsim; iqafsim.fsim_pair(ref, dist, data_range: 'float' = 255.0, downsample: 'bool' = True) -> 'dict', 원장에서 가져오려면 opsimgmetrics.get("fsim_pair"))
FSIM과 FSIMc를 한 번에 계산한다(위상 일치는 영상 1장당 1번만 계산 —— 평가기와 PoC는 이쪽을 호출한다).
절차(논문 §III): (1) F = max(1, round(min(H, W)/256))로 F×F 평균 + 솎아내기(TID2013의 384×512는 F = 2 → 192×256), (2) Y의 위상 일치 PC와 Scharr([3 0 −3; 10 0 −10; 3 0 −3]/16) 기울기의 크기 G, (3) S_PC = (2 PC1 PC2 + T1)/(PC1² + PC2² + T1), S_G = (2 G1 G2 + T2)/(G1² + G2² + T2),
(4) FSIM = Σ S_G S_PC PC_m / Σ PC_m(PC_m = max(PC1, PC2)), (5) FSIMc는 채도 I / Q의 S_I S_Q(T3 = T4 = 200)의 λ = 0.03 제곱의 실수부를 곱한다.
입력은 같은 형태의 (H, W) 또는 (H, W, 3)(0–255; data_range로 척도를 선언). (H, W)일 때는 FSIMc = FSIM(채도 항이 없음). TID2013의 작성자 값: FSIM.txt는 Y′ limited의 회색 영상, FSIMc.txt는 색 영상(모듈 docstring의 표) -- 색 영상 1장에서 둘 다 내면 FSIM 쪽은 FSIM.txt와 맞지 않는다(max 0.0318). 반환값 {"fsim", "fsimc", "f"}(f = 솎아내기 계수). 항등이면 1. Raises ValueError: 형태가 다름, 2×2 미만, 위상 일치가 전 화소 0(평탄 영상: FSIM은 0/0으로 정의되지 않음).
• image_difference_metrics 패밀리 가이드
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_iqa_fsim_gmsd_vif — py -3.11 examples/poc_iqa_fsim_gmsd_vif.py
table 를 입력으로 받는 것)luma_limited_u8 · rank_data · tid2013_index · tid2013_by_distortion
perceptual)fsim · fsimc · gmsd · gmsd_map · vifp · phase_congruency_pc
*Provenance: iqafsim.py — IMGMETRICS 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.