iceWing
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Data Structures | Macros | Typedefs | Enumerations | Functions
region.h File Reference
#include <gtk/gtk.h>
#include "tools/tools.h"
#include "gui/Gimage.h"
#include "main/sfb_iw.h"
#include "plugin_comm.h"

Go to the source code of this file.

Data Structures

struct  iwRegCOMinfo
struct  iwRegion

Macros

#define IW_REG_DATA_SET   0
#define IW_REG_DATA_CONVERT   1
#define IW_REG_DATA_IDENT   "regionData"

Typedefs

typedef struct _regCalcData iwRegCalcData
typedef void *(* iwRegDataFunc )(plugDefinition *plug, iwRegion *region, int mode)

Enumerations

enum  iwRegMode { IW_REG_INCLUSION = 1 << 0, IW_REG_NO_ZERO = 1 << 1 }
enum  iwRegThinning { IW_REG_THIN_OFF = 1 << 0, IW_REG_THIN_ABS = 1 << 1, IW_REG_THIN_DIST = 1 << 2 }

Functions

int iw_reg_label (int xsize, int ysize, const uchar *color, gint32 *region)
iwRegCOMinfoiw_reg_label_with_calc (int xsize, int ysize, const uchar *color, gint32 *region, int *nregions, int minPixelCount)
iwRegCalcDataiw_reg_data_create (void)
void iw_reg_data_free (iwRegCalcData *data)
void iw_reg_data_set_images (iwRegCalcData *data, iwImage *color, uchar **orig_img, uchar *confimg)
void iw_reg_data_set_minregion (iwRegCalcData *data, int minPixelCount)
void iw_reg_data_set_mode (iwRegCalcData *data, iwRegMode mode)
void iw_reg_data_set_thinning (iwRegCalcData *data, iwRegThinning mode, float maxdist)
iwRegioniw_reg_calc_data (int xlen, int ylen, gint32 *image, int *num_reg, iwRegCalcData *data)
iwRegioniw_reg_calc (int xlen, int ylen, uchar *color, gint32 *image, uchar **orig_img, uchar *confimg, int *num_reg, int doEinschluss, int minPixelCount)
iwRegioniw_reg_calc_img (int xlen, int ylen, iwImage *color, gint32 *image, uchar **orig_img, uchar *confimg, int *num_reg, iwRegMode mode, int minPixelCount)
void iw_reg_stretch (int width, int height, iwRegion *reg, int scale)
void iw_reg_boundingbox (const Polygon_t *p, int *x1, int *y1, int *x2, int *y2)
void iw_reg_upsample (int nregions, iwRegion *regions, float upw, float uph)
void iw_reg_free (int nregions, iwRegion *regions)
iwRegioniw_reg_copy (int nregions, const iwRegion *regions)

Macro Definition Documentation

#define IW_REG_DATA_SET   0
#define IW_REG_DATA_CONVERT   1
#define IW_REG_DATA_IDENT   "regionData"

Typedef Documentation

typedef struct _regCalcData iwRegCalcData
typedef void*(* iwRegDataFunc)(plugDefinition *plug, iwRegion *region, int mode)

Enumeration Type Documentation

enum iwRegMode
Enumerator:
IW_REG_INCLUSION 

Calculate inclusion

IW_REG_NO_ZERO 

Ignore regions with a label of 0

Enumerator:
IW_REG_THIN_OFF 

Don't perform any thinning

IW_REG_THIN_ABS 

Only leave every nth point

IW_REG_THIN_DIST 

Only leave points which are farther away than the threshold


Function Documentation

int iw_reg_label ( int  xsize,
int  ysize,
const uchar *  color,
gint32 *  region 
)

  Do a region labeling of the image color (size: xsize x ysize) and
  write the result to region.
  Return: Number of regions.

iwRegCOMinfo* iw_reg_label_with_calc ( int  xsize,
int  ysize,
const uchar *  color,
gint32 *  region,
int *  nregions,
int  minPixelCount 
)

  Do a region labeling of the image color (size: xsize x ysize) and
  write the result to region. Calculate pixel count, color, and COM
  of the regions.
  pixel count < minPixelCount -> Pixel count of the region = 0
  Return value is a pointer to a static variable!

iwRegCalcData* iw_reg_data_create ( void  )

  Maintain the struct holding settings for the region calculation.
  The different settings are:
  color  : Classified image (supported: 1 plane, IW_8U, IW_16U, and
            IW_32S), used to get a color index
  orig_img: Original color image, used to get the average region color
  confimg : Confidence mapped image from the color classifier.
            != NULL: regionen->avgConf = average confidence value of
                                        the region
  minPixelCount: Minimal size of calculated regions
  iwRegMode|iwRegThinning: See the flags above.
  maxdist : Distance value for the modes IW_REG_THIN_ABS and
            IW_REG_THIN_DIST.

void iw_reg_data_free ( iwRegCalcData data)
void iw_reg_data_set_images ( iwRegCalcData data,
iwImage color,
uchar **  orig_img,
uchar *  confimg 
)
void iw_reg_data_set_minregion ( iwRegCalcData data,
int  minPixelCount 
)
void iw_reg_data_set_mode ( iwRegCalcData data,
iwRegMode  mode 
)
void iw_reg_data_set_thinning ( iwRegCalcData data,
iwRegThinning  mode,
float  maxdist 
)
iwRegion* iw_reg_calc_data ( int  xlen,
int  ylen,
gint32 *  image,
int *  num_reg,
iwRegCalcData data 
)

  Calculate regions from the image "image".
  xlen, ylen: Size of image
  image    : Region labeld image
  num_reg  : in  : Number of labeld regions
              out : Number of calculated regions
  data      : Additional settings for the region calculation.

iwRegion* iw_reg_calc ( int  xlen,
int  ylen,
uchar *  color,
gint32 *  image,
uchar **  orig_img,
uchar *  confimg,
int *  num_reg,
int  doEinschluss,
int  minPixelCount 
)
iwRegion* iw_reg_calc_img ( int  xlen,
int  ylen,
iwImage color,
gint32 *  image,
uchar **  orig_img,
uchar *  confimg,
int *  num_reg,
iwRegMode  mode,
int  minPixelCount 
)
void iw_reg_stretch ( int  width,
int  height,
iwRegion reg,
int  scale 
)

  Stretch region reg by scale pixels in all directions and
  restrict the region to a size of width x height.

void iw_reg_boundingbox ( const Polygon_t *  p,
int *  x1,
int *  y1,
int *  x2,
int *  y2 
)

  Return bounding box of polygon p.

void iw_reg_upsample ( int  nregions,
iwRegion regions,
float  upw,
float  uph 
)

  Upsample regions by factor (upw,uph).

void iw_reg_free ( int  nregions,
iwRegion regions 
)

  Free regions allocated with iw_reg_copy(). Attention: This works
  only correctly for regions allocated with iw_reg_copy().

iwRegion* iw_reg_copy ( int  nregions,
const iwRegion regions 
)

  Return a copy of regions. Attention: Single regions can't be freed
  as all points and polygons are malloced en bloc.