Ahm*_*dem 2 c ubuntu webcam-capture
我正在编写一个简单的 C 代码,用于从网络摄像头捕获图像并将其保存为 Ubuntu 上的 jpeg 文件。这是使用的代码:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 76800 // number of pixels (320x240 for my webcam)
int main() {
FILE *camera, *grab;
camera=fopen("/dev/video0", "rb");
grab=fopen("grab.jpeg", "wb");
float data[SIZE];
fread(data, sizeof(data[0]), SIZE, camera);
fwrite(data, sizeof(data[0]), SIZE, grab);
fclose(camera);
fclose(grab);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
生成的文件不是 jpeg,如何修改我的代码以在最后获取 jpeg 或 png 文件?
这行不通。因为相机是一个复杂的设备,您必须设置分辨率、配色方案和其他一些重要数据才能开始捕获。
你应该使用像 libuvc 这样的东西。
https://ken.tossell.net/libuvc/doc/group__device.html
你可以在这里查看。在第 614 行中,他们试图找到一个设备并将其用于摄像头抓取。我认为这是一个很好的例子。
https://github.com/gadLinux/OpenHMD-RiftPlayground/blob/master/src/main.c
基本上你必须初始化上下文,找到相机并使用它。
| 归档时间: |
|
| 查看次数: |
7963 次 |
| 最近记录: |