import cv2
from ultralytics import YOLO

# Load model đã huấn luyện
model = YOLO("src/server/train5/weights/best.pt")

# Đọc ảnh
image_path = "dataset/images/s-l1600.png"
img = cv2.imread(image_path)

# Chạy mô hình để dự đoán
results = model(image_path, conf=0.5)  # Hạ conf xuống để giữ nhiều phát hiện hơn

# Xử lý kết quả dự đoán
for r in results:
    for box in r.boxes:
        x1, y1, x2, y2 = map(int, box.xyxy[0])  # Lấy tọa độ bbox
        # print(x1, y1, x2, y2)
        conf = float(box.conf[0])  # Độ tin cậy
        cls = int(box.cls[0])  # Nhãn class ID
        label = f"{model.names[cls]} {conf:.2f}"  # Tạo nhãn hiển thị

        # Vẽ bounding box (màu xanh lá cây)
        cv2.rectangle(img, (x1, y1), (x2, y2), (199, 80, 105), 2)

        # Vẽ nhãn (tên object)
        cv2.putText(img, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2)

# Hiển thị ảnh với bounding boxes
cv2.imshow("Detected Logos", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
