Exemple #1
0
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);
}
Exemple #2
0
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;   
    }  
}
Exemple #4
0
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);
}
Exemple #5
0
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);
}
Exemple #6
0
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;
}
Exemple #7
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]);
	}
}
Exemple #8
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;
}