Aruco.py

ИНИЦИАЛИЗАЦИЯ БИБЛИОТЕК

import cv2
import sys
import socket
from cv2 import aruco
  • cv2: Библиотека OpenCV для обработки изображений и видео.

  • sys: Модуль для работы с параметрами командной строки и другими системными функциями.

  • socket: Модуль для сетевого взаимодействия.

  • cv2.aruco: Подмодуль для работы с маркерами Aruco.

ПОДКЛЮЧЕНИЕ К СЕРВЕРУ

if len(sys.argv) > 1:
    port_data = sys.argv[-1] 
    print(port_data)
    port_data = port_data.split(',')
    ports = port_data[0].split(':')
    rtsp_url = port_data[1]
    socks = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    socks.connect((ports[0], int(ports[1])))
else:
    print("данных нет")
    exit()

Этот блок кода устанавливает подключение к серверу, используя данные, переданные через командную строку.

Процесс:

- Проверяет наличие аргументов командной строки.

- Извлекает данные о порте и URL RTSP-потока.

- Устанавливает сокетное соединение с сервером по указанному адресу и порту.

ИНИЦИАЛИЗАЦИЯ КАМЕРЫ И РАСПОЗНОВАНИЕ ARUCO

Этот блок кода отвечает за захват видео, обнаружение маркеров Aruco и их отрисовку на кадре.

Процесс:

- Инициализация видеопотока: Открывает RTSP-поток для захвата видео.

- Настройка словаря Aruco: Задает словарь для обнаружения маркеров.

Основной цикл:

  • Захват кадра из видеопотока.

  • Преобразование кадра в оттенки серого.

  • Обнаружение маркеров Aruco на кадре.

  • Отрисовка найденных маркеров на кадре.

  • Отправка данных о найденных маркерах на сервер через сокет.

  • Отображение кадра с нарисованными маркерами.

ЗАКРЫТИЕ ПОТОКОВ И СОЕДИНЕНИЙ

Этот блок кода выполняется в любом случае (при нормальной работе или при возникновении исключения) и отвечает за закрытие всех открытых ресурсов.

Процесс подготовки кода:

  1. Создайте файл и назовите его aruco.py:

Файл "Aruco.py" в окне иерархии
  1. Поэтапно копируйте части кода в ваш файл:

Окно программирования файла "aruco.py". Часть 1
Окно программирования файла "aruco.py". Часть 2
  1. Установка библиотек: в данном случае библиотека cv2 не предустановлена в python. Без неё мы не сможем работать с видеопотоком и обрабатывать AruCo метки. Если вы еще не установили эту библиотеку, то вот процесс установки библиотеки:

    1. Откройте терминал в Visual Studio Code (Terminal - New Terminal или комбинацией Ctrl + Shift + `)

    2. В открывшимся терминале прописываем команду pip install opencv-python и нажимаем Enter

После установки библиотеки файл будет готов к работе, при запуске в консоль выводится "данных нет". Данный файл используется импортом для других файлов.

Последнее обновление