#
vcm

## F2QSharp

The call for this function is:-

## vcm.F2QSharp(clip[ , int line = 0][, float wn = 0.05][,int x = 2][, int y = 2][, int fr = 10][, float scale = 0.45 ][,int rgb = [1, 1, 1] ] [,int yuv = [1, 0, 0] ] )

clip: input clip must have constant dimensions and of RGB or YUV or Grey format only. All 3 planes of RGB, only y of YUV formats are processed.
line: If set to 1 linear type (motion blur). If set to zero circular type (out of focus camera) blur assumed to be present in input frame
wn: white noise to stabilize inversion. 0.0001 to 0.99.
x: For linear blur x coord of line end. Valid values are from 0 to 1/8 of frame width. Value is symmetrical to origin. For circular blur, this value is radius of blur circle. Minimum 1, max 1/8 of width;
y: y coord of line end - 1/8 to 1/8 of frame height. For circular blur this is ignored;
fr: fr is radius of filter that will be designed , specified as as %age of half of smaller dimension of frame. Valid values are 5 to 20.
Scale: specify to get back original amplitudes. Trial and error. 0.000001 to 1000000.0
rgb: For RGB input array of 3 values. Value of 1 specifies that plane to be sharpened, 0 means skip plane.
yuv: For YUV input array of 3 values. Value of 1 specifies that plane to be sharpened, 0 means skip plane.
Severe ringing can be seen in output for restoring from large blurring. If blur present is even slightly different to the assumed, likely to fail.In the example given in freqScript, the blur is known exactly. However the default values work well for mildly out of focus images as shown in one example of bird image. Try with altering scale, x, wn and fr for a good result.

This transforms data into frequency domain utilising libfftw3f-3.dll ( or, FFTW3 dll, or fftw.dll) of fftw.org being available in path.