int main() { init_window("Blurcode", 320, 80); CvCapture *capture = init_camera(); IplImage *input = query_frame(capture); AppData data; CvSize size = cvSize(input->width / 2, input->height / 2); create_images(&data, size, 3); CvSize debug_size = cvSize(COLUMNS * size.width, ROWS * size.height); data.debug = cvCreateImage(debug_size, IPL_DEPTH_8U, 3); printf("camera=%dx%d zoomed=%dx%d debug=%dx%d\n", input->width, input->height, size.width, size.height, data.debug->width, data.debug->height); int delay = 100; while ((cvWaitKey(delay) & 255) != 27) { delay = 10; input = query_frame(capture); cvCvtColor(input, input, CV_BGR2RGB); // Horizontal flip (mirror display) cvFlip(input, input, 1); cvResize(input, data.rgb, CV_INTER_AREA); cvSplit(data.rgb, data.red, NULL, NULL, NULL); cvSmooth(data.red, data.red, CV_GAUSSIAN, 3, 3, 0, 0); decode(&data, ANGLE_OF_VIEW, "input trace", NULL, NULL); cvResetImageROI(data.debug); cvCvtColor(data.debug, data.debug, CV_RGB2BGR); cvShowImage("Blurcode", data.debug); } cvReleaseCapture(&capture); cvReleaseImage(&data.debug); release_images(&data); cvDestroyWindow("Blurcode"); return 0; }
void GlzDecoderWindow::clear() { Lock lock(_win_modifiers_mutex); release_images(); init(); }
int main (int argc, char **argv) { DFBSurfaceDescription dsc; DFBSurfaceDescription back_dsc; DFBRectangle rect; IDirectFBImageProvider *provider; IDirectFBEventBuffer *keybuffer; DFBInputEvent evt; int width; int height; int quit; unsigned int cycle_len; struct timeval tv; long start_time; long current_time; long frame_delay; long delay; frame_delay = delay = FRAME_DELAY; cycle_len = CYCLE_LEN; quit = FALSE; DFBCHECK (DirectFBInit (&argc, &argv)); if (argc > 1 && argv[1] && strcmp (argv[1], "--on-crack") == 0) on_crack = TRUE; /* create the super interface */ DFBCHECK (DirectFBCreate (&dfb)); dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN); DFBCHECK (dfb->CreateInputEventBuffer (dfb, DICAPS_KEYS, DFB_FALSE, &keybuffer)); /* create the primary surface */ dsc.flags = DSDESC_CAPS; dsc.caps = DSCAPS_PRIMARY; if (!on_crack) { dsc.caps |= DSCAPS_TRIPLE; if (dfb->CreateSurface (dfb, &dsc, &primary) != DFB_OK) { dsc.caps = (dsc.caps & ~DSCAPS_TRIPLE) | DSCAPS_DOUBLE; DFBCHECK (dfb->CreateSurface (dfb, &dsc, &primary)); } } else DFBCHECK (dfb->CreateSurface (dfb, &dsc, &primary)); /* load size of background image */ DFBCHECK (dfb->CreateImageProvider (dfb, BACKGROUND_NAME, &provider)); DFBCHECK (provider->GetSurfaceDescription (provider, &back_dsc)); back_width = back_dsc.width; back_height = back_dsc.height; if (!back_width || !back_height) return -1; /* create the background surface */ DFBCHECK (dfb->CreateSurface (dfb, &back_dsc, &background)); provider->RenderTo (provider, background, NULL); provider->Release (provider); /* create subsurface in the middle of the screen */ primary->GetSize (primary, &width, &height); rect.x = (width - back_width) / 2; rect.y = (height - back_height) / 2; rect.w = back_width; rect.h = back_height; primary->GetSubSurface (primary, &rect, &sub); if (on_crack) { /* clear screen */ primary->Clear (primary, 0, 0, 0, 0xff); } else { /* fill screen and backbuffers with tiled background */ primary->TileBlit (primary, background, NULL, rect.x, rect.y); primary->Flip (primary, NULL, 0) ; primary->TileBlit (primary, background, NULL, rect.x, rect.y); primary->Flip (primary, NULL, 0) ; primary->TileBlit (primary, background, NULL, rect.x, rect.y); primary->SetClip (primary, NULL); } /* load the remaining images */ load_images (); frame_num = 0; while (!quit) { gettimeofday (&tv, NULL); start_time = tv.tv_sec * 1000 + tv.tv_usec / 1000; timeout (cycle_len); while (keybuffer->GetEvent (keybuffer, DFB_EVENT(&evt)) == DFB_OK) { if (evt.type == DIET_KEYPRESS) { switch (evt.key_id) { case DIKI_LEFT: frame_delay = MIN (500, frame_delay + 5); break; case DIKI_RIGHT: frame_delay = MAX (0, frame_delay - 5); break; case DIKI_UP: cycle_len = MIN (600, cycle_len + 6); break; case DIKI_DOWN: cycle_len = cycle_len > 6 ? cycle_len - 6 : 6; break; case DIKI_SPACE: case DIKI_ENTER: colorize = !colorize; break; case DIKI_A: alpha = !alpha; break; case DIKI_HOME: cycle_len = CYCLE_LEN; frame_delay = FRAME_DELAY; colorize = TRUE; alpha = TRUE; break; case DIKI_ESCAPE: case DIKI_Q: quit = TRUE; break; default: break; } switch (evt.key_symbol) { case DIKS_OK: colorize = !colorize; break; case DIKS_BACK: case DIKS_STOP: quit = TRUE; break; default: break; } } } if (frame_delay) { gettimeofday (&tv, NULL); current_time = tv.tv_sec * 1000 + tv.tv_usec / 1000; delay = frame_delay - (current_time - start_time); if (delay > 0) usleep (1000 * delay); } } keybuffer->Release (keybuffer); release_images (); background->Release (background); sub->Release (sub); primary->Release (primary); dfb->Release (dfb); return 0; }
int main(int argc,char *argv[]) { //struct image *norImages = NULL; //unsigned int num_nor_images = 0; struct image download_agent = { NULL, 0, 0, "", 0 }; struct image download_agent_TCM = { NULL, 0, 0, "", 0 }; struct image download_EPP = { NULL, 0, 0, "", 0 }; struct image nor_flash_table = { NULL, 0, 0, "", 0 }; struct image nand_flash_table = { NULL, 0, 0, "", 0 }; struct image *linux_images = NULL; //unsigned int num_images = 0; unsigned int num_linux_images = 0; unsigned int bmt_address = 0; //int i = 0; struct image boot_loader = { NULL, 0, 0, "", 0 }; struct image ext_boot_loader = { NULL, 0, 0, "", 0 }; //struct image dsp_boot_loader = { NULL, 0, 0, "", 0 }; struct image rom_image = { NULL, 0, 0, "", 0 }; //struct image secondary_rom_image = { NULL, 0, 0, "", 0 }; //struct image dsp_rom_image = { NULL, 0, 0, "", 0 }; //struct image demand_paging_image = { NULL, 0, 0, "", 0 }; //jone.wang@ //freopen(TEMPORARY_LOG_FILE, "a", stdout); setbuf(stdout, NULL); //freopen(TEMPORARY_LOG_FILE, "a", stderr); setbuf(stderr, NULL); //fflush(stdout); //fflush(stderr); //setbuf(stdout, NULL); //setbuf(stderr, NULL); //fprintf(stdout, "Brom Ite main =================\n"); //added by xiaohui 4-19 if (argc < 2) { fprintf(stderr, "Usage: %s filepath [write_block_size] [trace_log]\n", basename(argv[0])); return -1; } char path[BUFSIZ] = ""; strcpy(path, argv[1]); /* "/system/etc/firmware/modem" normally */ if (access(path, R_OK) != 0) { fprintf(stderr, "path '%s` is invalid. %d, %s\n", path, errno, strerror(errno)); return -1; } path[strlen(path)] = '/'; LOG("path: %s\n", path); if (generate_all_image_path(path) != 0) return -1; //strcpy(dev_path,argv[2]); //pipe_fd = atoi(argv[3]); //pipe_buf = (char *)malloc(PIPE_BUF_SIZE); //if(!pipe_buf) //return 0; //printf("dev_path=%s\n",dev_path); //printf("pipe fd=%d\n",pipe_fd); log_feedback("begin to feedback!!!\n"); //printf("%s\n",pipe_buf); //return 0; //added by xiaohui 4-19 if (argc > 2) { int psiz = atoi(argv[2]); if (psiz > 0) { PSIZ = psiz; } } LOG("PSIZ = %d\n", PSIZ); int trace_log = 0; if (argc > 3) { if (argv[3][0] == '0') trace_log = 0; else trace_log = 1; } if (trace_log) LOG("enable log tracing\n"); enable_log = trace_log; int rc = -1; do { // Acquire pointers to DA, flash tables, and images if ((rc = acquire_download_agent(&download_agent,DOWNLOAD_AGENT_FILE_PATH,DOWNLOAD_AGENT_LOAD_ADDR)) != 0) break; //acquire_download_agent(&download_agent_TCM,DOWNLOAD_AGENT_TCM_FILE_PATH, DOWNLOAD_AGENT_TCM_LOAD_ADDR); if ((rc = acquire_download_agent(&download_EPP,DOWNLOAD_EPP_FILE_PATH, DOWNLOAD_EPP_LOAD_ADDR)) != 0) break; if ((rc = acquire_flash_table(&nor_flash_table, NOR_FLASH_TABLE_FILE_PATH)) != 0) break; if ((rc = acquire_flash_table(&nand_flash_table, NAND_FLASH_TABLE_FILE_PATH)) != 0) break; //Acquire Boot loader if ((rc = acquire_image(&boot_loader, BOOT_LOADER_FILE_PATH,0)) != 0) break; if ((rc = acquire_image(&ext_boot_loader, EXT_BOOT_LOADER_FILE_PATH,0)) != 0) break; //acquire_image(&dsp_boot_loader, DSP_BOOT_LOADER_FILE_PATH,0); //Acquire ROM images if ((rc = acquire_image(&rom_image, ROM_FILE_PATH,0)) != 0) break; //acquire_image(&secondary_rom_image, SECONDARY_ROM_FILE_PATH,0); //acquire_image(&dsp_rom_image, DSP_ROM_FILE_PATH,0); //acquire_image(&demand_paging_image, DEMAND_PAGING_ROM0_FILE_PATH,0); //Acquire linux partition images if ((rc = acquire_linux_images(&linux_images, &num_linux_images, &bmt_address)) != 0) break; } while (0); if (rc != 0) return rc; rc = download_images(&download_agent, &download_agent_TCM, &nor_flash_table, &nand_flash_table, &download_EPP, &boot_loader, &ext_boot_loader, NULL, //&dsp_boot_loader, &rom_image, NULL, //&secondary_rom_image, NULL, //&dsp_rom_image, NULL, //&demand_paging_image, linux_images, (const struct ExternalMemorySetting *)&externalMemorySetting, sizeof(LINUX_PARTITION_IMAGE_FILE_NAME) / sizeof(LINUX_PARTITION_IMAGE_FILE_NAME[0]), //num_linux_images,modified by xiaohui 4-22 bmt_address, 1, /*0:UART, 1:USB*/ 1 /*0:NOR, 1:NAND*/); if (rc != S_DONE) { printf("download failed, rc %d\n", rc); } else { //jone.wang printf("download done\n"); } release_images(&linux_images, num_linux_images); release_image(&boot_loader); release_image(&ext_boot_loader); release_image(&rom_image); //release_image(&secondary_rom_image); //release_image(&demand_paging_image); release_flash_table(&nand_flash_table); release_flash_table(&nor_flash_table); release_download_agent(&download_agent); release_download_agent(&download_agent_TCM); release_download_agent(&download_EPP); //added by xiaohui 4-19 //close(pipe_fd); //free(pipe_buf); printf("brom_lite end, rc %d\n", rc); return rc; }
int main(int argc, char **argv) { if (argc < 2) { fprintf(stderr, "usage: picture [options] <infile> ...\n"); fprintf(stderr, "options: --test run test suite\n"); fprintf(stderr, " --force don't skip existing output files\n"); return 1; } char basename[100]; char outfilename[200]; char linkfilename[200]; bool force = false; AppData data; null_images(&data); for (int n = 1; n < argc; n++) { if (strcmp(argv[n], "--test") == 0) { printf("Running dir8 test suite...\n"); dir8_test(); printf("Running dir16 test suite...\n"); dir16_test(); printf("Running checksums test suite...\n"); checksums_test(); continue; } else if (strcmp(argv[n], "--force") == 0) { force = true; continue; } char *infilename = argv[n]; char *slash = strrchr(infilename, '/'); if (!slash) slash = infilename - 1; strcpy(basename, slash + 1); char *ext = strrchr(basename, '.'); if (ext) ext[0] = 0; strcpy(outfilename, "output/"); strcat(outfilename, basename); strcat(outfilename, ".png"); strcpy(linkfilename, "digits/"); strcat(linkfilename, basename); if (!force) { FILE *fp = fopen(outfilename, "r"); if (fp) { // Skip existing output file. fclose(fp); continue; } } printf("%s => %s\n", infilename, outfilename); IplImage *input = cvLoadImage(infilename, CV_LOAD_IMAGE_COLOR); if (!input) { fprintf(stderr, "could not read %s\n", infilename); return 1; } int zoom = max(1, max(input->width, input->height) / 600); if (data.red == NULL || data.red->width != input->width / zoom || data.red->height != input->height / zoom) { if (data.red) release_images(&data); if (data.debug) cvReleaseImage(&data.debug); CvSize zoom_size = cvSize(input->width / zoom, input->height / zoom); create_images(&data, zoom_size, 4); CvSize debug_size = cvSize(COLUMNS * input->width / zoom, ROWS * input->height / zoom); printf("debug_size=%dx%d\n", debug_size.width, debug_size.height); data.debug = cvCreateImage(debug_size, IPL_DEPTH_8U, 3); } // printf("Resizing input from %dx%d to %dx%d...\n", // input->width, input->height, data.rgb->width, data.rgb->height); cvCvtColor(input, input, CV_BGR2RGB); cvResize(input, data.rgb, CV_INTER_AREA); cvSplit(data.rgb, data.red, NULL, NULL, NULL); // debug_image(&data, data.rgb); bool success = decode(&data, ANGLE_OF_VIEW, "gnuplot threshold trace simulator1 simulator3", NULL, NULL); if (success) { unlink(linkfilename); symlink(data.digits, linkfilename); printf("digits=%s\n", data.digits); } cvResetImageROI(data.debug); cvCvtColor(data.debug, data.debug, CV_RGB2BGR); if (cvSaveImage(outfilename, data.debug) == 0) { fprintf(stderr, "could not save output file\n"); return 1; } } if (data.red) release_images(&data); if (data.debug) cvReleaseImage(&data.debug); return 0; }