为了账号安全,请及时绑定邮箱和手机立即绑定

作业社区

探索学习新天地,共享知识资源!

0 提交作业
0 布置作业
0 满分作业
得分 100
学习任务

别摸我的键盘 的学生作业:

#include #include #include #include #include #include #include void print_frame_sizes(int fd, unsigned int pixel_format) { struct v4l2_frmsizeenum frmsize; memset(&frmsize, 0, sizeof(frmsize)); frmsize.pixel_format = pixel_format; printf("===== 支持的帧尺寸 =====\n"); for (frmsize.index = 0; ioctl(fd, VIDIOC_ENUM_FRAMESIZES, &frmsize) == 0; frmsize.index++) { if (frmsize.type == V4L2_FRMSIZE_TYPE_DISCRETE) { printf("分辨率: %dx%d\n", frmsize.discrete.width, frmsize.discrete.height); } else if (frmsize.type == V4L2_FRMSIZE_TYPE_STEPWISE) { printf("分辨率范围: %dx%d 到 %dx%d (步长 %d)\n", frmsize.stepwise.min_width, frmsize.stepwise.min_height, frmsize.stepwise.max_width, frmsize.stepwise.max_height, frmsize.stepwise.step_width); } } } int main(int argc, char const *argv[]) { int ret = 0; int fd = open("/dev/video0", O_RDWR); struct v4l2_capability cap = {0}; ioctl(fd, VIDIOC_QUERYCAP, &cap); // 相机的能力集 // Width/Height printf("===== 获取相机的能力集 =====\n"); printf("cap.driver = %s \n", cap.driver); // 驱动名,通常是uvcvideo printf("cap.card = %s \n", cap.card); // Device名,厂商定制 printf("cap.bus_info = %s \n", cap.bus_info); // 总线信息 printf("cap.version = %d \n", cap.version); // 内核版本 printf("cap.capabilities = %x \n", cap.capabilities); // 所有能力集 printf("cap.device_caps = %x \n", cap.device_caps); // 开放能力集 printf("cap.reserved = %x \n", cap.reserved); // 保留 // 获取相机支持的格式信息 struct v4l2_fmtdesc fmt = { .index = 0, // 第0种支持的格式. .type = V4L2_BUF_TYPE_VIDEO_CAPTURE, // 拍照模式下. }; printf("===== 获取相机支持的格式信息 =====\n"); while ((ret = ioctl(fd, VIDIOC_ENUM_FMT, &fmt)) == 0) { printf("{pixelformat = %c%c%c%c},description = '%s'\n", fmt.pixelformat & 0xff, (fmt.pixelformat >> 8) & 0xff, (fmt.pixelformat >> 16) & 0xff, (fmt.pixelformat >> 24) & 0xff, fmt.description); fmt.index++; }; // 打印支持的帧尺寸(分辨率) struct v4l2_fmtdesc fmtdesc; memset(&fmtdesc, 0, sizeof(fmtdesc)); fmtdesc.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; fmtdesc.index = 0; if (ioctl(fd, VIDIOC_ENUM_FMT, &fmtdesc) == 0) { print_frame_sizes(fd, fmtdesc.pixelformat); } return 0; }

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号