CurveTool

You can use this node to analyze and track the following aspects of the input sequence:

the size and position of black areas in the sequence

average pixel values in the sequence

exposure changes in the sequence, and

brightest and dimmest pixels in the sequence.

Based on the analysis, the node creates an animation curve. You can then use this curve data to drive effects elsewhere. For instance, you can add matching flicker to a CG render.

Inputs and Controls

Connection Type

Connection Name

Function

Input

unnamed

The image sequence to analyze.

Control (UI)

Knob (Scripting)

Default Value

Function

CurveTool Tab

Curve Type

operation

Avg Intensities

Sets the curve type to pass down the node tree:

Auto Crop - locates black regions (or any color you pick) around the edges of the frame sequence and tracks their size and position over time. This is useful for running a Crop node to remove unnecessary outer pixels and speed up the calculation.

Avg Intensities - obtains the average pixel values in a frame sequence and then matches that intensity elsewhere. It takes the first value in the frame range and the next value selected, adds them together and divides by two, returning the average between the two. You might want to use it to match the background plate’s fire flicker in the smoke in the foreground plate, for example.

Exposure Difference - analyzes the exposure changes in the frame sequence. It takes the first value in the frame range and the next value selected, and returns the difference between the two. You can use the results to match the same exposure elsewhere.

Max Luma Pixel - tracks the brightest and dimmest pixels in the frame sequence. This can be useful in the following case, for example. Let’s say you have a night-time sequence depicting a person moving inside a dark house holding a flashlight, and want to add lens flare on the moving flashlight. Knowing where the brightest pixel is located over time allows you to match-move the lens flare and position it correctly without having to manually animate it.

Go!

go

N/A

Click to begin analysis of the selected Curve Type.

AutoCrop

color

color

0

Sets the color detected during analysis.

Intensity Range

ccrange

0

Sets how far the color can deviate from the selected color and still be cropped.

Intensity

# frames for base average

avgframes

2

Sets the range of frames that each frame analyzed is compared against. For example, a value of 1 would compare each frame to the frame following it, whereas a value of 5 would compare each frame to the following 5 frames.

Note:  The higher frame range you use, the more accurate and time-consuming the calculation becomes.

All

channels

channels

rgba

The selected analysis is only applied to these channels.

If you set this to something other than none, you can use the checkboxes on the right to select individual channels.

ROI xyrt (xywh)

ROI

Dependent on input format

Defines the area to analyze. By default, the ROI is set to the entire input image, but you can drag the ROI indicator in the Viewer or adjust the xyrt values manually.

AutoCropData Tab

autocropdata xyrt (xywh)

autocropdata

Dependent on input format

Displays the analysis results when Curve Type is set to AutoCrop. To see the animation curve, right-click on a parameter field and select Curve editor.

IntensityData Tab

intensitydata

intensitydata

0

Displays the analysis results when Curve Type is set to Avg Intensities, or Exposure Difference. To see the animation curve, right-click on a parameter field and select Curve editor.

MaxLumaData Tab

Maximum Luminence Pixel xy

maxlumapixdata

0, 0

Displays the coordinates of the pixel with the highest luminance value on the current frame.

Maximum Luminence Pixel Value

maxlumapixvalue

0

Displays the highest luminance value on the current frame.

Minimum Luminence Pixel xy

minlumapixdata

0, 0

Displays the coordinates of the pixel with the lowest luminance value on the current frame.

Minimum Luminence Pixel Value

minlumapixvalue

0

Displays the lowest luminance value on the current frame.

Python Tab (These controls are for Python callbacks and can be used to have Python functions automatically called when various events happen in Nuke.)

before render

beforeRender

none

These functions run prior to starting rendering in execute(). If they throw an exception, the render aborts.

before each frame

beforeFrameRender

none

These functions run prior to starting rendering of each individual frame. If they throw an exception, the render aborts.

after each frame

afterFrameRender

none

These functions run after each frame is finished rendering. They are not called if the render aborts. If they throw an exception, the render aborts.

after render

afterRender

none

These functions run after rendering of all frames is finished. If they throw an error, the render aborts.

render progress

renderProgress

none

These functions run during rendering to determine progress or failure.

Step-by-Step Guides

Analyzing and Matching Clips