自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Qt实现微信聊天(windows和linux上都可运行)

当服务器启动并读取配置文件完成初始化操作后,就会运行等待连接模块,这个模块会创建套接字,然后进入等待连接的暂停状态。接下来,当客户端发起连接时,这个模块会恢复运行并接受连接,然后启动客户端通信模块,并移交完成连接的套接字。接下来,客户端通信模块就会使用已连接的套接字与客户端进行通讯,通信结束后,这个模块就退出了。对于即时通信应用来说,实时性是非常重要的,而UDP协议正是为实时性需求而设计的。对于社交网络应用来说,数据的可靠性和顺序性是非常重要的,因此微信选择使用TCP协议。、多对多的交互通信。

2024-08-05 12:08:40 2390 1

原创 江南大学医疗诊断系统

医生可以使用该软件查看患者的电子档案,通过查看CT相片,为患者写诊断结果,同时CT相片经过特定的图像处理算法处理后更加清晰可见,提高医生的诊断效率。

2023-11-26 19:51:29 1527

原创 DeepSeek学习

client.chat.completions.create参数。

2025-02-25 10:13:31 388

原创 ROS学习

存放项目开发相关文件的文件夹;

2025-02-14 11:36:05 714

原创 C#委托入门

利用委托,将变化的生产方法进行委托。

2024-12-15 21:25:36 451

原创 Modbus TCP

Modbus TCP 格式示例:0x00 0x010x00 0x000x00 0x060x010x030x030x00 0x000x00 0x02示例:假设你要从单元 ID 为 1 的设备读取从地址 0 开始的 10 个线圈的状态。构建的请求可能如下:|

2024-09-22 20:40:48 1608 1

原创 CMake面经

CMake是一个跨平台的自动化构建系统,主要用来管理软件构建的过程,它使用一个名为CMakeLists.txt的配置文件来指导编译和链接过程。CMake支持多种编译器和开发环境,可以生成标准的构建文件,如Makefile。它不仅能够管理C/C++项目的构建,还支持多种编程语言和库的集成。

2024-08-17 20:49:47 846

原创 Opencv常用函数汇总

均值滤波方框滤波高斯滤波。

2024-08-17 09:59:38 417

原创 mysql让别的电脑连接本地数据库

2.关闭电脑的公用网络的防火墙。

2024-08-04 23:19:08 451

原创 qt自定义控件(QLabel)

先创建自定义控件类painter_label。

2024-07-21 13:02:21 432

原创 VC++配置Opencv库

如果在cv::imshow()时报错,大概率是因为读取的图像为空,先检查图像是否为空。2.opencv加载的有问题,在程序中加入以下代码。告诉程序将采用Debug版本的库函数。按照以上连接配置,基本上会成功。如果图像为空,可能的原因为。

2024-07-03 16:47:05 185

原创 MySQL模糊查询

%通配符可以匹配任意字符,但是不能匹配NULL,也就是说SELECT * FROM blog where title_name like '%';--模糊匹配含有“xxx网xxx车xxx”的数据,如“滴滴网约车司机端,网络约车平台”2.“_”下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。--查询前三个字符为xx网,后面任意匹配,如:“城通网盘、模具网平台”--模糊匹配含义“xx网x车xxx”的数据,如:“携程网约车客户端”--查询以“网”为结尾的,长度为三个字的数据,如:“链家网”

2024-04-15 11:51:15 1225 1

原创 数据交换格式

在计算机的不同程序之间,或者不同的编程语言之间进行交换数据,也需要一种大家都能听得懂得‘语言’,这就是数据交换格式,它通过文本以特定的形式来进行描述数据。

2024-04-10 20:43:40 1124

原创 阿里云python-SDK配置

oss2包配置完成。

2024-04-02 16:24:49 985

原创 如何将内网服务器映射到公网

