v4l2采集MJPG然后保存为JPG

目的:绕过yuyv的格式,不需要yuyv转换为jpg的算法。 要点:

1、一个支持MJPG的摄像头

2、初始化设备时候,将V4L2_PIX_FMT_YUYV改为V4L2_PIX_FMT_MJPEG

将       fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
改为      fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_MJPEG;

这样就将从摄像头获取的YUYV数据改为MJPG格式的图片了

3、可以通过如下函数测试,将从摄像头读取的buffer保存到本地的硬盘

//保存为图片  test.jpg
FILE *fp = NULL;
fp = fopen("test.jpg", "w");
if(fp != NULL)
{
    fwrite(buffers[buf.index].start, 1,buffers[buf.index].length, fp);
    sync();
    fclose(fp);
}

源码链接:
http://download.csdn.net/detail/fendoubasaonian/9352255

你可能感兴趣的:(工作总结,Linux驱动)