【目标检测之Ultralytics预测框颜色修改】

在 Ultralytics YOLOv8 中修改预测框颜色为红色,以下是三种实用方案:


方案 1:直接修改 plot() 方法的 colors 参数

在调用 results.plot() 时直接指定颜色参数:

from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n.pt")# 预测并绘制结果
results = model.predict("image.jpg")
plotted_img = results[0].plot(colors=(255, 0, 0))  # BGR格式:红色# 保存或显示
plotted_img.show()  # 直接显示
# plotted_img.save("output.jpg")  # 保存结果

原理
plot() 方法的 colors 参数接受一个 BGR 元组 (B, G, R)(255, 0, 0) 表示红色。


方案 2:自定义调色板覆盖默认颜色

创建全红色的调色板并传递给 plot()

from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n.pt")
results = model.predict("image.jpg")# 创建全红色调色板 (每个类别都是红色)
num_classes = len(model.names)  # 获取类别总数
red_palette = [(255, 0, 0)] * num_classes  # 每个类别分配红色# 应用自定义调色板
plotted_img = results[0].plot(colors=red_palette)
plotted_img.show()

原理
YOLOv8 默认使用类别索引映射调色板颜色。此方案为所有类别强制指定红色。


方案 3:修改 Annotator 源码(高级)

直接修改 Ultralytics 的绘图工具类:

  1. 找到文件 ultralytics/utils/plotting.py
  2. 定位 Annotator 类中的 box_label 方法。
  3. 将颜色生成逻辑改为固定红色:
# 原始代码 (约在 265 行附近)
color = color or [random.randint(0, 255) for _ in range(3)]# 修改为固定红色
color = (255, 0, 0)  # BGR: 红色

效果
全局所有预测框变为红色(需重新安装包或修改环境文件)。


额外方案:自定义后处理绘制

手动解析结果并绘制红色框:

import cv2
from ultralytics import YOLO# 加载模型和图像
model = YOLO("yolov8n.pt")
img = cv2.imread("image.jpg")
results = model.predict(img)# 手动绘制结果
for box in results[0].boxes:x1, y1, x2, y2 = map(int, box.xyxy[0].tolist())cv2.rectangle(img, (x1, y1), (x2, y2), (0, 0, 255), 2)  # BGR红色 + 线宽2# 显示结果
cv2.imshow("Red Boxes", img)
cv2.waitKey(0)

方案对比

方案优势适用场景
方案 1简单快捷,单行代码修改临时快速调试
方案 2不修改源码,控制所有类别颜色需全局红色但保留类别文本
方案 3永久生效长期项目且需全局修改
额外方案完全自定义绘制逻辑需要复杂自定义的场景

选择方案时,优先推荐 方案 1(临时使用)或 方案 2(保留类别文本的红色框)。如需永久生效,可用方案 3(注意备份源码)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/88668.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/88668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让 VSCode 调试器像 PyCharm 一样显示 Tensor Shape、变量形状、变量长度、维度信息

文章目录🎯 目标:在 VS Code 调试器中自动显示这些变量信息🔍 原理简介⚠️ 其他方案的局限性❌ 方案一:重写 __repr__❌ 方案二:向 debugpy 注册自定义变量显示器(StrPresentationProvider)✅ …

pip国内镜像源一览

以下是2025年主流pip国内镜像源完整清单及配置指南,综合多个权威来源整理的最新数据:一、核心镜像源推荐(2025年稳定可用)‌阿里云镜像‌https://mirrors.aliyun.com/pypi/simple/优势:依托阿里云CDN,全国平…

当大模型遇见毫米波:用Wi-Fi信号做“透视”的室内语义SLAM实践——从CSI到神经辐射场的端到端开源方案

作者 | Blossom.118 2025-07-12 关键词:CSI-SLAM、神经辐射场、毫米波、Transformer、数字孪生、开源 ---- 1. 为什么要“无摄像头”语义SLAM? • 隐私红线:欧盟GDPR 2024修订版把“摄像头点云”列入高风险生物特征,落地成本高。…

脉冲神经网络膜电位泄漏系数学习:开启时空动态特征提取的新篇章

脉冲神经网络膜电位泄漏系数学习:开启时空动态特征提取的新篇章 摘要 脉冲神经网络(Spiking Neural Networks, SNNs)作为第三代神经网络模型,凭借其事件驱动、高生物逼真度和潜在的超低功耗特性,已成为类脑计算与高效人…

SSRF(ctfshow)

web351-358这部分的题目都是明文的&#xff0c;按照题目要求绕过就行了<?php error_reporting(0); highlight_file(__FILE__); $url$_POST[url]; $xparse_url($url); if($x[scheme]http||$x[scheme]https){ if(!preg_match(/localhost|127\.0\.|\。/i, $url)){ $chcurl_ini…

亚矩阵云手机:重构物流供应链,让跨境包裹“飞”得更快更准

在跨境电商“时效即生命”的竞争中&#xff0c;物流信息滞后、清关效率低下、成本居高不下已成为商家最头疼的“三座大山”。传统模式下&#xff0c;人工更新物流状态耗时易错&#xff0c;跨境包裹常因清关延误遭客户投诉&#xff0c;而高昂的物流成本更直接吞噬利润。亚矩阵云…

HTML(5) 代码规范

