亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? programgpu.h

?? SiftGPU is an implementation of SIFT [1] for GPU. SiftGPU processes pixels parallely to build Gaussi
?? H
字號:
////////////////////////////////////////////////////////////////////////////
//	File:		ProgramGPU.h
//	Author:		Changchang Wu
//	Description : Based class for GPU programs
//		ProgramGPU:	base class of ProgramCG and ProgramGLSL
//		FilterProgram:	base class of FilterGLCG, FilterGLSL, FilterPKCG
//		ShaderBag:	base class of ShaderBagCG, ShaderBagPKCG and ShaderBagGLSL
//
//	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 _PROGRAM_GPU_H
#define _PROGRAM_GPU_H

////////////////////////////////////////////////////////////////////////////
//class		ProgramGPU
//description:	pure virtual class
//				provides a common interface of CG and GLSL programs
//				two implementations are ProgramCG and ProgramGLSL
///////////////////////////////////////////////////////////////////////////
class GLTexImage;
class ProgramGPU
{
public:
	//use a gpu program
	virtual int UseProgram() = 0;
	//not used
	virtual ~ProgramGPU(){};
};

///////////////////////////////////////////////////////////////////////////
//class			FilterProgram
//description:	virtual	
//				common interface of CG and GLSL gaussian filters
///////////////////////////////////////////////////////////////////////////
class FilterProgram
{
public:
	ProgramGPU * s_shader_h;
	ProgramGPU * s_shader_v;
	int				_size;
	int				_id; 
	//run filter
	void	RunFilter(GLTexImage* dst, GLTexImage*src, GLTexImage* tmp = NULL);
	//create seperable gaussian filter
	virtual ProgramGPU* CreateFilterH(float kernel[], float offset[], int width)=0;
	virtual ProgramGPU* CreateFilterV(float kernel[], float offset[], int height)=0;
	//create seperable gaussian filter of packed version
	virtual ProgramGPU* CreateFilterHPK(float kernel[], float offset[], int width)=0;
	virtual ProgramGPU* CreateFilterVPK(float kernel[], float offset[], int height)=0;
	//create gaussian filter
	void	CreateGaussianFilter(float sigma);
	FilterProgram()
	{
		s_shader_h = NULL;
		s_shader_v = NULL;
		_size = 0;
		_id = 0; 
	}
	virtual ~FilterProgram()
	{
		if(s_shader_h) delete s_shader_h;
		if(s_shader_v) delete s_shader_v;
	}
};

/////////////////////////////////////////////////////////////////////////////////
//class ShaderBag
//desciption:	pure virtual class
//				provides storage and usage interface of all the shaders for SIFT
//				three implementations are ShaderBagCG, ShaderBagPKCG and ShaderBagGLSL
/////////////////////////////////////////////////////////////////////////////////
class ShaderBag
{
public:
	//shader:	rgb to gray
	ProgramGPU  * s_gray;
	//shader:	copy keypoint to PBO
	ProgramGPU  * s_copy_key;
	//shader:	debug view
	ProgramGPU  * s_debug;
	//shader:	orientation
	//shader:	assign simple orientation to keypoints if hardware is low
	ProgramGPU  * s_orientation;
	//shader:	display gaussian levels
	ProgramGPU  * s_display_gaussian;
	//shader:	display difference of gassian
	ProgramGPU  * s_display_dog;
	//shader:	display  gradient
	ProgramGPU  * s_display_grad;
	//shader:	display keypoints as red(maximum) and blue (minimum)
	ProgramGPU  * s_display_keys;
	//shader:	up/down-sample
	ProgramGPU  * s_sampling;
	//shader:	compute gradient/dog
	ProgramGPU  * s_grad_pass;
	ProgramGPU  * s_dog_pass;
	//shader:   keypoint detection in one pass
	ProgramGPU  * s_keypoint;
	ProgramGPU  * s_seperate_sp;
	//shader:   feature list generations..
	ProgramGPU	* s_genlist_init_tight;
	ProgramGPU	* s_genlist_init_ex;
	ProgramGPU	* s_genlist_histo;
	ProgramGPU	* s_genlist_start;
	ProgramGPU	* s_genlist_step;
	ProgramGPU	* s_genlist_end;
	ProgramGPU	* s_zero_pass;

	//shader:	generate vertex to display SIFT as a square
	ProgramGPU  * s_vertex_list;

	//shader:	descriptor
	ProgramGPU  * s_descriptor_fp;

