F1Quiver & F1QTest

Author V. C. Mohan
Date Jul 2015
EMail: mohanvc

This plugin function filters the image row by row, in 1d frequency domain. Filters can be either Gaussian, or Butterworth or custom designed in frequency domain. Noise that appears vertically or sub vertically aligned (noise really is row wise) is filtered.

Standard filters included are low cut (high pass), highcut (low pass), band stop, band pass and notch reject filters of either Gaussian or Butterworth type. Up to 15 of these standard filters can be cascaded. Filter can also be custom (user) designed. Cascading custom designed filters with standard filters is not allowed. The custom designed filter is smoothed by 5 point average.

Each Standard filter is specified by 4 integer set:
First integer value 1. low cut (high pass) 2. high cut or (low pass), or 3 band pass or 4. band stop or 5 notch (reject).
The Second value is the frequency 1 , 50% amplitude cut off or center frequency of notch filter.
The third value is freq2 value to be used for band pass or band stop and must be specified even if not relevant.

The fourth value if 0 then Gaussian Filter. Otherwise degree of sharpness of Butterworth filter.

Upto 15 X 4 such values can be specified. Each filter cascades over other

Alternatively by opting for Custom, filter is specified by a sereis of frequency and amplitude pairs . The first amplitude value is back ward propogated upto zero freq, and the last pair amplitude is propogated up to the nyquist frequency. The frequency values must increase monotonically. The custom filter is smoothed with 5 point average ..

F1QTest function displays in one half of frame, the averaged power spectrum of specified row(s) in two panels, top one with gamma scale and filter profile, and below a unscaled version. In the other half of frame the image unfiltered(if no filter is specified) or if standard filter sets,or custom filter are specified, then filtered image is displayed. A horizontal ruler with graduations (100s, 50s and 10s) assist in specifying frequency values.

The spectral display will be averaged spectrum of starting row to end row. This smmothes out a lot of noise and brings out persistent frequencies.

Presence of sharp high amplitude objects (such as logos) can create severe ringing due to filtering. A sharp discontinuity requires all frequencies of spectrum to be present. Any filtering that affects the balance can create undesirable ringing. If possible cropping and re joining after processing may be useful in those cases.

With the option 'morph' set to true, homomorphic filtering can be done.

Only YUY2 and Planar (YV12 only by version 2.5.8) formats are acceptable. Y values only are processed by F1Quiver and F1QTest . Parameters are identical for both these functions


Details of parameters
Description Name Type Limits Default
Input clip clip none
Array of values sets of integers. For "custom" pairs of frequency and percentage amplitude must follow. Each standard filter has a set of 4 values need not be specified for F1QTest none
Is filter custom design? custom boolean true or false false
whether homomorphic filtering is to be done? morph boolean true or false false
Starting Row number of frame to use for F1QTest. Ignored by F1Quiver row integer within frame height top row
Ending Row number of frame to use for F1QTest. Ignored by F1Quiver erow integer not less than 'row' and within frame height row + 50
gamma value to be used for scaling spectrum F1QTest. Ignored by F1Quiver gamma float 1.0 is no scaling 0.1

Usage examples:-
#F1QTest(25,100,34,0,42,0, 54,100,row = 155, erow=250,custom = true,gamma =0.2)
#F1Quiver(25,100,34,0,42,0, 54,100, custom = true)