You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Nuke中用Python脚本调用Pixel Analyzer获取图像极值并填入Grade节点?

在Nuke中通过Python脚本自动获取图像最值并填充Grade节点

实现思路

无需直接调用Pixel Analyzer的UI组件,Nuke内置了图像统计API可以直接计算图像的最小、最大值,再将结果自动写入Grade节点参数。以下是完整的可运行方案:

完整脚本代码

# 获取选中的待分析图像节点(如Read节点或其他输出节点)
source_nodes = nuke.selectedNodes()
if not source_nodes:
    nuke.message("请先选中要分析的图像节点")
    exit()

# 获取选中的Grade节点
grade_nodes = nuke.selectedNodes("Grade")
if not grade_nodes:
    nuke.message("请选中至少一个Grade节点")
    exit()

# 创建临时MinMax节点计算图像最值
minmax_node = nuke.nodes.MinMax(inputs=[source_nodes[0]])
# 强制触发节点计算,确保获取最新统计值
minmax_node.knob("refresh").execute()

# 获取全通道的最小、最大值(如需单通道值,可单独提取min/max的RGB分量)
min_val = minmax_node.knob("min").value()
max_val = minmax_node.knob("max").value()

# 将最值批量写入Grade节点
for grade in grade_nodes:
    grade["blackpoint"].setValue(min_val)
    grade["whitepoint"].setValue(max_val)
    # 可选:将gamma设为1,保证线性映射
    grade["gamma"].setValue(1.0)

# 清理临时创建的MinMax节点
nuke.delete(minmax_node)

nuke.message("Grade节点参数已更新完成")

代码说明

  • 先校验选中节点是否合规,避免无意义报错
  • 用MinMax节点统计图像最值,逻辑和Pixel Analyzer完全一致,是Nuke底层支持的统计方式
  • 强制触发节点计算确保拿到实时结果,避免缓存值干扰
  • 批量处理所有选中的Grade节点,提升效率
  • 自动清理临时节点,保持节点树整洁

针对你原有代码的修正

你之前的代码存在几个问题:

  • 未定义变量g就调用print(g),会引发运行报错
  • 代码缩进不符合Python规范,会导致逻辑执行异常
  • 缺乏图像统计逻辑,仅能硬编码修改参数值

使用上面的完整脚本即可替代原有代码,实现自动获取图像最值并填充Grade节点的需求。

内容的提问来源于stack exchange,提问作者Mina Waguih

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 11:57:24