// ------------------------------------------------------------ // pixel.h // // Reading writing tiff images // // 12.03.2005, J.Ahrensfeld // ------------------------------------------------------------ #ifndef PIXEL_H #define PIXEL_H #include "mtypes.h" #include "imageio.h" // ------------------------------------------------------------ #define MAJOR_STATE_MASK 0x03 enum PixelState { pixel_state_all = 0, pixel_state_foreground = 1, pixel_state_background = 2, pixel_state_unknown = 4, pixel_state_computed = 8 }; typedef struct _pixel_t { UINT32 state; pxl_id_t id_this, id_closest_f, id_closest_b; pos_t raster_coord; double dist_closest_f, dist_closest_b; } pixel_t; typedef struct _set_data_t { UINT32 num_row, num_col, num_pixel, num_unknown, num_fore, num_back; pixel_t *pPixel; } set_data_t; // ------------------------------------------------------------ void SetInit(set_data_t *pObj, int num_row, int num_col); void PixelStateInit(set_data_t *pObj, image_t *pTrimap_image); int GetCropSet(set_data_t *pObj, int *pCrop, pos_t center, pos_t rect_size, UINT32 select_state); int GetCircleSet(set_data_t *pObj, int *pCrop, pos_t center, double radius, UINT32 select_state); int GetSetByState(set_data_t *pObj, pxl_id_t *pSet, UINT32 select_state); int ComputeDistanceMap(set_data_t *pObj, pxl_id_t *pSet_unknown, int num_unknown); int ComputeCalcSet(set_data_t *pObj, pxl_id_t *pSet_unknown, int num_unknown); int SaveCalcSet(char *filename, set_data_t *pObj, pxl_id_t *pSet_unknown, int num_unknown); int LoadCalcSet(char *filename, set_data_t *pObj, pxl_id_t *pSet_unknown, int num_unknown); // ------------------------------------------------------------ #endif // PIXEL_H