赞
踩
花了很多力气才搞定,多多三连
import cv2
from ultralytics import YOLO
# 加载预训练的YOLO模型
yolo = YOLO("./best.pt", task="detect")
# 读取图像
img = cv2.imread('aaa.jpg')
# 对图像进行目标检测
results = yolo(source=img) # 如果yolo库支持直接处理numpy数组,则传入img
# 假设我们只关心第一个检测到的目标(如果有的话)
if results:
bbox = results[0].boxes.xyxy[0].tolist() # 提取第一个边界框的xyxy值
x1, y1, x2, y2 = bbox # 分别是左上角和右下角的坐标
x, y = int(x1), int(y1) # 左上角坐标
w, h = int(x2 - x1), int(y2 - y1) # 宽度和高度
# 裁剪图像
cropped_img = img[y:y+h, x:x+w]
# 显示或保存裁剪后的图像
cv2.imshow("Cropped Image", cropped_img)
cv2.waitKey(0) # 等待任意键按下
cv2.destroyAllWindows() # 关闭所有OpenCV窗口
# cv2.imwrite("cropped_image.jpg", cropped_img) # 如果需要,取消注释这行来保存图像
else:
print("No detections found.")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。