isp op• Data kinds: rgb → rgb
• Call: import fullseye as fs; fs.ledger.hue_saturation(rgb, hue_deg=0.0, saturation=1.0) (implementation को सीधे call करना हो तो import gfx2d; gfx2d.hue_saturation(rgb, hue_deg=0.0, saturation=1.0), registry से लेना हो तो opsgfx2d.get("hue_saturation"))
BT.601 YCbCr में hue को *hue_deg* से घुमाता है और saturation को *saturation* से scale करता है: luma रखा जाता है, chroma vector (Cb, Cr) घुमाया और scale किया जाता है। आउटपुट [0, 1] पर clip किया जाता है।
> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।
Ground truth: hue_deg=0, saturation=1 is the identity to 1e-15; rotating by +t then -t returns the input; saturation=0 gives a grey image whose value is the BT.601 luma of the input. A hue rotation is not a channel permutation (120 degrees does not swap R->G->B exactly), because the RGB cube is not a cylinder around the grey axis — said here so nobody tests for it. Raises ValueError: non-finite *hue_deg*, or *saturation* < 0.
• 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 में दिए गए हैं।
• raw_to_display_isp — py -3.11 examples/raw_to_display_isp.py
rgb को input के रूप में लेते हैं)srgb_to_linear · linear_to_srgb · blend_mode · light_mask · normal_map_decode · bloom · vignette · chromatic_aberration
isp)raw_black_level · raw_dead_pixel_mask · raw_dead_pixel_correct · lens_shading_gain · lens_shading_correct · awb_gains · rgb_apply_gains · raw_apply_gains
*Provenance: gfx2d.py — GFX2D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.