Exemplo n.º 1
0
int
main (int argc, char *argv[])
{
  unsigned char *data;
  int len;
  JpegDecoder *dec;
  char *fn = "biglebowski.jpg";
  unsigned char *ptr;
  int rowstride;
  int width;
  int height;

  dec = jpeg_decoder_new ();

  if (argc > 1)
    fn = argv[1];
  data = getfile (fn, &len);

  jpeg_decoder_addbits (dec, data, len);
  jpeg_decoder_decode (dec);

  jpeg_decoder_get_component_ptr (dec, 1, &ptr, &rowstride);
  jpeg_decoder_get_component_size (dec, 1, &width, &height);

  dump_pgm (ptr, rowstride, width, height);

  return 0;
}
Exemplo n.º 2
0
void task_main(int argc, char *argv[])
{
	_is_running = true;
	int ret = 0;
	struct frame_data frame;
	memset(&frame, 0, sizeof(frame));
	uint32_t timeout_cnt = 0;

	// Main loop
	while (!_task_should_exit) {

		ret = g_dev->get_frame(frame);

		if (ret < 0) {
			PX4_ERR("Get Frame failed");
			continue;

		} else if (ret == 1) {
			// No image in buffer
			usleep(1000);
			++timeout_cnt;

			if (timeout_cnt > 1000) {
				PX4_WARN("No frames received for 1 sec");
				timeout_cnt = 0;
			}

			continue;
		}

		timeout_cnt = 0;

		// Write images into a file
		if (_trigger > 0) {
			PX4_INFO("Trigger camera");

			dump_pgm(frame.data, frame.bytes, frame.seq, frame.timestamp);
			--_trigger;
		}

		/***************************************************************
		 *
		 * Optical Flow computation
		 *
		 **************************************************************/

		ret = g_dev->put_frame(frame);

		if (ret < 0) {
			PX4_ERR("Put Frame failed");
		}
	}

	_is_running = false;
}
Exemplo n.º 3
0
int
main (int argc, char *argv[])
{
  unsigned char *data;
  int len;
  JpegDecoder *dec;
  char *fn = "c:\\data\\liboil\\test.jpg";
  unsigned char *ptr;
  int rowstride;
  int width;
  int height;

  /*if (argc < 2) {
        printf("jpeg_test <file.jpg>\n");
        exit(1);
  }*/
  if (argc > 1)
        fn = argv[1];
  
  std_log(LOG_FILENAME_LINE, "Test Started examples_jpeg");
  dec = jpeg_decoder_new ();    //to create decoder instance
  
  data = getfile (fn, &len);

  jpeg_decoder_addbits (dec, data, len);
  jpeg_decoder_decode (dec);

  jpeg_decoder_get_component_ptr (dec, 1, &ptr, &rowstride);
  jpeg_decoder_get_component_size (dec, 1, &width, &height);

  dump_pgm (ptr, rowstride, width, height);
  
  std_log(LOG_FILENAME_LINE, "Test Successful");
  create_xml(0);
  return 0;
}
Exemplo n.º 4
0
static void process_image(const void *p, int size)
{
    int i, newi, newsize=0;
    struct timespec frame_time;
    int y_temp, y2_temp, u_temp, v_temp;
    unsigned char *pptr = (unsigned char *)p;

    // record when process was called
    clock_gettime(CLOCK_REALTIME, &frame_time);    

    framecnt++;
    printf("frame %d: ", framecnt);

    // This just dumps the frame to a file now, but you could replace with whatever image
    // processing you wish.
    //

    if(fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_GREY)
    {
        printf("Dump graymap as-is size %d\n", size);
        dump_pgm(p, size, framecnt, &frame_time);
    }

    else if(fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
    {

#if defined(COLOR_CONVERT)
        printf("Dump YUYV converted to RGB size %d\n", size);
       
        // Pixels are YU and YV alternating, so YUYV which is 4 bytes
        // We want RGB, so RGBRGB which is 6 bytes
        //
        for(i=0, newi=0; i<size; i=i+4, newi=newi+6)
        {
            y_temp=(int)pptr[i]; u_temp=(int)pptr[i+1]; y2_temp=(int)pptr[i+2]; v_temp=(int)pptr[i+3];
            yuv2rgb(y_temp, u_temp, v_temp, &bigbuffer[newi], &bigbuffer[newi+1], &bigbuffer[newi+2]);
            yuv2rgb(y2_temp, u_temp, v_temp, &bigbuffer[newi+3], &bigbuffer[newi+4], &bigbuffer[newi+5]);
        }

        dump_ppm(bigbuffer, ((size*6)/4), framecnt, &frame_time);
#else
        printf("Dump YUYV converted to YY size %d\n", size);
       
        // Pixels are YU and YV alternating, so YUYV which is 4 bytes
        // We want Y, so YY which is 2 bytes
        //
        for(i=0, newi=0; i<size; i=i+4, newi=newi+2)
        {
            // Y1=first byte and Y2=third byte
            bigbuffer[newi]=pptr[i];
            bigbuffer[newi+1]=pptr[i+2];
        }

        dump_pgm(bigbuffer, (size/2), framecnt, &frame_time);
#endif

    }

    else if(fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_RGB24)
    {
        printf("Dump RGB as-is size %d\n", size);
        dump_ppm(p, size, framecnt, &frame_time);
    }
    else
    {
        printf("ERROR - unknown dump format\n");
    }

    fflush(stderr);
    //fprintf(stderr, ".");
    fflush(stdout);
}