1

通过 opencv 和 PyCapture2 导入我的 Point Grey Chameleon3 相机时遇到问题。目前单独拍摄照片/图像,但想要一个恒定的流程。我认为这与 camera.retrieveBuffer() 有关,但找不到解决方法。

import PyCapture2
import cv2
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

bus = PyCapture2.BusManager()
numCams = bus.getNumOfCameras()
camera = PyCapture2.Camera()
uid = bus.getCameraFromIndex(0)
camera.connect(uid)
camera.startCapture()

while True:
    image = camera.retrieveBuffer()
    row_bytes = float(len(image.getData())) / float(image.getRows());
    cv_image = np.array(image.getData(), dtype="uint8").reshape((image.getRows(), image.getCols()) );
    cv2.imshow('frame',cv_image)
    cv2.waitKey(10)

如果有人有任何指向更多文档的指针或链接将不胜感激谢谢

4

3 回答 3

3

我正在使用与 BlackFly 相机非常相似的代码。流量问题是因为循环非常慢。您调用image.getData()了两次,这使问题变得更糟,但主要问题是读取数据并将其转换为图像格式非常慢。

深入一点并在我的计算机上计时一些功能(我的图像是 1920 x 1200):

image = camera.retrieveBuffer()- 花费的时间与设置的帧速率一样多。

image.getData()大约需要 220 毫秒。

np.array(image.getData(), dtype="uint8").reshape((image.getRows(), image.getCols()) )大约需要 540 毫秒。

所以刷新率不可能比这更快。

于 2017-09-29T18:27:46.807 回答
1

我在这里找到了 PyCapture2 库。我下载了库,然后导航到我的 python 安装,然后进入文档。

PYTHON_PATH/PyCapture2/docs

也可以通过以下方式找到该路径:

import PyCapture2
PyCapture2.__path__

无论如何,如果您正在寻找文档或模块本身,您可以在那里找到它们。

于 2018-03-27T18:27:40.963 回答
0

更改“cvs.waitkey()”时间,它应该可以工作:

例如cv2.waitKey(10)

于 2018-04-30T11:37:10.023 回答