segment.c File Reference

#include "magick/studio.h"
#include "magick/cache.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/monitor-private.h"
#include "magick/quantize.h"
#include "magick/quantum.h"
#include "magick/quantum-private.h"
#include "magick/segment.h"
#include "magick/string_.h"
Include dependency graph for segment.c:

Go to the source code of this file.

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 MagickBooleanType GetImageDynamicThreshold (const Image *image, const double cluster_threshold, const double smooth_threshold, MagickPixelPacket *pixel, 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

Definition at line 106 of file segment.c.

Referenced by GetImageDynamicThreshold(), and SegmentImage().

#define MaxDimension   3

Definition at line 105 of file segment.c.

Referenced by Classify(), GetImageDynamicThreshold(), and SegmentImage().

#define SegmentImageTag   "Segment/Image"
#define SegmentPower ( ratio   )     pow(ratio,(double) (1.0/(weighting_exponent-1.0)));

Definition at line 112 of file segment.c.

Referenced by Classify().

#define Tau   5.2f

Definition at line 114 of file segment.c.

Referenced by GetImageDynamicThreshold(), and SegmentImage().

#define WeightingExponent   2.5

Definition at line 111 of file segment.c.

Referenced by SegmentImage().


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]

Definition at line 709 of file segment.c.

References _ZeroCrossing::crossings, MagickMax(), and MagickMin().

Referenced by OptimalTau().

static long DefineRegion ( const short *  extrema,
ExtentPacket extents 
) [static]
static void DerivativeHistogram ( const MagickRealType histogram,
MagickRealType derivative 
) [static]

Definition at line 882 of file segment.c.

Referenced by OptimalTau().

static void FreeNodes ( IntervalTree node  )  [static]

Definition at line 1487 of file segment.c.

References _IntervalTree::child, RelinquishMagickMemory(), and _IntervalTree::sibling.

Referenced by OptimalTau().

MagickExport MagickBooleanType GetImageDynamicThreshold ( const Image image,
const double  cluster_threshold,
const double  smooth_threshold,
MagickPixelPacket pixel,
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]

Definition at line 1292 of file segment.c.

References _IntervalTree::child, and _IntervalTree::sibling.

Referenced by InitializeIntervalTree().

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

Definition at line 688 of file segment.c.

Referenced by ScaleSpace().

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

Definition at line 695 of file segment.c.

Referenced by ConsolidateCrossings().

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

Definition at line 702 of file segment.c.

Referenced by ConsolidateCrossings().

static void MeanStability ( IntervalTree node  )  [static]
static MagickRealType OptimalTau ( const long *  histogram,
const double  max_tau,
const double  min_tau,
const double  delta_tau,
const double  smooth_threshold,
short *  extrema 
) [static]
static void ScaleSpace ( const long *  histogram,
const MagickRealType  tau,
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  smooth_threshold,
short *  crossings 
)

Definition at line 1877 of file segment.c.

Referenced by OptimalTau().


Variable Documentation

const int Blue = 2 [static]

Definition at line 177 of file segment.c.

Referenced by Classify(), GetImageDynamicThreshold(), InitializeHistogram(), and SegmentImage().

const int Green = 1 [static]

Definition at line 178 of file segment.c.

Referenced by Classify(), GetImageDynamicThreshold(), InitializeHistogram(), and SegmentImage().

const int Red = 0 [static]

Definition at line 179 of file segment.c.

Referenced by Classify(), GetImageDynamicThreshold(), InitializeHistogram(), and SegmentImage().

const int SafeMargin = 3 [static]

Definition at line 180 of file segment.c.

Referenced by Classify(), and GetImageDynamicThreshold().

const int TreeLength = 600 [static]

Definition at line 181 of file segment.c.

Referenced by InitializeIntervalTree(), and OptimalTau().


Generated on 19 Nov 2009 for MagickCore by  doxygen 1.6.1