梦幻情缘1 发表于 2012-05-27 10:33

怎么用read控制USB摄像头采集图像数据?是read一次就采集一次?

我这么做的好像不是的,下面一段程序就是这个思路写的,但每三帧图像显示的是同一幅类似的画面,换句话就是我移动下物体后,三帧图像后才是该物体移动后的图像。


cam_fp = cam_init();
While(1)
{
read(cam_fp, buf, 640*480*24/8))
MyShowBuf(buf,0,0);   
}
在显示第一帧图像的时候,移动物体,显示的第二帧,第三帧的图像仍是移动前的,移动后的要好几帧后才显示。
这是什么情况?
好像是摄像头一瞬间采集了好几帧图像,每次read的是那一瞬间采集的几帧中的一帧,直到读完,采取采集下一个图像。如果是这样,怎么解决?
我开始以为usb摄像头句柄的内容超过我读取的图像数据大小640*480*3(驱动中设置的为640*480),所以我从句柄了读了(640*480*3)*5,然后从(640*480*3)*5取出一个显示结果发现,读同样的图像还是显示三次。
后来我就在读取图像数据前,用lseek偏移量定在usb摄像头句柄的0位置结果还是不行。
后来我以为是延时问题,就在读取图像数据后延时3秒,还是出现同样的问题。
不知是怎么回事。
还请大侠们帮忙。
页: [1]
查看完整版本: 怎么用read控制USB摄像头采集图像数据?是read一次就采集一次?