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; }
JNIEXPORT void JNICALL Java_com_libfreenect_KinectRGBCamera_captureRawImage (JNIEnv * e, jobject o) { env = e; obj = o; freenect_context *f_ctx; freenect_device *f_dev; printf("Kinect camera test\n"); if (freenect_init(&f_ctx, NULL) < 0) { printf("freenect_init() failed\n"); } if (freenect_open_device(f_ctx, &f_dev, 0) < 0) { printf("Could not open device\n"); } printf("Set RGB Callback"); freenect_set_rgb_callback(f_dev, rgb_cb); printf("Starting RGB"); freenect_start_rgb(f_dev); while(freenect_process_events(f_ctx) >= 0 ); freenect_close_device(f_dev); }
/** \brief Start (resume) the data acquisition process. */ void KinectDriver::start () { freenect_start_depth (f_dev_); if (config_.color_format == FREENECT_FORMAT_IR) freenect_start_ir (f_dev_); else freenect_start_rgb (f_dev_); started_ = true; }
//--------------------------------------------------------------------------- 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 *network_rgb(void *arg) { int childlen; struct sockaddr_in childaddr; childlen = sizeof(childaddr); while ( !die ) { printf("### Wait rgb client\n"); rgb_child = accept(s_rgb, (struct sockaddr *)&childaddr, (unsigned int *)&childlen); if ( rgb_child < 0 ) { fprintf(stderr, "Error on accept() for rgb, exit rgb thread.\n"); break; } printf("### Got rgb client\n"); send_policy_file(rgb_child); rgb_connected = 1; freenect_start_rgb(f_dev); } 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 ) { 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; }
void startRGB() { if(freenect_start_rgb(m_dev) != 0) throw std::runtime_error("Cannot start RGB callback"); }
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" ); }