【目标检测】进行实时检测计数时,在摄像头窗口显示实时计数个数

 这里我是用我本地训练的基于yolov8环境的竹签计数模型,在打开摄像头窗口增加了实时计数显示的代码,可以直接运行,大家可以根据此代码进行修改,其底层原理时将检测出来的目标的个数显示了出来。

该项目链接:【目标检测】保姆级别教程从零开始实现基于Yolov8的一次性筷子实时计数,从数据集构建到模型训练与部署,手把手教学-CSDN博客

 项目模型:【免费】基于yolov8的竹签计数的模型文件资源-CSDN文库

【目标检测】进行实时检测计数时,在摄像头窗口显示实时计数个数_第1张图片

 

import cv2
from ultralytics import YOLO

# 加载模型
model = YOLO(model=r"D:\yolov8\runs\detect\train\weights\best.pt")

# 摄像头编号
camera_no = 1

# 打开摄像头
cap = cv2.VideoCapture(camera_no)

while cap.isOpened():
    # 获取图像
    res, frame = cap.read()

    # 如果读取成功
    if res:
        # 正向推理
        results = model(frame)

        # 绘制结果
        annotated_frame = results[0].plot()

        # 获取检测到的物体的数量
        num_objects = len(results[0].boxes) if results and results[0].boxes else 0
        print(f"竹签个数: {num_objects}")

        # 在图像左上角显示物体数量
        cv2.putText(annotated_frame, f"Number: {num_objects}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)

        # 显示图像
        cv2.imshow(winname="YOLOV8", mat=annotated_frame)

        # 按ESC退出
        if cv2.waitKey(1) == 27:
            break

    else:
        break

# 释放链接
cap.release()
# 销毁所有窗口
cv2.destroyAllWindows()

你可能感兴趣的:(目标检测,计算机视觉,opencv)