家里的网络就好比家里的房子,如果房子没有墙,那家里的人就相当于裸奔,外面的人都可以看到你在干什么,相当于你的网络是开放的,外面人可以随便攻击你,所以为了安全,需要给周围加上墙,但是如果加上墙的话,就不能跟外面通信了,所以呢,就需要这个端口映射(选择性开放),相当于给墙上打一个孔,然后这个孔可以指定外面哪些人可以看到,里面的哪个东西可以精确的控制,外面的人就相当于暴露在外面的端口,里面的人就相当于里面的IP和端口号。

2024-03-12 09:48:24 886

原创 c++进阶路线

libcurl、CPR、libevent、libev、开源服务器Nginx。walk flow(c++开源服务器)或者libevent3。1).Source Insight(阅读大型源码)2).understand(整体代码模块关系构建)嵌入式操作系统的微内核Kilte。makefile或者cmake。版本控制主要:git和svn。

2024-02-26 20:31:26 789

原创 IOU、GIOU、DIOU、CIOU对比

IOU就是我所说的交并比,是目标检测中最常用的指标,在anchor-based的方法中,他的作用不仅用来确定正负样本,还可以用来评价输出框(predict box)和ground-truthd的距离。1.他可以反映预测检测框和真实检测框的检测效果2.尺度不变性,也就是对尺度不敏感,在regression任务中,判断predict box和gt的距离最直接的指标就是IOU(满足)

2024-02-22 16:57:54 1277

原创 深度学习和机器学习的区别

数据很小时,深度学习算法表现不佳,机器学习由于其手工制作的规则所以在数据样本少的情况下占据优势。

2023-12-23 16:55:21 854

原创 linux面经(二)

操作系统的组成Bootloader:它负责设备的启动过程。Shell:Shell是一种编程语言,它可以控制其他文件,进程以及所有其他程序。Kernel:它是操作系统的主要组件,管理内存,CPU和其他相关组件。Desktop Environment:这是用户通常与之交互的环境。Graphical server(图形服务器):它是操作系统的子系统,用于在屏幕上显示图形Applications: 这些是执行不同用户任务(例如word,excel等)的程序集。Daemons : 后台服务提供商。

2023-12-18 16:03:45 139

原创 linux面试题(一)

gcc是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还支持C++、java、Pascal等语言。

2023-12-15 10:09:05 1081

原创 Git面试题

提交文件的命令:git commit -m或者git commit -a。查看工作群状况:git status -s。拉取合并远程分支的操作:git pull。新增文件的命令:git add 文件名。查看提交记录命令:git reflog。1.常用的git命令。

2023-12-11 09:13:18 699

原创 Git学习

Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……

2023-12-08 16:52:07 413

原创 C++STL容器

1,list是C++STL容器中的顺序容器,这里的顺序容器区别于关联容器,指的是元素在容器中的位置与大小无关。deque容器为双端队列,可以对其两端的数据进行操作,因为它没有capacity属性,因此不会像vector那样”旧空间不足而重新配置一块更大空间,然后复制元素,再释放旧空间”,因此,deque没有必须要提供所谓的空间保留(reserve)功能。array是C++11中新增的容器,它与其他容器不同的是,它的大小是固定的,无法动态扩展或收缩,只允许访问或者替换存储的元素。对于vector容器,

2023-12-04 10:25:17 911

原创 二叉查找树和红黑树

看到这样的二叉搜索树是否很别扭,典型的大长腿瘸子,但它也是二叉搜索树,如果我们要找值为50的节点,基本上和单链表查询没多大区别了,性能将大打折扣。从规则4中知道,当前红黑树中从根节点到每个叶子节点的黑色节点数量是一样的,此时假如新的黑色节点的话,必然破坏规则,但加入红色节点却不一定,除非其父节点就是红色节点,因此加入红色节点,破坏规则的可能性小一些。根据规则4和规则3,若有红色节点,则必然有一个连接的黑色节点,当红色节点和黑色节点数量相同时,就是最长路径,也就是黑色节点(或红色节点)* 2。

2023-12-04 09:39:31 611

原创 c++面试题

