- 博客(72)
- 收藏
- 关注
原创 QDir的使用
然而,这通常不是创建新目录时的常见用法,因为这样做可能会导致混淆和错误,特别是当。时,你可以传递一个字符串参数,该参数指定要创建的目录的路径。对象将使用其当前设置的路径来尝试创建目录。来检查路径是否存在,并在不存在时尝试创建它。(包括所有必要的父目录)将被创建(如果它们不存在的话)。方法用于创建目录,包括所有必要的父目录。通常,当你想要创建一个目录时,你会首先创建一个。对象并设置你想要创建的目录的路径,然后调用。(包括所有必要的父目录)将被创建,而。不存在,它将被创建,然后在其下创建。
2025-03-13 18:16:19
261
原创 直方图均衡化的底层代码,包含详细的注释和实现原理
通过公式 sk=(cdf[k]−cdfmin)×255M×N−cdfminsk=M×N−cdfmin(cdf[k]−cdfmin)×255 计算映射表。使用整数运算代替浮点运算(+0.5实现四舍五入)实际使用时可以添加PGM/PPM文件头处理。支持RAW格式(原始8位灰度数据)使用查找表(LUT)加速像素映射。提前计算所有可能灰度值的映射结果。:统计每个灰度级出现的次数。:使用映射表转换所有像素值。需要预先知道图像尺寸。
2025-03-12 10:22:05
303
原创 lambda表达式的使用
在Qt中使用Lambda表达式可以简化代码,特别是在信号槽连接时非常方便。通过Lambda表达式,Qt代码可以更简洁灵活,但需注意作用域和生命周期问题。若Lambda异步执行(如跨线程),确保捕获的对象未被提前销毁。:定义Lambda外部变量的访问方式(值捕获、引用捕获等)。// 在 this 对象的上下文中执行。:允许修改按值捕获的变量(默认不可修改)。在类的成员函数中使用Lambda时,可捕获。:按值捕获外部变量(默认不可修改,需加。:按引用捕获外部变量(可直接修改)。:可省略,编译器自动推导。
2025-03-11 14:04:56
850
原创 ffmpeg windows 基本命令
**官方文档**:[https://ffmpeg.org/documentation.html](https://ffmpeg.org/documentation.html)- **FFmpeg命令生成器**:[https://ffmpeg.guide/](https://ffmpeg.guide/)| `-an` | 禁用音频。- `image-%03d.jpg`:生成文件名(如 `image-001.jpg`)。| `-b:v 1M` | 设置视频比特率(1Mbps)。
2025-03-07 14:09:18
628
原创 常见的图片文件格式及对应文件的详细介绍
**文件扩展名**:`.raw`, `.cr2`(佳能), `.nef`(尼康)等。- **颜色深度**:支持24位真彩色 + 8位透明通道(RGBA)。- **颜色深度**:支持24位真彩色(约1677万色)。- **压缩方式**:无损或有损(可选LZW、ZIP等)。- **压缩方式**:文本格式(可压缩为`.svgz`)。- **颜色深度**:12-16位色(专业级动态范围)。- **透明度**:支持1位透明(全透明或全不透明)。- **压缩方式**:有损或无损(基于HEVC编码)。
2025-03-06 14:04:42
887
原创 图像锐化(QT)
如果不使用OpenCV,我们可以直接使用Qt的`QImage`类对图像进行像素级操作来实现锐化。锐化算法的核心是通过卷积核(如拉普拉斯核)对图像进行处理,增强图像的边缘和细节。- 将处理后的`QImage`转换为`QPixmap`并显示在`QLabel`中。2. **锐化处理**:定义一个拉普拉斯卷积核,对图像的每个像素进行卷积操作。3. **显示图像**:将处理后的图像显示在`QLabel`中。1. **读取图像**:使用`QImage`加载图像。- 对图像的每个像素应用卷积核,计算新的像素值。
2025-02-10 22:01:14
599
原创 位深和位宽的区别
位宽:每个像素占用的总位数,影响存储和传输。位深:每个颜色通道的位数,决定颜色精度和动态范围。位宽和位深的选择需要根据具体应用场景权衡图像质量、存储空间和处理性能。
2025-02-10 18:13:49
1092
原创 LCUS型 USB继电器模块 电脑串口控制开关 PC智能控制器在pc端使用Qt程序进行串口控制
按照链接安装好程序驱动后启动你写的qt程序之后调用对应的代码就可以控制继电器了。接下来就是安装驱动程序,这个我推荐看b站up的视频,下面是链接。同时需要在.pro文件的中加入。
2025-01-14 17:49:26
626
原创 day2网络编程项目的框架
使用链表记录保存这些信息。数据包接受端:接受到数据后,分成两次读取一个数据包,第一次读取首先读取一个数据包头长度,然后根据数据包头中的数据长度读取整个数据包。用户在加入聊天室前,需要先进行用户登录或注册操作,并将注册的用户信息:用户ID,用户账号,用户密码。如果源文件发生修改,Makefile会检查文件的时间戳,如果有文件时间戳更新(该文件就会重新生成),只需要重新编译发生修改的源文件即可,节省了编译时间。协议版本:发送端填充自己的该数据包的版本信息,服务端接受数据包后,查看该版本是否是自己能识别的版本。
2024-10-03 21:44:09
1005
原创 C++day6作业
在这个场景中,我们可以将动物比作是不同的类,而每种动物表演则是类中的函数。而讲解员则是一个基类,他可以根据每种动物的特点和表演,进行相应的介绍。想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在,动物园里有一位讲解员,他会为每种动物表演做简单的介绍。定义一个基类 Animal,其中有一个虛函数perform(),用于在子类中实现不同的表演行为。比喻:动物园的讲解员和动物表演。
2024-08-12 22:07:00
206
原创 C++作业day5
(5)另外, RMB 类还包含一个静态整型成员变量 count,用于记录当前已创建的 RMB 对象的数量。每当创建一个新的 RMB 对象时,count 应该自增 1;(1)重载算术运算符 + 和 -,使得可以对两个 RMB 对象进行加法和减法运算,并返回一个新的 RMB 对象作为结果。(2)重载关系运算符 >,判断一个 RMB 对象是否大于另一个 RMB 对象,并返回 true 或 false。(3)重载前置减减运算符 --,使得每次调用时 RMB 对象的 yuan、jiao 和 fen 分别减 1。
2024-08-11 21:22:57
298
原创 进程之间的通信
现在有2个.c 文件 1.c负责输入2个非0数,a 和 b 2.c负责找出 a 到 b 之间的所有质数 要求使用无名管道实现。创建一对父子 父进程负责输入一串字符串 子进程负责判断这串字符串是否为回文字符串。
2024-07-24 08:57:54
183
原创 线程的中互斥锁和条件变量的运用
第一题:使用互斥锁或者信号量,实现一个简单的生产者消费者模型 一个线程每秒生产3个苹果,另一个线程每秒消费8个苹果。2个消费者线程,1号消费者线程每秒消费2个苹果,2号消费者线程,每秒消费3个橘子。实现现象:将终端输入的字符转换为其对应的ASCII码值返回。2个生产者线程,一个每秒放1个苹果,另一个每秒2个橘子。有一个盘子,盘子里面最多放3个苹果,5个橘子。放了苹果就不能放橘子,放了橘子就不能放苹果。
2024-07-22 21:54:35
223
原创 五车道进隧道(五线程双互斥锁)
有2条隧道,一条快速隧道,一条普通隧道。有5列火车,3列复兴号,2列绿皮扭扭车 要求,复兴号2条隧道都能走,绿皮车只能走普通隧道 模拟火车过隧道的场景。
2024-07-20 14:46:58
173
原创 多进程编程
其实子进程并不是在fork函数结束后才进行的,而是在fork函数内部,fork返回之前就已经产生,故一个fork函数会有两个返回值,父进程返回一个,子进程返回一个。所有在后台运行的进程,都是批量处理进程,很明显后台运行的进程就无法用终端控制,故这些进程无法与用户进行交互,那么就可以找一个专门的时间节点,专门处理这些进程。idel进程:0号进程会反复循环运行来尝试启动一号进程,当一号进程运行时,0号进程就会停止运行,反之如果没有进程运行就会启动0号进程。此时传入的是一个进程会话组id的相反数。
2024-07-18 22:33:59
1791
原创 文件IO(Ubuntu)
注释说的很明确,文件类型和属性,都在st_mode里面放着。什么叫做掩码:和文件权限相关一个数据 顾名思义:就是需要遮掩掉某些值的一个码 其实,我们在创建文件时候,我们所指定的权限值,并不是这个文件的最终权限值,而是需要剔除掉掩码当中所设定的哪些权限后,才是文件的最终权限值。即fopen的第二个参数如果写“w”,那么打开文件为只写打开,如果文件不存在则创建文件,如果文件存在则清空文件后打开。filearr这个文件指针数组中,默认的存放了3个文件的地址,终端输入文件地址,终端输出文件地址,终端错误文件地址。
2024-07-18 22:14:43
823
原创 标准IO(Ubuntu)
r:以只读的形式打开文件,如果文件不存在,就会打开失败,fopen就会返回NULL,文件打开成功后,光标位于文件的最开头(即第一个数据的前面)从stream指向的文件中,读取最多size - 1个字节的数据,然后将其写入s所指向的字符数组中,所有数据写入完成后,会再次写入一个结束符。w:以只写的形式打开文件,若文件不存在,则创建后打开,若文件存在,则清空文件打开(清空操作),文件打开后,光标位于文件的开头。前面学习的fprintf,fputc,fputs无论什么数据,都会以字符串的形式传入文件。
2024-07-17 22:59:33
749
原创 单向链表的数据存储(申请堆空间)
0.排序 1.回显 2.头插 3.位插 4.尾插 5.尾删 6.头删。7.位删 8.查找 (按值或按位查找) 9.修改 (按值或按位修改) 10.退出。
2024-07-08 20:30:52
595
LCUS型 USB继电器模块 电脑串口控制开关 PC智能控制器在pc端使用Qt程序进行串口控制驱动程序
2025-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人