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_)