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. |