AVT Vimba + SimpleCV

时间:2013-10-16 20:44:31

标签: python camera simplecv

在使用AVT Pike Firewire相机(see here)尝试使用SimpleCV之后,大家好,我一直无法让AVTCamera工作。使用SimpleCV页面上关于使用AVT包的示例,我得到一个返回错误类AVTCamera未找到。我重新安装了SimpleCV,其他一切似乎都有效。我正在使用维基建议的传统驱动程序,但由于某些原因我不能让它工作,还有其他人在SimpleCV中运气AVT吗?

编辑:这是我收到的错误:

from SimpleCV import *

cam = AVTCamera()
img = cam.getImage()
img.show()

错误:

NameError: name 'AVTCamera' is not defined

2 个答案:

答案 0 :(得分:0)

不确定为什么有人投了这票。我们随时欢迎您在SimpleCV论坛上发布此类问题(http://help.simplecv.org)。

我们目前尚未更新到最近发布的VIMBA支持。但是我们每天都使用PvAPI驱动程序,所以我知道它工作正常,虽然我只通过GiGE(manta和GT系列)测试过,并且没有通过firewire进行测试。

您是否参考了我们维基上的安装指南: https://github.com/sightmachine/SimpleCV/wiki/Allied-Vision-(AVT)-GigE-Camera-Installation-Guide-for-Ubuntu-Linux

答案 1 :(得分:0)

我写了一个Python解决方案,使用基于你可能会觉得有用的Vimba SDK的AVT摄像机。它是一个名为 pymba 的驱动程序包装器,可以找到代码here。我已经使用单色版Pike FireWire相机成功测试了它。

等效示例如下所示:

from pymba import *
import numpy as np
import cv2

vimba = Vimba()
vimba.startup()

cameraIds = vimba.getCameraIds()
camera0 = vimba.getCamera(cameraIds[0])
camera0.openCamera()

frame0 = camera0.getFrame()    # creates a frame
frame0.announceFrame()

camera0.startCapture()
frame0.queueFrameCapture()
camera0.runFeatureCommand('AcquisitionStart')
camera0.runFeatureCommand('AcquisitionStop')
frame0.waitFrameCapture()

imageData = np.ndarray(buffer = frame0.getBufferByteData(),
                       dtype = np.uint8,
                       shape = (frame0.height, frame0.width, 1))

cv2.imshow('My image', imageData)

camera0.endCapture()
camera0.revokeAllFrames()

camera0.closeCamera()

vimba.shutdown()