	//shader:	copy pixels to margin
	ProgramGPU	* s_margin_copy;
public:
	virtual void SetGenListInitParam(int w, int h){};
	virtual void SetGenListEndParam(int ktex){};
	virtual void SetMarginCopyParam(int xmax, int ymax){};
	virtual void LoadDescriptorShader(){};
	virtual void SetFeatureDescirptorParam(int gtex, int otex, float dwidth, float fwidth, float width, float height, float sigma){};
	virtual void SetFeatureOrientationParam(int gtex, int width, int height, float sigma, int stex, float step){};
	virtual void SetSimpleOrientationInput(int oTex, float sigma, float sigma_step){};
	virtual void LoadOrientationShader() =0;
	virtual void SetGenListStartParam(float width, int tex0) =0;
	virtual void LoadGenListShader(int ndoglev, int nlev)=0;
	virtual void UnloadProgram()=0;
	virtual void LoadKeypointShader(float threshold, float edgeTrheshold) = 0;
	virtual int  LoadKeypointShaderMR(float threshold, float edgeThreshold){return 0;}
	virtual void LoadFixedShaders()=0;
	virtual void LoadDisplayShaders() = 0;
	virtual void SetDogTexParam(int texU, int texD)=0;
	virtual void SetGradPassParam(int texP=0){}
	virtual void SetGenListStepParam(int tex, int tex0) = 0;
	virtual void SetGenVBOParam( float width, float fwidth, float size)=0;
	ShaderBag()
	{
		s_debug = 0;
		s_orientation = 0;
		s_display_gaussian = 0;
		s_display_dog = 0;
		s_display_grad = 0;
		s_display_keys = 0;
		s_sampling = 0;
		s_grad_pass = 0;
		s_dog_pass = 0;
		s_keypoint = 0;
		s_seperate_sp = 0;
		s_genlist_init_tight = 0;
		s_genlist_init_ex = 0;
		s_genlist_histo = 0;
		s_genlist_start = 0;
		s_genlist_step = 0;
		s_genlist_end = 0;
		s_vertex_list = 0;
		s_descriptor_fp = 0;
		s_margin_copy = 0;

	}
	virtual ~ShaderBag(); 

};
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲图片激情小说| 91视视频在线观看入口直接观看www| 欧美日韩国产一二三| 亚洲免费观看在线视频| 欧美色老头old∨ideo| 日韩和欧美一区二区三区| 91精选在线观看| 国产美女久久久久| 国产精品麻豆一区二区| 在线国产亚洲欧美| 蜜桃av一区二区| 国产精品久久久久久亚洲毛片| 色综合咪咪久久| 日韩在线a电影| 国产欧美一区二区在线| 在线亚洲人成电影网站色www| 国产高清在线精品| 日本一区二区三区电影| 在线观看一区不卡| 美女一区二区在线观看| 一区二区中文视频| 91精品国产高清一区二区三区蜜臀| 国产精品一二三区| 亚洲一区二区三区四区在线免费观看 | 亚洲欧洲一区二区在线播放| 欧美三级电影在线观看| 国产一区二区毛片| 亚洲一级二级三级| 国产三级精品三级| 69堂成人精品免费视频| 成人app在线观看| 日本亚洲一区二区| 亚洲色大成网站www久久九九| 91精品国产高清一区二区三区蜜臀| 不卡高清视频专区| 免费成人小视频| 亚洲男人天堂av| 久久久久久黄色| 在线不卡a资源高清| 96av麻豆蜜桃一区二区| 精品一二线国产| 亚洲不卡一区二区三区| 国产精品二区一区二区aⅴ污介绍| 91精品国产综合久久婷婷香蕉| 成人福利在线看| 国产在线精品视频| 亚洲gay无套男同| 亚洲女同一区二区| 国产精品三级在线观看| 日韩免费视频线观看| 欧美精品高清视频| 在线日韩一区二区| 99久久免费国产| 国产成人免费av在线| 久久99国产精品免费网站| 大尺度一区二区| 久草中文综合在线| 美女高潮久久久| 免费观看在线色综合| 天天色天天爱天天射综合| 一区二区三区成人| 一区二区三区不卡视频| 亚洲人xxxx| 亚洲欧美激情小说另类| 中文字幕在线一区| 国产精品无人区| 国产精品三级av| 国产精品久久久久久久久动漫| 国产欧美精品一区aⅴ影院| 精品蜜桃在线看| 欧美精品一区二区三区四区| 日韩欧美亚洲国产另类| 日韩免费福利电影在线观看| 日韩欧美区一区二| 欧美精品一区二区久久久| 精品国产污污免费网站入口 | 国产一二精品视频| 久久精品理论片| 国产一区亚洲一区| 国产成人在线看| 成人av集中营| 色欧美88888久久久久久影院| 91国偷自产一区二区三区观看| 91黄色激情网站| 67194成人在线观看| 欧美一区二区在线免费播放| 欧美大白屁股肥臀xxxxxx| 日韩欧美不卡在线观看视频| 久久综合久久综合亚洲| 国产精品无圣光一区二区| 亚洲天堂精品视频| 亚洲狠狠爱一区二区三区| 日日夜夜精品免费视频| 激情欧美一区二区| www.欧美日韩国产在线| 色哟哟一区二区三区| 欧美美女网站色| 久久亚洲免费视频| 亚洲精品少妇30p| 日本成人在线电影网| 国产很黄免费观看久久| 91福利视频网站| 日韩一区二区三区精品视频| 国产亚洲欧美激情| 亚洲免费高清视频在线| 丝袜亚洲另类丝袜在线| 国产成人精品1024| 欧美吻胸吃奶大尺度电影| 欧美mv日韩mv国产网站app| 国产清纯在线一区二区www| 亚洲裸体在线观看| 男女性色大片免费观看一区二区| 国产成人a级片| 欧美高清视频在线高清观看mv色露露十八| 日韩视频一区二区在线观看| 国产精品护士白丝一区av| 日本成人中文字幕| 99精品视频免费在线观看| 欧美一区二区黄色| 国产精品二三区| 精品一区二区三区在线视频| 91视频免费播放| 2020国产成人综合网| 亚洲国产欧美在线| 成人黄页毛片网站| 制服丝袜中文字幕一区| 亚洲日穴在线视频| 国内精品伊人久久久久av一坑| 欧美午夜一区二区| 亚洲国产精品黑人久久久| 免费亚洲电影在线| 欧美中文字幕一区二区三区| 亚洲国产成人一区二区三区| 麻豆精品一区二区综合av| 欧洲生活片亚洲生活在线观看| 久久久久久久久99精品| 日韩av一区二区三区| 色老综合老女人久久久| 国产精品丝袜黑色高跟| 精品在线播放免费| 欧美精品一二三| 亚洲精品国产无天堂网2021| 成人av免费在线播放| 国产欧美久久久精品影院 | 国产福利一区在线| 欧美一区二区三区在线观看| 亚洲综合一区二区精品导航| 99国产精品久久久久| 日本一区二区三区视频视频| 韩国毛片一区二区三区| 欧美一级一级性生活免费录像| 亚洲最新视频在线播放| 色婷婷av久久久久久久| 亚洲视频在线观看三级| 成人app网站| 中文欧美字幕免费| 国产91富婆露脸刺激对白| 26uuu成人网一区二区三区| 美国毛片一区二区三区| 日韩欧美一区二区免费| 蜜臀av在线播放一区二区三区| 欧美久久久久久蜜桃| 午夜欧美2019年伦理| 欧美日韩国产首页在线观看| 五月天亚洲精品| 777久久久精品| 免费看日韩精品| 久久综合久久鬼色中文字| 国产曰批免费观看久久久| 久久久亚洲综合| 成人中文字幕电影| 国产精品久久久久永久免费观看 | 日韩一区二区三区免费观看| 免费在线观看不卡| 欧美mv日韩mv国产网站| 国产又粗又猛又爽又黄91精品| 日韩视频一区二区| 久久99国产精品久久99果冻传媒| 久久久亚洲欧洲日产国码αv| 粉嫩aⅴ一区二区三区四区五区 | 久久久一区二区| 99re热视频这里只精品| 亚洲一二三四久久| 欧美一二三四在线| 国产成人综合亚洲91猫咪| 国产精品看片你懂得| 欧美日韩一区不卡| 精品在线免费视频| 中文字幕日韩欧美一区二区三区| 色综合色综合色综合| 欧美bbbbb| 国产精品国产三级国产普通话三级| 91精彩视频在线观看| 青青国产91久久久久久| 久久久久久一级片| 在线视频综合导航| 麻豆国产欧美一区二区三区| 国产精品免费视频一区| 欧美日韩国产小视频| 国产91在线观看丝袜|