Constraint
Function
This multi-functional node restricts the effect of nodes to limited areas, channels,
tolerances, or fields. You toggle the type switch to select what kind of constraint
you are going to use. By doing so, certain parameters become active, others
no longer have any effect. This works similarly to KeyMix
in that you are mixing two images according to a third constraint. KeyMix
expects an image to be the constraint. Constraint allows you to set other
types of constraints.
The Constraint node will also speed up calculation times considerably in many cases. Speed up will always occur when using the ROI or field mode, and for many functions when using channel mode. Channel mode will decrease calculation time when the output is a result of examing channels, ie, Layer operations, but not when it has to examine pixels, ie, Warps and many filters. The tolerance mode may in fact increase calculation times, as it has to resolve both input images to calculate the difference between them.
Parameters
|
Type
|
Defaults
|
Function
|
clipMode |
int
|
1 |
Toggles between foreground and background resolution. 0 = foreground resolution. |
type |
int
|
0 |
This selects the type of constraint you are going to use. AOI - Area of Interest (1) - This draws a mixing box. Because of the labeling, you can do multiple types of constraining in the script by adding the numbers together, i.e., 7 equals Area of Interest, Threshold and Channel are all active. |
left,right, bottom, top |
float
|
0, width, 0, height | These are active only if type is set to 1 (See type, above). They describe a cropping box for the effect. |
rTol, gTol, bTol, aTol |
float
|
0,0,0,0 | Tolerance values to be used if type is set to 2 (See type, above). |
tLevel |
int
|
0 |
Active only when type is equal to 2. This sets the tolerance to "lo" or "hi". 0 = "lo". Changes are made only if the difference between image1 and image2 are less than the Tolerance values you set. 1 = "hi" Changes are made only if the difference between image1 and image2 is greater than the Tolerance values. |
tReplace |
int
|
0 | Active when type is set to 2. Toggles if the entire pixel is replaced, or just the channel meeting the Tolerance criteria. |
channels |
string
|
rgba | If type is set to 4 (See type, above), the operation only applies to these channels. |
field |
int
|
0 |
If type is set to 8 (See type, above), effect only applies to 1 field: 0 = even field. |
invert |
int
|
0 | Will invert the selection, i.e. everything beyond a color tolerance will be included, rather than below, etc. |
Synopsis
image Constraint( image Foreground, image Background, int clipMode, int type, int left, int right, int bottom, int top, float rTol, float gTol, float bTol, float aTol, int tLevel, int tReplace, const char * channels, int field );
Script
image Constraint( Foreground, Background, clipMode, type, left, right, bottom, top, rTol, gTol, bTol, aTol, tLevel, tReplace, "channels", field );
Command Line
shake -constraint image clipMode etc...
shake lisa.iff -blur 30 -const lisa.iff 0 1 150 350 200 400
shake lisa.iff -solariz -const lisa.iff 0 2 0 0 0 0 "Linear(0,0@1,1@20)"
-t 1-20