예제 #1
0
int main(int argc, char* argv[]) {
    if (!init(argc, argv)) return 1;
    if (!initKinect()) return 1;

    // Initialize textures
    glGenTextures(1, &textureId);
    glBindTexture(GL_TEXTURE_2D, textureId);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, (GLvoid*) data);
    glBindTexture(GL_TEXTURE_2D, 0);

    // OpenGL setup
    glClearColor(0,0,0,0);
    glClearDepth(1.0f);
    glEnable(GL_TEXTURE_2D);

    // Camera setup
    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, width, height, 0, 1, -1);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    // Main loop
    execute();
    return 0;
}
예제 #2
0
kKinect::kKinect(void)
{
	initKinect();
	pUser[0] = 0;
	nUsers = 1;
	skeleton = 0;
}
int main(int argc, char* argv[]) {
    if (!init(argc, argv)) return 1;
    if (!initKinect()) return 1;

    // OpenGL setup
    glClearColor(0,0,0,0);
    glClearDepth(1.0f);

	// Set up array buffers
	glGenBuffers(1, &vboId);
	glBindBuffer(GL_ARRAY_BUFFER, vboId);
	glGenBuffers(1, &cboId);
	glBindBuffer(GL_ARRAY_BUFFER, cboId);

    // Camera setup
    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
	gluPerspective(45, width /(GLdouble) height, 0.1, 1000);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
	gluLookAt(0,0,0,0,0,1,0,1,0);

    // Main loop
    execute();
    return 0;
}
//--------------------------------------------------------------
void ofApp::setup(){
	ofSetWindowShape(1920, 1080);
	ofSetFrameRate(30);

	if (!initKinect()) exit();

	colorImage.allocate(colorWidth, colorHeight, OF_IMAGE_COLOR_ALPHA);
}
예제 #5
0
//--------------------------------------------------------------
void testApp::setup(){
    initData();
    ofSetBackgroundColor(230, 230, 230);
    initUI(); //Initialize UI
	/* Finish with UI Kinect setting up*/
#ifndef __APPLE__
#ifndef __NO_KINECT__
    initKinect();
#endif
#endif
	ofSetFrameRate(60);
}
예제 #6
0
KinectV2Module::KinectV2Module() :
	Module("Kinect V2"),
	curBodyIndex(-1)
{
	bool initResult = initKinect();
	if (!initResult) return;

	startTimer(20); //50 fps

	leftHandX = valuesCC.addFloatParameter("Left Hand X", "Left hand X", 0, -2, 2);
	leftHandY = valuesCC.addFloatParameter("Left Hand Y", "Left hand Y", 0, -2, 2);
	rightHandX = valuesCC.addFloatParameter("Right Hand X", "Right Hand X", 0, -2, 2);
	rightHandY = valuesCC.addFloatParameter("Right Hand Y", "Right Hand Y", 0, -2, 2);
	handsDistance = valuesCC.addFloatParameter("Hands Distance", "Hands Distance", 0, 0, 3);
	handsAngle = valuesCC.addFloatParameter("Hands Rotation", "Hands Rotation", 0, 0, 360);
	leftHandOpen = valuesCC.addBoolParameter("Left Hand Open", "Left Hand Open", false);
	rightHandOpen = valuesCC.addBoolParameter("Right Hand Open", "Right Hand Open", false);
}
예제 #7
0
int main () 
{
	std::cout << "starting server..."<<std::endl;


	fps = 25;
	frameDuration = (int) round(1000.0 / (float) fps);
    
	//  Prepare our context and socket
	zmq::context_t context(1);
	zmq::socket_t socket(context, ZMQ_REP);
	
	try {
		socket.bind ("tcp://*:5555");
	} catch (zmq::error_t error) {
		std::cout << "Error Binding to address" << std::endl;
		std::cout << error.what();
	
		exit(1);
	}
	
	// starting kinect
	if (initKinect()==false) {
		std::cout << "Kinect Init Failed. Quiting..." << std::endl;
		
		exit(2);
	}
	
	
	int bufferSize = 3*640*480;
	char *depth=(char *)malloc(bufferSize);
	memset(depth, 255, bufferSize);
	kinectControl->setDepthMid(depth);
	
    while (true) {
        
        //  Wait for next request from client
		std::string request;
		try {
			request = s_recv(socket);
		}
		catch (zmq::error_t error) {
			std::cout << "Error recieving message." << std::endl;
			std::cout << error.what();
			exit(1);
		}
		
		if (request.compare("getRGB") == 0) {
			try {
				uint8_t *rgb = kinectControl->getRGB();
				zmq::message_t message(bufferSize);
				memcpy(message.data(), rgb, bufferSize);
				socket.send(message);
			}
			catch (zmq::error_t error) {
				std::cout << "Error sending RGB image." << std::endl;
				std::cout << error.what();
				exit(1);				
			}
			/*
			uint8_t *rgb = kinectControl->getRGB();
			s_send(socket, (char *) rgb);
			 */
		}	
		
		if (request.compare("getDepthmap") == 0) {		
			try {
				zmq::message_t message(bufferSize);
				memcpy(message.data(), depth, bufferSize);
				socket.send(message);
			}
			catch (zmq::error_t error) {
				std::cout << "Error sending depth image." << std::endl;
				std::cout << error.what();
				exit(1);
				
			}
			
		}		
		
		//usleep(frameDuration);	
		s_sleep(frameDuration);
    }
	
	socket.close();
	return 0;
}