1.构造函数不可以定义为虚函数:虚函数的调用需要通过虚函数指针指向虚函数表,虽然虚函数表在编译时就有,但虚函数指针在创建对象之后才有,因此无法调用虚构造函数2.析构函数一般定义为虚函数:在动态多态时,子类继承父类,子类重写父类的虚析构函数,父类指针或引用指向子类,这样就可以通过父类指针调用子类的析构函数释放子类中开辟的内存。

2023-11-30 15:28:56 1362

原创 Qt面试题

1.类型安全:需要关联的信号槽的签名必须是等同的,即信号的参数类型和参数个数和接受该信号的槽的参数类型和参数个数相同。2.松散耦合:发射信号的对象不需要知道哪个槽接收,也不需要知道是否被接受,只需要适当的时候发送就行了。QT保证适当的槽得到调用,即使关联的对象在运行时被删除,程序也不会崩溃3.灵活性:一个信号可以关联多个槽,多个信号也可以关联同一个槽2.信号槽的参数限定很多,例如不能携带模板类参数,不能出现宏定义等。

2023-11-28 16:56:34 1572

原创 Qt视频播放器

QMediaPlayer(电影放映员)、QMediaPlaylist(电影胶带)、QVideoWidget(电影屏幕)播放:player->start()暂停:player->pause()停止:player->stop()进度条和视频联合使用的三个步骤。1.设置进度条的最大值。2.视频跟着进度条动。3.进度条跟着视频动。

2023-11-27 21:15:38 496

原创 图片绘图类QPixmap、QImage、QPicture

QPixmap也可以接受一个字符串作为一个文件的路径来显示这个文件,比如你想在程序之中打开png、jpeg之类的文件,就可以使用 QPixmap。注意,这里说的显示设备并不是硬件,而是操作系统提供的原生的绘图引擎。2.QBitmap是QPixmap的一个子类,它的色深限定为1,可以使用 QPixmap的isQBitmap()函数来确定这个QPixmap是不是一个QBitmap。则是使用独立于硬件的绘制系统,实际上是自己绘制自己,因此提供了像素级别的操作,并且能够在不同系统之上提供一个一致的显示形式。

2023-11-27 16:56:54 431

原创 QPainter详解

QPen是画笔,用来绘制图形的轮廓线,以及定义轮廓线的颜色、样式和属性;QBrush是画刷,用来填充封闭图形,以及定义填充的颜色、样式和属性;QPainter是画家,他要使用画笔QPen和画刷QBrush,在画布()上画文字、图形、图片等。可以充当画布(QPaintDevice)的类(其子类)有:QWidget,QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, and QPixmap。

2023-11-27 16:03:57 1021

原创 Qt配置opencv库--使用qmake,mingw

Cmake配置完成后,在D:\Opencv\opencv\opencv-build输入cmd,并安装。安装完成后在.pro文件中导入opencv库文件。输入mingw32-make install。

2023-11-18 23:12:12 770

原创 Qt中的HTTP协议

