//----------------------------------------------------------------------------//
// //
// A R T M o m e n t s //
// //
//----------------------------------------------------------------------------//
// <editor-fold defaultstate="collapsed" desc="hdr"> //
// Copyright © Hervé Bitteur and others 2000-2013. All rights reserved. //
// This software is released under the GNU General Public License. //
// Goto http://kenai.com/projects/audiveris to report bugs or suggestions. //
//----------------------------------------------------------------------------//
// </editor-fold>
package omr.moments;
/**
* Interface {@code ARTMoments} defines a region shape features
* descriptor based on Angular Radial Transform.
*
* See MPEG-7 Experimentation Model for the original C++ code
*
* @author Hervé Bitteur
*/
public interface ARTMoments
extends OrthogonalMoments<ARTMoments>
{
//~ Static fields/initializers ---------------------------------------------
/** Number of angular indixes */
public static final int ANGULAR = 12;
/** Number of radius indices */
public static final int RADIAL = 3;
//~ Methods ----------------------------------------------------------------
/**
* Report the argument value for provided phase and radius indices.
*
* @param p phase index
* @param r radius index
* @return the argument double value [-PI..PI]
*/
double getArgument (int p,
int r);
/**
* Report the imaginary value for provided phase and radius indices.
*
* @param p phase index
* @param r radius index
* @return the module double value [0..1]
*/
double getImag (int p,
int r);
/**
* Report the module value for provided phase and radius indices.
*
* @param p phase index
* @param r radius index
* @return the module double value [0..1]
*/
double getModule (int p,
int r);
/**
* Report the real value for provided phase and radius indices.
*
* @param p phase index
* @param r radius index
* @return the module double value [0..1]
*/
double getReal (int p,
int r);
/**
* Set the argument value for provided phase and radius indices.
*
* @param p phase index
* @param r radius index
* @param value the argument double value [-PI..PI]
*/
void setArgument (int p,
int r,
double value);
/**
* Set the imaginary value for provided phase and radius indices.
*
* @param p phase index
* @param r radius index
* @param value the element double value [0..1]
*/
void setImag (int p,
int r,
double value);
/**
* Set the module value for provided phase and radius indices.
*
* @param p phase index
* @param r radius index
* @param value the element double value [0..1]
*/
void setModule (int p,
int r,
double value);
/**
* Set the real value for provided phase and radius indices.
*
* @param p phase index
* @param r radius index
* @param value the element double value [0..1]
*/
void setReal (int p,
int r,
double value);
}