Ошибка в OpenCV и Python для подключения камеры к GigEPython

Программы на Python
Ответить
Anonymous
 Ошибка в OpenCV и Python для подключения камеры к GigE

Сообщение Anonymous »

Я использую DALSA linea C4096-7. Я пытаюсь подключиться к камере через opencv, но безуспешно. Я использую фирменный SDK sapera LT v8.31.
Я получаю следующую ошибку.
[ WARN:0@170.390] global cap_ffmpeg_impl.hpp:453 _opencv_ffmpeg_interrupt_callback Stream timeout triggered after 30076.866000 ms

Кто-нибудь когда-нибудь сталкивался с такой проблемой?
Он просто отправляет мне это сообщение и не выдает никаких ошибок.
Код:
импортировать cv2
импортировать numpy как np
импортировать ОС
импортировать время
импортировать sys
os.environ["OPENCV_FFMPEG_CAPTURE_OPTIONS"] = "rtsp_transport;udp"

os.environ["OPENCV_LOG_LEVEL"] = "VERBOSE"
os.environ["OPENCV_VIDEOIO_DEBUG"] = "1"
os.environ["OPENCV_VIDEOCAPTURE_DEBUG"] = "1"

def connect_to_camera(ip_address, max_retries=5, retry_delay=5):

url = f"rtsp://{ip_address}/stream"
for attempt in range(max_retries):
print(f"Attempting to connect to camera (Attempt {attempt + 1}/{max_retries})...")
cap = cv2.VideoCapture(url, cv2.CAP_FFMPEG)

cap.set(cv2.CAP_PROP_OPEN_TIMEOUT_MSEC, 5000)

if cap.isOpened():
print("Successfully connected to camera.")
return cap
else:
print(f"Failed to connect. Retrying in {retry_delay} seconds...")
time.sleep(retry_delay)

print("Failed to connect to camera after multiple attempts.")
return None

def process_frame(frame):
return frame

def main():
camera_ip = "169.254.1.1" # Replace with your camera's actual IP
cap = connect_to_camera(camera_ip)
if cap is None:
sys.exit(1)

try:
while True:
ret, frame = cap.read()
if not ret:
print("Failed to receive frame. Attempting to reconnect...")
cap.release()
cap = connect_to_camera(camera_ip)
if cap is None:
break
continue
processed_frame = process_frame(frame)
cv2.imshow('Frame', processed_frame)

if cv2.waitKey(1) & 0xFF == ord('q'):
break

except KeyboardInterrupt:
print("Interrupted by user. Shutting down...")

finally:

if cap is not None:
cap.release()
cv2.destroyAllWindows()
print("Camera released and windows closed.")

if __name__ == "__main__":
main()


Подробнее здесь: https://stackoverflow.com/questions/790 ... -with-gige
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»