Skip to main content

Frequency

FFT (Fast Fourier Transform) and frequency domain operations.

Function Mapping

libvips CDart BindingPipeline MethodPipelineSpec
vips_fwfft()frequencyBindings.fwfft()pipeline.fwfft()spec.fwfft()
vips_invfft()frequencyBindings.invfft()pipeline.invfft()spec.invfft()
vips_freqmult()frequencyBindings.freqmult()--
vips_spectrum()frequencyBindings.spectrum()pipeline.spectrum()spec.spectrum()
vips_phasecor()frequencyBindings.phasecor()--

fwfft

Forward Fast Fourier Transform.

frequencyBindings.fwfft(input, output);

Converts an image from spatial domain to frequency domain.

invfft

Inverse Fast Fourier Transform.

frequencyBindings.invfft(input, output);

Converts an image from frequency domain back to spatial domain.

freqmult

Multiply an image by a frequency domain filter.

frequencyBindings.freqmult(input, mask, output);

Example - Low-pass filter:

// Create a low-pass filter mask
final mask = createBindings.maskIdeal(width, height, frequencyCutoff: 0.5);
frequencyBindings.fwfft(input, fft);
frequencyBindings.freqmult(fft, mask, filtered);
frequencyBindings.invfft(filtered, output);

spectrum

Compute power spectrum.

frequencyBindings.spectrum(input, output);

Returns the power spectrum of an image, useful for frequency analysis.

phasecor

Phase correlation between two images.

frequencyBindings.phasecor(image1, image2, output);

Used for image registration and motion estimation.

Filter Masks

Create frequency domain filter masks:

// Ideal filter (sharp cutoff)
createBindings.maskIdeal(width, height, frequencyCutoff: 0.5, reject: false);

// Gaussian filter (smooth cutoff)
createBindings.maskGaussian(width, height, frequencyCutoff: 0.5, amplitude: 1.0);

// Butterworth filter (controllable transition)
createBindings.maskButterworth(width, height, order: 2, frequencyCutoff: 0.5);