当前位置: 首页 > news >正文

在windows系统中使用labelimg对图片进行标注之工具安装及简单使用

一.背景

        还是之前的主题,使用开源软件为公司搭建安全管理平台,从视觉模型识别安全帽开始。我是从运行、训练、标注倒过来学习的。本次主要是学习标注工具labelimg的安装及简单使用。

二.下载

        LabelImg是一款广受欢迎的开源图像标注工具,为计算机视觉和机器学习项目提供了便捷的图像标注功能。它的项目地址在这里https://github.com/HumanSignal/labelImg。把这个项目下载下来就行了。如过你打不开,就下载我这里的吧https://download.csdn.net/download/qq_37372909/90151034

      

三.安装

       安装主要是看的官方文档,我选择的anaconda在windows的安装方法。在刚刚github项目的主页下面有说明怎么安装。

     我英语也勉强,但我大概看得懂。我理解是先Anaconda,这个就参考我之前的文章在windows系统用Anaconda搭建运行PyTorch识别安全帽项目的环境-CSDN博客就可以了。然后是进入到Anaconda模式中和labelimg目录。怎么进入到Anaconda模式呢?在cmd打开后,用这个命令啊,之前文章也写了的。这里的myenv 是我的anaconda的环境名称哦,你如果也是这个就没有问题。

conda activate myenv

  进入到labelimg目录,当然就是把之前github下载的压缩包解压咯。注意不要放到包含中文目录或者特殊符合的路径下面。在刚刚conda环境激活后,cd到我们解压的项目目录。

     然后就是项目主页上说的这几个命令了。    

conda install pyqt=5
conda install -c anaconda lxml
pyrcc5 -o libs/resources.py resources.qrc#这里就是运行了哦
python labelImg.py

     过程中,可能要让你输入几次 y ,同意安装关联的组件吧

四.怎么标注图片

    1.工具长什么样?

     2.怎么标注图片中的安全帽?

     打开图片后, 点击左边的“创建区块”,在图片上按住鼠标左键拖动就可以画一个矩形框,松开鼠标后,弹出标注名称的输入,我输入的是安全帽的单词helmet,点击OK后,右中部就出现了一个标注信息。

     3.标注信息存储的格式与内容

       另存后,是一个xml文件,里面有图片的存放路径和标注的信息。

   xml文件内容如下:     

<annotation><folder>images</folder><filename>hard_hat_workers2.png</filename><path>D:\zsp\works\temp\20241119-zsp-helmet\Safety-Helmet-Detection-main\data\images\hard_hat_workers2.png</path><source><database>Unknown</database></source><size><width>416</width><height>415</height><depth>3</depth></size><segmented>0</segmented><object><name>helmet</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>295</xmin><ymin>219</ymin><xmax>326</xmax><ymax>249</ymax></bndbox></object><object><name>helmet</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>321</xmin><ymin>212</ymin><xmax>365</xmax><ymax>244</ymax></bndbox></object>
</annotation>

五.对Safety-Helmet-Detection项目中标注数据的理解

     1.Safety-Helmet-Detection项目中标注数据的格式       

0 0.914663 0.349760 0.112981 0.141827
0 0.051683 0.396635 0.084135 0.091346
0 0.634615 0.379808 0.052885 0.091346
0 0.748798 0.391827 0.055288 0.086538
0 0.305288 0.397837 0.052885 0.069712
0 0.216346 0.397837 0.048077 0.069712
1 0.174279 0.379808 0.050481 0.067308
1 0.801683 0.383413 0.055288 0.088942
1 0.443510 0.411058 0.045673 0.072115
1 0.555288 0.400240 0.043269 0.074519
1 0.500000 0.383413 0.038462 0.064904
0 0.252404 0.360577 0.033654 0.048077
1 0.399038 0.393029 0.043269 0.064904

    2.Safety-Helmet-Detection项目中标注数据的理解 

     我个人的理解 第一列可能是0、1代表了两种类型。比如:0是没有带安全帽的头。1是带的安全帽。后面4个数字我理解应该跟标注对象的位置有关,但都是小于1的数字,我有点迷糊。于是我去看了Safety-Helmet-Detection项目的主页,有这么一段话:    

    又要使用我中式英语技能了。大概意思是运行tools目录下的coverter.py程序把标注信息从xml文件转换为.txt文件。那打开程序代码读一读吧:     

