import cv2
from ultralytics import YOLO
# 加载模型
model = YOLO("yolo11n.pt")
# 设置视频文件名
video_name = '23.mp4'
# 打开视频文件
cap = cv2.VideoCapture(video_name)
# 设置跳帧数,例如每1帧处理一次
skip_frames = 1
frame_count = 0
# 循环读取视频帧
while cap.isOpened():
success, frame = cap.read()
if not success:
break
# 跳过一些帧以降低帧率
frame_count += 1
if frame_count % skip_frames != 0:
continue
# 降低图像分辨率
scale_percent = 50 # 缩放比例
width = int(frame.shape[1] * scale_percent / 100)
height = int(frame.shape[0] * scale_percent / 100)
dim = (width, height)
resized_frame = cv2.resize(frame, dim, interpolation=cv2.INTER_AREA)
# 使用模型进行检测
results = model(resized_frame)
# 绘制检测结果
annotated_frame = results[0].plot()
# 显示结果
cv2.imshow("老猫检测-YOLOv11物体检测", annotated_frame)
# 按下'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
效果图