обнаружение объектов
обнаружение объектовunknown
python
2 months ago
2.8 kB
11
Indexable
import cv2 import numpy as np import sys try: from ultralytics import YOLO # Мы будем использовать модель YOLO. except ModuleNotFoundError: print("Ошибка: модуль «ультралитика» не найден. Пожалуйста, установите его, запустив команду «pip install ultralytics».") sys.exit(1) # Установите модель YOLO (pre-trained COCO dataset ile) try: model = YOLO("yolov8n.pt") except Exception as e: print(f"Ошибка загрузки модели YOLO.: {e}") sys.exit(1) # Включите камеру cap = cv2.VideoCapture(0) if not cap.isOpened(): print("Ошибка: Не удалось открыть камеру..") sys.exit(1) while True: ret, frame = cap.read() if not ret: print("Ошибка: изображение с камеры не получено..") break # обнаружение объектов results = model(frame) for result in results: for box in result.boxes: try: x1, y1, x2, y2 = map(int, box.xyxy[0]) # Координаты conf = box.conf[0] # Güven skoru cls = int(box.cls[0]) # Сорт ID label = model.names.get(cls, "Неизвестный") # имя объекта # Ширина и высота объекта width = x2 - x1 height = y2 - y1 # Цветовой анализ (нахождение среднего цвета) roi = frame[y1:y2, x1:x2] avg_color = np.mean(roi, axis=(0, 1)) if roi.size > 0 else [0, 0, 0] color_str = f"RGB({int(avg_color[2])}, {int(avg_color[1])}, {int(avg_color[0])})" # Чертежи и этикетки cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2) cv2.putText(frame, f"{label} ({conf:.2f})", (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2) cv2.putText(frame, f"Size: {width}x{height}", (x1, y1 + 15), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2) cv2.putText(frame, f"Color: {color_str}", (x1, y1 + 30), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2) except Exception as e: print(f"Ошибка: возникла проблема с обработкой информации об объекте. - {e}") cv2.imshow("Tracking System", frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
Editor is loading...
Leave a Comment