from xml.dom import minidom
import osclasses={"helmet":0,"head":1,"person":2}def convert_coordinates(size, box):dw = 1.0/size[0]dh = 1.0/size[1]x = (box[0]+box[1])/2.0y = (box[2]+box[3])/2.0w = box[1]-box[0]h = box[3]-box[2]x = x*dww = w*dwy = y*dhh = h*dhreturn (x,y,w,h)def converter(classes):old_labels_path = "../data/validations_old"new_labels_path = "../data/validations/"for file_name in os.listdir(old_labels_path):old_file = minidom.parse(f"{old_labels_path}/{file_name}")name_out = (file_name[:-4]+'.txt')with open(f"{new_labels_path}/{name_out}", "w") as new_file:itemlist = old_file.getElementsByTagName('object')size = old_file.getElementsByTagName('size')[0]width = int((size.getElementsByTagName('width')[0]).firstChild.data)height = int((size.getElementsByTagName('height')[0]).firstChild.data)for item in itemlist:# get class labelclass_name =  (item.getElementsByTagName('name')[0]).firstChild.dataif class_name in classes:label_str = str(classes[class_name])else:label_str = "-1"print (f"{class_name} not in function classes")# get bbox coordinatesxmin = ((item.getElementsByTagName('bndbox')[0]).getElementsByTagName('xmin')[0]).firstChild.dataymin = ((item.getElementsByTagName('bndbox')[0]).getElementsByTagName('ymin')[0]).firstChild.dataxmax = ((item.getElementsByTagName('bndbox')[0]).getElementsByTagName('xmax')[0]).firstChild.dataymax = ((item.getElementsByTagName('bndbox')[0]).getElementsByTagName('ymax')[0]).firstChild.datab = (float(xmin), float(xmax), float(ymin), float(ymax))bb = convert_coordinates((width,height), b)#print(bb)#new_file.write(f"{label_str} {' '.join([(f'{a}.6f') for a in bb])}\n")new_file.write(f"{label_str} {' '.join([(f'{a:.6f}') for a in bb])}\n")print (f"wrote {name_out}")def main():converter(classes)if __name__ == '__main__':main()

    读了之后就明白了,4个数字中第一个代表标记对象中心x坐标/图片宽度(就是Xmax),第二个代表标记对象中心y坐标/图片高度(就是Ymax),第三个是标记对象占图片的宽度比例,第四个是标记对象占图片的高度比例。其实跟两个坐标来表达标记物没有太大区别。我这里还不明白作者为何使用这样的数据结构?是所有的模型都是这样?还是这一个模型是这样的?后面深度学习后,肯定能明白的。

    3.在运行coverter.py中遇到的一些问题

    我记得主要是目录的问题。主要是:    

    old_labels_path = "../data/validations_old"new_labels_path = "../data/validations/"

    不对的话就注意一下当前目录在哪里,你标注的文件放哪里的就行了。开源项目里面没有validations_old和validations目录,可以手动创建一个就行了。哦忘了说,运行文件可以用 

     python converter.py 

相关文章:

在windows系统中使用labelimg对图片进行标注之工具安装及简单使用

一.背景 还是之前的主题&#xff0c;使用开源软件为公司搭建安全管理平台&#xff0c;从视觉模型识别安全帽开始。我是从运行、训练、标注倒过来学习的。本次主要是学习标注工具labelimg的安装及简单使用。 二.下载 LabelImg是一款广受欢迎的开源图像标注工具&#xff0c;为计…...

