主题 : 视频监控之摄像头初始化错误 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 63919
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2012-02-26
最后登录: 2012-09-06
楼主  发表于: 2012-07-03 21:01

 视频监控之摄像头初始化错误

硬件是 mini6410  摄像头是天敏 miniusb 摄像头   操作系统linux   参考的代码是国嵌的第一个项目
在终端 初始化摄像头出现 如下问题:
[root@FriendlyARM /home]# ./cam_server -d /dev/video2
[cmdline_parse:436]dev name: /dev/video2
[cmdline_parse:438]Resolution: 320 x 240
[v4l2_init:217]name: USB 2.0 Camera, drv: uvcvideo
[v4l2_uctrl_init:72]user control: id = 0x980900, type = 1, val = 0,
def_val = 0, min = -64, max = 127, name = Brightness, idx = 0
[v4l2_uctrl_init:72]user control: id = 0x980901, type = 1, val = 36,
def_val = 36, min = 0, max = 127, name = Contrast, idx = 1
[v4l2_uctrl_init:72]user control: id = 0x980902, type = 1, val = 60,
def_val = 60, min = 0, max = 255, name = Saturation, idx = 2
[v4l2_uctrl_init:72]user control: id = 0x980903, type = 1, val = 0,
def_val = 0, min = -40, max = 40, name = Hue, idx = 3
[v4l2_uctrl_init:72]user control: id = 0x98090c, type = 2, val = 1,
def_val = 1, min = 0, max = 1, name = White Balance Temperature, Auto, idx = 4
[v4l2_uctrl_init:72]user control: id = 0x980910, type = 1, val = 90,
def_val = 90, min = 72, max = 255, name = Gamma, idx = 5
[v4l2_uctrl_init:72]user control: id = 0x980913, type = 1, val = 0,
def_val = 0, min = 0, max = 100, name = Gain, idx = 6
[v4l2_uctrl_init:72]user control: id = 0x980918, type = 3, val = 1,
def_val = 1, min = 0, max = 2, name = Power Line Frequency, idx = 7
[v4l2_uctrl_init:72]user control: id = 0x98091a, type = 1, val = 4600,
def_val = 4600, min = 2800, max = 6500, name = White Balance Temperature, idx = 8
[v4l2_uctrl_init:72]user control: id = 0x98091b, type = 1, val = 14,
def_val = 14, min = 0, max = 100, name = Sharpness, idx = 9
[v4l2_uctrl_init:72]user control: id = 0x98091c, type = 1, val = 1,
def_val = 1, min = 0, max = 2, name = Backlight Compensation, idx = 10
v4l2_pfmt_init(180):Invalid argument
camera_init(39):Invalid argument


附上相关程序代码:
代码1:int camera_init(const char *dev, __u32 width, __u32 height, __u32 pixfmt)
{
if (-1 == v4l2_open(dev, &g_vd))
ERR_PRINT_RET(-1);

if (-1 == v4l2_init(&g_vd, width, height, pixfmt))
ERR_PRINT_RET(-1);

g_bcamoff = FALSE;

return 0;
}

相关代码2* */
int v4l2_pfmt_init(v4l2_device_t *vd, __u32 width, __u32 height, __u32 pixfmt)
{
struct v4l2_format fmt;

fmt.type                = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width       = width;
fmt.fmt.pix.height      = height;
fmt.fmt.pix.pixelformat = pixfmt;
fmt.fmt.pix.field       = V4L2_FIELD_INTERLACED;

if (-1 == v4l2_ioctl (vd->fd, VIDIOC_S_FMT, &fmt))
ERR_PRINT_RET(-1);
//debug
DBG("pixel format: width = %d, height = %d,\n"
"pixfmt = 0x%x, bytesperline = %d, sizeimage = %d\n",
fmt.fmt.pix.width, fmt.fmt.pix.height,
fmt.fmt.pix.pixelformat, fmt.fmt.pix.bytesperline,
fmt.fmt.pix.sizeimage);
//debug ... end
vd->pfmt = fmt.fmt.pix;

return 0;
}

本人用非中星微的摄像头 跑国嵌的 第一个项目,希望能得到朋友们的帮助,出现上述摄像头初始化错误,如何解决。。。。。
级别: 新手上路
UID: 91350
精华: 0
发帖: 1
金钱: 5 两
威望: 1 点
综合积分: 2 分
注册时间: 2013-05-08
最后登录: 2013-05-11
1楼  发表于: 2013-05-11 13:46
楼主解决了吗?我也遇到这个问题,网上只有你在问,是摄像头的问题不?
级别: 新手上路
UID: 94040
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2013-07-07
最后登录: 2013-08-15
2楼  发表于: 2013-07-14 14:57
你使用ls -l  /dev 看一下当接上摄像头,会弹出的是video0还是video1还是其他,然后把源程序中的video0改为你需要的