使用yolov8获取边框坐标时无论有没有检测到物体都显示no objects detected
import time
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import save_one_box as crop
import imutils
import numpy as np
import os
import shutil
model = YOLO('best.pt')
video_path ="D:/WIN_20230907_21_08_23_Pro.mp4"
cap = cv2.VideoCapture(video_path)
confi=0.2
while cap.isOpened():
success, frame = cap.read()
confi = round(confi, 2)
if confi <= 0.2:
confi = 0.2
elif confi >= 0.8:
confi = 0.8
if success:
Results = model(frame, conf=confi, save=False, show=False)
annotated_frame = Results[0].plot()
cv2.imshow("YOLOv8 Tracking", annotated_frame)
r=Results[0]
if Results:
if r.boxes is not None:
obbs = r.boxes.xywhr.tolist()
for i, obb in enumerate(obbs):
xc, yc, w, h, angle = obb # Unpack the OBB
print(xc,yc,w,h,angle)
else:
print("No objects detected")
else:
bkg = np.ones((256, 1280, 3), dtype=np.uint8)
bkg *= 200
annotated_frame = np.vstack((annotated_frame, bkg))
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
# Break the loop if the end of the video is reached
break
# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()