- 音视频
- 视频处理
- 图形学
- 桌面应用
【免费下载链接】Natron
Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.
本文以 Natron 仓库中由 Natron 本体自动生成的节点文档 eu.gmic.SmoothNLMeans.rst 为主体,完整梳理 G’MIC Smooth NL-Means 去噪节点的输入定义、全部控制参数(含取值选项与默认值),并结合仓库源码与构建脚本说明该节点所属 GMIC 插件组的文档生成机制、插件来源与打包方式,帮助你在 Natron 节点图中正确配置和使用这个基于非局部均值(Non-Local Means)算法的平滑去噪节点。
1. 节点定位:文档从哪里来
eu.gmic.SmoothNLMeans.rst 开头带有如下声明:
Do not edit this file! It is generated automatically by Natron itself.This documentation is for version 1.0 of G’MIC Smooth NL-Means (eu.gmic.SmoothNLMeans).
即该文档不是手工编写的,而是 Natron 启动后扫描已加载的 OpenFX 插件、提取每个节点的参数定义后自动导出的。从源码结构看,这一机制位于 AppInstance::exportDocs:该方法按固定顺序列出节点分组(IMAGE、PAINT、TIME……OTHER),其中明确包含groups << QString::fromUtf8("GMIC"); // openfx-gmic,随后遍历插件列表为每个插件生成文档。GMIC 组的所有节点文档再由 toctree 文件 _groupGMIC.rst 汇总成 “GMIC nodes” 一章,其中第 303 行即注册了plugins/eu.gmic.SmoothNLMeans.rst。
文档正文给出的节点背景信息如下:
- 节点全称:G’MIC Smooth NL-Means,插件 ID 为
eu.gmic.SmoothNLMeans,文档对应版本 1.0; - 作者:Jerome Boulanger,最后更新 2015/01/07;
- 实现基础:该节点是 G’MIC 框架的 OpenFX 封装(wrapper),G’MIC 插件由 Tobias Fleischer 与 Frederic Devernay 编写。同组节点的 eu.gmic.AboutGMIC.rst 还说明整个 G’MIC 插件基于 G’MIC 与 CImg(C++ Template Image Processing Library)两个开源库构建。
2. 节点输入(Inputs)
节点输入定义只有一个必填输入:
| Input | Description | Optional |
|---|---|---|
| Source | (无附加描述) | No |
即把需要去噪的图像序列接到Source输入端。这与 GMIC 组其他节点(例如 eu.gmic.Kuwahara.rst)的输入约定一致。
3. 核心去噪参数
原始文档的参数表 Function 列未填写逐条说明,以下功能解释基于 Non-Local Means 算法的通用原理与参数命名惯例给出(文档本身未提供逐条功能描述),用于帮助理解各参数如何影响去噪效果。
| 参数 / 脚本名 | 类型 | 默认值 | 作用说明 |
|---|---|---|---|
Patch Size /Patch_Size | Double | 4 | 比较相似度所用的块(patch)边长。块越大,参与相似度度量的局部结构越多,去噪更彻底但计算量上升、细节保留越难 |
Spatial Bandwidth /Spatial_Bandwidth | Integer | 4 | 空间带宽 h1:在图像空间内搜索相似块的搜索范围/空间衰减半径 |
Tonal Bandwidth /Tonal_Bandwidth | Double | 10 | 强度带宽 h2:控制块间像素差值转化为相似度的宽严程度,值越小去噪越强、越容易涂抹细节 |
Patch Measure /Patch_Measure | Choice | Luminance | 计算块相似度的度量方式,选项见下表 |
Patch_Measure的完整选项列表(继承自原文档):
- Linf-Norm:按块内最大绝对差度量;
- L1-Norm:按块内绝对差之和(曼哈顿距离)度量;
- L2-Norm:按块内平方差之和(欧氏距离)度量;
- Luminance(默认):在亮度通道上度量;
- Lightness:在 Lab 空间的 Lightness 通道上度量;
- RGB:在整个 RGB 空间上度量。
从参数组合看,该节点实现了 NL-Means 算法的典型框架:以每个像素为中心的Patch_Size块为单元,在Spatial_Bandwidth限定的空间范围内寻找相似块,用Patch_Measure计算的块距离经Tonal_Bandwidth控制的高斯核加权,最后对邻域像素做加权平均得到平滑结果。四个核心参数共同决定“去噪强度—细节保留”的平衡,且均可用于动画。
4. 通道选择(Channels)
Channels(Choice,默认All)决定去噪作用在哪些通道/颜色分量上。原文档列出的完整选项为:
- All(默认);RGBA [All];
- RGB [All]、RGB [Red]、RGB [Green]、RGB [Blue];RGBA [Alpha];
- Linear RGB [All]、Linear RGB [Red]、Linear RGB [Green]、Linear RGB [Blue];
- YCbCr [Luminance]、YCbCr [Blue-Red Chrominances]、YCbCr [Blue Chrominance]、YCbCr [Red Chrominance]、YCbCr [Green Chrominance];
- Lab [Lightness]、Lab [ab-Chrominances]、Lab [a-Chrominance]、Lab [b-Chrominance];
- Lch [ch-Chrominances]、Lch [c-Chrominance]、Lch [h-Chrominance];
- HSV [Hue]、HSV [Saturation]、HSV [Value];
- HSI [Intensity];HSL [Lightness];
- CMYK [Cyan]、CMYK [Magenta]、CMYK [Yellow]、CMYK [Key];
- YIQ [Luma]、YIQ [Chromas];
- RYB [All]、RYB [Red]、RYB [Yellow]、RYB [Blue]。
从选项覆盖的多个颜色空间(RGB、Linear RGB、YCbCr、Lab、Lch、HSV、HSI、HSL、CMYK、YIQ、RYB)可以看出,这是 G’MIC 插件组统一的通道选择控件,其他 GMIC 节点(如 Kuwahara)也提供完全相同的选项集。实际使用中,只对亮度分量去噪、保留色度(例如选YCbCr [Luminance]或Lab [Lightness])通常是避免色度伪影的常用做法。
5. 性能与草稿模式参数
| 参数 / 脚本名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Parallel Processing /Parallel_Processing | Choice | Auto | 线程数选择:Auto(默认)、One Thread、Two Threads、Four Threads、Eight Threads、Sixteen Threads |
), Spatial Overlap /_Spatial_Overlap | Integer | 24 | 带隐藏前缀下划线的脚本参数,默认 24,从命名看与空间搜索分块/重叠区域相关,一般无需手工调整 |
Resize Mode /Resize_Mode | Choice | Dynamic | 预览分辨率策略,选项见下 |
Preview/Draft Mode /PreviewDraft_Mode | Boolean | Off | 草稿模式开关 |
Resize_Mode完整选项(继承自原文档):Fixed (Inplace)、Dynamic(默认)、Downsample 1/2、Downsample 1/4、Downsample 1/8、Downsample 1/16。这与 Natron 的代理渲染(proxy render)思路一致:预览阶段在低分辨率下计算重算法的 NL-Means 平滑,可显著加快节点图实时反馈;最终渲染时仍使用全分辨率。Parallel_Processing则允许显式指定线程数,便于在渲染农场等受控环境下固定资源占用。
6. 预览参数(Preview)
NL-Means 类滤波在图像边缘处的行为常与内部不同,G’MIC 插件为此提供了一组“预览”诊断控件:
| 参数 / 脚本名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Preview Type /Preview_Type | Choice | Full | 预览类型,选项见下表 |
Preview Split /Preview_Split | Double | x: 0.5, y: 0.5 | 预览分割线位置(双分量坐标) |
Preview_Type完整选项(继承自原文档):Full(默认)、Forward Horizontal、Forward Vertical、Backward Horizontal、Backward Vertical、Duplicate Top、Duplicate Left、Duplicate Bottom、Duplicate Right、Duplicate Horizontal、Duplicate Vertical、Checkered、Checkered Inverse。配合Preview_Split的 x/y 位置,可以把同一图像按不同边缘扩展策略并排显示,直观比较边缘处理差异。
7. 输出与其他通用参数
| 参数 / 脚本名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Output Layer /Output_Layer | Choice | Layer 0 | 输出取自哪一层:Merged、Layer 0~Layer -9(共 11 个选项) |
Ignore Alpha /Ignore_Alpha | Boolean | Off | 去噪计算时是否忽略 Alpha 通道 |
Global Random Seed /Global_Random_Seed | Integer | 0 | 全局随机种子(用于算法中可能出现的随机化步骤) |
Animate Random Seed /Animate_Random_Seed | Boolean | Off | 是否让随机种子随帧动画化 |
Log Verbosity /Log_Verbosity | Choice | Off | 日志详细程度:Off、Level 1、Level 2、Level 3 |
这些是 G’MIC 插件组的公共尾参(Output_Layer、Resize_Mode、Ignore_Alpha、PreviewDraft_Mode、随机种子、Log_Vebosity系列),在 eu.gmic.Kuwahara.rst、eu.gmic.AboutGMIC.rst 等节点文档中均重复出现,属于插件框架统一注入的控件,而非 Smooth NL-Means 独有。
8. 插件从哪里来:构建与打包视角
Smooth NL-Means 节点来自独立仓库维护的 openfx-gmic 插件包,本仓库通过构建体系集成它,可查证的事实包括:
- common-buildmaster.sh 定义
GMICPLUG_PKG=fr.inria.openfx.gmic,并从NatronGitHub/openfx-gmic仓库拉取源码; - build-plugins.sh 中的 “# GMIC” 段落执行克隆、检出分支、
make OPENMP=1编译(gcc/clang-omp 时启用 OpenMP 多核构建),最后将生成的*.ofx.bundle拷贝进发行目录,并写入GMIC.ofx.bundle-version.txt版本戳; - Windows 安装脚本 Natron.iss 提供可选安装组件
Name: "gmic"; Description: "OpenFX G'MIC",把Plugins/OFX/Natron/GMIC.ofx.bundle安装到 Natron 插件目录; - 功能特性页 getstarted-about-features.rst 将 OpenFX-G'MIC 列为 Natron 官方支持的一系列开源 OpenFX 插件之一。
从源码结构看,Parallel_Processing选项与构建脚本中OPENMP=1的编译方式相互印证:插件本体具备多线程实现能力,运行时线程数由节点参数控制。
9. 小结
eu.gmic.SmoothNLMeans是 G’MIC 插件组中基于 Non-Local Means 算法的平滑去噪节点,只有一个必填输入Source;- 去噪行为由
Patch_Size(默认 4)、Spatial_Bandwidth(默认 4)、Tonal_Bandwidth(默认 10)和Patch_Measure(默认 Luminance)四个核心参数决定,Channels提供覆盖 11 种颜色空间的 38 个通道选择; - 性能相关参数(
Parallel_Processing、Resize_Mode、PreviewDraft_Mode)与预览诊断参数(Preview_Type、Preview_Split)、公共尾参(Output_Layer、Ignore_Alpha、随机种子、Log_Verbosity)构成 G’MIC 插件组统一的控制框架; - 该节点文档由 Natron 自动导出(见 AppInstance::exportDocs 与 _groupGMIC.rst),插件源码与构建细节见 openfx-gmic 仓库及本仓库 build-plugins.sh。
需要说明的适用前提:本文所有参数名、类型与默认值均直接取自仓库内节点文档 eu.gmic.SmoothNLMeans.rst(节点版本 1.0,插件最后更新 2015/01/07);参数功能解释中超出文档原文的部分已按算法惯例做了谨慎标注,具体数值调优效果请以实际图像测试为准。
- 音视频
- 视频处理
- 图形学
- 桌面应用
【免费下载链接】Natron
Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.
相关推荐
Natron 中 G'MIC Smooth Antialias 节点:去锯齿滤镜的完整参数解析与使用指南
Natron 中 G'MIC Smooth Antialias 节点:去锯齿滤镜的完整参数解析与使用指南 本文基于 Natron 官方插件参考文档 eu.gmi
音视频视频处理图形学桌面应用Natron G’MIC Noise Additive(加性噪点)节点完全指南:参数详解与合成实战
Natron G’MIC Noise Additive(加性噪点)节点完全指南:参数详解与合成实战 本篇技术指南以 Natron 仓库中 G’MIC 插件组的官
音视频视频处理图形学桌面应用Natron G'MIC Smooth Diffusion 节点参考:参数详解与文档生成管线
Natron G'MIC Smooth Diffusion 节点参考:参数详解与文档生成管线 本文以 Natron 官方参考文档 Documentation/s
音视频视频处理图形学桌面应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考