void *freenect_threadfunc(void *arg) { freenect_set_tilt_degs(f_dev,freenect_angle); freenect_set_led(f_dev,LED_RED); freenect_set_depth_callback(f_dev, depth_cb); freenect_set_rgb_callback(f_dev, rgb_cb); freenect_set_rgb_format(f_dev, FREENECT_FORMAT_RGB); freenect_set_depth_format(f_dev, FREENECT_FORMAT_11_BIT); printf("'w'-tilt up, 's'-level, 'x'-tilt down, '0'-'6'-select LED mode\n"); if ( pthread_create(&data_in_thread, NULL, data_in, NULL) ) { fprintf(stderr, "Error on pthread_create() for data_in\n"); } if ( pthread_create(&data_out_thread, NULL, data_out, NULL) ) { fprintf(stderr, "Error on pthread_create() for data_out\n"); } while(!die && freenect_process_events(f_ctx) >= 0 ); printf("\nshutting down streams...\n"); freenect_stop_depth(f_dev); freenect_stop_rgb(f_dev); network_close(); printf("-- done!\n"); return NULL; }
void *freenect_threadfunc(void *arg) { freenect_set_tilt_degs(f_dev,freenect_angle); freenect_set_led(f_dev,LED_RED); freenect_set_depth_callback(f_dev, depth_cb); freenect_set_rgb_callback(f_dev, rgb_cb); freenect_set_rgb_format(f_dev, FREENECT_FORMAT_RGB); freenect_set_depth_format(f_dev, FREENECT_FORMAT_11_BIT); freenect_start_depth(f_dev); freenect_start_rgb(f_dev); printf("'w'-tilt up, 's'-level, 'x'-tilt down, '0'-'6'-select LED mode\n"); while(!die && freenect_process_events(f_ctx) >= 0 ) { int16_t ax,ay,az; freenect_get_raw_accel(f_dev, &ax, &ay, &az); double dx,dy,dz; freenect_get_mks_accel(f_dev, &dx, &dy, &dz); printf("\r raw acceleration: %4d %4d %4d mks acceleration: %4f %4f %4f\r", ax, ay, az, dx, dy, dz); fflush(stdout); } printf("\nshutting down streams...\n"); freenect_stop_depth(f_dev); freenect_stop_rgb(f_dev); printf("-- done!\n"); return NULL; }
FreenectDevice(freenect_context *_ctx, int _index) { if(freenect_open_device(_ctx, &m_dev, _index) != 0) throw std::runtime_error("Cannot open Kinect"); freenect_set_user(m_dev, this); freenect_set_rgb_format(m_dev, FREENECT_FORMAT_RGB); freenect_set_depth_format(m_dev, FREENECT_FORMAT_11_BIT); freenect_set_depth_callback(m_dev, freenect_depth_callback); freenect_set_rgb_callback(m_dev, freenect_rgb_callback); }
//--------------------------------------------------------------------------- void ofxKinect::threadedFunction(){ if (freenect_init(&kinectContext, NULL) < 0) { ofLog(OF_LOG_ERROR, "ofxKinect: freenet_init failed"); } int number_devices = freenect_num_devices(kinectContext); ofLog(OF_LOG_VERBOSE, "ofxKinect: Number of Devices found: " + ofToString(number_devices)); if (number_devices < 1) { ofLog(OF_LOG_ERROR, "ofxKinect: didnt find a device"); return; } if (freenect_open_device(kinectContext, &kinectDevice, 0) < 0) { ofLog(OF_LOG_ERROR, "ofxKinect: could not open device"); return; } freenect_set_led(kinectDevice, LED_GREEN); freenect_set_depth_callback(kinectDevice, &grabDepthFrame); freenect_set_rgb_callback(kinectDevice, &grabRgbFrame); freenect_set_rgb_format(kinectDevice, FREENECT_FORMAT_RGB); freenect_set_depth_format(kinectDevice, FREENECT_FORMAT_11_BIT); ofLog(OF_LOG_VERBOSE, "ofxKinect: Connection opened"); freenect_start_depth(kinectDevice); freenect_start_rgb(kinectDevice); while (isThreadRunning()) { int16_t ax,ay,az; freenect_get_raw_accelerometers(kinectDevice, &ax, &ay, &az); rawAccel.set(ax, ay, az); double dx,dy,dz; freenect_get_mks_accelerometers(kinectDevice, &dx, &dy, &dz); mksAccel.set(dx, dy, dz); // printf("\r raw acceleration: %4d %4d %4d mks acceleration: %4f %4f %4f", ax, ay, az, dx, dy, dz); } }
void *freenect_threadfunc(void *arg) { freenect_set_tilt_degs(f_dev,freenect_angle); freenect_set_led(f_dev,LED_RED); freenect_set_depth_callback(f_dev, depth_cb); freenect_set_rgb_callback(f_dev, rgb_cb); freenect_set_rgb_format(f_dev, FREENECT_FORMAT_RGB); freenect_set_depth_format(f_dev, FREENECT_FORMAT_11_BIT); freenect_start_depth(f_dev); freenect_start_rgb(f_dev); printf("'w'-tilt up, 's'-level, 'x'-tilt down, '0'-'6'-select LED mode\n"); while(!die && freenect_process_events(f_ctx) >= 0 ) { freenect_raw_device_state* state; freenect_update_device_state(f_dev); state = freenect_get_device_state(f_dev); double dx,dy,dz; freenect_get_mks_accel(state, &dx, &dy, &dz); printf("\r raw acceleration: %4d %4d %4d mks acceleration: %4f %4f %4f", state->accelerometer_x, state->accelerometer_y, state->accelerometer_z, dx, dy, dz); fflush(stdout); } printf("\nshutting down streams...\n"); freenect_stop_depth(f_dev); freenect_stop_rgb(f_dev); freenect_close_device(f_dev); freenect_shutdown(f_ctx); printf("-- done!\n"); return NULL; }
int main(int argc, char **argv) { int i; for (i=0; i<2048; i++) { float v = i/2048.0; v = powf(v, 3)* 6; t_gamma[i] = v*6*256; } g_argc = argc; g_argv = argv; if (freenect_init(&f_ctx, NULL) < 0) { printf("freenect_init() failed\n"); return 1; } freenect_set_log_level(f_ctx, FREENECT_LOG_DEBUG); int nr_devices = freenect_num_devices (f_ctx); printf ("Number of devices found: %d\n", nr_devices); int user_device_number = 0; if (argc > 1) user_device_number = atoi(argv[1]); if (nr_devices < 1) return 1; if (freenect_open_device(f_ctx, &f_dev, user_device_number) < 0) { printf("Could not open device\n"); return 1; } if ( network_init() < 0 ) return -1; freenect_set_depth_callback(f_dev, depth_cb); freenect_set_rgb_callback(f_dev, rgb_cb); freenect_set_rgb_format(f_dev, FREENECT_FORMAT_RGB); freenect_set_depth_format(f_dev, FREENECT_FORMAT_11_BIT); //freenect_start_depth(f_dev); //freenect_set_led(f_dev,LED_RED); while(!die && freenect_process_events(f_ctx) >= 0 ){ char buffer[6]; int n = read(data_child, buffer, 1024); //printf("n: %d\n", n); if(n == 6){ if (buffer[0] == 1) { //MOTOR if (buffer[1] == 1) { //MOVE int angle; memcpy(&angle, &buffer[2], sizeof(int)); freenect_set_tilt_degs(f_dev,ntohl(angle)); } } } } network_close(); printf("-- done!\n"); pthread_exit(NULL); }
int main(int argc, char **argv) { int res; freenect_context *f_ctx; printf("Kinect camera test\n"); int i; for (i=0; i<2048; i++) { float v = i/2048.0; v = powf(v, 3)* 6; t_gamma[i] = v*6*256; } g_argc = argc; g_argv = argv; if (freenect_init(&f_ctx, NULL) < 0) { printf("freenect_init() failed\n"); return 1; } freenect_set_log_level(f_ctx, FREENECT_LOG_DEBUG); int nr_devices = freenect_num_devices (f_ctx); printf ("Number of devices found: %d\n", nr_devices); int user_device_number = 0; if (argc > 1) user_device_number = atoi(argv[1]); if (nr_devices < 1) return 1; if (freenect_open_device(f_ctx, &f_dev, user_device_number) < 0) { printf("Could not open device\n"); return 1; } freenect_set_tilt_degs(f_dev,freenect_angle); freenect_set_led(f_dev,LED_RED); freenect_set_depth_callback(f_dev, depth_cb); freenect_set_rgb_callback(f_dev, rgb_cb); freenect_set_rgb_format(f_dev, FREENECT_FORMAT_RGB); freenect_set_depth_format(f_dev, FREENECT_FORMAT_11_BIT); res = pthread_create(&gl_thread, NULL, gl_threadfunc, NULL); if (res) { printf("pthread_create failed\n"); return 1; } freenect_start_depth(f_dev); freenect_start_rgb(f_dev); printf("'w'-tilt up, 's'-level, 'x'-tilt down, '0'-'6'-select LED mode\n"); while(!die && freenect_process_events(f_ctx) >= 0 ) { int16_t ax,ay,az; freenect_get_raw_accel(f_dev, &ax, &ay, &az); double dx,dy,dz; freenect_get_mks_accel(f_dev, &dx, &dy, &dz); printf("\r raw acceleration: %4d %4d %4d mks acceleration: %4f %4f %4f\r", ax, ay, az, dx, dy, dz); fflush(stdout); } printf("-- done!\n"); pthread_exit(NULL); }
int main( int argc, char** argv ) { int res; int i; for (i=0; i<2048; i++) { float v = i/2048.0; v = powf(v, 3)* 6; t_gamma[i] = v*6*256; } printf("Kinect camera test\n"); if (freenect_init(&f_ctx, NULL) < 0) { printf("freenect_init() failed\n"); return 1; } if (freenect_open_device(f_ctx, &f_dev, 0) < 0) { printf("Could not open device\n"); return 1; } cvNamedWindow( "RGB", CV_WINDOW_AUTOSIZE ); cvMoveWindow( "RGB", 0, 0); rgbBack = cvCreateImage(cvSize(FREENECT_FRAME_W, FREENECT_FRAME_H), IPL_DEPTH_8U, 3); rgbFront = cvCreateImage(cvSize(FREENECT_FRAME_W, FREENECT_FRAME_H), IPL_DEPTH_8U, 3); cvNamedWindow( "Depth", CV_WINDOW_AUTOSIZE ); cvMoveWindow("Depth", FREENECT_FRAME_W, 0); depthBack = cvCreateImage(cvSize(FREENECT_FRAME_W, FREENECT_FRAME_H), IPL_DEPTH_8U, 3); depthFront = cvCreateImage(cvSize(FREENECT_FRAME_W, FREENECT_FRAME_H), IPL_DEPTH_8U, 3); freenect_set_depth_callback(f_dev, depth_cb); freenect_set_rgb_callback(f_dev, rgb_cb); freenect_set_rgb_format(f_dev, FREENECT_FORMAT_RGB); freenect_set_depth_format(f_dev, FREENECT_FORMAT_11_BIT); res = pthread_create(&kinect_thread, NULL, kinect_threadFunc, NULL); if (res) { printf("pthread_create failed\n"); return 1; } freenect_start_depth(f_dev); freenect_start_rgb(f_dev); while(1) { pthread_mutex_lock(&backbuf_mutex); { while (got_frames < 2) { pthread_cond_wait(&framesReady_cond, &backbuf_mutex); } cvConvertImage(rgbBack, rgbFront, CV_BGR2GRAY); cvConvertImage(depthBack, depthFront, CV_BGR2GRAY); got_frames = 0; } pthread_mutex_unlock(&backbuf_mutex); cvShowImage("RGB", rgbFront); cvShowImage("Depth", depthFront); char c = cvWaitKey(10); if( c == 27 ) break; } cvDestroyWindow( "RGB" ); cvDestroyWindow( "Depth" ); }