You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YOLOv8自定义车牌检测模型Python脚本坐标异常排查求助

问题根源与解决方案

核心问题是你对YOLOv8输出的xyxy坐标格式理解错误,导致图像裁剪逻辑出错:

  • YOLOv8的xyxy格式输出为 [x1, y1, x2, y2],分别对应检测框的左上角x坐标、左上角y坐标、右下角x坐标、右下角y坐标
  • 你的脚本错误地将x2当作宽度w、y2当作高度h,用image[y:y+h, x:x+w]裁剪,这相当于从左上角(y1)开始,截取y2长度的区域,远超实际检测框范围

修正后的Python脚本

import cv2
from ultralytics import YOLO

model = YOLO('best.pt')

image = cv2.imread('photo1.jpg')
result = model(image)

# 获取检测框的xyxy坐标
boxes = result[0].boxes.xyxy.tolist()
if boxes:
    x1, y1, x2, y2 = boxes[0]
    # 转换为整数坐标
    x1, y1, x2, y2 = int(x1), int(y1), int(x2), int(y2)
    # 正确裁剪:从y1到y2,x1到x2
    cropped_plate = image[y1:y2, x1:x2]
    cv2.imshow('Cropped License Plate', cropped_plate)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
else:
    print("未检测到车牌")

更简便的方法:使用YOLOv8自带的裁剪功能

YOLOv8提供了内置的裁剪保存方法,无需手动处理坐标:

from ultralytics import YOLO

model = YOLO('best.pt')
# 直接检测并保存裁剪后的目标
results = model('photo1.jpg', save_crop=True)

裁剪后的图像会保存在runs/detect/predict/crops/目录下对应类别的文件夹中。

内容的提问来源于stack exchange,提问作者Dhruvkumar Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:37:14