自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 Docker

个人理解开发了一个项目 可以在本机运行 但是如果版本更新 可能就会导致服务不可使用 后期我们维护起来就很繁琐 因为对于每一个机器 我们都得进行环境的部署呀 配置比如: 我在window系统下开发了一个项目(jar+redis+ES+Kafka+...) 但是我现在准备部署到服务器上去 因为不能夸平台 所以我还得重新去按照配置环境什么的 但是docker 就可以让我们 直接将项目打包然后部署上线了 不用一个个单独去维护。

2024-09-14 23:52:09 666

原创 GIT基本使用

参考博文:https://blog.csdn.net/weixin_46456187/article/details/139534607?

2024-09-14 13:57:47 849

原创 计算机网络

TCP设有一个保活计时器,服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。

2024-09-13 14:50:11 1036

原创 C++11新特性学习

std::atomic 是 C++11 提供的一个。

2024-09-13 14:47:52 903

原创 2-6考勤终端网络编程实现断线重连

序列化是指将数据结构或对象状态转换为可以存储或传输的一种格式的过程。反序列化是序列化的逆过程,即将序列化后的数据恢复成原来的对象或数据结构。是Qt库提供的一个类,它允许以二进制格式读写数据,包括基本类型如整数、浮点数、字符串,以及复杂类型如数组、列表、地图和自定义对象。因此,在Qt应用程序中,将数据流绑定到套接字是一种常见的做法,它使得开发人员能够更加专注于应用程序的逻辑,而不是网络通信的细节。序列化和反序列化是计算机科学中用于数据存储和传输的重要概念,尤其当涉及到复杂数据结构时,这两个过程变得尤为重要。

2024-08-20 20:34:36 15

原创 (一)操作系统

处理机、存储器、文件、设备执行程序之前才能被CPU处理。

2024-08-12 21:00:28 213

原创 基础语法(一)

宏在编译时完成替换,之后被替换的文本参与编译,相当于直接插入了代码,运行时不存在函数调 用,执行起来更快;函数调用在运行时需要跳转到具体调用函数宏定义属于在结构中插入代码,没有返回值;函数调用具有返回值宏定义参数没有类型,不进行类型检查;函数参数具有类型,需要检查类型宏定义不要在最后加分号宏定义宏主要用于定义常量及书写复杂的内容;typedef主要用于定义类型别名宏替换发生在编译阶段之前,属于文本插入替换;typedef是编译的一部分宏不检查类型;typedef会检查数据类型。

2024-07-31 20:32:50 1423

原创 2-23. 服务器端用QTabWidget整合

整合为一个界面,将做好的各个功能河道一起,提升为编写的类。

2024-07-24 01:06:44 303

原创 2-22. 考勤数据实时录入到数据库

在attendanceWin.cpp的recv_faceid()函数添加数据写入数据库的功能。

2024-07-24 00:43:51 377

原创 2-21. 考勤信息和员工信息查询模块设计与实现

在SelcetWin.h添加数据库头文件与相应模型指针。在SelectWin.cpp中声明模型。新建员工信息查询窗口。

2024-07-24 00:21:34 395

原创 2-20. 考勤机终端json数据接收与json解析和显示

接收数据为Ison数据,利用Json解析,添加Json的三个头文件。此时,认证成功框隐藏,数据解析后,头像显示时出现认证成功。将考勤系统的lineEdit全都重新命名。发送人脸数据之后,保存矩形框内的人脸数据。解析数据后在头文件定义保存人脸的对象。其他问题,将图片大小与窗口大小适配。

2024-07-23 21:24:15 158

原创 2-19. 服务器优化用线程实现人脸识别

在qfaceobject.cpp中用emit发送faceid,并且判断人脸相似度可信度,可信度大于0.85才发送,小于不认为是该人脸,发送-1。在attendancewin.cpp中关联send_faceid,定义接收人脸id函数recv_faceid,将其定义为槽函数。在QT中Mat类型数据不可以直接使用,需要在主函数中声明,并在主函数添加opencv头文件。线程需要信号触发,在attendancewin.h头文件中声明信号。查询到faceid发送,需要再qfaceobject.h定义信号。

2024-07-23 01:39:45 145

原创 2-18. 考勤机人脸采集发送次数优化

flag初始为0,检测到人脸++,大于2时发送数据,发送之后置为-2,重新进行flag计数,大于2再进行发送。人脸进入检测框后隔一段时间,等人脸稳定下来后再发送。设置标志,看是否是同一个人脸进入到识别区域。构造函数内声明flag为0。

