www.pudn.com > hongmoyuan.rar > GlobalApi.h


#ifndef _GLOBAL_API 
#define _GLOBAL_API 
 
#include "stdafx.h" 
#include "cdib.h" 
#include  
#include  
#include  
using namespace std; 
 
#define pi 3.1415927 
 
//---------------------------------------------------------------------- 
// canny 算子 
void GaussianSmooth(unsigned char *pUnchImg, int nWidth, int nHeight, double sigma, unsigned char * pUnchSmthdImg); 
void MakeGauss(double sigma, double **pdKernel, int *pnWindowSize) ;  
void DirGrad(unsigned char *pUnchSmthdImg, int nWidth, int nHeight, 
						 int *pnGradX , int *pnGradY); 
void GradMagnitude(int *pnGradX, int *pnGradY, int nWidth, int nHeight, int *pnMag,double *CosTheta,double *SinTheta) ;  
void NonmaxSuppress(int *pnMag, int *pnGradX, int *pnGradY, int nWidth, int nHeight,	unsigned char *pUnchRst); 
void EstimateThreshold(int *pnMag, int nWidth, int nHeight, int *pnThdHigh,int *pnThdLow,  
											 unsigned char * pUnchEdge, double dRatioHigh, double dRationLow) ; 
void Canny(unsigned char *pUnchImage, int nWidth, int nHeight, double sigma, 
					 double dRatioLow, double dRatioHigh, unsigned char *pUnchEdge,double *CosTheta,double *SinTheta) ; 
void Hysteresis(int *pnMag, int nWidth, int nHeight, double dRatioLow,  
								double dRatioHigh, unsigned char *pUnchEdge) ; 
void TraceEdge (int y, int x, int nLowThd, unsigned char *pUnchEdge, int *pnMag, int nWidth) ; 
// Hough变换 
void Hough(int x,int y, int nWidth,int nHeight,double *CosTheta,double *SinTheta,unsigned char *pUnchEdge,int &Gao_temp1, int &Gao_temp2,int &Gao_temp3); 
void Bresenham(int Gao_temp1, int Gao_temp2,int Gao_temp3,int nWidth,int nHeight,unsigned char *HoughImage); 
void Gradient(int Gao_temp1,int Gao_temp2,int Gao_temp3,int nWidth,int nHeight,unsigned char *HoughImage,int &Gao_temp4,int &Gao_temp5,int &Gao_temp6); 
// 归一化 
void Normalization(unsigned char *NormalizeImage,unsigned char *HoughImage,int Gao_temp1,int Gao_temp2,int Gao_temp3,int Gao_temp4,int Gao_temp5,int Gao_temp6,int nWidth,int nHeight); 
// 双线性插值 
unsigned char Interpolation(unsigned char *InterpolaImage, int nWidth, int nHeight, double x, double y); 
// 直方图均衡 
void InteEqualize(unsigned char *InteEqualizeImg, int nWidth,int nHeight); 
// FFT变换 
void FFT(unsigned char *FourierImg); 
VOID WINAPI FFT_1D(complex * pCTData, complex * pCFData, int nLevel); 
VOID WINAPI DIBFFT_2D(complex * pCTData, int nWidth, int nHeight, complex * pCFData); 
#endif