Linux中RAW映像的范围是多少?

时间:2018-05-17 08:59:40

标签: linux webcam c99

我想处理网络摄像头流。它必须很快,所以我使用RAW格式的图像。在How to capture still image from webcam on linux之后,我制作了一个类似的程序。

#include <stdio.h>
#include <stdlib.h>
#include <float.h>

const int SIZE=320*240;
int main(){
FILE* camera, *output;
camera=fopen("/dev/video0","rb");
output=fopen("image.raw","wb");
float data[SIZE];
fread(data,sizeof(float),SIZE,camera);
float max=FLT_MAX;
for(int i=0;i<SIZE;i++){
data[i]=max-data[i];
}
fwrite(data,sizeof(float),SIZE,output);
fclose(camera); 
fclose(output);
return 0;
}

当我省略修改数据的行(data [i] = max-data [i];)时,一切正常,我得到的原始格式的图像与网络摄像头流相对应。但我希望像treshold一样进行简单的处理,然后反转图片的颜色。然而,FLT_MAX似乎不是解决方案,因为应用(data [i] = max-data [i])给了我一个垃圾图像(仍然可以被图像阅读软件读取,但人眼不再能够阅读)。请参阅corrupted image。因此,我的问题是:描述RAW图片的浮点值的范围是什么

编辑:我尝试了一些思考,我修改了处理图片的行到数据[i] = data [SIZE-i];并得到一个水平镜像图片所以我认为图片格式为每像素1浮点数,仍然没有&#39;知道范围。

0 个答案:

没有答案