-QNetworkRequest类通过一个URL地址发起网络协议请求,也保存网络请求的信息,目前支持HTTP、FTP和局部文件URLs的下载或上传(PS:Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL(Uniform Resource Locator,统一资源定位器)。它是www的统一资源定位标志,--QNetworkAccessManager类用于协调网络操作。

2023-11-18 20:31:36 111

原创 Qt下的TCP通信

④. 如果查找成功,发射信号hostFound(),同时状态进入 ConnectingState状态。⑥. 如果连接成功,状态进入ConnectedState状态,同时发射信号connected()。--void connected():connectToHost()成功连接到服务器后发射此信号。--void hostFound():调用connectToHost()找到主机后发射此信号。当缓冲区有新数据需要读取时发射此信号,在此信号的槽函数里,读取缓冲区的数据。发射信号 newConnection ()

2023-11-18 14:46:25 91

原创 TCP四次挥手

FIN1FINFIN_WAIT_1ACKCLOSE_WAITACKFIN_WAIT_2FINLAST_ACKFINACKTIME_WAITACKCLOSE2MSLCLOSEFINFINACKFIN从上面过程可知,服务端通常需要等待完成数据的发送和处理,所以服务端的ACK和FIN一般都会分开发送,因此是需要四次挥手。

2023-11-17 16:13:15 76

原创 TCP三次握手

普通回答:因为三次握手才能保证双方具有接收和发送的能力。三次握手才可以阻止重复历史连接的初始化(主要原因)三次握手才可以同步双方的初始序列号三次握手才可以避免资源浪费原因一:避免历史连接。

2023-11-17 12:01:50 68

原创 opencv常用算法--Grabcut

Grabcut算法主要运用于计算机视觉重的前背景分割,立体视觉和抠图等。该算法利用了图像中的纹理(颜色)信息和边界(反差)信息,只要少量的用户交互操作即可得到比较好的分割结果。grabCut函数的用法非常简单,只需要在输入图像做上 “属于背景”或“属于前最” 的标记即可。根据这个局部标记,算法将计算出整幅图像的前景/背景分割线。grabcut只需指定一个粗略的能将目标框住的边框就可以完成良好的分割。cv::compare()主要用于两个图像之间进行逐像素的比较,并输出比较的结果。

2023-11-17 10:20:01 230

原创 opencv常用算法--直方图

如读进来一个灰度图,用数值的形式展示出来,直方图就是统计0-255个像素值的分布情况,其中横坐标是0-255的像素值,纵坐标是每个像素值出现的次数。需要用到这个函数:cv2.calcHist(images,channels,mask,histSize,ranges)图像中的直方图概念,将图像分解成像素点,直方图对像素点进行统计。

2023-11-17 09:48:05 132

原创 opencv常用算法--模板匹配

opencv中模板匹配算法核心:它将模板与原图像中的每个部分进行比较,逐像素滑动。结果是一个相似度的图,该相似度图中每个像素值反映了模板与原图像中该位置的相似程度。从本质上讲,它将模板在图像上进行卷积,类似于卷积神经网络中使用卷积核的方式。通过这个过程,创建了一个新的图像或矩阵,其中每个像素值表示模板与源图像中相应区域之间的相似性。通过分析该结果图像,我们可以识别峰值,这些峰值表示源图像中存在模板图像的精确位置。

2023-11-17 09:21:33 148

原创 Qt下的UDP通信

-qint64 readDatagram(char* data, qint64 maxSize, QHostAddress* address, quint16* port) 读取一个数据报,返回成功读取的字节数。--qint64 writeDatagram(QByteArray& datagram, QHostAddress& host, quint16 port) 向目标地址和端口的UDP客户端发送数据报,返回成功发送的字节数,数据报的长度一般不超过512字节。通常在析构函数中写入。

2023-11-16 22:03:13 196

原创 Qt中绘图事件和绘图设备

Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制。整个绘图系统基于QPainter,QPainterDevice和QPaintEngine三个类。QPainter用来执行绘制的操作;QPaintDevice是一个二维空间的抽象,这个二维空间允许QPainter在其上面进行绘制,也就是QPainter工作的空间;QPaintEngine提供了画家(QPainter)在不同的设备上进行绘制的统一的接口。

2023-11-16 18:47:22 97

原创 Qt中的事件过滤器

为了过滤特定组件上的事件,首先需要判断这个对象是不是我们感兴趣的组件,然后判断这个事件的类型。所以,首先我们找到这个组件,如果这个事件是键盘事件,则直接返回 true,也就是过滤掉了这个事件,其他事件还是要继续处理,所以返回 false。这个函数返回一个 bool 类型,如果你想将参数 event 过滤出来,比如,不想让它继续转发,就返回 true,否则返回 false。也就是说,如果你在事件过滤器中停止了某个事件,那么,watched对象以及以后所有的事件过滤器根本不会知道这么一个事件。

2023-11-16 15:15:05 158

空空如也

空空如也

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

TA关注的人

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