ISharpen

Function
This is identical to the Sharpen function, except it uses a second control image to control the amount of sharpening across the first image. We use un-sharp masking for our sharpening filter. This process blurs the image slightly, takes the difference between the blurred result and the input image, and adds that back over the input image. High values of x and yPixels (say, greater than 3% of the image size) will return undesirable results. You can also use the sharpen filter in the Convolve function, but this may give you ringing.

For an example of this process, see IBlur.

Parameters
Type
Defaults
Function
controlImg
image
  The second image is the control image for the sharpen. The brightness of this image controls how much sharpening is applied.
percent
float
20 The amount of blend between the non-sharpened image (0) and the sharpened image (100).
x/yPixels
float
3, xPixels The amount of blur as described in Pixels, ie 200 will blur 200 pixels to either side of the current pixel.
steps
int
5 This is the amount of regions. The intensity of the control image is divided up X amount of zones, with X being equal to regions.
stepBlend
float
1 This controls the blending between the amount of regions (see below). If you put this at 0, each step will have a constant blur value. If this is 1, there is a continuous blend between the different regions.
controlChannel
string
"a" The channel of the second image to use to control the amount of sharpen.
channels
string
"rgba" The channels of the first image to sharpen.
invert
int
0 Inverts the controlChannel.


Synopsis

image ISharpen(
  image img,
  image controlImg,
  float percent,
  float xPixels, 
  float yPixels,
  int steps,
  float stepBlend,
  const char * controlChannel,
  const char * channels,
  int invert 
 );


Script

image ISharpen( 
  img, 
  controlImg,
  percent,
  xPixels, 
  yPixels, 
  steps,
  stepBlend,
  "controlChannel",
  "channels",
  invert 
);


Command Line

shake -isharpen image percent xPixels yPixels