python读取图像数据流_【NUKE教程】Nuke Python 获取图像数据

本文介绍了如何通过Python在Nuke中获取图像数据,包括使用`getMinMax`函数获取图像通道的最小最大值,以及利用`sample`方法进行像素抽样。详细讲解了创建和执行MinColor、CurveTool节点的过程,以及如何封装成可复用的函数。
摘要由CSDN通过智能技术生成

188fcf370213e29ad1de6feb3dbebccd.png

通过python有两种方式读取图像的像素数据:

创建分析图像的节点(比如,MinColor, CurveTool),执行,然后读取其结果的knob数值

sample方法可以直接抽样节点的像素。

使用CurveTool

创建CurveTool节点,执行后删除,并显示其分析结果:

noise = nuke.createNode('Noise')

noise['zoffset'].setExpression( 'frame*100 ' )

ct = nuke.createNode('CurveTool')

nuke.execute( ct, nuke.frame(), nuke.frame() )

dat = ct['intensitydata'].value()

nuke.delete(ct)

nuke.message( 'average luminance is %s' % dat )

使用sample方法

创建Noise节点,在x=500,y=600抽样红色通道,并输出:

noise = nuke.createNode('Noise')

print noise.sample('red', 500, 600)

下面代码结果一样:

print nuke.sample(noise, 'red', 500, 600)

例子

getMinMax

此工具可以抽取通道中的最大最小值。最近nuke的python api中没有现成的方法,一般利用MinColor的功能来实现。因此工作流中创建一

些临时节点,在当前帧上执行(为我们计算),然后删除。

刚开始,先创建一个测试方案:创建Ramp节点,将Grade节点挂到上面。确保Grade的black clamp knob禁止,然后可以用任意值来测试lift和gain knob。

6983cd19d5df3f9cc9dbd5ef0437682f.png

创建MinColor节点,挂到Grade节点,MinColor的channels knob设置成默认rgba就行,调整其他knob。当目标knob被设置为0时,在当前

帧执行。输入节点的rgba层的delta knob保存了最小值。delta knob的值和你在Grade节点的lift knob的值很接近,但为负的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值