天嵌 ARM开发社区

 找回密码
 注册
查看: 11395|回复: 22

opencv打开ov3640

[复制链接]
六斤太郎 发表于 2013-1-5 09:57:06 | 显示全部楼层 |阅读模式
把opencv2.0移植到210板子上,用
CvCapture*capture=0;
capture=cvCaptureFromCAM(-1);
打开摄像头,摄像头是ov3640,但是打不开,请问我该怎么办?
我还用弄些什么驱动吗?
我现在就是吧摄像头插在板子,然后 ,用capture=cvCaptureFromCAM(-1);
但是不好使?求帮助

把opencv2.0移植到210板子上,用
CvCapture*capture=0;
capture=cvCaptureFromCAM(0);
打开摄像头,摄像头是ov3640,但是打不开,请问我该怎么办?
我还用弄些什么驱动吗?
我现在就是吧摄像头插在板子,然后 ,用capture=cvCaptureFromCAM(0);
但是不好使?求帮助

dnw里显示:

s3c-fimc-0 : no camera device selected yet!do VIDIOC_S_INPUT first
Unable to handle kernel NULL pointer dereference at virtual address 000000dc
pgd = f3668000
[000000dc] *pgd=53665031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [] PREEMPT
last sysfs file: /sys/devices/platform/s5p-ehci/usb1/1-1/1-1.2/usb_device/usbdev1.4/dev
Modules linked in: rt5370sta ds18b20 s5pv210_hdmi wm8960
CPU: 0    Tainted: G      D      (2.6.35.7-EmbedSky #1)
PC is at fimc_g_fbuf+0x44/0xd4
LR is at __video_do_ioctl+0x12e0/0x3ed0
pc : [<c03efd3c>]    lr : [<c03dd9e8>]    psr: 40000013
sp : f34bfbb8  ip : f34bfbd8  fp : f34bfbd4
r10: f342e900  r9 : f34a85c0  r8 : 802c560a
r7 : c03dc708  r6 : 00000000  r5 : 00000000  r4 : f34bfccc
r3 : 00000000  r2 : 00000011  r1 : 00000000  r0 : f342e900
Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c5387d  Table: 53668019  DAC: 00000015
TQ-lkp 发表于 2013-1-5 10:18:01 | 显示全部楼层
本帖最后由 TQ-lkp 于 2013-1-5 10:18 编辑

ov3640使用opencv无法正常工作,我们在找原因,会及时更新的,请稍等。
楼主可以先使用USB摄像头来调试,代码通了就好了。
另外cvCaptureFromCAM参数0表示/dev/video0,1表示/dev/video1,-1表示系统枚举。楼主要把设备名配置正确。
使用USB摄像头要重新配置下内核才行。去掉3640部分的驱动。
 楼主| 六斤太郎 发表于 2013-1-5 10:27:56 | 显示全部楼层
本帖最后由 六斤太郎 于 2013-1-5 10:29 编辑
TQ-lkp 发表于 2013-1-5 10:18
ov3640使用opencv无法正常工作,我们在找原因,会及时更新的,请稍等。
楼主可以先使用USB摄像头来调试,代 ...


usb摄像头支持什么型号的啊?
那个内核怎么去掉3640的驱动?有没有相关的资料啊?
还想问一下,那个设备名怎么配置啊?

TQ-lkp 发表于 2013-1-5 14:33:05 | 显示全部楼层
你先使用附件中的内核,产生的摄像头设备从 /dev/video3开始,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 六斤太郎 发表于 2013-1-5 14:39:22 | 显示全部楼层
TQ-lkp 发表于 2013-1-5 14:33
你先使用附件中的内核,产生的摄像头设备从 /dev/video3开始,

好的!我试试!
亚瑟王 发表于 2013-1-5 14:45:32 | 显示全部楼层
六斤太郎 发表于 2013-1-5 10:27
usb摄像头支持什么型号的啊?
那个内核怎么去掉3640的驱动?有没有相关的资料啊?
还想问一下,那个设 ...

Device Drivers->      Multimedia support->
            Video capture adapters->
                    Samsung Multimedia Devices
取消掉:
V4L2 API for digital camera to be contributed by samsung
Samsung Camera Interface (FIMC) driver (NEW)
Samsung TV Driver
然后修改arch/arm/plat-samsung/include/plat/devs.h文件,在54到62行
#ifdef CONFIG_VIDEO_FIMC
extern struct platform_device s3c_device_fimc0;
extern struct platform_device s3c_device_fimc1;
extern struct platform_device s3c_device_fimc2;
extern struct platform_device s3c_device_csis;
#endif /* CONFIG_VIDEO_FIMC */
extern struct platform_device s3c_device_ipc;
extern struct platform_device s3c_device_mfc;


修改arch/arm/mach-s5pv210/power-domain.c文件,在163到176行修改如下:
struct clk_should_be_running s5pv210_pd_cam_clk[] = {
        {
#ifdef CONFIG_VIDEO_FIMC
                .clk_name        = "sclk_fimc_lclk",
                .dev                = &s3c_device_fimc0.dev,
        }, {
                .clk_name        = "sclk_fimc_lclk",
                .dev                = &s3c_device_fimc1.dev,
        }, {
                .clk_name        = "sclk_fimc_lclk",
                .dev                = &s3c_device_fimc2.dev,
        }, {
                .clk_name        = "sclk_csis",
                .dev                = &s3c_device_csis.dev,
        }, {
#endif /* CONFIG_VIDEO_FIMC */
                .clk_name        = "jpeg",
                .dev                = &s3c_device_jpeg.dev,


 楼主| 六斤太郎 发表于 2013-1-5 15:29:28 | 显示全部楼层
本帖最后由 六斤太郎 于 2013-1-5 15:36 编辑
TQ-lkp 发表于 2013-1-5 14:33
你先使用附件中的内核,产生的摄像头设备从 /dev/video3开始,


插上摄像头后显示:
[root@witech /]# usb 1-1.2: new full speed USB device using s5p-ehci and address 3
gspca: probing 0ac8:301b
zc3xx: probe 2wr ov vga 0x0000
zc3xx: probe sensor -> 0011
zc3xx: Find Sensor HV7131R(c)
input: zc3xx as /devices/platform/s5p-ehci/usb1/1-1/1-1.2/input/input6
gspca: video3 created
gspca: found int in endpoint: 0x82, buffer_len=8, interval=10
kernel BUG at arch/arm/mm/dma-mapping.c:409!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 817 [#1] PREEMPT
last sysfs file: /sys/devices/platform/s5p-ehci/usb1/1-1/1-1.2/input/input6/event6/dev
Modules linked in: rt5370sta ds18b20 s5pv210_hdmi wm8960
CPU: 0    Not tainted  (2.6.35.7-EmbedSky #15)
PC is at __bug+0x20/0x2c
LR is at release_console_sem+0x1a8/0x210
pc : [<c003de40>]    lr : [<c0068b38>]    psr: 60000013
sp : f3c9db68  ip : f3c9da80  fp : f3c9db74
r10: f357b788  r9 : c093e490  r8 : 00000008
r7 : 000000d0  r6 : 5f087000  r5 : f3fb8800  r4 : f357b780
r3 : 00000000  r2 : 00000000  r1 : f3c9da80  r0 : 00000033
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387d  Table: 5362c019  DAC: 00000017

这样对不对啊?
直接capture=cvCaptureFromCAM(3);就能行吗?

运行程序,在dnw里显示

[root@witech /6]# ./6 -qws
s3cfb s3cfb: change blank mode
s3cfb s3cfb: [fb0] win map off
s3cfb s3cfb: [fb0] turn on
Error opening mouse device '/dev/mouse3': No such file or directory
 楼主| 六斤太郎 发表于 2013-1-6 11:28:02 | 显示全部楼层
本帖最后由 六斤太郎 于 2013-1-6 11:37 编辑
亚瑟王 发表于 2013-1-5 14:45
Device Drivers->      Multimedia support->
            Video capture adapters->
                 ...


r9:f341de00 r8:00000000 r7:00000000 r6:c02e9c4c r5:c0929d94
r4:f3415720
[<c02e99cc>] (driver_probe_device+0x0/0x1f4) from [<c02e9c90>] (__device_attach+0x44/0x48)
r6:c02e9c4c r5:f3415720 r4:c0929d94
[<c02e9c4c>] (__device_attach+0x0/0x48) from [<c02e8e1c>] (bus_for_each_drv+0x54/0x94)
r5:f3c9dce0 r4:f3415720
[<c02e8dc8>] (bus_for_each_drv+0x0/0x94) from [<c02e9d18>] (device_attach+0x58/0x70)
r7:f341de00 r6:00000000 r5:f3415720 r4:f3415754
[<c02e9cc0>] (device_attach+0x0/0x70) from [<c02e8c30>] (bus_probe_device+0x2c/0x48)
r5:f3415728 r4:f3415720
[<c02e8c04>] (bus_probe_device+0x0/0x48) from [<c02e7234>] (device_add+0x35c/0x500)
[<c02e6ed8>] (device_add+0x0/0x500) from [<c03861e0>] (usb_set_configuration+0x60c/0x6b8)
[<c0385bd4>] (usb_set_configuration+0x0/0x6b8) from [<c038e294>] (generic_probe+0x6c/0xb8)
[<c038e228>] (generic_probe+0x0/0xb8) from [<c038655c>] (usb_probe_device+0x20/0x24)
r6:c02e9c4c r5:c091bae8 r4:f349cc68
[<c038653c>] (usb_probe_device+0x0/0x24) from [<c02e9ad0>] (driver_probe_device+0x104/0x1f4)
[<c02e99cc>] (driver_probe_device+0x0/0x1f4) from [<c02e9c90>] (__device_attach+0x44/0x48)
r6:c02e9c4c r5:f349cc68 r4:c091bae8
[<c02e9c4c>] (__device_attach+0x0/0x48) from [<c02e8e1c>] (bus_for_each_drv+0x54/0x94)
r5:f3c9de58 r4:f349cc68
[<c02e8dc8>] (bus_for_each_drv+0x0/0x94) from [<c02e9d18>] (device_attach+0x58/0x70)
r7:f3c1f380 r6:00000000 r5:f349cc68 r4:f349cc9c
[<c02e9cc0>] (device_attach+0x0/0x70) from [<c02e8c30>] (bus_probe_device+0x2c/0x48)
r5:f349cc70 r4:f349cc68
[<c02e8c04>] (bus_probe_device+0x0/0x48) from [<c02e7234>] (device_add+0x35c/0x500)
[<c02e6ed8>] (device_add+0x0/0x500) from [<c037f0dc>] (usb_new_device+0x74/0xd0)
[<c037f068>] (usb_new_device+0x0/0xd0) from [<c03807a0>] (hub_thread+0x9d4/0xf70)
r7:00000000 r6:f3c9c000 r5:f341d800 r4:f349cc00
[<c037fdcc>] (hub_thread+0x0/0xf70) from [<c0084058>] (kthread+0x84/0x8c)
[<c0083fd4>] (kthread+0x0/0x8c) from [<c006bc00>] (do_exit+0x0/0x6f4)
r7:00000013 r6:c006bc00 r5:c0083fd4 r4:f3c37f18
Code: e1a01000 e59f000c eb183acc e3a03000 (e5833000)
IP-Config: Complete:
     device=eth0, addr=192.168.1.185, mask=255.255.255.0, gw=192.168.1.1,
     host=witech, domain=, nis-domain=com.cn,
     bootserver=192.168.1.165, rootserver=192.168.1.165, rootpath=
DBUG_PORT must not use AFC!
---[ end trace fe658908e8ee4372 ]---
eth0: no IPv6 routers present
我要是先插上摄像头,在开启开发板,在dnw里就停在这,就不动,进不去系统界面,屏幕就停在黑色小企鹅那了?
TQ-ZQL 发表于 2013-1-6 11:30:54 | 显示全部楼层
发多一点。r9:f341de00 r8:00000000 r7:00000000 r6:c02e9c4c r5:c0929d94 之前的
 楼主| 六斤太郎 发表于 2013-1-6 11:36:08 | 显示全部楼层
亚瑟王 发表于 2013-1-5 14:45
Device Drivers->      Multimedia support->
            Video capture adapters->
                 ...

void MyWidget::on_open_clicked()
{
       capture = cvCaptureFromCAM(3);
   frame =  cvQueryFrame(capture);
       QImage image((const uchar*)frame->imageData, frame->width, frame->height, QImage::Format_RGB888);
        ui->label->setPixmap(QPixmap::fromImage(image));
}
这是我Qt中的代码,当我点击open按钮时,开发板屏幕就死机了,怎么按屏幕都没反应了?
TQ-ZQL 发表于 2013-1-6 12:02:18 | 显示全部楼层
试下换其它的usb口看下行。而且只用一个usb设备
 楼主| 六斤太郎 发表于 2013-1-6 12:03:43 | 显示全部楼层
TQ-ZQL 发表于 2013-1-6 11:30
发多一点。r9:f341de00 r8:00000000 r7:00000000 r6:c02e9c4c r5:c0929d94 之前的


内容在附件里

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 六斤太郎 发表于 2013-1-6 12:08:49 | 显示全部楼层
TQ-ZQL 发表于 2013-1-6 12:02
试下换其它的usb口看下行。而且只用一个usb设备

四个口都是一按open就卡死!
还有在不插鼠标的情况下,会出现
Error opening mouse device '/dev/mouse3': No such file or directory
 楼主| 六斤太郎 发表于 2013-1-6 12:24:11 | 显示全部楼层
TQ-ZQL 发表于 2013-1-6 12:02
试下换其它的usb口看下行。而且只用一个usb设备


插上usb摄像头后dnw里显示的内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
亚瑟王 发表于 2013-1-6 14:03:14 | 显示全部楼层
六斤太郎 发表于 2013-1-6 12:08
四个口都是一按open就卡死!
还有在不插鼠标的情况下,会出现
Error opening mouse device '/dev/mouse ...

出现鼠标设备找不到那个是因为没有插入usb鼠标引起的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-2 21:19 , Processed in 1.046875 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表