#python #machine-learning #object-detection #yolov5
Вопрос:
Новичок как в python, так и в машинном обучении. Я пытаюсь нарисовать ограничительные рамки на снимке экрана mss. Это та часть кода, в которой, по моему мнению, я должен получать координаты для рисования прямоугольника.
while True: img = screnshot.grab(bounding_box) frame = np.array(img) cv2.imshow('Testing', frame) results = model(frame) results.print() pandasbox=results.pandas().xyxy[0] print(pandasbox)
Координаты и классы печатаются просто отлично, например, с помощью панд:
image 1/1: 400x350 1 person, 1 truck Speed: 0.0ms pre-process, 14.4ms inference, 0.0ms NMS per image at shape (1, 3, 640, 576) xmin ymin xmax ymax confidence class name 0 61.171875 134.765625 133.046875 334.0625 0.810547 0 person 1 181.562500 0.273438 347.500000 86.2500 0.768555 7 truck
Но… Я понятия не имею, как сформировать прямоугольник, используя эти координаты. Добавление «(xmin, xmax),(ymin, ymax)» в функцию cv2.rectangle не увенчалось успехом, как и многие другие попытки, включая эту попытку, которая никогда не рисовала ограничительные рамки на экране mss, несмотря на обнаружение печати:
for box in results.xyxy[0]: if box[5]==0: xB = int(box[2]) xA = int(box[0]) yB = int(box[3]) yA = int(box[1]) cv2.rectangle(frame, (xA, yA), (xB, yB), (0, 255, 0), 2)
Если бы кто-нибудь мог показать мне пример использования координат из «results.pandas().xyxy[0]», чтобы нарисовать ограничивающую рамку с cv2.прямоугольником, это было бы здорово! А также любые другие указания или идеи, о которых кто-то новичок в этом не знал бы…