www.pudn.com > SobelKirsch.rar > SpecialDetectionFilter.h


///////////////////////////////////////////////////////////////////////////////// 
// 
// 	SpecialDetectionFilter.h: interface for the CSpecialDetectionFilter class. 
// 
//////////////////////////////////////////////////////////////////////////////// 
// 版权所有(2002) 
// Copyright(2002) 
// 编写者: 向世明 
// Author: Xiang Shiming 
 
 
#ifndef _CSOBELKRISCHFLT_H 
#define _CSOBELKRISCHFLT_H 
 
#ifndef _CIMGAREAPROCESS_H 
#include "ImageAreaProcess.h" 
#endif 
 
class CSpecialDetectionFilter  : public CImageAreaProcess 
{ 
DECLARE_DYNAMIC(CSpecialDetectionFilter) 
public: 
	CSpecialDetectionFilter(); 
	virtual ~CSpecialDetectionFilter(); 
 
 
public: 
	void Binchange(LPBYTE lpbyBits32, int x,  int y, int m_nWidth, int m_nHeight,int nScanWidth,  int nScanHeight, int m_nThreshold); 
	BOOL Filter(LPBYTE lpbyBits32,  int x,  int y,  int nWidth,  int nHeight,  int nScanWidth,  int nScanHeight); 
 
 
	#ifdef _DEBUG 
	virtual void Dump(CDumpContext& dc) const; 
	virtual void AssertValid() const; 
	#endif 
 
protected: 
 
 
	PIXELCOLORRGB Specialize(BYTE *pbyRed, BYTE *pbyGreen, BYTE *pbyBlue,  int nNum); 
 
	PIXELCOLORRGB Kirsch(BYTE *pbyRed, BYTE *pbyGreen, BYTE *pbyBlue,  int nNum); 
	PIXELCOLORRGB Sobel(BYTE *pbyRed, BYTE *pbyGreen, BYTE *pbyBlue,  int nNum); 
 
	PIXELCOLORRGB FilterPixelInner(LPBYTE lpbyBitsSrc32,  int x,  int y,  int nScanWidth,  int nScanHeight); 
	PIXELCOLORRGB FilterPixelOnBorder(LPBYTE lpbyBitsSrc32, int x, int y, int nScanWidth, int nScanHeight); 
}; 
 
#endif