- 博客(307)
- 资源 (4)
- 收藏
- 关注
原创 Qt Designer的父子部件样式表设置学习
在Qt Designer中新建图像界面,放置两个QWidget,命名为widget_1和widget_2;单独改变了widget_2,但是隶属于widget_2的pushButton_1和pushButton_2并没有改变。需要注意的是,采用这种办法,如果被改变的小部件还有它的子部件,子部件并不跟随被改变的小部件的改变而改变。这里,将隶属于widget_1的类型为QPushButton的所有部件全部定义了新的显示特性。这个样式表的含义为:widget_1中,所有的QWidget都按照指定的样式表显示。
2024-07-27 00:13:29
1383
原创 opencv的模板匹配(Template Matching)学习笔记
BRIEF 的缺陷是像素对随机选取,旋转后相对位置变化;ORB 则预先生成一组 “固定的像素对模板”,并根据特征点的主方向 θ,将所有像素对围绕特征点旋转 θ 角,得到 “旋转后的像素对”。(优化:ORB 通过统计学习筛选出 128 对 “相关性低、区分度高” 的像素对,最终生成 128 位二进制描述子,平衡匹配精度与速度)。
2025-11-24 16:05:10
496
原创 YOLO v11的学习记录(七) 阶段小结
这份配置是YOLOv8s 分割模型的标准训练配置,核心逻辑是:使用预训练权重迁移学习,10 轮训练,批次 4,输入尺寸 640,启用混合精度和常用数据增强,训练过程中验证并保存最优模型。可根据实际需求调整(如增大batch、增加epochs、开启等),重点关注data(数据集配置)、epochs(轮数)、batch(批次)、device(设备)这几个关键参数。
2025-11-21 20:50:32
751
原创 YOLO v11的学习记录(六) 把标注好的大图切割成小图
有一个工程,从相机获取到训练图的尺寸是4096*3072像素,图上有很多密集的小目标,用anylabeling进行标注后,送进YOLO训练时出了问题,由于电脑显存不大,如果用原图尺寸训练,即使很小的batch_size,也会显存溢出,如果用YOLO默认的imgsz=640,则由于缩小倍数过大,小目标被过度压缩,造成学习效果不佳。解决问题的办法是将大图裁切成小图(640*640)后再训练,下面的脚本实现了这个目的,并且在裁切图片的同时将已经标注好的数据随图片裁切。
2025-11-19 23:02:13
337
原创 YOLO v11的学习记录(五) 使用自定义数据从头训练一个实例分割的模型
AnyLabeling导出coco格式还有个问题,就是图片比较多,分多次标注和导出时,它的分类标签的顺序可能是不固定的,某一个分类,比如“长颈鹿”,第一次导出时在annotations.json中的序号可能是2,下一次可能就是3,这就给后面的训练带来了隐患,有可能使模型认错种类。上一篇,使用AnyLabeling对图片进行了标注,当标注完成后,在图片所在的文件夹内会生成与每个图片同名的json文件,当再次使用AnyLabeling导入图片文件夹时,json文件会一同被导入,方便再次编辑和导出。
2025-11-15 18:45:11
1036
原创 使matplot显示支持中文和负号
去掉#号将其修改为font.family: SimHei。Ubuntu系统可能没有雅黑字体,使用。中文和负号都显示不出来。
2025-11-15 18:37:03
205
原创 使用AnyLabeling标注图片
是一款开源、跨平台(Windows/macOS/Linux)的智能图像标注工具,支持目标检测、实例分割、关键点标注等多种任务,并集成了等 AI 模型,可实现半自动/全自动标注,极大提升效率。
2025-11-13 11:34:39
396
原创 DEIMv2部署和训练笔记
按照要求,创建目录并将前面步骤训练集的100张图片复制到E:\DEIM-main/dataset/images/train/,验证集的100张图片复制到E:\DEIM-main/dataset/images/val/。Windows系统下,直接安装requirements.txt,会安装一个CPU版的pytorch,无法使用GPU。所以需要把requirements.txt中的pytorch和torvision去掉,手动安装这两个(CUDA版的),然后再自动安装requirements.txt中的其余包。
2025-11-09 14:00:57
1392
3
原创 pdf转图片:pdf2image
或者,安装pdf panthom,用pdf panthom的虚拟打印机在adobe acrobat pro中将文件打印为图片格式的pdf文件,绕开字体问题。页面下载zip文件并解压,然后在系统的path增加路径:C:\poppler-25.07.0\Library\bin(根据自己的解压位置更改)。下载缺失的两种字体并安装即可。转换后明显字体失真。
2025-09-24 22:00:56
440
1
原创 CnOCR训练特殊字体(一)安装配置和准备文件
要做一个喷码字符的OCR项目,试了几个OCR库,对稀疏点阵喷码字体的识别率都不高,所以决定用CnOCR来训练自己使用的模型。Ubuntu系统。
2025-09-18 21:57:45
1013
原创 tsv文件简介
在很多 OCR(光学字符识别)项目中,.tsv文件是标准的训练数据标注文件,主要用于存储 “图像路径 - 对应文本标签” 的映射关系,同时可能包含图像尺寸、文本长度等辅助信息,方便模型读取训练数据并建立 “视觉特征→文本内容” 的映射。其核心作用是解决 OCR 训练中 “数据(图像)” 与 “标签(文本)” 的关联问题,兼容大多数深度学习框架(如 PyTorch、TensorFlow)的数据加载逻辑。:若框架要求无表头(如部分自定义数据加载器),可删除第一行表头,但需确保字段顺序固定且与代码读取逻辑一致。
2025-09-12 16:22:38
978
原创 STM32CubeIDE新建项目过程记录备忘(九) A/D转换并用串口定时上报
本项目,是将一个模拟量A/D转换后用USART输出,用开发板上的芯片转换成RS232电平后定时上传给上位机。同时对最近的学习做一个总结,归纳记录一下从模板项目建立新项目的方法,以及底层代码应用代码分离的框架的建立。复制粘贴新项目更改.ioc文件名称设置GPIO管脚和外设功能设置时钟设置生成成对的.h和.c文件以及生成hex文件设置中断设置调试配置生成代码设置完成后就进入软件编程阶段。新建xxx_app.h和xxx_app.c文件xxx_app.h内声明功能的初始化函数原型和功能函数原型。
2025-08-06 22:35:39
798
原创 STM32CubeIDE新建项目过程记录备忘(七)通用定时器中断
基本定时器:只有计数,简单应用。通用定时器:能PWM,能编码,没死区。高级定时器:可用于电机驱动,带刹车,带死区。
2025-08-05 11:52:05
858
原创 STM32CubeIDE新建项目过程记录备忘(六)USART接收不定长数据
上一篇,实验了中断方式的USART接收,其过程是接收缓冲区接收到的的数据长度达到设定字节后调用回调函数进行处理,并开启下一次接收。在实际的工程中很多通信数据的帧长度并不确定,本篇就是要解决这个问题。
2025-08-04 11:42:12
1005
原创 STM32CubeIDE新建项目过程记录备忘(五)中断方式的USART串口通信
在STM32CubeIDE新建项目过程记录备忘(一) 创建一个基础的模板-优快云博客里面,我已经将PA9和PA10配置为USART1的TX和RX,并完成了串口参数的设置。
2025-08-02 10:37:49
1195
原创 STM32CubeIDE新建项目过程记录备忘(三)GPIO的输入检测
GPIO的输入检测。我的板子,PC13接了一个按钮,在按钮两端有消抖电容,用以消除机械触点的抖动。PC13接有落地电阻R11,用途是降低输入阻抗,减少干扰。
2025-07-31 10:29:01
173
原创 STM32CubeIDE新建项目过程记录备忘(二) GPIO输出demo:LED闪烁
利用前面创建好的基础模板项目文件,创建第一个应用项目,单片机的hello world:LED闪烁。
2025-07-30 22:53:00
522
原创 STM32CubeIDE新建项目过程记录备忘(一) 创建一个基础的模板
• Data Direction:选择 “Transmit and Receive”(收发模式)。复制粘贴这个cfg文件,并重命名为dap.cfg(可自定义名字,是英文的即可)• Over Sampling:选择 “8” 或 “16”(过采样率)。无报错,并且控制台出现以下内容,就成功下载:(不要理会它的字体红颜色)选择固件版本,如果已有下载好的固件,要选择与已有固件相同的版本。• Mode:选择 “Asynchronous”(异步模式)。• Word Length:设置数据位,通常为 8 bits。
2025-07-29 17:36:32
664
原创 通信名词解释:I2C、USART、SPI、RS232、RS485、CAN、TCP/IP、SOCKET、modbus等
协议 / 接口传输方式速率距离典型应用场景I2C串行同步(2 线)低速(≤3.4Mbps)短(板内)芯片间通信SPI串行同步(4 线)高速(≤50Mbps)短(板内)高速外设通信USART串行异步 / 同步中速(≤2Mbps)中(数米)设备间串口通信RS232单端串行低速(≤115200bps)短(≤15 米)传统设备通信RS485差分串行中速(≤10Mbps)长(≤1200 米)工业分布式网络CAN差分串行中高速(≤1Mbps)
2025-07-27 21:37:38
1443
原创 STM32基础知识学习笔记:ICODE、DCODE、DMA等常见名词的解释
STM32 的 DMA 控制器通常包含多个独立通道(如 STM32F1 系列有 DMA1 的 7 个通道和 DMA2 的 5 个通道),每个通道可对应不同的外设请求(如 ADC、SPI、UART、TIM 等),支持同时处理多个外设的数据传输。总之,APB 是 STM32 中负责低速外设连接的 “辅助通道”,与 AHB 总线分工协作,既保证了系统核心的高性能,又兼顾了外设的低成本和低功耗需求,是嵌入式微控制器总线架构的重要组成部分。在 STM32 中,Flash 不仅存储程序指令,还存储常量数据。
2025-07-25 15:45:15
1158
原创 C 语言的指针复习笔记
指针是 C 语言的灵魂,其核心是 "通过地址间接操作内存"。指针的声明与初始化(指向有效内存);解引用()和取地址()的操作;指针与数组、函数的结合使用;动态内存分配中指针的管理;规避野指针、内存泄漏等常见错误。
2025-07-21 20:51:58
665
原创 优象光流模块,基于python的数据读取demo
优象光流模块,型号UP-FLOW-LC-302-3C,准备将其应用于设备的运行速度测量,物美价廉。与官方的给定略有出入,不过主要字节的顺序是对的。
2025-07-04 22:20:21
254
原创 二维标记系统ArUco
ArUco是计算机视觉中广泛使用的二维 fiducial 标记系统,专为高精度定位和姿态估计设计。ArUco 是 OpenCV 库中的一个模块,基于 ARTag 开发。
2025-06-26 17:14:17
702
原创 海康威视工业相机,获取图像的两种方法:MV_CC_GetImageBuffer与MV_CC_RegisterImageCallBackEx 的区别
在海康威视的 Python SDK 里,和这两个函数都是用于获取图像数据的。主动获取图像:通过调用该函数,应用程序直接从 SDK 的内部缓冲区中获取图像数据。1. 调用MV_CC_StartGrabbing() 启动图像采集。2. 在应用层循环调用MV_CC_GetImageBuffer() ,取图的线程阻塞等待相机返回图像数据,如果有设置超时,超时后返回无图像ret并启动下一个调用循环。3. 处理完图像数据后,调用MV_CC_FreeImageBuffer()释放缓冲区。
2025-06-24 22:47:29
1174
原创 海康威视GigE工业相机的python调用demo
默认路径安装完成后,在路径C:\Program Files (x86)\MVS\Development\Samples\Python\BasicDemo下的BasicDemo.py中,海康威视官方提供了基本的调用方法,本文也是基于这个修改的。BasicDemo.py提供了通过枚举选择相机的方法,在官方的另一个DEMO:ConnectSpecCamera.py中提供了另一种不通过枚举,直接访问特定IP相机的方法,也可以参考。另外,如果每台相机都定义了唯一的用户定义名,也可以通过用户定义名来区分相机。
2025-06-17 22:36:45
1616
5
原创 python的海象运算符 :=
海象运算符(Walrus Operator)是 Python 3.8 版本引入的一个新特性,其符号为:=。海象运算符”这个名字源于其外观,:=这一符号组合看起来和海象的眼睛与长牙有几分相似。它的主要作用是在表达式内部进行赋值操作,这样可以减少代码的重复,使代码更加简洁和高效。
2025-03-28 23:07:01
426
原创 pyside6的QGraphicsView体系,当鼠标位于不同的物体,显示不同的右键菜单
【代码】pyside6的QGraphicsView体系,当鼠标位于不同的物体,显示不同的右键菜单。
2025-03-24 22:42:50
481
原创 PySide(PyQt),QGraphicsView 类的橡皮筋选择框的 rubberBandChanged 信号与拖动模式QGraphicsView.DragMode
当用户开始拖动鼠标创建橡皮筋选择框、拖动过程中橡皮筋选择框的大小和位置发生变化,或者释放鼠标结束橡皮筋选择框的创建时,从运行结果看得出,当松开鼠标时,发送了一个全0信号,用以复位矩形区域,可以将其作为选择结束的标志,来进行下一步的操作。信号在橡皮筋选择框的状态发生变化时被发射。橡皮筋选择框是用户通过鼠标拖动在视图中创建的一个矩形框,常用于选择。函数用于设定视图的拖动模式,此模式决定了用户在视图里进行鼠标拖动操作时的行为表现。在 PySide6 中,在 PySide6 里,,这个参数定义了不同的拖动模式。
2025-03-21 22:49:03
458
原创 python的MRO学习笔记
在Python中,MRO(Method Resolution Order)即方法解析顺序,它定义了在多重继承的情况下,Python 解释器查找方法和属性的顺序。
2025-03-21 09:23:48
554
原创 用于AI-CV项目标注的星标模型
功能:生成星标图形项,并在目标点上将底图颜色反色显示,当定位和拖动后输出底图在标记点的像素值。输入和输出使用信号槽机制。
2025-03-17 18:07:27
806
原创 PySide(PyQt),QGraphicsItem的坐标映射转换函数
类提供了多个映射函数,用于在不同坐标系(例如:项目坐标系、父坐标系和场景坐标系)之间转换坐标和矩形。这些函数非常有用,尤其是在处理复杂的图形场景和需要精确位置信息的情况下。这些函数对于处理和转换不同图形元素之间的相对位置和尺寸非常有用。通过使用这些函数,你可以确保所有项目在同一个参考框架下正确渲染和计算,这对于构建复杂界面或进行精细化的图形操作非常重要。在PySide6中,
2025-03-17 12:04:14
493
试试用pyqt做一个上位机软件,但愿不会烂尾(七)配套资源
2023-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