yolov8如何通过源码修改predict产生的结果图保存路径
本帖最后由 吴永铎 于 2023-10-19 10:37 编辑我希望修改yolov8储存预测图片的方式,需要修改哪一部分源码。例如:现在它储存的时候会自动建一个新的文件夹将图片储存在此文件夹中,我想修改它不自己建文件夹,每次预测直接覆盖上一张图片。 要修改yolov8的预测结果图的保存路径,您需要修改 predict 函数中的代码。具体来说,您需要修改 detect_image 函数中的以下代码:
if save_img:
if not os.path.exists('output'):
os.makedirs('output')
cv2.imwrite('output/' + save_name, img)
这段代码会在当前工作目录下创建一个名为 output 的文件夹,并将预测结果图保存在该文件夹中。如果您希望每次预测直接覆盖上一张图片,可以将该代码修改为:
if save_img:
cv2.imwrite(save_name, img)
这样,预测结果图将直接保存在当前工作目录下,且文件名与 save_name 相同,即覆盖上一张图片。需要注意的是,如果您希望保存的文件名与 save_name 不同,可以根据需要修改该代码。 您好!对于 YOLOv8,它的预测结果图片保存路径是在 predict() 函数中设置的。具体来说,图片保存的代码位于 predict() 函数的最后几行。
默认情况下,YOLOv8 的模型会将预测结果图片保存在当前工作目录下的一个名为 predictions 的文件夹中,其中每次预测生成的图片会按照顺序命名,并储存在对应的子文件夹中。如果您想要修改图片保存的方式,可以修改 predict() 函数中的代码。
具体来说,您需要将图片保存的路径(包括文件名)以字符串的形式传递给 cv2.imwrite() 函数的第一个参数。以下是一个简单的示例代码,它将图片另存在了新的路径:
import cv2
def predict(model, img_path, save_path):
# 假设这里使用了 openCV 读取图像,存储在变量 img 中
img = cv2.imread(img_path)
# ... 省略模型预测代码 ...
# 将预测结果保存到指定的路径
cv2.imwrite(save_path, output)
在这个示例代码中,我们添加了一个新的参数 save_path,表示图片保存的路径和文件名。当然,您可以根据自己的需要修改这个参数的名称和数据类型。
另外,您提到希望覆盖上一张图片,而不是保存在新的文件夹中。如果您不希望保存预测结果的历史记录,可以在每次预测前删除上一次的图片,然后再保存新的图片。以下是一个示例代码,它实现了这个功能:
import os
import cv2
def predict(model, img_path):
# 每次预测前,先删除上一次的图片
if os.path.isfile("predictions.jpg"):
os.remove("predictions.jpg")
# 假设这里使用了 openCV 读取图像,存储在变量 img 中
img = cv2.imread(img_path)
# ... 省略模型预测代码 ...
# 将预测结果保存到指定的路径
cv2.imwrite("predictions.jpg", output)
在这个示例代码中,我们首先使用 os.path.isfile() 函数检查当前工作目录下是否存在名为 predictions.jpg 的文件,如果存在,则使用 os.remove() 函数删除该文件。随后,我们保存新的图片到 predictions.jpg 文件中。
希望以上内容对您有所帮助!
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:} isdkz 发表于 2023-10-14 11:42
要修改yolov8的预测结果图的保存路径,您需要修改 predict 函数中的代码。具体来说,您需要修改 detect_ima ...
该函数具体在哪个文件夹下 {:10_298:}{:10_298:}{:10_298:} 野生的鱼币{:10_256:} 看看。 {:10_249:}{:10_249:}{:10_249:}{:10_249:}{:10_249:}
页:
[1]