segment.c File Reference

#include "magick/studio.h"
#include "magick/color.h"
#include "magick/colorspace.h"
#include "magick/exception.h"
#include "magick/exception-private.h"
#include "magick/image.h"
#include "magick/image-private.h"
#include "magick/memory_.h"
#include "magick/monitor.h"
#include "magick/quantize.h"
#include "magick/quantum.h"
#include "magick/quantum-private.h"
#include "magick/segment.h"
#include "magick/string_.h"

Data Structures

struct  _ExtentPacket
struct  _Cluster
struct  _IntervalTree
struct  _ZeroCrossing

Defines

#define MaxDimension   3
#define DeltaTau   0.5f
#define WeightingExponent   2.5
#define SegmentPower(ratio)   pow(ratio,(double) (1.0/(weighting_exponent-1.0)));
#define Tau   5.2f
#define SegmentImageTag   "Segment/Image"

Typedefs

typedef struct _ExtentPacket ExtentPacket
typedef struct _Cluster Cluster
typedef struct _IntervalTree IntervalTree
typedef struct _ZeroCrossing ZeroCrossing

Functions

static MagickRealType OptimalTau (const long *, const double, const double, const double, const double, short *)
static long DefineRegion (const short *, ExtentPacket *)
static void InitializeHistogram (const Image *, long **, ExceptionInfo *)
static void ScaleSpace (const long *, const MagickRealType, MagickRealType *)
static void ZeroCrossHistogram (MagickRealType *, const MagickRealType, short *)
static MagickBooleanType Classify (Image *image, short **extrema, const MagickRealType cluster_threshold, const MagickRealType weighting_exponent, const MagickBooleanType verbose)
static long MagickAbsoluteValue (const long x)
static long MagickMax (const long x, const long y)
static long MagickMin (const long x, const long y)
static void ConsolidateCrossings (ZeroCrossing *zero_crossing, const unsigned long number_crossings)
static void DerivativeHistogram (const MagickRealType *histogram, MagickRealType *derivative)
MagickExport MagickPixelPacket GetImageDynamicThreshold (const Image *image, const double cluster_threshold, const double smooth_threshold, ExceptionInfo *exception)
static void InitializeList (IntervalTree **list, long *number_nodes, IntervalTree *node)
static void MeanStability (IntervalTree *node)
static void Stability (IntervalTree *node)
static IntervalTreeInitializeIntervalTree (const ZeroCrossing *zero_crossing, const unsigned long number_crossings)
static void ActiveNodes (IntervalTree **list, long *number_nodes, IntervalTree *node)
static void FreeNodes (IntervalTree *node)
MagickExport MagickBooleanType SegmentImage (Image *image, const ColorspaceType colorspace, const MagickBooleanType verbose, const double cluster_threshold, const double smooth_threshold)

Variables

static const int Blue = 2
static const int Green = 1
static const int Red = 0
static const int SafeMargin = 3
static const int TreeLength = 600


Define Documentation

#define DeltaTau   0.5f

#define MaxDimension   3

#define SegmentImageTag   "Segment/Image"

#define SegmentPower ( ratio   )     pow(ratio,(double) (1.0/(weighting_exponent-1.0)));

#define Tau   5.2f

#define WeightingExponent   2.5


Typedef Documentation

typedef struct _Cluster Cluster

typedef struct _ExtentPacket ExtentPacket

typedef struct _IntervalTree IntervalTree

typedef struct _ZeroCrossing ZeroCrossing


Function Documentation

static void ActiveNodes ( IntervalTree **  list,
long *  number_nodes,
IntervalTree node 
) [static]

static MagickBooleanType Classify ( Image image,
short **  extrema,
const MagickRealType  cluster_threshold,
const MagickRealType  weighting_exponent,
const MagickBooleanType  verbose 
) [static]

static void ConsolidateCrossings ( ZeroCrossing zero_crossing,
const unsigned long  number_crossings 
) [static]

static long DefineRegion ( const short *  extrema,
ExtentPacket extents 
) [static]

static void DerivativeHistogram ( const MagickRealType histogram,
MagickRealType derivative 
) [static]

static void FreeNodes ( IntervalTree node  )  [static]

MagickExport MagickPixelPacket GetImageDynamicThreshold ( const Image image,
const double  cluster_threshold,
const double  smooth_threshold,
ExceptionInfo exception 
)

static void InitializeHistogram ( const Image image,
long **  histogram,
ExceptionInfo exception 
) [static]

static IntervalTree* InitializeIntervalTree ( const ZeroCrossing zero_crossing,
const unsigned long  number_crossings 
) [static]

static void InitializeList ( IntervalTree **  list,
long *  number_nodes,
IntervalTree node 
) [static]

static long MagickAbsoluteValue ( const long  x  )  [inline, static]

static long MagickMax ( const long  x,
const long  y 
) [inline, static]

static long MagickMin ( const long  x,
const long  y 
) [inline, static]

static void MeanStability ( IntervalTree node  )  [static]

static MagickRealType OptimalTau ( const long *  histogram,
const   double,
const   double,
const   double,
const   double,
short *  extrema 
) [static]

static void ScaleSpace ( const long *  histogram,
const   MagickRealType,
MagickRealType scale_histogram 
)

MagickExport MagickBooleanType SegmentImage ( Image image,
const ColorspaceType  colorspace,
const MagickBooleanType  verbose,
const double  cluster_threshold,
const double  smooth_threshold 
)

static void Stability ( IntervalTree node  )  [static]

static void ZeroCrossHistogram ( MagickRealType second_derivative,
const   MagickRealType,
short *  crossings 
)


Variable Documentation

const int Blue = 2 [static]

const int Green = 1 [static]

const int Red = 0 [static]

const int SafeMargin = 3 [static]

const int TreeLength = 600 [static]


Generated on Sat Jan 26 14:50:30 2008 for MagickCore by  doxygen 1.5.4