void cv_blob_locator_init(void) { // Red board in sunlight color_lum_min = 100; color_lum_max = 200; color_cb_min = 140; color_cb_max = 255; color_cr_min = 140; color_cr_max = 255; // Lamp during night color_lum_min = 180; color_lum_max = 255; color_cb_min = 100; color_cb_max = 150; color_cr_min = 100; color_cr_max = 150; cv_blob_locator_reset = 0; georeference_init(); cv_add(cv_blob_locator_func); cv_add(cv_marker_func); cv_add(cv_window_func); }
/** * Initialize the view video */ void viewvideo_init(void) { char save_name[512]; cv_add(viewvideo_function); viewvideo.is_streaming = TRUE; #if VIEWVIDEO_USE_NETCAT // Create an Netcat receiver file for the streaming sprintf(save_name, "%s/netcat-recv.sh", STRINGIFY(VIEWVIDEO_SHOT_PATH)); FILE *fp = fopen(save_name, "w"); if (fp != NULL) { fprintf(fp, "i=0\n"); fprintf(fp, "while true\n"); fprintf(fp, "do\n"); fprintf(fp, "\tn=$(printf \"%%04d\" $i)\n"); fprintf(fp, "\tnc -l 0.0.0.0 %d > img_${n}.jpg\n", (int)(VIEWVIDEO_PORT_OUT)); fprintf(fp, "\ti=$((i+1))\n"); fprintf(fp, "done\n"); fclose(fp); } else { printf("[viewvideo] Failed to create netcat receiver file.\n"); } #else // Open udp socket udp_socket_create(&video_sock, STRINGIFY(VIEWVIDEO_HOST), VIEWVIDEO_PORT_OUT, -1, VIEWVIDEO_BROADCAST); // Create an SDP file for the streaming sprintf(save_name, "%s/stream.sdp", STRINGIFY(VIEWVIDEO_SHOT_PATH)); FILE *fp = fopen(save_name, "w"); if (fp != NULL) { fprintf(fp, "v=0\n"); fprintf(fp, "m=video %d RTP/AVP 26\n", (int)(VIEWVIDEO_PORT_OUT)); fprintf(fp, "c=IN IP4 0.0.0.0\n"); fclose(fp); } else { printf("[viewvideo] Failed to create SDP file.\n"); } #endif }
/** * Initialize the optical flow module for the bottom camera */ void opticflow_module_init(void) { // Subscribe to the altitude above ground level ABI messages AbiBindMsgAGL(OPTICFLOW_AGL_ID, &opticflow_agl_ev, opticflow_agl_cb); // Set the opticflow state to 0 opticflow_state.phi = 0; opticflow_state.theta = 0; opticflow_state.agl = 0; // Initialize the opticflow calculation opticflow_got_result = false; cv_add(opticflow_module_calc); #if PERIODIC_TELEMETRY register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_OPTIC_FLOW_EST, opticflow_telem_send); #endif }
extern void detect_window_init(void) { cv_add(detect_window); }
void variance_calculator_init(void) { cv_add(opencv_func); }