• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 急:V4L2罗技C270图像采集大小设置 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 63868
精华: 0
发帖: 56
金钱: 280 两
威望: 56 点
贡献值: 0 点
综合积分: 112 分
注册时间: 2012-02-25
最后登录: 2015-04-28
楼主  发表于: 2014-03-14 09:53

 急:V4L2罗技C270图像采集大小设置

问题如下:在tiny210,Linux下用Qtopia2.2.0写的USB摄像头图像采集程序,V4L2设置图像采集大小为160*120,176*144时都能看到清楚的图像,但是设置为更高的如320*240,640*480时,打开程序就自动关闭,用printf输出fmt.fmt.pix.width和fmt.fmt.pix.height的值,只有176、144,这是为什么呢?是不是要改驱动呢?

这个问题对我目前的工作至关重要,急求各位大侠帮忙,不胜感激!
级别: 侠客
UID: 64424
精华: 0
发帖: 92
金钱: 465 两
威望: 93 点
贡献值: 0 点
综合积分: 184 分
注册时间: 2012-03-05
最后登录: 2018-09-02
1楼  发表于: 2014-03-14 12:39
无码无真相啊,贴下代码看看,尤其是V4L的设置那一部分
级别: 侠客
UID: 63868
精华: 0
发帖: 56
金钱: 280 两
威望: 56 点
贡献值: 0 点
综合积分: 112 分
注册时间: 2012-02-25
最后登录: 2015-04-28
2楼  发表于: 2014-03-14 19:48

 回 1楼(guocs2005) 的帖子

  struct v4l2_format fmt;  
  memset(&fmt, 0, sizeof(fmt));
  fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
  fmt.fmt.pix.width = WIDTH;
  fmt.fmt.pix.height = HEIGHT;
  fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
  fmt.fmt.pix.field       = V4L2_FIELD_INTERLACED;

前面已经
#define WIDTH 320
#define HEIGHT 240
级别: 侠客
UID: 64424
精华: 0
发帖: 92
金钱: 465 两
威望: 93 点
贡献值: 0 点
综合积分: 184 分
注册时间: 2012-03-05
最后登录: 2018-09-02
3楼  发表于: 2014-03-17 13:01
你的qtopia设置的buf的大小是多少?
级别: 侠客
UID: 63868
精华: 0
发帖: 56
金钱: 280 两
威望: 56 点
贡献值: 0 点
综合积分: 112 分
注册时间: 2012-02-25
最后登录: 2015-04-28
4楼  发表于: 2014-03-17 21:56

 回 3楼(guocs2005) 的帖子

是这样设置的:(unsigned char *)malloc(WIDTH*HEIGHT*3*sizeof(char))
级别: 侠客
UID: 64424
精华: 0
发帖: 92
金钱: 465 两
威望: 93 点
贡献值: 0 点
综合积分: 184 分
注册时间: 2012-03-05
最后登录: 2018-09-02
5楼  发表于: 2014-03-19 10:26
这样看不出问题,你在每条语句下面都加上printf,定位程序在哪一条语句上崩溃的
级别: 侠客
UID: 63868
精华: 0
发帖: 56
金钱: 280 两
威望: 56 点
贡献值: 0 点
综合积分: 112 分
注册时间: 2012-02-25
最后登录: 2015-04-28
6楼  发表于: 2014-03-19 16:19

 回 5楼(guocs2005) 的帖子

static int v4l2_set_fmt(void)
  struct v4l2_format fmt;  
  memset(&fmt, 0, sizeof(fmt));
  fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
  fmt.fmt.pix.width = WIDTH;
  fmt.fmt.pix.height = HEIGHT;
  fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
  fmt.fmt.pix.field       = V4L2_FIELD_INTERLACED;
  if (::ioctl(fd, VIDIOC_S_FMT, &fmt) == -1)
  {
    printf("Camara set fmt is errror.\n");
    return -1;
  }
printf("width: %d\n", fmt.fmt.pix.width);
printf("height: %d\n", fmt.fmt.pix.height);
  return 0;
}
就是这个子函数运行后输出的信息不对
本来#define WIDTH 320
        #define HEIGHT 240
但是最后两个printf输出分别是176,144
级别: 侠客
UID: 64424
精华: 0
发帖: 92
金钱: 465 两
威望: 93 点
贡献值: 0 点
综合积分: 184 分
注册时间: 2012-03-05
最后登录: 2018-09-02
7楼  发表于: 2014-03-25 09:02
建议换成用qt4写camera程序,qtopia局限性太大
级别: 新手上路
UID: 96391
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2013-09-13
最后登录: 2014-04-28
8楼  发表于: 2014-03-27 21:22
同样遇到这个问题,楼主解决了没有?求教啊!
级别: 侠客
UID: 63868
精华: 0
发帖: 56
金钱: 280 两
威望: 56 点
贡献值: 0 点
综合积分: 112 分
注册时间: 2012-02-25
最后登录: 2015-04-28
9楼  发表于: 2014-05-22 19:00
已解决,是开发板usb接口有问题,高速(echi)没用起来,换了一块板子就好了
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go