源码用的是本论坛上某位大大的
如下
paint=new QPainter(this);
paint->begin(this);
v4l_open("/dev/video0",&device);
unsigned char *data = GrabData();
int x,y;
int i=0;
QImage img;
QRgb *point;
int r,g,b;
if(img.create(480,320,32,0,QImage::IgnoreEndian))
{
for(x=0;x<320;x++)
{
for(y=0;y<480;y++)
{
r=(int)data[i+2];
g=(int)data[i+1];
b=(int)data;
point = (QRgb *) img.scanLine(x)+y;
*point = qRgb(r,g,b);
i+=3;
}
}
}
paint->drawImage(10,10,img);
unsigned char *data = GrabData();是用采集数据的 用MMAP的方式
源码如下
v4l_grab_init(&device,480,320);
v4l_mmap_init(&device);
v4l_grab_frame(&device,frame);
for(i=0;i<2;i++)
{
v4l_grab_sync (&device);
frame=(frame+1)%2;
v4l_grab_frame(&device,frame);
buffer = v4l_get_address(&device);
}
return buffer;