All Downloads are FREE. Search and download functionalities are using the official Maven repository.

boofcv.abst.transform.fft.DiscreteFourierTransform Maven / Gradle / Ivy

Go to download

BoofCV is an open source Java library for real-time computer vision and robotics applications.

There is a newer version: 1.1.6
Show newest version
/*
 * Copyright (c) 2011-2017, Peter Abeles. All Rights Reserved.
 *
 * This file is part of BoofCV (http://boofcv.org).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package boofcv.abst.transform.fft;

import boofcv.struct.image.ImageBase;

/**
 * 

* High level interface for applying the forward and inverse Discrete Fourier Transform to an image. Images of any * size can be processed by this interface. Images can typically be processed must faster when their size is a power * of two, see Fast Fourier Transform. The size of the input image can also be changed between called. *

*

* The Fourier transform of an image contains both real an imaginary components. These are stored in the output * image in an interleaved format. As a result the output image will have twice the width and height as the input * image. This format is shown below:

*
 * a[i*2*width+2*j] = Re[i][j],
 * a[i*2*width+2*j+1] = Im[i][j], 0≤i<height, 0≤j<width
 * 
* *

* INPUT MODIFICATION: By default none of the inputs are modified. However, in some implementations, memory can be * saved by allowing inputs to be modified. To allow the class to modify its inputs use the following function, * {@link #setModifyInputs(boolean)}. *

* * @author Peter Abeles */ public interface DiscreteFourierTransform, T extends ImageBase> { /** * Applies forward transform to the input image. * * @param image (Input) Input image. Default: Not modified. * @param transform (Output) Fourier transform, twice width and same height of input. Modified. */ public void forward( I image , T transform ); /** * Applies the inverse transform to a fourier transformed image to recover the original image * @param transform (Input) Fourier transform. twice width and same height of output. Default: Not modified. * @param image (Output) reconstructed image. Modified. */ public void inverse( T transform , I image ); /** * This function can toggle the internal implementations ability to modify the input image or input transform. * * @param modify true for the input can be modified and false for it will not be modified. */ public void setModifyInputs( boolean modify ); /** * Returns state of forward modification flag * @return true for the input can be modified and false for it will not be modified. */ public boolean isModifyInputs(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy