把 YOLO 的检测框真正画到图片上
2026/9/9 8:18:22 网站建设 项目流程

你已经知道x1,x2,y1,y2标识框的位置

conf表示置信度,cls表示类别,现在把这些结果可视化

用cv2.rectangle()画框

cv2.rectangle(图像,左上角,右下角,颜色,线宽)

例:cv2.rectangle(

image, 在哪张图片上画

(50,100)

(400,300)

(0,255,0)

2

)

再把类别和置信度写在框上

cv2.putText(

image, 在哪个图片上写

label, 写什么

(x1,y1-10) 从哪里开始写

cv2.FONT_HERSHEY_SIMPLEX, 字体

0.6, 字体大小
(0, 255, 0), 颜色
2 线宽

你可以读这种真实的代码了:

import cv2
from ultralytics import YOLO

model = YOLO("best.pt")

image = cv2.imread("test.jpg")

results = model(image)

result = results[0]

for box in result.boxes:
x1, y1, x2, y2 = map(int, box.xyxy[0])

confidence = float(box.conf[0])
class_id = int(box.cls[0])

class_name = result.names[class_id]

label = f"{class_name} {confidence:.2f}"

cv2.rectangle(
image,
(x1, y1),
(x2, y2),
(0, 255, 0),
2
)

cv2.putText(
image,
label,
(x1, y1 - 10),
cv2.FONT_HERSHEY_SIMPLEX,
0.6,
(0, 255, 0),
2
)

cv2.imshow("result", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

接下来把它接进摄像头

while True:
ret, frame = cap.read()

if not ret:
break

results = model(frame)

result = results[0]

for box in result.boxes:
# 解析
# 画框

cv2.imshow("video", frame)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询