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)