PyCapture2 видео через opencv

Возникли проблемы с импортом моей камеры Point Grey Chameleon3 через opencv и PyCapture2. В настоящее время я делаю фотографии / изображения по отдельности, но хочу постоянного потока. Я думаю, что это связано с 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(0)

Если у кого-то есть какие-либо указатели или ссылки на дополнительную документацию, будет принята с благодарностью

3 ответа

Я использую очень похожий код с камерой BlackFly. Проблема потока в том, что цикл очень медленный. Вы дважды вызываете image.getData(), что усугубляет проблему, но главная проблема заключается в том, что чтение и преобразование данных в формат изображения происходит очень медленно.

Погружение немного глубже и синхронизация некоторых функций на моем компьютере (мое изображение 1920 на 1200):

image = camera.retrieveBuffer () - занимает примерно столько же времени, сколько и установленная частота кадров.

image.getData() занимает около 220 мс

np.array(image.getData(), dtype="uint8").reshape((image.getRows(), image.getCols())) занимает около 540 мс.

Таким образом, частота обновления не может быть быстрее, чем это.

Я нашел библиотеку PyCapture2 здесь. Я скачал библиотеку, затем перешел к своей установке на python, затем в документы.

PYTHON_PATH / PyCapture2 / документы

Путь также можно найти:

import PyCapture2
PyCapture2.__path__

В любом случае, если вы ищете документы или сам модуль, вы можете найти их там.

Измените время "cvs.waitkey()", и оно должно работать:

например cv2.waitKey(10)

Другие вопросы по тегам