我正在使用Ubuntu 12.04 LTS。我们在移动机器人上从手持式相机接收无噪声图像时遇到问题。
使用BTTV PCI设备收集摄像机图像,特别是bt878驱动程序。 BTTV设备是基于Bt848芯片的PCI-104卡,并且在Linux下由bttv和相关的内核驱动程序模块支持。这些设备是一个仅限捕获的卡 - 这意味着视频可以直接从视频源获取,而无需使用调谐器。帧抓取器连接到车载计算机Sensorary 311(所以bttv卡= 73)
安装的bttv驱动程序是0.9.19版。网络摄像头存在于dev / video0中。
$ dmesg |grep bttv
[ 1.937779] bttv: driver version 0.9.19 loaded
[ 1.937783] bttv: using 8 buffers with 2080k (520 pages) each for capture
[ 1.937850] bttv: Bt8xx card found (0)
[ 1.937873] bttv: 0: Bt878 (rev 17) at 0000:04:01.0, irq: 16, latency: 32, mmio: 0xdfdfe000
[ 1.937888] bttv: 0: detected: Sensoray 311 [card=73], PCI subsystem ID is 6000:0311
[ 1.937890] bttv: 0: using: Sensoray 311/611 [card=73,autodetected]
[ 1.940185] bttv: 0: tuner absent
[ 1.940313] bttv: 0: registered device video0
[ 1.940591] bttv: 0: registered device vbi0
加载的模块如下:
$ lsmod | grep video
videodev 105518 2 bttv,v4l2_common
media 20516 1 videodev
videobuf_dma_sg 18711 1 bttv
videobuf_core 25098 2 bttv,videobuf_dma_sg
video 19117 1 i915
$ lsmod
Module Size Used by
bt878 13588 0
rfcomm 38104 0
bnep 17791 2
bluetooth 189585 10 rfcomm,bnep
parport_pc 32115 0
ppdev 12850 0
coretemp 13362 0
kvm 365588 0
snd_hda_codec_idt 60238 1
gpio_ich 13160 0
snd_hda_intel 32983 3
snd_hda_codec 116477 2 snd_hda_codec_idt,snd_hda_intel
snd_hwdep 13277 1 snd_hda_codec
snd_pcm 81124 2 snd_hda_intel,snd_hda_codec
microcode 18396 0
snd_seq_midi 13133 0
snd_rawmidi 25426 1 snd_seq_midi
psmouse 91381 0
snd_seq_midi_event 14476 1 snd_seq_midi
snd_seq 51594 2 snd_seq_midi,snd_seq_midi_event
bttv 116393 1 bt878
v4l2_common 20517 1 bttv
videodev 105518 2 bttv,v4l2_common
media 20516 1 videodev
videobuf_dma_sg 18711 1 bttv
serio_raw 13032 0
snd_timer 28932 2 snd_pcm,snd_seq
snd_seq_device 14138 3 snd_seq_midi,snd_rawmidi,snd_seq
videobuf_core 25098 2 bttv,videobuf_dma_sg
btcx_risc 13401 1 bttv
rc_core 21172 1 bttv
tveeprom 17010 1 bttv
mac_hid 13078 0
snd 62675 15 snd_hda_codec_idt,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
i915 479158 2
drm_kms_helper 47459 1 i915
lpc_ich 16993 0
drm 240232 3 i915,drm_kms_helper
i2c_algo_bit 13317 2 bttv,i915
soundcore 14636 1 snd
snd_page_alloc 14109 2 snd_hda_intel,snd_pcm
video 19117 1 i915
lp 17456 0
parport 40931 3 parport_pc,ppdev,lp
e1000e 177679 0
我们认为bt878驱动程序已正确加载,并且帧抓取器正常工作。当相机关闭电源时,帧抓取器(在camorama,vlc或gstreamer属性程序中查看)为蓝色,当相机通电时,从相机接收的图像非常嘈杂。无法检测到任何功能,但可以看到光线的变化。
我们已经让相机正常工作(暗示驱动程序正常),但它似乎几乎是随机的,并且取决于我们使用的查看程序和顺序。一旦相机工作,它将继续工作,直到我们关闭机器人。我们认为这意味着相机未正确初始化,因此发送噪声数据也是如此。有没有人知道初始化链接到BTTV PCI设备的摄像头的好方法,除了确保摄像头开机之外?
具体来说,相机是操纵器的一部分,操纵器安装在Mobile Robotics的SeekurJr机器人上。在查看流之前,需要初始化操纵器(打开相机),我们这样做。
相机是RVision SEE相机。
问题:我们如何初始化相机?关于如何修复噪音的任何其他想法?
答案 0 :(得分:0)
我猜你会遇到硬件问题,无论是使用相机还是使用相机都可以使用相机。
确保您的相机安装了光学元件
尝试将相机连接到另一台显示设备(例如一台带复合输入的旧模拟电视),看看你是否还有那个嘈杂的图像
尝试将另一台相机连接到您的framegrabber卡上,看看图片是什么样的。
xawtv
PS:当相机关机时你得到漂亮的蓝色图像这一事实意味着,帧抓取器正确检测是否有任何信号。