- 博客(115)
- 收藏
- 关注
原创 【Qt 信号与槽使用自定义类型】出现 --错误:LNK2001 无法解析的外部符号
此方法适用于所有需要跨线程或队列传递非Qt内置类型的场景。通过注册自定义类型、确保信号槽参数一致,并正确配置项目,可解决。或类的构造函数中),注册。
2025-04-13 08:15:00
259
原创 【数据结构 哈夫曼树】构建步骤、案例
哈夫曼树(Huffman Tree),又称最优二叉树,是一种带权路径长度(WPL)最短的树。它广泛应用于数据压缩(如哈夫曼编码),通过为高频字符分配短编码、低频字符分配长编码,实现高效压缩。假设字符A、B、C、D的频率分别为5、9、12、13。通过构造哈夫曼树,可高效实现数据的无损压缩,平衡存储与传输效率。:构造一棵WPL最小的二叉树。
2025-04-12 08:30:00
475
原创 【OpenCV 中的坐标还原操作】仿射、透视、ROI
在 OpenCV 中,通常指将经过变换(如旋转、缩放、仿射/透视变换)后的图像中的坐标点,反向映射回原始图像中的对应位置。这在目标检测、图像配准、几何校正等场景中非常关键。坐标还原本质是。若对图像应用了某种变换矩阵 ( M ),则还原坐标需使用其逆矩阵 ( M^{-1} )。
2025-04-12 08:15:00
1860
原创 【Qt 为什么QMap中设置参数类型为 int[4] 会报错】错误 C2090 函数返回数组
在 C++ 中,int[4]QMap,因为它们违反了 C++ 的类型规则和模板要求。
2025-04-12 08:00:00
405
原创 【OpenCV 对图片做旋转操作】仿射=旋转+平移+缩放+剪切
快速实现 90°、180°、270° 的旋转(无需手动计算矩阵)。OpenCV 提供了多种函数用于图像的旋转操作,主要分为。旋转可能导致图像边缘出现黑色填充。根据需求选择合适的函数,并通过调整参数优化旋转效果。生成旋转矩阵,用于定义旋转参数。应用旋转矩阵对图像进行仿射变换。
2025-04-11 19:15:00
473
原创 【OpenCV 轮廓检测与轮廓筛选】
在OpenCV中,轮廓检测和轮廓筛选是图像处理中常用的技术,用于识别和分析图像中物体的形状。通过灵活组合轮廓特征(面积、形状、凸性等),可以高效筛选出符合需求的轮廓,为后续处理提供基础。轮廓检测通常在二值图像上进行,因此需要将原图转换为灰度图并进行阈值处理或边缘检测。使用多边形近似判断轮廓是否为简单几何形状。通过外接矩形的长宽比筛选特定形状的轮廓。该函数返回轮廓的坐标点和层级关系。过滤掉面积过小或过大的轮廓。
2025-04-11 19:00:00
455
原创 【OpenCV 形态学处理-闭运算】先膨胀再腐蚀
闭运算的数学表达式为:\text{闭运算} = \text{膨胀} \circ \text{腐蚀}即先对图像进行。
2025-03-16 08:30:00
1271
原创 【OpenCV 二值化cv::threshold 函数】参数、作用、应用场景
是 OpenCV 中用于的核心函数,主要用于将灰度图像根据设定的阈值转换为二值图像或进行其他形式的像素分类。【二值化:通过阈值给像素分区间】srccv::Matdstcv::Matsrcthreshdoublemaxvaldoublemaxvaltypeint):生成黑白图像,突出目标区域。):保留高亮度区域的细节,抑制低亮度区域。或):自动计算最佳阈值,适合光照不均匀的图像。Canny。
2025-03-16 08:15:00
505
原创 【计算机网络通信 MQTT 】MQTT代理:原理、作用与实现
MQTT代理是MQTT通信架构中的核心组件,它负责接收、存储和转发消息。它确保消息从发布者正确地传递到订阅者,支持解耦和异步通信。MQTT代理可以是运行在一台计算机上的软件服务,也可以是一个分布式系统,甚至可以是云平台上的托管服务。选择合适的MQTT代理实现和部署方式,取决于你的具体需求和应用场景。
2025-03-15 08:45:00
942
原创 【C/C++ Python】python 就这么把 C++ 几千行代码实现的功能给封装到一个接口里面啦!!!
当代开发常见模式是:Python 作为顶层胶水,调用底层 C/C++/Rust 实现的核心模块。既保持了开发效率,又兼顾了执行性能。像 TensorFlow/PyTorch 等框架正是这种架构的典范。如果你是一位 C++ 开发者,最近在接触 python 的话,很可能产生类似的想法~这正是 Python 的哲学魅力所在。最近在学习机器学习,同时产生了一些对于 C++ 和 python 的看法~类似功能用 C++ 需要处理套接字、线程、协议解析等底层细节。
2025-03-15 08:15:00
411
原创 【计算机网络通信 AMQP】使用 Qt 调用 qamqp 库进行 AMQP 通信
以下是一个使用 Qt 实现 AMQP 通信的代码示例。为了实现这个功能,我们可以使用qamqp库,它是一个基于 Qt 的 AMQP 客户端库。首先,你需要将qamqp库添加到你的 Qt 项目中,可以通过qmake或CMake进行配置。
2025-03-14 20:15:00
456
原创 【计算机网络通信 MQTT和AMQP的原理及应用场景、优缺点】
MQTT(Message Queuing Telemetry Transport)和AMQP(Advanced Message Queuing Protocol)都是常用的消息中间件协议,以下是它们的原理、应用场景、优缺点介绍:
2025-03-14 20:00:00
309
原创 【OpenCV (/逆)离散傅里叶变换】
cv2.dft:将图像从空间域转换到频率域,输出复数结果。cv2.idft:将图像从频率域转换回空间域,可以输出实部。这些函数在图像处理中非常有用,特别是在进行频率域分析和滤波时。通过这些变换,可以实现图像的平滑、锐化、去噪等操作。
2025-02-16 09:00:00
862
原创 【OpenCV 常用功能汇总】不要因为被神化而不敢触碰
OpenCV(Open Source Computer Vision Library)是一个强大的计算机视觉库,广泛应用于图像处理、视频分析、特征检测、机器学习等领域。
2025-02-16 08:45:00
469
原创 【Qt 与std::string相比有许多更强大的字符处理功能】
Qt的QString类提供了许多强大的字符串处理功能,这些功能在某些方面比标准C++库中的更为丰富和便捷。以下是QString相对于。
2025-02-15 09:30:00
312
原创 【Qt Qt的信号和槽传递机制 如何支持 std库包含的数据类型】
对于一些特定的标准库类型,你可以通过宏和函数将其注册为Qt的元类型系统支持的类型。// 应用程序逻辑 return app . exec();} // 然后可以在信号和槽中使用std::vector<int>// 应用程序逻辑 return app . exec();} // 然后可以在信号和槽中使用std::vector<int>int>>// 应用程序逻辑// 然后可以在信号和槽中使用std::vector<int>
2025-02-15 09:15:00
200
原创 【Qt Qt的信号和槽传递机制支持的数据格式】
自定义类:任何具有Q_OBJECT宏的QObject子类都可以通过信号和槽传递。对于非QObject子类的自定义类型,需要使用宏进行注册,然后使用函数在应用程序中注册该类型,以便Qt的元对象系统能够识别和处理它。枚举类型:需要使用Q_ENUM宏在类中声明枚举类型,以便Qt的元对象系统能够识别和处理它。
2025-02-15 09:00:00
271
原创 【Qt 比较常用的字符串处理函数】查找、比较、转换、截取、替换、插入、删除、格式化、分割、比较排序
在Qt中,QString类提供了许多用于字符串处理的函数。
2025-02-14 20:15:00
788
原创 【Qt 为什么 unique_ptr<ClassExample> 和直接声明的 ClassExample对象,connect时的表现形式不一样?】
和直接声明的对象在 Qt 中的行为差异主要源于它们对对象生命周期和所有权管理的不同方式。时,需要特别注意对象的生命周期和所有权转移,以确保与 Qt 的信号和槽机制正确配合。
2025-02-14 20:00:00
196
原创 【python 正则表达式:太复杂了所以通过练习-3(URL 统一资源定位器)】编写常见格式的字符串的正则表达式来由浅入深的认识它
直接头皮发麻,不要慌,我们逐个解释。
2025-01-19 09:30:00
649
1
原创 【python 正则表达式:太复杂了所以通过练习-2(邮箱-IP地址)】编写常见格式的字符串的正则表达式来由浅入深的认识它
【代码】【python 正则表达式:太复杂了所以通过练习-2(邮箱-IP地址)】编写常见格式的字符串的正则表达式来由浅入深的认识它。
2025-01-19 09:15:00
337
原创 【python argparse如何输出指定参数的帮助 help 内容】自定义帮助信息方法 包含所有帮助方法
通过一个完整的示例来展示如何使用自定义的帮助信息来输出特定参数的帮助内容。这个示例将包括一个脚本,该脚本接受一个特殊参数,用于显示指定参数的帮助信息。
2025-01-18 10:11:10
393
原创 【python 正则表达式:太复杂了所以通过练习-1(电话号码-日期)】编写常见格式的字符串的正则表达式来由浅入深的认识它
【代码】【python正则表达式:太复杂了所以通过练习-1(电话号码-日期)】编写常见格式的字符串的正则表达式来由浅入深的认识它。
2025-01-18 10:10:23
568
1
原创 【python argparse.add_argument 方法详解】
add_argument是Python中argparse模块的一个方法,用于为命令行接口定义参数。argparse是Python标准库的一部分,用于编写用户友好的命令行接口。
2025-01-18 10:10:05
386
原创 【python 用简单的方式理解python中的闭包和装饰器】
1、闭包闭包是指一个函数内嵌套另一个函数,并且这个嵌套的函数引用了外层函数的变量。闭包的作用是可以访问外层函数的变量,并且在函数内部修改变量的值。def make_adder(n): def adder(x): return x + n return adderadd_three = make_adder(3)print(add_three(4)) # 72、装饰器装饰器是一种特殊的函数,它可以用来修改另一个函数的行为。装饰器的语法如下:# @装饰器函
2025-01-17 20:15:00
199
原创 【python 关于python的文档字符串(docstring)】的注意点
Python 中的函数只能有一个文档字符串(docstring),它必须是紧跟在函数定义后面的第一段字符串,位于函数体代码之前。如果你在一个函数中写了多段看起来像文档字符串的文本,只有第一段会被当作文档字符串,其他的不会被识别为文档字符串。因此,当你打印一个函数的文档字符串时,只有定义在函数开头的那部分字符串会被输出。不会被识别为文档字符串,它只是函数体中的一个普通字符串。仍然只会返回第一段字符串。
2025-01-17 20:00:00
257
原创 【python 字典(dict)和集合(set)】创建、访问、基本操作及各自的特点】
Python 中的字典(dict)和集合(set)都是内置的数据结构,它们各自有不同的用途和特点。以下是它们的创建、访问和基本操作,以及它们之间的区别和特点。
2024-12-22 09:15:00
356
原创 【python 列表(list)和元组(tuple)】创建、访问、基本操作及各自的特点
Python 中的列表(list)和元组(tuple)都是用于存储有序集合的数据结构。以下是它们的创建、访问和基本操作,以及它们之间的区别和特点。
2024-12-22 09:00:00
191
原创 【Qt QModbus如何监控plc点位】附代码 + 提醒
注意,你拿到的数据ID和代码中识别的地址是有换算关系的,比如你拿到的可能是16进制或者是8进制的ID,那你在代码中就需要把它换成10进制,代码可以识别的格式。,你可以在写入(sendWriteRequest)后,自连接一个信号(&QModbusReply::finished)与槽,实时监控写入后的状态。,同时由于QModbus不带有回调函数,你就只能通过轮询的方式来读取这个点位的数据,也就是下面介绍的这种情况!类,它负责与 Modbus TCP 服务器建立连接,并定期轮询特定的寄存器点位。
2024-12-22 08:45:00
697
原创 【SQL/MySQL 日志模块中 二进制日志的】作用、存储方式、格式、读取方式
【代码】【SQL/MySQL 日志模块中 二进制日志的】作用、存储方式、格式、读取方式。
2024-12-21 09:15:00
381
原创 【SQL/MySQL 中日志系统部分-错误、二进制、查询、慢查询日志】作用及参数设置
MySQL 日志系统是数据库管理的重要组成部分,它帮助数据库管理员监控数据库活动、优化查询、恢复数据以及诊断问题。
2024-12-21 09:00:00
512
原创 【SQL/MySQL 事务的隔离级别】什么是RU、RC、RR?
如标题所示,看到RU、RC、RR把人整懵圈了,知道代表的是事务的隔离级别,但具体含义却记不得了,所以记录、回顾一下。SQL中的事务隔离级别定义了事务在并发环境下如何相互隔离,以避免并发事务之间的各种问题,如脏读、不可重复读和幻读。不同的数据库管理系统可能支持不同的隔离级别,但大多数遵循SQL标准的数据库系统,包括MySQL和PostgreSQL,都支持以下四个隔离级别:读未提交(Read Uncommitted):读已提交(Read Committed):可重复读(Repeatable Read):串行化(
2024-12-20 19:00:00
416
原创 【SQL/MySQL 如何使用三种触发器】SQL语句实例演示
触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。– 使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。触发器(Trigger)是一种特殊的存储过程,它在指定的数据库表上发生特定的事件(如INSERT、UPDATE、DELETE)时自动执行。
2024-12-20 18:45:00
612
原创 【SQL/MySQL 存储函数和存储过程有什么区别】
MySQL中的存储函数(Stored Functions)和存储过程(Stored Procedures)都是数据库中的存储例程,它们允许用户将SQL语句和控制流语句封装成独立的、可重用的单元。总的来说,存储函数适合于简单的、需要返回单个值的场景,而存储过程适合于执行一系列数据库操作的复杂任务。选择使用存储函数还是存储过程,取决于具体的应用需求和业务逻辑。
2024-11-24 09:30:00
409
原创 【SQL 视图的作用 是否可以理解成是一种查询限制?】不仅仅如此。。
例如,如果视图的定义查询是一个已经优化过的复杂查询,那么使用视图可以避免每次查询时都重复相同的复杂逻辑。例如,可以创建一个视图,仅包含用户需要访问的列,从而隐藏表的其他部分。例如,可以创建一个视图,仅包含用户的姓名和联系信息,而不包含敏感信息,如密码或财务数据。如果底层表的结构发生变化,只要视图的查询仍然有效,用户就不需要改变他们的查询。例如,可以创建一个视图,它总是返回最新的数据,或者返回经过验证的数据。使用视图时需要注意的是,视图的可更新性取决于其定义的查询。的视图)可能是不可更新的。
2024-11-24 09:00:00
484
原创 【Qt 运用QModbusTcpClient类 与Modbus服务器通信】plc通信
是 Qt 框架中用于实现 Modbus TCP 通信的客户端类。它提供了一个方便的 API,允许用户通过 TCP 协议与 Modbus 服务器进行通信。以下是。
2024-11-24 08:30:00
927
原创 【计算机网络通信 AMQP -2 中间件】消息队列中间件是对消息队列的一种具象实现--超直白。。
它也可以是某个软件框架或库的一部分,如用于分布式缓存的 Redis 或 Memcached,或者提供远程过程调用的 gRPC。中间件可以被视为一种“包装好的方法”,因为它封装了网络通信的复杂性,为开发者提供了一组易于使用的接口和协议。这样,开发者就无需从头开始处理底层的网络编程和通信协议,而是可以利用中间件提供的服务来实现更高层次的业务逻辑。总的来说,中间件是一种软件,它提供了一种标准化的方法来实现不同系统间的通信和数据交换,隐藏了底层的复杂性,使得开发者可以更加专注于业务逻辑的实现。
2024-11-23 10:00:00
391
原创 【计算机网络通信 AMQP -1(Advanced Message Queue Protocol)消息队列原理】直白说明+浅浅的认识一下
消息队列是一种在分布式系统中用于异步传输消息的软件组件,它通过发布者和订阅者的模式实现消息的解耦和异步处理。消息队列的原理主要基于先进先出(FIFO)的数据结构,生产者将消息放入队列,消费者从队列中取出消息进行处理,从而实现生产者和消费者之间的松耦合。
2024-11-23 09:00:00
632
WizTree中文版 - 极速磁盘空间分析清理工具(秒级扫描+可视化空间管理)
2025-04-17
SQL中 各种事务级别 和 脏读 不可重复读 幻读问题代码示例
2024-08-08
VC++之MFC类库中文手册资源
2024-07-29
MFC实现红绿灯com、dll
2024-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人