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

📄 pyramidfilterbank.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
//
//////////////////////////////////////////////////////////////////////////
//
//	PyramidFilterBank.h
//	
//	First created: 03-27-06
//	Last modified: 04-10-06
//
//////////////////////////////////////////////////////////////////////////

#ifndef PYRAMID_FILTER_BANK
#define PYRAMID_FILTER_BANK

#include "SurfArray.h"


// Three types of multiscale pyramid, each corresponding to a different redundancy ratio
enum Pyramid_Mode
{
	DOWNSAMPLE_1, // Most redundant, best quality
	DOWNSAMPLE_15, 
	DOWNSAMPLE_2, // Least redundant
} ;

// Smooth functions used in specifying the lowpass filters in the frequency domain
// These two are very similar in performance

enum SmoothFunctionType
{
	RAISED_COSINE,
	MEYER_VKBOOK,
};

//////////////////////////////////////////////////////////////////////////
//  Multidimensional multiscale pyramid
//////////////////////////////////////////////////////////////////////////

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

	// Multidimensional multiscale pyramid decomposition
	void GetDecomposition(SurfArray &InArray, SurfArray OutArrays[], 
		int Level, bool OutputInFourierDomain, enum Pyramid_Mode pyr_mode, enum SmoothFunctionType func_type);
	
    // Multidimensional multiscale pyramid reconstruction
    void GetReconstruction(SurfArray InArrays[], SurfArray &OutArray, 
		int Level, bool OutputInFourierDomain, Pyramid_Mode pyr_mode, SmoothFunctionType func_type);

private:
    // One level of decomposition in the multidimensional multiscale pyramid	
    void DecompositionOneStep(SurfArray &InArray, SurfArray &LowpassArray, SurfArray &HighpassArray,
		double w, double tbw, double D, SmoothFunctionType func_type);
	
    // One level of reconstruction in the multidimensional multiscale pyramid
    void ReconstructionOneStep(SurfArray &LowpassArray, SurfArray &HighpassArray, SurfArray &OutArray,
		double w, double tbw, double D, SmoothFunctionType func_type);

    // Obtain the parameters for pyramid decomposition at different levels
	void GetPyramidParameters(enum Pyramid_Mode pyr_mode, int Levels, double w_array[], 
		double tbw_array[], double D_array[]);
    
    // raised cosine
	double rcos(double x);

    // Meyer filter from the VK book
	double Meyer_vkbook(double x);

    // Calculate the 1-D lowpass filters
    void CalculateFilterValues1D(double *pValues, int dim, double w, double tbw, bool UseSymmExt, enum SmoothFunctionType func_type);

};

#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 + -