www.pudn.com > 用形态学方法提取骨架线.rar > Filter.h


// Filter.h: interface for the CFilter class. 
//	滤波器类:对一个阵列用模板实现滤波操作 
//	朱俊 2002.10.29 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_FILTER_H__863ACF02_0DB6_4EA8_9835_7EBB8749C5C6__INCLUDED_) 
#define AFX_FILTER_H__863ACF02_0DB6_4EA8_9835_7EBB8749C5C6__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
const int TEMPLATE_LOG =1;		//LOG滤波器 
const int TEMPLATE_LAPLACIAN=2;	//拉普拉斯滤波器(锐化) 
const int TEMPLATE_GAUSS =3;	//Gauss滤波器(平滑) 
class CFilter   
{ 
public: 
	long GetCount(); 
	BOOL Filter(const int nDefTemplate,BYTE *pBuffer, DWORD Size,DWORD Width, DWORD Height); 
	//接口: 对二维数组(阵列)滤波. 成功返回true,失败返回false 
	CFilter(); 
	virtual ~CFilter(); 
 
private: 
	long m_lCount; 
	float m_fCoef;			//模板系数 
	BYTE m_TemplateWidth;	//模板宽度 
	char* m_pTemplate;		//模板 
protected: 
	BYTE CutOverflow(float fNum);	//截取超出范围的数字 
	void Multiply(BYTE* pBuffer,DWORD Size,DWORD Width,DWORD Height);	//模板和阵列的操作 
	void SetTemplate(const int nDefTemplate);	//设置模板的参数 
}; 
 
#endif // !defined(AFX_FILTER_H__863ACF02_0DB6_4EA8_9835_7EBB8749C5C6__INCLUDED_)