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

📄 pyramidcu.h

📁 SiftGPU is an implementation of SIFT [1] for GPU. SiftGPU processes pixels parallely to build Gaussi
💻 H
字号:
////////////////////////////////////////////////////////////////////////////
//	File:		PyramidCU.h
//	Author:		Changchang Wu
//	Description : interface for the PyramdCU
//
//	Copyright (c) 2007 University of North Carolina at Chapel Hill
//	All Rights Reserved
//
//	Permission to use, copy, modify and distribute this software and its
//	documentation for educational, research and non-profit purposes, without
//	fee, and without a written agreement is hereby granted, provided that the
//	above copyright notice and the following paragraph appear in all copies.
//	
//	The University of North Carolina at Chapel Hill make no representations
//	about the suitability of this software for any purpose. It is provided
//	'as is' without express or implied warranty. 
//
//	Please send BUG REPORTS to ccwu@cs.unc.edu
//
////////////////////////////////////////////////////////////////////////////



#ifndef _PYRAMID_CU_H
#define _PYRAMID_CU_H
#if defined(CUDA_SIFTGPU_ENABLED)

class CuTexImage;
class SiftPyramid;
class PyramidCU:public SiftPyramid
{
	CuTexImage* _inputTex;
	CuTexImage* _allPyramid;
	CuTexImage* _histoPyramidTex;
	CuTexImage* _featureTex;
	CuTexImage* _descriptorTex;
	CuTexImage* _orientationTex;
	GLuint		_bufferPBO;
public:
	virtual void GetFeatureDescriptors();
	virtual void GenerateFeatureListTex();
	virtual void ReshapeFeatureListCPU();
	virtual void GenerateFeatureDisplayVBO();
	virtual void DestroySharedData();
	virtual void DestroyPerLevelData();
	virtual void DestroyPyramidData();
	virtual void DownloadKeypoints();
	virtual void GenerateFeatureListCPU();
	virtual void GenerateFeatureList();
	virtual GLTexImage* GetLevelTexture(int octave, int level);
	virtual GLTexImage* GetLevelTexture(int octave, int level, int dataName);
	virtual void BuildPyramid(GLTexInput * input);
	virtual void DetectKeypointsEX();
	virtual void ComputeGradient();
	virtual void GetFeatureOrientations();
	virtual void GetSimplifiedOrientation();
	virtual void InitPyramid(int w, int h, int ds = 0);
	virtual void ResizePyramid(int w, int h);
	//////////
	void CopyGradientTex();
	static int IsCudaSupported();
	int ResizeFeatureStorage();
	int FitHistogramPyramid(CuTexImage* tex);
	void SetLevelFeatureNum(int idx, int fcount);
	void ConvertInputToCU(GLTexInput* input);
	GLTexImage* ConvertTexCU2GL(CuTexImage* tex, int dataName);
	CuTexImage* GetBaseLevel(int octave, int dataName = DATA_GAUSSIAN);
	void TruncateWidth(int& w) { w &= 0xfffffffc; }
public:
	PyramidCU(SiftParam& sp);
	virtual ~PyramidCU();
};



#endif
#endif

⌨️ 快捷键说明

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