Linux下使用V4L2读取获取拍照(获取静态图像)
2014-04-22 01:26
633 查看
#include <linux/videodev2.h>
1. 打开设备
2. 查询设备属性
3. 设置图像帧格式和像素大小
4. 读取一帧JPEG图像并写入文件
网上读取图像帧示例大多用mmap方式,但对于只读取几张静态图像而言,read方式足以。
句柄close的事儿就不累述了。
1. 打开设备
int fd = open("/dev/video0", O_RDWR);
2. 查询设备属性
struct v4l2_capability cap; ioctl(fd, VIDIOC_QUERYCAP, &cap);
3. 设置图像帧格式和像素大小
struct v4l2_format fmt; fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; fmt.fmt.pix.width = 640; fmt.fmt.pix.height = 480; fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_JPEG; 使用JPEG格式帧,用于静态图像采集 ioctl(fd, VIDIOC_S_FMT, &fmt);
4. 读取一帧JPEG图像并写入文件
void *buff = malloc(1024 * 1024); 分配缓存足以容纳一帧图像 size = read(fd, buff, 1024 * 1024); int filefd = open("./capture.jpg", O_RDWR | O_CREAT); write(filefd, buff, size);
网上读取图像帧示例大多用mmap方式,但对于只读取几张静态图像而言,read方式足以。
句柄close的事儿就不累述了。
相关文章推荐
- Linux下使用V4L2读取获取拍照(获取静态图像)
- 使用Linux的V4L2读取摄像头数据+Opencv图像处理
- 使用相机拍照获取图片后 有时候图像显示旋转
- 使用webcam 直接从内存获取图像 非读取ClipBoard或者File.
- V4L2(video 4 linux 2)视频采集接口使用说明
- linux下摄像头图像数据的获取
- 在Linux系统中使用who和whoami命令获取用户信息
- 使用FileReader对象的readAsDataURL方法来读取图像文件
- 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
- 在Linux控制台下使用libjpeg显示JPEG图像在framebuffer上
- linux下获取硬盘、内存、U盘大小及使用大小
- Linux获取帮助等基础命令的使用
- 在Linux控制台下使用libjpeg显示JPEG图像在framebuffer上
- 使用pytorch进行图像的顺序读取方法
- Linux下设置静态IP和获取动态IP的方法
- 使用VBA从海量Excel文件中模糊获取数据并生成新表(附实例) - (二) VBA跨Excel读取数据
- linux:用php语法写脚本且获取stdin/stdout的方式,对于不想使用bash语法非常有用
- 如何使用Linux命令 自动获取IP
- 利用过滤器,使用HttpServletResponse装饰器,获取流,生成静态文件。
- 使用GDAL获取HDF等数据集中的图像