// ImageOps.h: interface for the ImageOps class.
//
//////////////////////////////////////////////////////////////////////


//#define FIRST_LABEL		'A'
#define FIRST_LABEL		1
#define LAST_LABEL		0xFE

#define ERROR_LABELMAX	-2

class ImageOps  
{
public:
//	static void getConnComps(unsigned char *pImgBuff, int iWidth, int iHeight, unsigned char *pGrayVals, int iGrayCt);
	static int doBlob(unsigned char **pMatrix, int iWidth, int iHeight, /*int iMaxGray,*/
						unsigned char **pBlobMatrix, unsigned char **pBMatrix, int *piCt);

	static int resolvEquiv(unsigned char **pBlobMat, int iWidth, int iHeight, unsigned char **pBMat, int *piCt);

	static void debugOutputBlobMatrix(char *pFilename, unsigned char **pBlobMatrix, int iWidth, int iHeight, unsigned char **pBMatrix, int iCt);
	static int getBlobWidth(unsigned char **pBlobMat, int iWidth, int iHeight, unsigned char label);
	static int getBlobHeight(unsigned char **pBlobMat, int iWidth, int iHeight, unsigned char label);
	static int getBlobArea(unsigned char **pBlobMat, int iWidth, int iHeight, unsigned char label);

	static unsigned char* getRow(unsigned char *pImgBuff, int iWidth, int iHeight, int iRowNum);
	ImageOps();
	virtual ~ImageOps();

private:
	static void bToBPlus(unsigned char **pB, int iCt);

};

