示例#1
0
int gpuInit(){


	//initialize graphics and the camera
	InitGraphics();
	cout << "graphics initialized" << endl;

	ytexture.CreateGreyScale(PIC_WIDTH/2,MAIN_TEXTURE_HEIGHT);
	ytexture2.CreateGreyScale(PIC_WIDTH/2,MAIN_TEXTURE_HEIGHT);
		
	
	greysobeltexture.CreateRGBA(PIC_WIDTH/2, MAIN_TEXTURE_HEIGHT);
	greysobeltexture.GenerateFrameBuffer();

	greysobeltexture2.CreateRGBA(PIC_WIDTH/2, MAIN_TEXTURE_HEIGHT);
	greysobeltexture2.GenerateFrameBuffer();
	

	mediantexture.CreateRGBA(PIC_WIDTH/2, MAIN_TEXTURE_HEIGHT);
	mediantexture.GenerateFrameBuffer();

	mediantexture2.CreateRGBA(PIC_WIDTH/2, MAIN_TEXTURE_HEIGHT);
	mediantexture2.GenerateFrameBuffer();


	background = imread("background.jpg");
	
	if (background.empty()){
		cout << "reference image not found" << endl;
		return LOAD_ERROR; 	
	}
	int imgSize = background.total();
	
	
	//Allocate buffers for pixel Data and U and V fillings
	//Needs "zeros" to fill YUV image
	pixelData = new uchar[imgSize/2];
	pixelData2 = new uchar[imgSize/2];
	zeros = new uchar[imgSize];
	
	for(int i =0; i < background.rows; i++)
		for(int j = 0; j < background.cols; j++){
			zeros[background.cols*i + j] = 125;
		}


	//Fixes bit allignment problems
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	glPixelStorei(GL_PACK_ALIGNMENT, 1);
	
	//Allocate output pixel data
	output1 = malloc(greysobeltexture.GetWidth()*greysobeltexture.GetHeight()*4);
	output2 = malloc(greysobeltexture.GetWidth()*greysobeltexture.GetHeight()*4);

	return 0;
}
示例#2
0
void init_opengl_fcns ()
{
	cout << " Initializing OpenGL Graphics Library"<<endl;
	// <------------------------------------------------ Generate textures for image processing in OpenGL ----------------------------------------------> 

	ytexture.CreateGreyScale(MAIN_TEXTURE_WIDTH,MAIN_TEXTURE_HEIGHT);
	utexture.CreateGreyScale(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);
	vtexture.CreateGreyScale(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);

	hsv.CreateRGBA(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);
	hsv.GenerateFrameBuffer();

	gray.CreateRGBA(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);
	gray.GenerateFrameBuffer();

	tex.CreateRGBA(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);
	tex.GenerateFrameBuffer();
	
	lab.CreateRGBA(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);
	lab.GenerateFrameBuffer();
	
	kernel.CreateRGBA(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);
	kernel.GenerateFrameBuffer();
	
	kernelx.CreateRGBA(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);
	kernelx.GenerateFrameBuffer();
	
	kernely.CreateRGBA(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);
	kernely.GenerateFrameBuffer();
	
	laplacian.CreateRGBA(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);
	laplacian.GenerateFrameBuffer();
	
	undistort_img.CreateRGBA(MAIN_TEXTURE_WIDTH/2,MAIN_TEXTURE_HEIGHT/2);
	undistort_img.GenerateFrameBuffer();
	
	cout<<"Completed initializing OpenGL Graphics"<<endl<<endl;
}