⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fft.h

📁 将数字图像处理的一般算法都集中在一个MFC的框架中
💻 H
字号:
#ifndef _INSIDE_VISUAL_CPP_TRANSFORM
#define _INSIDE_VISUAL_CPP_TRANSFORM
#include"ImageCenterDib.h"


//宏定义,PI
#define PI 3.1415926

//复数类型结构体
struct ComplexNumber
{
	float imag;// imaginary虚部
	float real;//实部
};

//快速傅立叶变换类
class Transform_FFT:public ImgCenterDib
{
public:
	//输出图像每像素位数
	int m_nBitCountOut;
	
	//输出图像位图数据指针
	unsigned char * m_pImgDataOut;
	
	//输出图像颜色表
	LPRGBQUAD m_lpColorTableOut;
protected:
	
	//输出图像的宽
	int m_imgWidthOut;
	
	//输出图像的高
	int m_imgHeightOut;
	
	//输出图像颜色表长度
	int m_nColorTableLengthOut;
	
	//输入图像为非2的幂次的方阵时,扩展图像所需要的缓冲区指针
	unsigned char *m_pImgExpandBuf;
	
	//傅立叶变换缓冲区
	ComplexNumber *m_pFFTBuf;
	
	//图像是否被扩展的标志变量
	bool m_isExpanded;
	
public:
	//不带参数构造函数
	Transform_FFT();
	
	//带参数的构造函数
	Transform_FFT(CSize size, int nBitCount, LPRGBQUAD lpColorTable, 
		unsigned char *pImgData);
	
	//析构函数
	~Transform_FFT();
	
	//以像素为单位返回输出图像的宽和高
	CSize GetDimensions();
	
	//输入原图像数据
	void InputImgData(CSize size, int nBitCount, LPRGBQUAD lpColorTable, 
		unsigned char *pImgData);
	
	//图像傅立叶变换
	void Fourier();
	
	//傅立叶反变换
	void IFourier();
	
	//扩展的图像傅立叶变换
	void FourierEx();
	
	//扩展的傅立叶反变换
	void IFourierEx();
	
protected:
	//一维快速傅立叶正变换
	void FFT1D(ComplexNumber *arrayBuf, int n);
	
	//一维快速傅立叶反变换
	void IFFT1D(ComplexNumber *arrayBuf, int n);
	
	//二维快速傅立叶变换
	void ImgFFT2D(unsigned char* imgBuf, int width, int height, unsigned char *imgBufOut);
	
	//二维快速傅立叶变换
	void ImgIFFT2D(unsigned char* imgBufOut, int width, int height);
	
	//一维快速傅立叶正变换
	
	//一维快速傅立叶反变换
};

#endif // _INSIDE_VISUAL_CPP_TRANSFORM

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -