#python #ip-camera
Вопрос:
У меня возникла проблема с использованием IP-камеры Basler Pylon при захвате. Я установил свой ip, как показано ниже.
Я использовал grab.py код pypylon из Github basler/pypylon/grab.py . Это работает, когда я пробовал это на другом компьютере, но на моем компьютере возникает исключение тайм-аута. Не могли бы вы помочь мне, как решить эту проблему?
Код:
from pypylon import pylon
from pypylon import genicam
import sys
countOfImagesToGrab = 100
exitCode = 0
try:
camera = pylon.InstantCamera(pylon.TlFactory.GetInstance().CreateFirstDevice())
camera.Open()
print("Using device ", camera.GetDeviceInfo().GetModelName())
new_width = camera.Width.GetValue() - camera.Width.GetInc()
if new_width >= camera.Width.GetMin():
camera.Width.SetValue(new_width)
camera.MaxNumBuffer = 5
camera.StartGrabbingMax(countOfImagesToGrab)
while camera.IsGrabbing():
grabResult = camera.RetrieveResult(5000, pylon.TimeoutHandling_ThrowException)
if grabResult.GrabSucceeded():
print("SizeX: ", grabResult.Width)
print("SizeY: ", grabResult.Height)
img = grabResult.Array
print("Gray value of first pixel: ", img[0, 0])
else:
print("Error: ", grabResult.ErrorCode, grabResult.ErrorDescription)
grabResult.Release()
camera.Close()
except genicam.GenericException as e:
print("An exception occurred.")
print(e.GetDescription())
exitCode = 1
sys.exit(exitCode)
И ошибка: _genicam.Исключение TimeoutException: время ожидания захвата истекло. Возможные причины: передача изображения с устройства камеры не работает должным образом, например, отбрасываются все сетевые пакеты GigE для потоковой передачи; Камера использует явное срабатывание (см. TriggerSelector для получения дополнительной информации) и не была запущена; используется режим сбора одного кадра, и один кадр уже получен;сбор не был запущен или был остановлен. : Вызвано исключение TimeoutException (файл ‘instantcameraimpl.h’, строка 1037)
Ответ №1:
В разделе ошибок есть предупреждение о том, что камера запускается явно. Я предполагаю grab
, что метод запускается по-другому. Для этого вы можете изменить startgrabbingmax
метод в своем коде с camera.StartGrabbing(pylon.GrabStrategy_LatestImageOnly)
помощью и повторить попытку?