📄 cap_file.c
字号:
#include "cam.h"#include "utils.h"int main(int argc, char *argv[]) { int id = 0; int n = 5; int skip = 6; struct cam c; for (;;) { int t = getopt(argc, argv, "n:f:d:h"); if (t == -1) { break; } switch (t) { case 'n': if (sscanf(optarg, "%d", &n) != 1) { fprintf(stderr, "error optarg: %s\n", optarg); exit(-1); } if (n < 0) { fprintf(stderr, "n should be positive\n"); exit(-1); } printf("set n=%d\n", n); break; case 'f': if (sscanf(optarg, "%d", &t) != 1) { fprintf(stderr, "error optarg: %s\n", optarg); exit(-1); } if (t <= 0 || t > 30) { fprintf(stderr, "framerate should be (0, 30]\n"); break; } skip = (60 / t + 1) >> 1; printf("using skip %d (framerate %f)\n", skip, 30.0 / skip); break; case 'd': if (sscanf(optarg, "%d", &id) != 1) { fprintf(stderr, "error optarg\n"); exit(-1); } printf("using video%d\n", id); break; case 'h': fprintf(stderr, "Usage: %s [option]\n" "-d n\tset cam id n (default 0)\n" "-n n\tcapture n frames (default 5)\n" "-f n\tset framerate n (default 5)\n" "-h\tprint this help\n", argv[0]); return 0; case '?': break; default: fprintf(stderr, "error option: %d\n", t); exit(-1); } } cam_init(&c, id); cam_capture(&c); char filename[8]; int i = 1; for (; i <= n; ++i) { int j = 0; for (; j<skip; ++j) { cam_sync(&c); cam_capture(&c); } fprintf(stderr, "\r%d", i); sprintf(filename, "%d.%s", i, "raw"); msave(filename, c.src, RAW_SIZE); } printf("\n"); cam_close(&c); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -