00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __EDGEDETECTOR_H__
00009 #define __EDGEDETECTOR_H__
00010
00011 typedef struct AVPicture AVPicture;
00012
00013 namespace edgeDetector {
00014
00015
00016
00017 unsigned int *sgm_init_exclude(unsigned int *sgm,
00018 const AVPicture *src, int srcheight,
00019 int excluderow, int excludecol, int excludewidth, int excludeheight);
00020
00021 int edge_mark_uniform_exclude(AVPicture *dst, int dstheight, int extramargin,
00022 const unsigned int *sgm, unsigned int *sgmsorted, int percentile,
00023 int excluderow, int excludecol, int excludewidth, int excludeheight);
00024
00025 };
00026
00027 class EdgeDetector
00028 {
00029 public:
00030 virtual ~EdgeDetector(void);
00031
00032
00033 virtual int setExcludeArea(int row, int col, int width, int height);
00034
00035
00036 virtual const AVPicture *detectEdges(const AVPicture *pgm, int pgmheight,
00037 int percentile) = 0;
00038 };
00039
00040 #endif
00041
00042