static int end_frame(AVFilterLink *inlink) { RemovelogoContext *removelogo = inlink->dst->priv; AVFilterLink *outlink = inlink->dst->outputs[0]; AVFilterBufferRef *inpicref = inlink ->cur_buf; AVFilterBufferRef *outpicref = outlink->out_buf; int direct = inpicref == outpicref; blur_image(removelogo->mask, inpicref ->data[0], inpicref ->linesize[0], outpicref->data[0], outpicref->linesize[0], removelogo->full_mask_data, inlink->w, inlink->w, inlink->h, direct, &removelogo->full_mask_bbox); blur_image(removelogo->mask, inpicref ->data[1], inpicref ->linesize[1], outpicref->data[1], outpicref->linesize[1], removelogo->half_mask_data, inlink->w/2, inlink->w/2, inlink->h/2, direct, &removelogo->half_mask_bbox); blur_image(removelogo->mask, inpicref ->data[2], inpicref ->linesize[2], outpicref->data[2], outpicref->linesize[2], removelogo->half_mask_data, inlink->w/2, inlink->w/2, inlink->h/2, direct, &removelogo->half_mask_bbox); ff_draw_slice(outlink, 0, inlink->h, 1); return ff_end_frame(outlink); }
int main(int argc, char *argv[]) { char *filename = malloc(strlen(argv[1]) + 4 + 1); char *filenameWrite = malloc(strlen(argv[1]) + 8 + 1); long double *imageArray; long double *imageBlurred; int x, y, z; sprintf(filename, "%s.txt", argv[1]); sprintf(filenameWrite, "%s_out.txt", argv[1]); x = strtol(argv[2], NULL, 10); y = strtol(argv[3], NULL, 10); z = strtol(argv[4], NULL, 10); imageArray = malloc(sizeof(long double) * x * y * z); imageBlurred = malloc(sizeof(long double) * x * y * z); read_file_to_array(x, y, z, filename, imageArray); blur_image(x, y, z, imageArray, imageBlurred); write_array_to_file(x, y, z, filenameWrite, imageBlurred); free(imageArray); free(imageBlurred); free(filename); free(filenameWrite); return 0; }
void TldImage::createFromImage( unsigned char* values, int _width, int _height, bool blur) { // Get pointer // const unsigned char *values = image; width = _width; height = _height; if (blur) { data = blur_image(values,_width,_height);; } else { data = values; } }
static int filter_frame(AVFilterLink *inlink, AVFrame *inpicref) { RemovelogoContext *s = inlink->dst->priv; AVFilterLink *outlink = inlink->dst->outputs[0]; AVFrame *outpicref; int direct = 0; if (av_frame_is_writable(inpicref)) { direct = 1; outpicref = inpicref; } else { outpicref = ff_get_video_buffer(outlink, outlink->w, outlink->h); if (!outpicref) { av_frame_free(&inpicref); return AVERROR(ENOMEM); } av_frame_copy_props(outpicref, inpicref); } blur_image(s->mask, inpicref ->data[0], inpicref ->linesize[0], outpicref->data[0], outpicref->linesize[0], s->full_mask_data, inlink->w, inlink->w, inlink->h, direct, &s->full_mask_bbox); blur_image(s->mask, inpicref ->data[1], inpicref ->linesize[1], outpicref->data[1], outpicref->linesize[1], s->half_mask_data, inlink->w/2, inlink->w/2, inlink->h/2, direct, &s->half_mask_bbox); blur_image(s->mask, inpicref ->data[2], inpicref ->linesize[2], outpicref->data[2], outpicref->linesize[2], s->half_mask_data, inlink->w/2, inlink->w/2, inlink->h/2, direct, &s->half_mask_bbox); if (!direct) av_frame_free(&inpicref); return ff_filter_frame(outlink, outpicref); }
static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref) { RemovelogoContext *removelogo = inlink->dst->priv; AVFilterLink *outlink = inlink->dst->outputs[0]; AVFilterBufferRef *outpicref; int direct = 0; if (inpicref->perms & AV_PERM_WRITE) { direct = 1; outpicref = inpicref; } else { outpicref = ff_get_video_buffer(outlink, AV_PERM_WRITE, outlink->w, outlink->h); if (!outpicref) { avfilter_unref_bufferp(&inpicref); return AVERROR(ENOMEM); } avfilter_copy_buffer_ref_props(outpicref, inpicref); } blur_image(removelogo->mask, inpicref ->data[0], inpicref ->linesize[0], outpicref->data[0], outpicref->linesize[0], removelogo->full_mask_data, inlink->w, inlink->w, inlink->h, direct, &removelogo->full_mask_bbox); blur_image(removelogo->mask, inpicref ->data[1], inpicref ->linesize[1], outpicref->data[1], outpicref->linesize[1], removelogo->half_mask_data, inlink->w/2, inlink->w/2, inlink->h/2, direct, &removelogo->half_mask_bbox); blur_image(removelogo->mask, inpicref ->data[2], inpicref ->linesize[2], outpicref->data[2], outpicref->linesize[2], removelogo->half_mask_data, inlink->w/2, inlink->w/2, inlink->h/2, direct, &removelogo->half_mask_bbox); if (!direct) avfilter_unref_bufferp(&inpicref); return ff_filter_frame(outlink, outpicref); }
int main(int argc, char **argv) { if (argc < 2) { printf("Usage: ./main <function> <data> <sensitivity>\n"); return -1; } string function, data; int sensitivity; if (argc == 2) function = argv[1]; else if (argc == 3) { function = argv[1]; data = argv[2]; } else if (argc == 4) { function = argv[1]; data = argv[2]; sensitivity = atoi(argv[3]); } if (function.compare("--options") == 0) print_options(); else if (function.compare("blur") == 0) blur_image(data); else if (function.compare("videoCapture") == 0) video_capture(); else if (function.compare("cannyVideo") == 0) canny_video(); else if (function.compare("displayImage") == 0) display_image(data); else if (function.compare("videoFromFile") == 0) video_from_file(data); else if (function.compare("objectDetection") == 0) object_tracking(data, sensitivity); else if (function.compare("lucasKanade") == 0){ //Mat imgA = imread("/Users/edwinweill/Clemson/opencvData/images/blue/IMG_1604.JPG", CV_LOAD_IMAGE_GRAYSCALE); //Mat imgB = imread("/Users/edwinweill/Clemson/opencvData/images/blue/IMG_1605.jpg", CV_LOAD_IMAGE_GRAYSCALE); //namedWindow("test1",1); //namedWindow("test2",1); //imshow("test1",imgA); //imshow("test2",imgB); //cvWaitKey(0); lucas_kanade("/Users/edwinweill/Clemson/opencvData/images/blue/IMG_1604.JPG", "/Users/edwinweill/Clemson/opencvData/images/blue/IMG_1605.jpg"); } else printf("Unknown option\n"); return 0; }
int main(int arg_count, char **args) { if(arg_count == 4) { struct image input = make_image_from_file(args[1]); struct image output = make_image(input.type, input.row_count, input.column_count, input.max_value); blur_image(&input, &output, strtoul(args[3], 0, 0)); write_image_to_file(&output, args[2]); } else { fprintf(stderr, "Essaie plutôt : %s input.ppm output.ppm 10", args[0]); } }
int main(int argc, char *argv[]) { struct spwd *sp = getspnam(getenv("USER")); if (!sp) { fprintf(stderr, "Get password failed\n"); return EXIT_FAILURE; } char *password = sp->sp_pwdp; // Parse command line parameters. struct arguments arguments = { .radius = 16, .iterations = 2, }; argp_parse(&argp, argc, argv, 0, NULL, &arguments); // Connect to X11. xcb_connection_t *conn = xcb_connect(NULL, NULL); const xcb_setup_t *setup = xcb_get_setup(conn); xcb_screen_iterator_t iter = xcb_setup_roots_iterator(setup); xcb_screen_t *screen = iter.data; // Initialize keyboard stuff. Keyboard keyboard = { .conn = conn, }; init_keyboard(&keyboard); // Take a screenshot and blur it. xcb_image_t *screenshot = take_screenshot(conn, screen); blur_image(screenshot, arguments.radius, arguments.iterations); // Create window. xcb_window_t window = create_window(conn, screen, screenshot); if (!grab_inputs(conn, screen)) { fprintf(stderr, "Failed to grab keyboard and pointer.\n"); exit(EXIT_FAILURE); } xcb_map_window(conn, window); // Original screenshot image is not needed anymore because it's copied to the X server as pixmap. xcb_image_destroy(screenshot); xcb_flush(conn); // XXX: Max password length? char input[256] = { '\0' }; char *cursor = &input[0]; running = true; xcb_generic_event_t *event; while (running && (event = xcb_wait_for_event(conn))) { switch (event->response_type & ~0x80) { case XCB_EXPOSE: break; case XCB_KEY_PRESS: if (handle_key_press(&keyboard, ((xcb_key_press_event_t *)event)->detail, input, &cursor)) { if (strcmp(crypt(input, password), password) == 0) { running = false; } else { input[0] = '\0'; cursor = &input[0]; } } break; default: if (event->response_type == keyboard.first_xkb_event) { process_keyboard_event(&keyboard, event); } break; } free(event); } free_keyboard(&keyboard); xcb_unmap_window(conn, window); xcb_destroy_window(conn, window); xcb_disconnect(conn); return EXIT_SUCCESS; }