关于linux下摄像头的图像采集问题
刚接触linux,买了一个ARM开发板,想采集图像,用QT显示。厂家提供了一个源码,基本步骤就是:
1、打开/dev/video0
2、打开framebuffer
3、直接read摄像头文件(char[320*240*2]),把数据读取的数据拷贝到framebuffer,完成显示。
问题:
1、这时用read()读取的数据是不是只是像素,不能算图像?我在把它存为QImage后,显示出来的是一片黑(QT有没有直接显示这种数据的方法)。
2、如果只是像素,那想存成图片,比如bmp格式,要如何操作呢?
3、如果用v4l2,设置fmt.fmt.pix.pixelformat=V4L2_PIX_FMT_RGB32之类的,得到的是否就是完整的图像了?
4、驱动好像支持v4l2,我说“好像”是因为,ioctl(fd,V4L2_QUERYCAP,&cap)及ioctl(fd,V4L2_ENUMINPUT,&input)时,能成功返回。其它的返回值全是-1。结果是没法设置图片格式,甚至是不支持i/o读取,也不支持内存映射。是不是ioctl返回-1,也能用v4l2啊?这部分很模糊。
希望高手不吝赐教!
(分绝对不是问题,可以加,我关心的是答案。)
[解决办法]
为什么要加 bmp 头再显示呢 ?
直接画在 framebuffer 上就能显示了啊 ,坐标也是可调的。
直接加上 bmp 头,再用 QImage 显示也是可以的,
但效率就比直接显示低了很多。不合适。
[解决办法]