fidelity op• Data kinds: image2d × image2d → image2d
• Call: import fullseye as fs; fs.ledger.ssim_map(a, b, data_range=None, win_size=11, sigma=1.5, K1=0.01, K2=0.03, channel_axis=None, crop_border=True) (implementation को सीधे call करना हो तो import imgmetrics; imgmetrics.ssim_map(a, b, data_range=None, win_size=11, sigma=1.5, K1=0.01, K2=0.03, channel_axis=None, crop_border=True), registry से लेना हो तो opsimgmetrics.get("ssim_map"))
• GPU: नहीं (केवल CPU reference implementation)
SSIM का map (औसत लेने से पहले)। कहाँ समानता नहीं है, यह चित्र में देखने के लिए।
channel_axis देने पर हर channel के लिए गणना करके उनका औसत map लौटाता है।
गणना: local mean mu और variance, covariance को win_size चौड़ाई पर काटे गए σ = sigma के Gaussian window (सीमा पर mirror) से लिया जाता है, और हर pixel पर ((2 mu_a mu_b + C1)(2 s_ab + C2)) / ((mu_a^2 + mu_b^2 + C1)(s_a + s_b + C2))। C1 = (K1 dr)^2, C2 = (K2 dr)^2, dr data_range है। variance population variance है (n/(n-1) सुधार नहीं)। इसका औसत ssim है।
• data_range: integer dtype के लिए स्वचालित, float के लिए 1.0 केवल तब माना जाता है जब मान [0, 1] में हों और उनका फैलाव (max − min) कम से कम 0.25 हो, अन्यथा स्पष्ट देना आवश्यक (उल्लंघन पर MetricContractError)। फैलाव की शर्त 2026-11-09 से: 0.05 फैलाव वाले float को 1.0 मानने पर SSIM 0.52 से बढ़कर 0.99 हो जाता था (स्थिरांक C1, C2 dr के अनुपात में होते हैं)। अँधेरी [0, 1] photo के लिए data_range=1.0, CT attenuation के लिए उसका संभव फैलाव दें। ★यह gate दोनों images के संयुक्त फैलाव को ही देखता है, इसलिए एक hot pixel इसे पार कर जाता है: 0〜0.05 मानों वाली image में एक 0.3 pixel होने भर से अनुमान फिर 1.0 हो जाता है और SSIM 0.993 लौटता है (सही dr=0.05 पर 0.871)। भौतिक राशियों (attenuation, reflectance आदि) की images में gate पर निर्भर न रहें, हमेशा data_range दें।
• win_size: 3 या अधिक की विषम संख्या। हर spatial axis की लंबाई कम से कम इतनी होनी चाहिए।
• crop_border=True (default) window radius (win_size-1)//2 जितनी border हटाता है, इसलिए return value (H - 2p, W - 2p) होता है। हटाने के बाद कुछ न बचने वाली छोटी image पर exception आता है। False हो तो shape input जैसा ही रहता है, लेकिन border में mirror padding का असर शामिल रहता है।
• return value: float64 map। 1 का अर्थ स्थानीय मेल; यह ऋणात्मक भी हो सकता है (structure उलटा)।
• विफलता: shape का मेल न होना / ख़ाली / non-finite / sigma <= 0 / सम या 3 से कम win_size।
• image_difference_metrics family guide
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• image_quality_metrics — py -3.11 examples/image_quality_metrics.py
• poc_iqa_tid2013 — py -3.11 examples/poc_iqa_tid2013.py
image2d को input के रूप में लेते हैं)mse · rmse · psnr · ssim · ms_ssim · image_entropy · joint_entropy · mutual_information
fidelity)mse · rmse · psnr · ssim · ms_ssim
*Provenance: imgmetrics.py — IMGMETRICS operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.