⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cap_file.c

📁 足球机器人自动程序
💻 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 + -