数字图像处理技术期末复习

1. 已知图像的分辨率和深度&#xff0c;怎么求图像的存储空间&#xff08;位&#xff0c;字节&#xff0c;KB&#xff09;&#xff1f; 题目&#xff1a; 已知图像的分辨率和深度&#xff0c;怎么求图像的存储空间&#xff08;位&#xff0c;字节&#xff0c;KB&#xff09;&a…...

点云空洞的边界识别提取 pso-bp 神经网络的模型来修复点云空洞 附python代码

代码是一个Python程序,用于处理3D点云数据,特别是检测和修复点云中的孔洞区域。 1. **导入库**: - `numpy`:用于数学运算。 - `open3d`:用于处理3D数据和可视化。 - `torch`:PyTorch库,用于深度学习。 - `torch.nn`和`torch.optim`:PyTorch的神经网络和优…...

【AutoDL】通过【SSH远程连接】【vscode】

小帅碎碎念 0. 起因1. SSH信息获取2. 给你的vscode安装支持SSH远程连接的插件3. SSH远程连接入口4. 输入密码登陆5. 总结 0. 起因 之前使用AutoDL和Jupyter进行代码编辑和执行确实很方便&#xff0c;尤其是对于交互式数据分析项目。然而&#xff0c;也存在一些限制和不便之处&…...

ubuntu22.04编译安装Opencv4.8.0+Opencv-contrib4.8.0教程

本章教程,主要记录在Ubuntu22.04版本系统上编译安装安装Opencv4.8.0+Opencv-contrib4.8.0的具体过程。 一、下载opencv和opencv-contrib包 wget https://github.com/opencv/opencv/archive/refs/tags/4.8.0.zip wget https://github.com/opencv/opencv_contrib/archive/refs/…...

短链接服务

一 功能描述 1.短链接是将长连接转化为短连接使得链接变得美观清爽&#xff0c;让用户点击率更高&#xff0c;同时规避原始链接中一些关键词、域名屏蔽等问题&#xff0c;最终利用短链每次跳转都需要经过后端的特性&#xff0c;在跳转过程中做异步埋点&#xff0c;用于效果数据…...

【Vue3学习】setup语法糖中的ref,reactive,toRef,toRefs

在 Vue 3 的组合式 API&#xff08;Composition API&#xff09;中&#xff0c;ref、reactive、toRef 和 toRefs 是四个非常重要的工具函数&#xff0c;用于创建和管理响应式数据。 一、ref 用ref()包裹数据,返回的响应式引用对象&#xff0c;包含一个 .value 属性&#xff0…...

Halcon中dots_image(Operator)算子原理及应用详解

在HALCON中&#xff0c;dots_image算子是一个用于增强图像中圆点效果的强大工具&#xff0c;特别适合于点的分割&#xff0c;以及OCR&#xff08;光学字符识别&#xff09;应用程序中增强点状印刷字体。以下是对dots_image (ImageResult, DotImage, 5, ‘dark’, 2)算子原理及应…...

【C语言】库函数常见的陷阱与缺陷(四):内存内容操作函数[5]--memchr

C语言中的memchr函数用于在内存块中搜索一个特定的字符(实际上是unsigned char类型的值),并返回该字符第一次出现的指针。虽然这个函数在内存搜索中非常有用,但它也存在一些陷阱。 一、功能与用法 功能:memchr函数在指定的内存块中搜索第一次出现的特定字符,并返回一个…...

【P2P】【Go】采用go语言实现udp hole punching 打洞 传输速度测试 ping测试

