perceptual op• 資料種類:image2d × image2d → scalar
• 呼叫: import fullseye as fs; fs.ledger.vifp(ref, dist, data_range: 'float' = 255.0, sigma_nsq: 'float' = 2.0, nscales: 'int' = 4) -> 'float'(要直接呼叫實作,import iqafsim; iqafsim.vifp(ref, dist, data_range: 'float' = 255.0, sigma_nsq: 'float' = 2.0, nscales: 'int' = 4) -> 'float';從台帳取用則 opsimgmetrics.get("vifp"))
VIF 的像素域版本(Sheikh & Bovik 2006 §V 的 scalar GSM,沿用公開的 vifp_mscale 的慣例)。1 = 相同,越高越好。
各尺度 s = 1..4:視窗 N = 2^(4−s+1)+1,高斯 σ = N/5(17/3.4、9/1.8、5/1.0、3/0.6)。s > 1 時用視窗平滑後 2 倍抽取。局部統計(μ、σ²、σ12)為 'valid' 相關,g = σ12/(σ1²+1e-10),σ_v² = σ2² − g σ12,σ1² < 1e-10、σ2² < 1e-10、g < 0 的像素按約定壓掉,σ_v² ≤ 1e-10 → 1e-10。VIF = Σ log10(1 + g² σ1²/(σ_v² + σ_n²)) / Σ log10(1 + σ1²/σ_n²)。非對稱(除以參考的資訊量:vif(a, b) ≠ vif(b, a)),對比度增強時 超過 1(TID2013 的作者值最大也是 1.1379 = 失真 17)—— 不是保真度而是資訊量之比。輸入 (H, W) 或 (H, W, 3)(3-ch 用 Y)。與 TID2013 的 VIFP.txt(論文中的「VIFP」,與 steerable 版的「VIF」是不同列)4 位一致的是 Y′ limited 的灰階影像 (iqatid.tid2013_evaluate(root, vifp, luma="limited_u8"),3,000 組 max |差| 6.8e-5)。Raises ValueError:形狀不同、在最小尺度上小於視窗、參考平坦(分母 0)、sigma_nsq ≤ 0。
• image_difference_metrics 族使用指南
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• 演算法的正典(作者、年份)與用途見上面的族使用指南。
• poc_iqa_fsim_gmsd_vif — py -3.11 examples/poc_iqa_fsim_gmsd_vif.py
scalar 作為輸入)luma_limited_u8 · rank_data · tid2013_index
perceptual)fsim · fsimc · fsim_pair · gmsd · gmsd_map · phase_congruency_pc
*Provenance: iqafsim.py — IMGMETRICS 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.