phase_congruency_pc — IMGMETRICS perceptual op

• Data kinds: image2d → image2d

• Call: import fullseye as fs; fs.ledger.phase_congruency_pc(img, data_range: 'float' = 255.0, nscale: 'int' = 4, norient: 'int' = 4, min_wavelength: 'float' = 6.0, mult: 'float' = 2.0, sigma_onf: 'float' = 0.55, dtheta_on_sigma: 'float' = 1.2, k: 'float' = 2.0, epsilon: 'float' = 0.0001) -> 'np.ndarray' (to call the implementation directly, import iqafsim; iqafsim.phase_congruency_pc(img, data_range: 'float' = 255.0, nscale: 'int' = 4, norient: 'int' = 4, min_wavelength: 'float' = 6.0, mult: 'float' = 2.0, sigma_onf: 'float' = 0.55, dtheta_on_sigma: 'float' = 1.2, k: 'float' = 2.0, epsilon: 'float' = 0.0001) -> 'np.ndarray'; from the registry, opsimgmetrics.get("phase_congruency_pc"))

Usage

> This operator's description has not been translated yet. The original text follows as it is.

位相一致 PC(x) = Σ_o E_o(x) / Σ_o Σ_s A_{s,o}(x) ∈ [0, 1] (Kovesi 1999、FSIM 論文 式 4 の規約: log-Gabor 4 スケール × 4 向き)。

既存の `phase_congruency(backends_transform2、Riesz/モノジェニック版、方向を持たない、ノブ a/b)とは**別物**なので接尾 _pc`。

E_o = Σ_s [e ē + o ō − |e ō − o ē|] (ē, ō = その向きの総和ベクトルの単位方向、ε = 1e-4 はこの単位ベクトル化だけに入れる)から

Kovesi の雑音しきい値 T を引いて 0 で切る: 最小スケールの |EO|² の中央値 → Rayleigh の平均 −median/ln 0.5 → 雑音電力 → フィルタの重なりを含む

雑音エネルギーの平均 + k σ、最後に 1.7 で割る(Kovesi の経験則)。周波数広がりの sigmoid 重みは掛けない(FSIM の式 4 に無い)。

利得不変: 入力を定数倍しても PC は変わらない —— ただし ε の分だけ(ε = 1e-4 で最大 3e-5、ε に厳密比例)。入力 (H, W)((H, W, 3) は Y)。

既定値は FSIM 論文 §IV-A(λ_min = 6、mult = 2、σ_r = 0.55、σ_θ = π/4/1.2、k = 2)。

Raises `ValueError`: 2×2 未満、非有限、data_range ≤ 0。

Detailed usage guide

• image_difference_metrics family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_iqa_fsim_gmsd_vif — py -3.11 examples/poc_iqa_fsim_gmsd_vif.py

Ops the type connects to (they accept image2d as input)

mse · rmse · psnr · ssim · ms_ssim · ssim_map · image_entropy · joint_entropy

Same category (perceptual)

fsim · fsimc · fsim_pair · gmsd · gmsd_map · vifp


*Provenance: iqafsim.py — IMGMETRICS operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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