[](
```python
from ultralytics import YOLO
import cv2
import numpy as np
import pickle
import matplotlib.pyplot as plt
model = YOLO("./pth/yolov8n.pt")
vc = cv2.VideoCapture(1)
index = 0
while True:
ret, frame = vc.read()
if frame is None:
break
if ret:
results = model(frame, imgsz=320, conf=0.25)
for res in results:
for box in res.boxes.xyxy:
box_str = ' '.join(map(str, box.tolist()))
print("Bounding Box Coordinates:", box_str)
# 提取边界框坐标
x1, y1, x2, y2 = map(int, box.tolist())
# 计算边界框中心点坐标
center_x = (x1 + x2) // 2
center_y = (y1 + y2) // 2
center = (center_x, center_y)
print("Center Point Coordinates:", center)
# 绘制边界框和中心点
cv2.rectangle(frame, (x1, y1), (x2, y2), (255, 0, 0), 2)
cv2.circle(frame, center, 5, (0, 255, 0), -1)
# 在图像上显示边界框和中心点
cv2.imshow("Bounding Boxes", frame)
if cv2.waitKey(1) & 0xFF == ord('p'):
cv2.imwrite("kk.jpg",frame)
index = index + 1
if cv2.waitKey(1) & 0xFF == ord('q'):
break
vc.release()
cv2.destroyAllWindows()
```)
我们用的是yolov8n的库进行目标检测,这段代码已经实现画出边界框,并得到左上和右下的坐标。现已知摄像头焦距为584.2,我们需要测量摄像头到检测对象的距离