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

📄 hourglassfilterbank.h

📁 A set of C++ and Matlab routines implementing the surfacelet transform surfacelet的一个非常好用的工具箱
💻 H
字号:
//////////////////////////////////////////////////////////////////////////
//	SurfBox-C++ (c) 
//////////////////////////////////////////////////////////////////////////
//
//	Yue Lu and Minh N. Do
//
//	Department of Electrical and Computer Engineering
//	Coordinated Science Laboratory
//	University of Illinois at Urbana-Champaign
//
//////////////////////////////////////////////////////////////////////////
//
//	HourglassFilterBank.h
//
//	Implementation of the hourglass filter bank
//	
//	First created: 02-28-06
//	Last modified: 04-15-06
//
//////////////////////////////////////////////////////////////////////////

#ifndef HOURGLASS_FILTER_BANK_HEADER
#define HOURGLASS_FILTER_BANK_HEADER

#include "SurfArray.h"
#include "SurfMatrix.h"


class HourglassFilterBank
{
public:
	HourglassFilterBank(void);
	~HourglassFilterBank(void);

	//	Hourglass Filter Bank Decomposition
	void GetDecomposition(SurfArray &InArray, SurfArray OutArrays[], bool OutputInFourierDomain,
		int mSize = 15, double beta = 2.5, double lambda = 4.0);

	//	Hourglass Filter Bank Reconstruction
	void GetReconstruction(SurfArray InArrays[], SurfArray& OutArray, 
		bool OutputInFourierDomain, int mSize = 15, double beta = 2.5, double lambda = 4.0);

private:
    // Filtering operation for the decomposition step.
	void DecompositionFiltering(int nDims, int* pDims, double *pDataIn, double *pDataOut[], 
		SurfMatrix *pHourglass[]);

    // Filtering operation for the reconstruction step.
    void ReconstructionFiltering(int nDims, int* pDims, double *pDataIn[], double *pDataOut, 
        SurfMatrix *pHourglass[]);

    // Get hourglass filters at all possible 2-D planes.
    void GetHourglassFilters(int nDims, int *pDims, SurfMatrix *pMappingMatrix,
		SurfMatrix *pHourglassFilters[], double lambda);

	// Get the mapping kernel for the fan-shaped frequency response
	void GetDiamondMapping(int nOrder, double beta, SurfMatrix *pMappingMatrix);

	// Get the N-point Kaiser window
	void GetKaiserWindow(int nOrder, double beta, double* pWin);

	// Calculate the 0th-order modified Bessel function I_0(x)
	double CalculateI0(double x);

	// Calculate the sinc function y = sinc(x) = sin(\pi x) / (\pi x)
	double Sinc(double x);
	
};

#endif

//	This software is provided "as-is", without any express or implied
//	warranty. In no event will the authors be held liable for any 
//	damages arising from the use of this software.

⌨️ 快捷键说明

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