labelImg将图像标签显示到界面

2024-04-11 08:12

本文主要是介绍labelImg将图像标签显示到界面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

打开View的显示类别

在这里插入图片描述
但是颜色不够清晰,我想自己定制
我的象棋红色和黑色两种。并且把字体方法一些。

在这里插入图片描述
可以看到

color = self.select_line_color if self.selected else self.line_color

参考:https://blog.csdn.net/qq_41082953/article/details/103302252

最终追溯到这里
libs/shape.py的
DEFAULT_LINE_COLOR = QColor(0, 255, 0, 225)
在这里插入图片描述
改造generateColorByText函数

generateColorByText 函数将输入文本转换为一个颜色值。它使用以下步骤:
将文本转换为 Unicode 字符串,以确保与 Python 3 的兼容性。
使用 hashlib.sha256 对文本进行哈希处理。这会生成一个唯一的十六进制哈希值。
将哈希值转换为一个整数。
使用除法运算,将整数分解为三个较小的值,分别代表红色 ®、绿色 (g) 和蓝色 (b) 通道的颜色值。
将每个颜色通道的值限制为 0 到 255 之间的范围。
创建一个 QColor 对象,其中包含生成的红色、绿色、蓝色和 alpha 通道值(设置为 100,表示半透明)。

def generateColorByText(text):s = ustr(text)hashCode = int(hashlib.sha256(s.encode('utf-8')).hexdigest(), 16)r = int((hashCode / 255) % 255)g = int((hashCode / 65025)  % 255)b = int((hashCode / 16581375)  % 255)return QColor(r, g, b, 100)

改为

def generateColorByText(text):s = ustr(text)hashCode = int(hashlib.sha256(s.encode('utf-8')).hexdigest(), 16)r = int((hashCode / 255) % 255)g = int((hashCode / 65025)  % 255)b = int((hashCode / 16581375)  % 255)# 检查文本中是否包含 "red""black" 标签if "红" in s:return QColor(255, 0, 0,255)elif "黑" in s:return QColor(0, 0, 0, 255)else:return QColor(r, g, b, 100)

效果图
右边标签透明度有点高,且字体有点小
在这里插入图片描述

改变透明度

def generateColorByText(text):s = ustr(text)hashCode = int(hashlib.sha256(s.encode('utf-8')).hexdigest(), 16)r = int((hashCode / 255) % 255)g = int((hashCode / 65025)  % 255)b = int((hashCode / 16581375)  % 255)# 检查文本中是否包含 "red""black" 标签if "红" in s:return QColor(255, 0, 0, 255)elif "黑" in s:return QColor(0, 0, 0, 255)else:return QColor(r, g, b, 100)

将255 改成 100

在这里插入图片描述

要修改 QColor 对象的透明度,同时保持其他颜色通道值不变,可以使用 setAlpha() 方法。以下是如何执行此操作:

# 创建一个具有红色不透明颜色的 QColor 对象
color = QColor(255, 0, 0, 100)# 将透明度更改为 50%
color.setAlpha(50)# 打印修改后的颜色值
print(color)

输出:

QColor(255, 0, 0, 50)

如你所见,红色、绿色和蓝色通道值保持不变,而 alpha 通道值已更改为 50,表示 50% 的透明度。

你还可以使用 QColor.getRgb() 方法获取颜色通道值,然后使用 QColor.fromRgb() 方法创建具有不同透明度的新颜色。以下是执行此操作的一种方法:

# 获取当前颜色通道值
r, g, b, a = color.getRgb()# 创建一个具有相同颜色通道值但透明度为 50% 的新颜色
new_color = QColor.fromRgb(r, g, b, 50)# 打印新颜色值
print(new_color)

输出:

QColor(255, 0, 0, 50)

这两种方法都可以让你修改 QColor 对象的透明度,同时保持其他颜色通道值不变。

在 def paint(self, painter):增加

 # 将透明度更改为 255 %color.setAlpha(255)

在这里插入图片描述

# 改变标签字体大小

最终效果图

这篇关于labelImg将图像标签显示到界面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/893531

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

C# dateTimePicker 显示年月日,时分秒

dateTimePicker默认只显示日期,如果需要显示年月日,时分秒,只需要以下两步: 1.dateTimePicker1.Format = DateTimePickerFormat.Time 2.dateTimePicker1.CustomFormat = yyyy-MM-dd HH:mm:ss Tips:  a. dateTimePicker1.ShowUpDown = t

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