PyCapture2 视频通过 opencv

PyCapture2 Video through opencv

通过 opencv 和 PyCapture2 导入我的 Point Grey Chameleon3 相机时遇到问题。目前单独使用 photos/images 但想要一个常量 flow.I 认为它与 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)

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

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

在我的计算机上更深入地研究和计时一些功能(我的图像是 1920 x 1200):

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

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

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

所以刷新率不能比那个快。

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

PYTHON_PATH/PyCapture2/docs

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

import PyCapture2
PyCapture2.__path__

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

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

e.g. cv2.waitKey(10)