【免费下载链接】NegPyTool for processing film negatives.项目地址https://gitcode.com/gh_mirrors/ne/NegPy点击查看免费下载NegPy 是一款专为胶片负片扫描打造的暗房级处理工具Tool for processing film negatives。为什么它不直接一键反相而是引入 HD 曲线与 ISO-R 分级流水线因为负片记录的是对数密度而非线性明暗简单取反只会得到一张反过来的负片——发灰、发闷、层次尽失。本文带你深度解析这套负片处理的核心算法与完整流水线。为什么简单反相会毁掉负片细节很多新手以为负片 照片的镜像取反像素就好。但扫描仪读到的其实是一组光透过率NegPy 直接在线性 RGBoutput_colorraw、gamma1、统一白平衡上工作随后做对数转换密度是日志值胶片密度 $D \log_{10}(\text{参考透过率} / \text{实际透过率})$负片的高光和阴影在胶片上是被压缩过的直接反相无法还原这段压缩。橙色蒙版不是全局色偏彩色负片每个通道的橙蒙版浓度不同。NegPy 对每个通道独立做百分位定界0.01%–99.99% 窗口并拉伸到 [0,1]让橙色蒙版和片基色被各自中和掉而不是用一张白卡颜色去猜。打印需要曲线暗房里放大机下的相纸天然带 toe趾部、直线段、shoulder肩部三段特性。NegPy 把这条曲线完整搬进了算法反相只是打印的第一步。一句话NegPy 不是在反相而是在模拟一次暗房放大详见 docs/PIPELINE.md 的 The Print 一节。暗房级HD曲线在密度空间里打印照片️ 这是整个引擎的心脏。归一化后的信号进入密度空间经过一条非对称 toe-linear-shoulder 特性曲线中间是一段斜率为 $k$ 的直线由 ISO-R 分级决定toe阴影端软着陆到纸黑 $D_{max} 2.3$shoulder高光端软着陆到纸白 $D_{min} 0.06$Paper White Base 可关闭退回 0两端都是softplus 软拐点用toe_sharpness_base/shoulder_sharpness_base控制膝盖锐度而非硬截断——所以拉伸到界外的调子会被曲线卷回来而不是直接死黑死白。曲线核心计算CPU 引擎CPU/GPU/图表共用同一数据源v1 d_min_eff logaddexp(0, a_hl * (v - d_min_eff)) / a_hl # shoulder → 纸白 res d_max_eff - logaddexp(0, a_sh * (d_max_eff - v1)) / a_sh # toe → 纸黑源码negpy/features/exposure/logic.py#L465-L495常数定义见 negpy/features/exposure/models.py#L144-L165最后一步把打印密度换算回场景线性光$I_{out} 10^{-D}$。之后还有Paper Black开关关闭时做黑点补偿类似 ICC 相对比度量软校样开启则保留纸张抬升的 D-max$10^{-2.3} \approx 0.005$让最深处黑得有纸味。在这条基础曲线之上NegPy 还提供了一整套暗房工具Preflash预闪光、Zone Density分区密度、Split Grade分区分级、Dodge Burn加光减光蒙版、Contrast Mask对比度蒙版即暗房 unsharp mask、Diffusion扩散片模拟以及对每个染料层R/G/B独立的crossover 修正——因为 CMY 色彩过滤只能平移某一层的曲线只有形状修正才能修掉阴影与高光色偏不一致的问题。内置纸张档案从Ilford到Kodak的打印特性 纸张档案Paper Profile只改变 HD 曲线的形状$D_{max}/D_{min}$、toe/shoulder 锐度与高度、中间调 gamma对比度仍归 Grade 管。内置档案按处理模式分组纸张档案类型D-max特点Neutral默认通用2.3与默认曲线逐位一致Ilford Multigrade FB Classic黑白2.15纤维纸阴影更深、膝盖更锐Foma Fomatone MG Classic黑白2.0暖调氯化溴化经典石印纸Kodak Polymax II RC黑白2.13依 G-26 数据表曲线拟合Kodak Portra EnduraRA42.65依 E-4021 数据表拟合Kodak Ultra EnduraRA42.61依 E-4020 数据表拟合Fujicolor Crystal ArchiveRA42.35鲜艳蓝绿估算参数档案定义negpy/features/exposure/papers.py#L96-L239Kodak 系列用 scripts/fit_paper_profile.py 对着数据表曲线拟合到 RMS ≤ 0.05 D 才接受。RA4 彩色纸还带染料耦合矩阵如 Endura 的青染吸收部分绿光与片基色 tint模拟真实相纸的串色。档案是模式感知的彩色负片只出现 RA4 纸黑白负片只出现黑白纸幻灯片E-6只有 Neutral——存下来的不兼容值会自动回落到 Neutral永远不会泄漏进渲染。ISO-R分级教程像暗房选纸一样调对比度 NegPy 的对比度不用抽象的 0–5 数字而是采用摄影标准ISO 纸级曝光范围R 值滑杆范围R50很硬→ R180很软默认R115其中 R110 ≈ 经典 2 级灰纸斜率换算$k 2.9 \times \text{负片密度范围} / (R/100)$钳制在 [2.0, 10.0]——即对比度 负片密度范围 ÷ 纸张曝光范围和真实分级纸的物理定义完全一致旧版 0–5 纸级编辑自动迁移$R 150 - 20 \cdot G$观感不变。换算实现negpy/features/exposure/logic.py#L861-L875grade_to_slope/slope_to_grade每个蒙版还能有自己的Local Grade以 ISO-R 点偏移帧级分级相当于用一个更硬的滤镜烧天空。自动测光Auto Density 与 Auto Grade 如何工作这两个助手默认开启且只读有纹理的区域块中值 纹理投票避免片基、天空和大白墙干扰测光助手策略目标密度Auto Density以 0.46 为假设锚点按 20% 强度向实测值拉取限幅 ±0.12锚点打印至 0.75 DAuto Grade按纹理密度范围P10–P90做部分 ISO R 匹配平的画面给一点提亮、硬的画面不硬推正常负片目标 0.85Shadow Reach最暗纹理调子P99必须打出 ≥1.9 D不足则抬高斜率永不降低1.9 D直线段Highlight Hold最亮纹理调子P2若打过0.10 D自动补一个高光减光0.10 DShadow Hold对 Shadow Reach 尾巴做部分提亮强度 0.40上限 0.3只提亮、不减光实现Shadow Reach negpy/features/exposure/logic.py#L1077-L1090、Highlight Hold negpy/features/exposure/logic.py#L1093-L1109、Auto Grade 因子 negpy/features/exposure/logic.py#L1032-L1039此外还有Set Targets面板这八个瞄准值锚点打印密度、测光信任度、Shadow Reach 目标等可以按自己的扫描仪和口味整体校准属于标定而非编辑对已处理的帧同样生效。负片处理流水线从扫描到成图的9个阶段 完整渲染顺序各阶段串联前级缓冲传给后级#阶段干什么源码位置0修复烘焙IR 去尘/划痕检测写回线性源非阶段先于几何negpy/features/retouch1Geometry旋转、畸变校正、tilt/swing、自动裁切negpy/features/geometry2Scan Normalization平面场校正、传感器串色解混、对数转换、百分位定界与拉伸negpy/features/exposure/normalization.py3The PrintHD 曲线 ISO-R 分级本文主角negpy/features/exposure4CLAHECIELAB L* 上的局部对比度8×8 瓦片negpy/features/lab5Lab Scanner Mode色度降噪、饱和度、肤色保护、锐化、辉光、红晕同上6Alt Processes石印 / 晒蓝 / Sabattier仅黑白模式negpy/features/lith 等7Toning六浴化学调色银台账 分割调色negpy/features/toning8Finish边缘暗角、冲裁胶片边、装框、导出锐化negpy/features/finish色彩管理上工作空间始终是线性 RGBAdobe RGB 原色 D65Adobe RGB TRC 是引擎最后一步 OETF软校样是一张 65³ 的 3D LUT 而非渲染阶段导出时转换到目标色域并内嵌 ICC 档案——预览、缩略图与导出因此永远一致。谁适合使用NegPy️ 拥有负片/幻灯片扫描件Plustek、Coolscan、SANE 扫描仪或相机 RAW的胶片玩家想要开箱即打印的自然观感又不想放弃暗房式手工控制分级、加光减光、调色、石印在意无损编辑源文件永不改动编辑存于本地 SQLite可选.negpy旁挂文件与预览-导出一致性CPU/GPU 引擎逐位对齐。延伸阅读与源码导航完整管线数学docs/PIPELINE.md面板与控件使用手册docs/USER_GUIDE.md串色解混档案.tomldocs/CROSSTALK.md 与 crosstalk/HD 曲线与分级核心negpy/features/exposure/logic.py纸张档案数据negpy/features/exposure/papers.py数据表曲线拟合脚本scripts/fit_paper_profile.py赞分享【免费下载链接】NegPyTool for processing film negatives.项目地址https://gitcode.com/gh_mirrors/ne/NegPy点击查看免费下载相关推荐NegPy能做什么这款开源胶片负片处理工具的完整介绍NegPy能做什么这款开源胶片负片处理工具的完整介绍 NegPy 是一款免费开源的胶片负片处理工具专为负片扫描而设计。它不只是简单地把负片反转成正片而是用在 GitHub Codespaces 中云端构建 INAV 固件从创建 Codespace 到下载 .hex 的完整指南在 GitHub Codespaces 中云端构建 INAV 固件从创建 Codespace 到下载 .hex 的完整指南 本文整理自 INAV 官方开发文档ReelMimic多AI Agent审片流水线揭秘为什么每支镜头都不自审自改ReelMimic多AI Agent审片流水线揭秘为什么每支镜头都不自审自改 ReelMimic 是一款本地运行的 AI 视频制作工具丢给它一支喜欢的参考视创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考