2024-07-22 23:33:49 134

原创 2-17. 识别人脸id查询数据个人信息

数据传输过快,一直在处理查询,查询函数阻塞,画面无法一直刷新。在faceattendance.cpp中添加接收相关定义。attendancewin.h添加数据库头文件。定义接收数据的函数,并在头文件声明为槽函数。从数据库查询faceid对应的个人信息。在构造函数中给sql模型绑定表格。服务器端查询人脸对应信息。

2024-07-22 22:51:36 176

原创 2-16. 接收客户端人脸数据并识别出人脸ID

attendancewin.h添加对象。

2024-07-22 01:09:16 86

原创 2-15. 员工信息注册模块头像采集

registerwin.h文件添加定时器事件,设置定时器id方便管理。registerwin.h添加摄像头头文件,设置摄像头对象。可以将摄像头数据保存在头文件做全局变量。在registerwin.cpp中定义。在registerwin.cpp中定义。

2024-07-22 00:37:35 202

原创 2-14. 员工信息录入到数据库

2. qdebug打印faceid查看faceid,发现faceid都为0,识别不了人脸,说明faceobject出现问题。3.检查faceobject模块导入的seetaface数据库 ,创建对象初始化之后还需要导入已有的人脸数据库。主函数添加(在创建数据库之前),目前会显示两个界面,用于测试相应功能,后续嵌入到主界面。遇到困难:将头像保存到固定路径下命名都为0.jpg。该界面设计为widget类型,可以嵌入到主界面。1.先检查是否有语法逻辑错误导致无法注册。遇到困难:注册模块注册人脸失败。

2024-07-21 01:51:27 100

原创 2-13. 员工注册界面设计

2024-07-20 16:23:21 65

原创 2-12. QT数据库和表格创建

主函数创建数据库及数据表。

2024-07-20 15:52:55 108

原创 2-11. 考勤服务器数据表格设计

员工信息表:员工编号,姓名,性别,生日,地址,电话,人脸id,头像。用qt自带的sqlite3数据库。员工编号,考勤时间,备注。

2024-07-20 01:33:41 218

原创 2-10. 人脸识别模块封装-注册和查询

qfaceobject.h 添加seetaface头文件。添加C++类文件,将模块封装成类。可以选cpu或者gpu。

2024-07-20 01:21:16 215

原创 2-4. opencv检测人脸并实时显示 &&2-5. 人脸检测和人脸框显示与跟踪

1. 导入级联分类器文件cascade.load2. 矩形框图检测人脸cascade.detectMultiScale(grayImage, faceRects);3. 转为灰度图加快检测速度cvtColor(SrcImage, grayImage, COLOR_BGR2GRAY);参考博文socket参考博文tcp编程DMA将数据流()绑定到套接字(QTcpSocket或其他网络套接字)的主要目的是为了方便地在套接字上序列化和反序列化复杂的数据结构。

2024-07-19 22:21:27 1744

原创 《图解系统》(三)中断

Linux 中的软中断包括网络收发、定时、调度、RCU 锁等各种类型,可以通过查看 /proc/softirqs 来观察软中断的累计中断次数情况,如果要实时查看中断次数的变化率,可以使用 watch -d cat /proc/softirqs 命令。如果在 top 命令发现,CPU 在软中断上的使用率比较高,而且 CPU 使用率最高的进程也是软中断 ksoftirqd 的时候,这种一般可以认为系统的开销被软中断占据了。为了避免由于中断处理程序执行时间过长,而影响正常进程的调度,Linux 将。

2024-07-19 17:55:18 96

原创 《图解系统》(二)CPU如何选择线程的?

Linux 内核中,进程和线程都是用 task_struct表示的结构体里部分资源是共享了,因承载资源较少,Linux 中的线程也被称为没有创建线程的进程,是只有单个执行流,它被称为是主线程。让进程处理更多的事情,可以创建多个线程分别去处理,到内核里都是Linux 内核里的调度器,,该数据结构统称为。

2024-07-19 16:19:08 1629

原创 《图解系统》(一)硬件结构

基本组成:(1)纸带,内存,纸带格子的字符,内存中的数据或程序(2)读写头,存储单元(存放数据),控制单元(识别字符是数据还是指令),运算单元(执行运算指令)

2024-07-19 12:05:19 300

原创 2-3. 摄像头数据在QT界面上实时显示

1. QT定时器事件2. Mat采集数据,读取一帧数据3. opencv的Mat格式数据(BGR)转换为QT的QImage(RGB)4. 显示图像。

2024-07-17 18:04:17 23

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除