服务器端 udpserver/main.go package mainimport ("fmt""net""sync""sync/atomic" )var (clientCounter uint64 0 // 客户端连接计数器mu sync.Mutex )func main() {addr, err : net.ResolveUDPAddr("udp", &q…...

【附源码】Electron Windows桌面壁纸开发中的 CommonJS 和 ES Module 引入问题以及 Webpack 如何处理这种兼容

背景 在尝试让 ChatGPT 自动开发一个桌面壁纸更改的功能时&#xff0c;发现引入了一个 wallpaper 库&#xff0c;这个库的入口文件是 index.js&#xff0c;但是 package.json 文件下的 type:"module"&#xff0c;这样造成了无论你使用 import from 还是 require&…...

【SpringBoot 调度任务】

在 Spring Boot 中实现调度任务&#xff08;Scheduled Tasks&#xff09;&#xff0c;通过使用 EnableScheduling 和 Scheduled 注解来完成。 添加依赖启用调度任务支持创建调度任务运行应用程序 添加依赖 pom.xml 文件中有以下依赖项&#xff1a; <dependency><gro…...

Android v4和v7冲突

android.useAndroidXtrue android.enableJetifiertruev4转成AndroidX...

【HarmonyOS之旅】HarmonyOS开发基础知识(一)

目录 1 -> 应用基础知识 1.1 -> 用户应用程序 1.2 -> 用户应用程序包结构 1.3 -> Ability 1.4 -> 库文件 1.5 -> 资源文件 1.6 -> 配置文件 1.7 -> pack.info 1.8 -> HAR 2 -> 配置文件简介 2.1 -> 配置文件的组成 3 -> 配置文…...

【排序算法】——插入排序

目录 前言 简介 基本思想 1.直接插入排序 2.希尔排序 代码实现 1.直接插入排序 2.希尔排序 总结 1.时空复杂度 2.稳定性 尾声 前言 排序(Sorting) 是计算机程序设计中的一种重要操作&#xff0c;它的功能是将一个数据元素&#xff08;或记录&#xff09;的任意序列&…...

Vue todoList小项目记录

最初代码 简单搭一个vue2的小项目 App.vue <template><div id"app"><!-- 容器 --><div class"todo-container"><div class"todo-wrap"><!-- 头部 --><MyHeader :addTodo"addTodo"></…...

SQL题目笔记

一、根据需求创建表&#xff08;设计合理的数据类型、长度)...

电脑开机提示error loading operating system怎么修复?

前一天电脑还能正常运行&#xff0c;但今天启动时却显示“Error loading operating system”&#xff08;加载操作系统错误&#xff09;。我已经仔细检查了硬盘、接线、内存、CPU和电源&#xff0c;确认这些硬件都没有问题。硬盘在其他电脑上可以正常使用&#xff0c;说明不是硬…...

Nginx 在不同操作系统下的安装指南

Nginx 在不同操作系统下的安装指南 一、Linux 系统下 Nginx 的安装 &#xff08;一&#xff09;基于 Ubuntu 系统 更新软件包列表 打开终端&#xff0c;首先执行sudo apt-get update命令。这一步是为了确保系统的软件包列表是最新的&#xff0c;能够获取到最新版本的 Nginx 及…...

景联文科技入选中国信通院发布的“人工智能数据标注产业图谱”

近日&#xff0c;由中国信息通信研究院、中国人工智能产业发展联盟牵头&#xff0c;联合中国电信集团、沈阳市数据局、保定高新区等70多家单位编制完成并发布《人工智能数据标注产业图谱》。景联文科技作为人工智能产业关键环节的代表企业&#xff0c;入选图谱中技术服务板块。…...

Nginx - 负载均衡及其配置(Balance)

一、概述 定义&#xff1a;在多个计算机&#xff08;计算机集群&#xff09;、网络连接、CPU、磁盘驱动器或其他资源中分配负载目标&#xff1a;最佳化资源使用、最大化吞吐率、最小化响应时间、避免过载功能&#xff1a;使用多台服务器提供单一服务&#xff08;服务器农场&am…...

MySQL存储引擎-存储结构

Innodb存储结构 Buffer Pool(缓冲池)&#xff1a;BP以Page页为单位&#xff0c;页默认大小16K&#xff0c;BP的底层采用链表数据结构管理Page。在InnoDB访问表记录和索引时会在Page页中缓存&#xff0c;以后使用可以减少磁盘IO操作&#xff0c;提升效率。 ○ Page根据状态可以分…...

数据资产入表 解锁智慧城市新潜力

在21世纪的科技浪潮中&#xff0c;智慧城市以信息技术为核心&#xff0c;以数据为血液&#xff0c;通过智能化、精细化的管理&#xff0c;让城市变得更加智慧、更加宜居。而数据资产入表&#xff0c;正是这一变革中的关键一环&#xff0c;它不仅推动了科技的进步&#xff0c;更…...

按类别调整目标检测标注框的写入顺序以优化人工审核效率

引言 在目标检测数据标注审核过程中&#xff0c;我们常常会遇到以下情况&#xff1a;某些小目标的检测框嵌套在大目标检测框内&#xff0c;而在模型进行预标注后&#xff0c;这些小目标的框可能被写入到了大目标框的下层。在人工审核阶段&#xff0c;标注审核人员需要手动移动…...

深入理解YOLO系列目标检测头的设定方式

目录 YOLOv1的检测头结构 1. 网络结构概述 2. 结构细节 3. 优缺点 YOLOv2的检测头结构 1. 网络结构概述 2. 结构细节 3. 优缺点 YOLOv3的检测头结构 1. 网络结构概述 2. 结构细节 3. 优缺点 总结&#xff1a;YOLO 系列检测头的结构演变 YOLOv1的检测头结构 1. 网络…...

智慧农业物联网解决方案:道品科技水肥一体化

在当今科技飞速发展的时代&#xff0c;农业也迎来了一场深刻的变革。智慧农业物联网解决方案中的水肥一体化技术&#xff0c;正逐渐成为现代农业发展的重要助推器。它不仅提高了农业生产效率&#xff0c;还实现了精准施肥和灌溉&#xff0c;为农业可持续发展带来了新的机遇。 …...

单片机上电后程序不运行怎么排查问题?

1.电源检查。使用电压表测量单片机的电源电压是否正常&#xff0c;确保电压在规定的范围内&#xff0c;如常见的5V。 2.复位检查。检查复位引脚的电压是否正常&#xff0c;在单片机接通电源时&#xff0c;复位引脚通常会有一个高电平&#xff0c;按下复位按钮时&#xff0c;复位…...

OceanBase 数据库分布式与集中式 能力

OceanBase分布式数据库与集中式数据库的差异 分布式数据库能解决金融行业最有挑战的高并发低延迟的核心交易系统的稳定性、扩展性、高性能问题。OB之所以一直强调分布式是说它具备很强的数据处理能力&#xff0c;当然从OB4.0开始也支持集中式了。 在实际业务场景中20%是分布式…...

C#多线程

C#中的多线程编程是开发高效并发应用程序的关键技术之一&#xff0c;它允许程序同时执行多个任务&#xff0c;从而提升应用程序的响应速度和性能。为了更好地理解C#中的多线程使用和定义&#xff0c;我们可以从以下几个方面来探讨&#xff1a;线程的基本概念、创建线程的方法、…...

Apache HTTP 服务器深度性能优化

引言 在前几篇文章中&#xff0c;我们讨论了基础和高级性能优化策略。现在&#xff0c;我们将深入探讨一些具体的优化实践&#xff0c;帮助您实现更精细的控制&#xff0c;并确保Apache服务器在各种复杂环境中都能保持最佳性能。 1. 细粒度的Apache配置调整 1.1 MPM参数微调…...

芯片级IO (Pad) Ring IP Checklist

SoC top顶层数字后端实现都会涉及到IO Ring &#xff08;PAD Ring&#xff09;的设计。这里面包括VDD IO,VDDIO IO, Signal IO, Corner IO&#xff0c;Filler IO&#xff0c;IO power cut cell等等。 数字后端零基础入门系列 | Innovus零基础LAB学习Day2 数字IC后端实现TOP F…...

无界wujie网址

文档网址&#xff1a;微前端是什么 | 无界 demo&#xff1a;https://wujie-micro.github.io/demo-main-vue/react17...

vulnhub靶场【DriftingBlues】之6

前言 靶机&#xff1a;DriftingBlues-6&#xff0c;IP地址192.168.1.63&#xff0c;因为重装靶机后期为192.168.1.64 攻击&#xff1a;kali&#xff0c;IP地址192.168.1.16 都采用虚拟机&#xff0c;网卡为桥接模式 主机发现 使用arp-scan -l或netdiscover -r 192.168.1.1…...

心情追忆- Nginx + OpenResty 构建高可用网关

之前&#xff0c;我独自一人开发了一个名为“心情追忆”的小程序&#xff0c;旨在帮助用户记录日常的心情变化及重要时刻。我从项目的构思、设计、前端&#xff08;小程序&#xff09;开发、后端搭建到最终部署。经过一个月的努力&#xff0c;通过群聊分享等方式&#xff0c;用…...

太速科技-527-基于3U VPX XCZU15EG+TMS320C6678的信号处理板

基于3U VPX XCZU15EGTMS320C6678的信号处理板 一、板卡概述 本板卡系我司自主研发的基于3U VPX风冷、导冷架构的信号处理板&#xff0c;适用于高速图像处理等。芯片采用工业级设计。 板卡采用标准3U VPX架构&#xff0c;板上集成一片Xilinx公司ZynqUltraScale系列F…...

Vue3源码笔记阅读1——Ref响应式原理

本专栏主要用于记录自己的阅读源码的过程,希望能够加深自己学习印象,也欢迎读者可以帮忙完善。接下来每一篇都会从定义、运用两个层面来进行解析 定义 运用 例子:模板中访问ref(1) <template><div>{{str}}</div> </template> <script> impo…...

多音轨视频使用FFmpeg删除不要音轨方法

近期给孩子找宫崎骏动画&#xff0c;但是有很多是多音轨视频但是默认的都是日语&#xff0c;电视上看没办法所以只能下载后删除音轨文件只保留中文。 方法分两步&#xff0c;先安装FFmpeg在转文件即可。 第一步FFmpeg安装 FFmpeg是一个开源项目&#xff0c;包含了处理视频的…...

AtomGit 开源生态应用开发赛报名开始啦

目录 1、赛项背景2、赛项信息3、报名链接4、赛题一&#xff1a;开发者原创声明&#xff08;DCO&#xff09;应用开发赛题要求目标核心功能 5、赛题二&#xff1a;基于 OpenHarmony 的开源社区应用开发简介赛题要求 6、参赛作品提交初赛阶段决赛阶段 7、参赛作品提交方式 1、赛项…...

使用 NVIDIA DALI 计算视频的光流

引言 光流&#xff08;Optical Flow&#xff09;是计算机视觉中的一种技术&#xff0c;主要用于估计视频中连续帧之间的运动信息。它通过分析像素在时间维度上的移动来预测运动场&#xff0c;广泛应用于目标跟踪、动作识别、视频稳定等领域。 光流的计算传统上依赖 CPU 或 GP…...

C语言学习day23:WriteProcessMemory函数/游戏内存数据修改工具开发

简言&#xff1a; 上一章我们说了获取应用进程的某数据&#xff08;data&#xff09;&#xff0c;这一章我们就说说修改内存地址的数据。想要修改内存&#xff0c;那么就需要我们另一个WinAPI函数&#xff1a;WriteProcessMemory()函数。 WriteProcessMemory()函数 函数原型…...

利用 html_table 函数轻松获取网页中的表格数据

背景/引言 在数据爬取的过程中&#xff0c;网页表格数据往往是研究人员和开发者的重要目标之一。无论是统计分析、商业调研还是信息整理&#xff0c;表格数据的结构化特性都使其具有较高的利用价值。然而&#xff0c;如何快速、准确地从网页中提取表格数据始终是爬虫技术的一个…...

Postman接口测试:全局变量/接口关联/加密/解密

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 全局变量和环境变量 全局变量&#xff1a;在postman全局生效的变量&#xff0c;全局唯一 环境变量&#xff1a;在特定环境下生效的变量&#xff0c;本环境内唯一 …...

手机银行模拟器,一款高仿真银行app的模拟器,可以修改姓名 卡号 余额 做转账记录 做流水

&#x1f4f1;手机银行模拟器让你自由定制你的金融生活。无论是流水账单、金额&#xff0c;还是个人信息&#xff0c;一切都可以按照你的意愿来模拟修改&#xff0c;让你体验模拟器带来的快乐&#xff01; 链接&#xff1a;https://pan.quark.cn/s/c2f614f3447f 提取码&#…...

HT7183:16V, 4.5A的DC-DC升压转换器,常用在数码相机里

HT7183描述&#xff1a; HT7183是一款高功率异步升压转换器&#xff0c;集成120mΩ功率开关管&#xff0c;为便携式系统提供高效的小尺寸解决方案。具有2.6V至5.5V输入电压范围&#xff0c;可为各类不同供电的应用提供支持。该器件具备3A开关电流能力&#xff0c;并且能够提供高…...

Cobalt Strike 4.8 用户指南-第十四节 Aggressor 脚本

14.1、什么是Aggressor脚本 Aggressor Script 是Cobalt Strike 3.0版及更高版本中内置的脚本语言。Aggressor 脚本允许你修改和扩展 Cobalt Strike 客户端。 历史 Aggressor Script 是 Armitage 中开源脚本引擎Cortana的精神继承者。Cortana 是通过与 DARPA 的网络快速跟踪计…...

【Qt】QWidget中的常见属性及其功能(二)

目录 六、windowOpacity 例子&#xff1a; 七、cursor 例子&#xff1a; 八、font 九、toolTip 例子&#xff1a; 十、focusPolicy 例子&#xff1a; 十一、styleSheet 计算机中的颜色表示 例子&#xff1a; 六、windowOpacity opacity是不透明度的意思。 用于设…...

对象的克隆 单例模式

1) 如何实现对象的克隆&#xff1f; 1、为什么需要实现对象的克隆&#xff1f; 在某些情况下&#xff0c;需要创建一个与现有对象完全相同的副本&#xff0c;这就是对象克隆。 例如&#xff0c;在需要对对象进行备份、在不同的上下文中使用相同的类型的对象或者实现某些设计…...

预处理内容

预处理是干什么的呢&#xff1f; 分为三点&#xff1a; 1.宏替换 2.头文件导入 3.删除注释 #ifdef #include <iostream> // 定义一个宏&#xff0c;表示当前处于调试模式&#xff0c;在实际调试时可以定义这个宏&#xff0c;发布时取消定义#define DEBUG MODE int ma…...

Docker笔记

1 安装docker b11et3un53m.feishu.cn/wiki/Rfocw7ctXij2RBkShcucLZbrn2d 项目的资料地址(飞书) 当使用docker pull +名字 拉取镜像时报 Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for co…...

条件随机场(CRF)详解:原理、算法与实现(深入浅出)

目录 1. 引言2. 什么是条件随机场&#xff1f;2.1 直观理解2.2 形式化定义 3. CRF的核心要素3.1 特征函数3.2 参数学习 4. 实战案例&#xff1a;命名实体识别5. CRF vs HMM6. CRF的优化与改进6.1 特征选择6.2 正则化 7. 总结与展望参考资料 1. 引言 条件随机场(Conditional Ra…...