音视频视频处理图形学桌面应用【免费下载链接】NatronOpen-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.项目地址https://gitcode.com/gh_mirrors/na/Natron点击查看免费下载本篇技术指南围绕 Natron 官方插件参考文档中 ErodeSmooth插件标识net.sf.cimg.CImgErodeSmooth一节展开完整讲解该节点的算法原理、两个输入端口、十个控制参数的默认值与语义并结合本仓库的文档生成源码、mask/mix 底层实现与 CImg 系列同类节点文档帮助读者在 Natron 节点图中正确创建、配置并验证这一“平滑版腐蚀/膨胀”滤镜。节点概述比 Erode/Dilate 更平滑的形态学滤镜ErodeSmooth 的功能定位非常明确——使用归一化功率加权滤波器normalized power-weighted filter对输入图像流执行腐蚀erosion或膨胀dilation其官方描述为Erode or dilate input stream using a normalized power-weighted filter. This gives a smoother result than the Erode or Dilate node.即相比普通 Erode / Dilate 节点ErodeSmooth 的输出边缘更平滑、锯齿更少适合在希望保留形态学处理效果、但又不想引入矩形结构元素那种生硬边缘的场景下使用。该算法的理论依据来自 L.J. van Vliet 的论文Robust local max-min filters by normalized power-weighted filteringDOI: 10.1109/ICPR.2004.1334273并且底层调用了 CImg 库中的vanvliet与deriche两个函数来完成递归高斯类滤波。CImg 是一款自由、开源库采用 CeCILL-C近似 GNU LGPL或 CeCILL兼容 GNU GPL许可允许用于商业应用。从本仓库结构看ErodeSmooth 本体属于 CImg 系列 OFX 插件openfx-cimg 插件集合Natron 仓库中收录的是由 Natron 自身自动导出的该插件的参考文档。该插件文档对应的版本为 2.0位于 Natron 文档的Filter滤镜节点组与CImgErode、CImgDilate、CImgBlur、CImgMedian、CImgSharpen等 CImg 系列节点并列收录于 Documentation/source/_groupFilter.rst。输入端口ErodeSmooth 提供两个输入端口InputDescriptionOptionalSource主图像输入被腐蚀/膨胀的图像流否必选Mask可选遮罩输入用于限制滤镜作用范围是可选其中Mask端口配合下文的Invert Mask与Mix参数共同构成 Natron 标准的“遮罩 混合”通道用于局部化应用滤镜效果。控制参数详解脚本名 / 默认值 / 语义下表完整继承官方参考文档的参数定义随后逐项深入说明参数 / 脚本名类型默认值功能Range /rangeDoublemin: 0, max: 1输入值的期望取值范围Size /sizeDoublex: 0, y: 0滤波核直径像素0对应高斯标准差为 size/2.4size 1.2 时不滤波负值为膨胀、正值为腐蚀两个分量应同号Uniform /uniformBooleanOff在 X、Y 方向应用相同的模糊量Exponent /exponentInteger5归一化功率加权滤波的指数值越低结果越平滑Border Conditions /boundaryChoiceNearest图像域外像素值的计算方式Filter /filterChoiceQuadratic选用的模糊滤波器Expand RoD /expandRoDBooleanOn将源区域定义RoD按 1.5×size即 3.6×sigma向外扩展(Un)premult /premultBooleanOff处理前先除以 alpha、处理后再乘回用于预乘premultiplied输入Invert Mask /maskInvertBooleanOff勾选后滤镜在遮罩为 0 的区域完全生效Mix /mixDouble1原始图像与变换后图像的混合因子Range /range输入值期望范围类型Double双精度浮点默认值min: 0, max: 1作用告知滤镜输入像素值的期望动态范围。归一化功率加权滤波在处理前通常需要对像素值进行归一化range参数即用于界定输入值的有效区间确保滤波在正确的数值尺度上进行。Size /size滤波核直径与“负值膨胀”约定类型Double含 x、y 两个分量默认值x: 0, y: 0取值范围 0像素单位作用与语义size定义滤波核的直径单位为像素对应的高斯标准差σ size / 2.4当size 1.2时不施加任何滤波视为无效核负值执行膨胀dilate、正值执行腐蚀erode——这与 CImg 系列中 Erode / Dilate 节点的符号约定一致见 CImgErode.rstnegative size will perform a dilation官方文档特别提醒x、y 两个分量应保持相同符号避免在一个方向上腐蚀、在另一个方向上膨胀的混合行为。Uniform /uniformX/Y 是否统一模糊量类型Boolean默认值Off作用关闭时可在 X、Y 两个方向上使用不同的size值例如宽幅水平模糊 轻微垂直模糊开启后X、Y 应用完全相同的模糊量此时只需关注一个方向的size设置即可。Exponent /exponent功率加权指数类型Integer默认值5作用归一化功率加权滤波器中的指数exponent。该指数决定了滤波核的“锐利程度”较低的值给出更平滑的结果核形状更钝、过渡更柔和较高的值更接近传统的局部最大/最小滤波max/min filter形态学特征更强烈默认值 5 是文档推荐的折中起点实际使用时可在 110 范围内调节以获得不同锐度。Border Conditions /boundary边界条件类型Choice枚举选择默认值Nearest选项选项脚本名数学含义行为BlackblackDirichlet 边界条件图像域外的像素值一律视为 0NearestnearestNeumann 边界条件图像域外的像素值取图像域内最近像素的值选型建议官方指引若图像表示强度/灰度intensities应使用NearestNeumann条件避免边缘处因外推 0 值而产生暗边若图像表示梯度或导数gradients / derivatives应使用BlackDirichlet条件因为梯度场在域外自然为零。该参数“主要影响图像边界处的像素值”对远离边界的中部区域影响有限。Filter /filter可选模糊滤波器类型Choice枚举选择默认值Quadratic五个选项及官方说明选项脚本名类别特性Quasi-Gaussianquasigaussian0 阶递归 Deriche 滤波器快速近似高斯更快GaussiangaussianVan Vliet 递归高斯滤波器脉冲响应具有旋转对称性、更各向同性但更慢BoxboxFIR有限冲激响应盒式滤波有限支撑TriangletriangleFIR有限冲激响应三角/帐篷形滤波有限支撑QuadraticquadraticFIR有限冲激响应二次滤波有限支撑选型建议官方指引Quasi-Gaussian 在大多数情况下都是合适的默认选择当对方向各向同性rotational symmetry有严格要求时改用 Gaussian代价是速度下降。文档中“vanvliet”与“deriche”两个 CImg 函数即分别对应 Gaussian 与 Quasi-Gaussian 两条递归路径。Expand RoD /expandRoD源区域定义扩展类型Boolean默认值On作用开启后将源图像的区域定义Region of Definition, RoD按 1.5×size即 3.6×σ向外扩展。由于大尺寸滤波核会“拉取”核半径之外的像素信息若不扩展 RoD图像边缘的滤波结果可能不完整该参数默认开启以保证边缘处理正确性。在需要严格限定输出边界时如与下游节点 Rig 对齐可关闭此选项。(Un)premult /premult预乘处理开关类型Boolean默认值Off作用开启后处理前先将图像除以 alpha 通道解除预乘处理完成后再乘回 alpha重新预乘。仅当输入图像是预乘premultiplied格式时应开启对直通straight/unpremultiplied图像开启此选项反而会引入数值误差。该参数是 Natron 滤镜类节点的通用通道之一在 CImg 系列多个节点Erode、Dilate、Blur 等中均有同名同义参数。Invert Mask /maskInvert遮罩反转类型Boolean默认值Off作用默认Off情况下滤镜效果在遮罩值为 1 的区域完全生效、在遮罩值为 0 的区域不生效勾选后语义反转——效果在遮罩为 0 的区域完全生效。底层实现依据Natron 引擎在 Engine/ImageMaskMix.cpp 中实现该语义先由遮罩像素计算maskScale 像素值 / maxValue若maskInvert为真则maskScale 1 - maskScale再与mix相乘得到最终混合权重alpha mix * maskScale当遮罩像素缺失位于遮罩图像外时maskScale直接取maskInvert ? 1.0 : 0.0。Mix /mix混合因子类型Double默认值1作用在原始图像与变换后滤波后图像之间线性混合mix 1输出纯滤波结果mix 0输出纯原始图像介于两者之间得到半透明过渡。底层实现依据同样见 Engine/ImageMaskMix.cpp输出像素 滤波结果 × alpha 原始像素 × (1 - alpha)其中alpha mix × maskScale无遮罩时等价于alpha mix。在 Filter 节点组中的定位与同类节点对比ErodeSmooth 收录于 Natron 的Filter滤镜节点组该组的完整节点清单见 Documentation/source/_groupFilter.rst。与它最易混淆的是同组的两个 CImg 形态学节点节点文档核心差异ErodeSmooth本文net.sf.cimg.CImgErodeSmooth.rst归一化功率加权滤波输出更平滑核为圆形Gaussian 类语义size为浮点直径Erodenet.sf.cimg.CImgErode.rst矩形结构元素核宽度为 2×size1 像素整数sizeNeumann 边界速度更快但边缘更“方块化”Dilatenet.sf.cimg.CImgDilate.rst与 Erode 对称正size执行膨胀负size执行腐蚀三者的共同点是都使用“正 size 腐蚀、负 size 膨胀”的符号约定、都支持 Expand RoD / premult / maskInvert / mix 等通用参数且都基于 CImg 库实现。ErodeSmooth 的差异化价值在于以归一化功率加权滤波替代矩形结构元素换取更平滑、各向同性更好的形态学结果代价是需要调节exponent与filter两个额外的算法参数。文档从何而来Natron 自动生成插件参考文档的机制本文所述的net.sf.cimg.CImgErodeSmooth.rst属于 Natron自动生成的静态文档文件头部明确标注“Do not edit this file! It is generated automatically by Natron itself.”。其生成链路在仓库中有完整实现可作为理解该文档权威性与再生方式的依据导出入口使用带--export-docs命令行参数的 Natron Renderer 运行触发 Engine/AppInstance.cpp 中的AppInstance::exportDocs(path)遍历所有已加载插件含外部 OFX 插件为每个插件创建临时节点实例调用node-makeDocumentation(false)生成 Markdown并将插件图标复制为同名 PNG如net.sf.cimg.CImgErodeSmooth.png。内容组装Node::makeDocumentation()在 Engine/NodeDocumentation.cpp 中实现负责收集插件 ID、标签、描述、输入列表与每个参数的脚本名、类型、默认值和帮助文本并拼装成 Markdown 文档。格式转换tools/genStaticDocs.sh 脚本调用 pandoc要求 pandoc ≤ 2.3.1将每个插件的.md转换为带 grid table 的.rst并追加.. _插件ID:锚点标签、替换表格属性宏最终生成_group*.rst分组索引含_groupFilter.rst与plugins/*.rst单节点文档。因此本文表格中的“Parameter / script name”一栏具有强约束力这些脚本名range、size、uniform、exponent、boundary、filter、expandRoD、premult、maskInvert、mix就是通过 Natron Python 脚本或表达式访问该节点参数时使用的真实名称。例如 Documentation/source/devel/paramExpressions.rst 即以 CImg 系列节点DilateCImg1.mix演示了node.mix.get()表达式取值的写法ErodeSmooth 的参数访问方式与之完全一致。实战使用建议结合参数语义与引擎实现以下使用建议均可在节点图中直接落地验证去马赛克式收缩 / 平滑扩张把size设为正值如 416 像素腐蚀前景主体边缘、负值则平滑扩张先用默认exponent5filterQuadratic若边缘仍嫌生硬可降低exponent如 23获得更柔和过渡。边缘与梯度的边界选择处理键控遮罩alpha 强度图时保持默认的Nearest边界若输入是法线/梯度类图像将boundary切到Black以符合 Dirichlet 语义。预乘素材必须开启 premult当上游为预乘合成流时勾选premult可避免滤波在边缘产生色晕不确定时可分别对比两种设置的边缘颜色表现。局部化处理通过Mask端口接入遮罩用mix微调强度、必要时勾选maskInvert反转作用区域——引擎在 ImageMaskMix.cpp 中以alpha mix × maskScale统一完成混合语义直观可控。动画化参数size、exponent、mix均为可动画参数可在时间线上设置关键帧实现“随时间增强/减弱”的形态学效果也可在表达式编辑器中引用其他节点参数参照上文paramExpressions.rst示例。注意符号一致性修改size的 x/y 分量时务必保持同号同为负或同为正避免同一节点内同时出现腐蚀与膨胀的混叠行为。结语ErodeSmoothnet.sf.cimg.CImgErodeSmooth是 Natron Filter 组中面向“平滑形态学”场景的专用节点它以 van Vliet 归一化功率加权滤波与 CImg 的vanvliet/deriche递归实现为内核通过size的符号同时表达腐蚀与膨胀并以exponent、filter、boundary三个算法参数提供平滑度、各向同性与边界行为的精细控制。本文依据官方参考文档完整整理了全部输入与参数定义并借助本仓库的文档生成源码与 mask/mix 引擎实现给出了参数背后的实现依据与可直接上手的使用建议在 Natron 节点图中右键或从左工具栏的 Filter 组中即可创建该节点随后即可按上述参数表逐项调节验证。赞分享音视频视频处理图形学桌面应用【免费下载链接】NatronOpen-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.项目地址https://gitcode.com/gh_mirrors/na/Natron点击查看免费下载相关推荐Natron Erode 节点完全指南基于 CImg 的腐蚀/膨胀形态学滤镜Natron Erode 节点完全指南基于 CImg 的腐蚀/膨胀形态学滤镜 导读 本文围绕 Natron 开源视频合成软件中 Filter滤镜分组下的音视频视频处理图形学桌面应用Natron Dilate 节点完全指南基于 CImg 的矩形结构元素膨胀与腐蚀滤镜Natron Dilate 节点完全指南基于 CImg 的矩形结构元素膨胀与腐蚀滤镜 本文围绕 Natron 内置插件 Dilate插件标识 net.sf.音视频视频处理图形学桌面应用Natron ErodeBlur 节点详解基于平滑重映射的蒙版腐蚀与膨胀过滤器Natron ErodeBlur 节点详解基于平滑重映射的蒙版腐蚀与膨胀过滤器 ErodeBlur插件 ID eu.cimg.ErodeBlur 当前文音视频视频处理图形学桌面应用上一篇Win10串口只读不写pl2303-win10驱动一键修复下一篇雀魂 AI 辅助工具 Akagi免费开源装好就有第二大脑帮你看牌创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考