HTML(5) 代码规范 引言 HTML(HyperText Markup Language)是一种用于创建网页的标准标记语言。HTML5 作为最新的 HTML 标准,自 2014 年正式发布以来,已经成为了构建现代网页应用的基础。本文将详细介绍 HTML5 代码规范,包括结构、语法、属性以及最佳实践等内容,旨在帮助…

【PTA数据结构 | C语言版】顺序栈的3个操作

本专栏持续输出数据结构题目集&#xff0c;欢迎订阅。 文章目录题目代码题目 请编写程序&#xff0c;将 n1 个整数顺序压入容量为 n 的栈&#xff0c;随后执行 n1 次取顶并出栈的操作。 输入格式&#xff1a; 输入首先在第一行给出正整数 n&#xff08;≤10^4 &#xff09;&a…

使用Pycharm集成开发工具远程调试部署在虚拟机上的flask项目:超级详细的完整指南

本文将详细介绍如何通过PyCharm Professional版远程调试部署在虚拟机(这里以Ubuntu为例)中的Flask项目。这种开发方式特别适合需要在接近生产环境调试的场景。 虚拟机网络配置 这里用到的是VMware的NAT&#xff0c;即网络地址转换模式&#xff0c;要保证你Linux虚拟机的IP&…

UE制作的 AI 交互数字人嵌入到 Vue 开发的信息系统中的方法和步骤

要将 UE(Unreal Engine,虚幻引擎)制作的 AI 交互数字人嵌入到 Vue 开发的信息系统首页中运行,可以参考以下方法步骤以及涉及的软件工具: 准备工作 软件工具 Unreal Engine:用于创建和编辑 AI 交互数字人,需要在 UE 中完成数字人的建模、绑定骨骼、添加 AI 交互逻辑等工…

基于elementUI的el-autocomplete组件的自动补全下拉框实践

<template><div :class"$options.name"><el-autocompletestyle"width: 100%"ref"autocomplete":popper-class"${$options.name}-el-autocomplete"v-model"inputSearchValue":placeholder"输入关键词...…

Gameplay - 独立游戏Celeste的Player源码

TGA2018最佳独立游戏《蔚蓝》的一些公开代码&#xff1b;主要是Player部分的代码&#xff1a;using System; using System.Collections; using System.Collections.Generic; using Monocle; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input;namespace Cel…

基于大模型的鼻咽癌全周期预测及诊疗优化研究报告

目录 一、引言 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目标与创新点 二、大模型技术与鼻咽癌相关理论基础 2.1 大模型技术概述 2.2 鼻咽癌疾病知识 2.3 大模型在医学领域的应用 三、数据收集与预处理 3.1 数据来源 3.2 数据清洗 3.3 数据标注 3.4 数据标…

基于odoo17的设计模式详解---访问模式

大家好&#xff0c;我是你的Odoo技术伙伴。想象一下&#xff0c;我们有一个复杂的对象结构&#xff0c;比如一个由不同类型的订单行&#xff08;销售行、折扣行、备注行&#xff09;组成的销售订单。现在&#xff0c;我们需要对这个结构执行一些新的操作&#xff0c;比如&#…

使用langgraph 构建RAG 智能问答代理

RAG 智能问答代理&#xff1a; ✅ 支持用户持续提问 ✅ 根据模型判断是否需要查资料 ✅ 自动调用 PDF 检索工具查找内容 ✅ 自动引用内容回答 ✅ 可以输入 exit / quit 退出 下载需要的library pip install langchain-google-genai pip install langgraph pip install langchai…

零基础搭建监控系统:Grafana+InfluxDB 保姆级教程,5分钟可视化服务器性能!​

​​你是否遇到过这些问题&#xff1f;​​服务器突然卡顿&#xff0c;却找不到性能瓶颈需要手动查看日志&#xff0c;无法实时监控数据运维报表全靠截图拼接&#xff0c;领导直呼“太原始”​今天教你用GrafanaInfluxDB构建企业级监控系统&#xff0c;从此告别“盲人摸象”式运…

Java中的wait和notify、Condition接口的使用

Java中的wait和notify机制基础概念在Java中&#xff0c;wait()和notify()是Object类的原生方法&#xff0c;用于实现线程间的协作&#xff1a;wait()使当前线程释放对象锁并进入等待状态必须在synchronized代码块内调用语法&#xff1a;obj.wait() 或 obj.wait(long timeout)线…

【Modern C++ Part9】Prefer-alias-declarations-to-typedefs

条款9&#xff1a;优先使用声明别名而不是typedef 我有信心说&#xff0c;大家都同意使用STL容器是个好的想法&#xff0c;并且我希望&#xff0c;条款18可以说服你使用std::unique_ptr也是个好想法&#xff0c;但是我想绝对我们中间没有人喜欢写像这样std::unique_ptr<std:…

STM32第二十一天定时器TIM

1 定时器基础知识a:上来说就是用来定时的机器&#xff0c;是存在于STM32单片机中的一个外设。STM32总共有8个定时器&#xff0c;分别是2个高级定时器(TIM1、TIM8)&#xff0c;4个通用定时器 (TIM2、TIM3、TIM4、TIM5) 和2个基本定时器 (TIM6、TIM7)&#xff0c;如下图所示&…

鼎捷T100程序开发:校验程序详解

校验程序概述 T100系统校验程序需要确保系统数据的准确性、完整性和一致性&#xff0c;相当于企业信息系统的"健康体检医生"。它通过预设规则扫描系统数据&#xff0c;识别异常和错误&#xff0c;确保业务运行可靠。通过持续完善的校验机制&#xff0c;企业能够构建数…