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; }
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; }