Get Adobe Flash player

Personal Details

Name Stuart James
Letters hBSc MBCS
Current Work PhD University of Surrey
Address Guildford UK
Phone
Email Contact Form
Date of Birth June 1987 ( 23 )
Online Profiles Twitter, Facebook, LinkedIn, University of Surrey

Areas of Research

Sketch Based Video Retrieval

Video Retrieval

Image Retrieval

Object Recognition

Areas of Computing

Area Specifics
Languages C++, C, C#, Visual Basic, Prolog, Assembly
Shaders GLSL, HLSL, CG, Assembly
Frameworks OpenCV, .NET1.1, 2.0, 3.0, WPF, OpenGL, DirectX, OpenAL, FMOD
Platforms Win32, Win64, Win95-7, PPC, WM5-6, Linux, Game Cube, PSP, Xbox(XNA), Android
Tools Matlab,Visual Studio(6,.NET, 2005,2008), Borland Developer Studio 2006, SQL Server(2005/2008), Render Monkey, Shader Designer, gDEBugger, Visual Source Safe, Team Foundation Server, ProDG, Cygwin, SourceGear Vault/Fortress, SVN, Matlab
Subscriptions Game Developer Magazine, ACM, BCS, IEEE
Business Support Windows Server 2003-10, AD, Exchange, SQL, IIS, VPS, Dedicated

Work and Studentships

JCS Technology (Work)

University of Hull (Work)

University of Surrey (Work)

University of Surrey (Studentship)

// Define in header params
#define SURF_HESSIAN_THRESH 0.01f
using namespace cv;

/* GetSURFFeatures
 * This will clean up the cached values to avoid memory leaks
 *		IplImage*grayImg	-	Input grayscale image
 *		IplImage*mask		-	Mask to filter points
 */
void CFeatureSet::GetSURFFeatures(IplImage*grayImg,IplImage * mask){
	// Create output variables
	vector keyPoints;
	vector descriptor;

	// Create SURF Class
	SURF surf(SURF_HESSIAN_THRESH,4,2,false);

	// Generate Points and Descriptors
	surf(grayImg,mask,keyPoints,descriptor);

	// This is some code to put it into my data structure
	// see my FeatureSet.h Class for more details
	int length = surf.descriptorSize();
	float * desc = new float[length];
	for(int i = 0 ; i < (int)keyPoints.size() ; i++){
		KeyPoint t = keyPoints[i];
		// Parse the descriptor vector for the relevant descriptor
		for (int j = 0 ; j < length ; j++){
			desc[j] = descriptor[(i*length)+j];
		}
		// Create New Feature and pass in the details
		CFeat * feat = new CFeat(t.pt.x,t.pt.y,t.angle,t.octave,desc,length);
		// Store in feature vector
		_features.push_back(feat);
	}
	// Clean Up
	delete [] desc;
}
// Bugs caused by html displayer