- 博客(108)
- 收藏
- 关注
原创 【OpenCV 形态学处理-闭运算】先膨胀再腐蚀
闭运算的数学表达式为:\text{闭运算} = \text{膨胀} \circ \text{腐蚀}即先对图像进行。
2025-03-16 08:30:00
1233
原创 【OpenCV 二值化cv::threshold 函数】参数、作用、应用场景
是 OpenCV 中用于的核心函数,主要用于将灰度图像根据设定的阈值转换为二值图像或进行其他形式的像素分类。【二值化:通过阈值给像素分区间】srccv::Matdstcv::Matsrcthreshdoublemaxvaldoublemaxvaltypeint):生成黑白图像,突出目标区域。):保留高亮度区域的细节,抑制低亮度区域。或):自动计算最佳阈值,适合光照不均匀的图像。Canny。
2025-03-16 08:15:00
411
原创 【计算机网络通信 MQTT 】MQTT代理:原理、作用与实现
MQTT代理是MQTT通信架构中的核心组件,它负责接收、存储和转发消息。它确保消息从发布者正确地传递到订阅者,支持解耦和异步通信。MQTT代理可以是运行在一台计算机上的软件服务,也可以是一个分布式系统,甚至可以是云平台上的托管服务。选择合适的MQTT代理实现和部署方式,取决于你的具体需求和应用场景。
2025-03-15 08:45:00
893
原创 【C/C++ Python】python 就这么把 C++ 几千行代码实现的功能给封装到一个接口里面啦!!!
当代开发常见模式是:Python 作为顶层胶水,调用底层 C/C++/Rust 实现的核心模块。既保持了开发效率,又兼顾了执行性能。像 TensorFlow/PyTorch 等框架正是这种架构的典范。如果你是一位 C++ 开发者,最近在接触 python 的话,很可能产生类似的想法~这正是 Python 的哲学魅力所在。最近在学习机器学习,同时产生了一些对于 C++ 和 python 的看法~类似功能用 C++ 需要处理套接字、线程、协议解析等底层细节。
2025-03-15 08:15:00
402
原创 【计算机网络通信 AMQP】使用 Qt 调用 qamqp 库进行 AMQP 通信
以下是一个使用 Qt 实现 AMQP 通信的代码示例。为了实现这个功能,我们可以使用qamqp库,它是一个基于 Qt 的 AMQP 客户端库。首先,你需要将qamqp库添加到你的 Qt 项目中,可以通过qmake或CMake进行配置。
2025-03-14 20:15:00
420
原创 【计算机网络通信 MQTT和AMQP的原理及应用场景、优缺点】
MQTT(Message Queuing Telemetry Transport)和AMQP(Advanced Message Queuing Protocol)都是常用的消息中间件协议,以下是它们的原理、应用场景、优缺点介绍:
2025-03-14 20:00:00
288
原创 【OpenCV (/逆)离散傅里叶变换】
cv2.dft:将图像从空间域转换到频率域,输出复数结果。cv2.idft:将图像从频率域转换回空间域,可以输出实部。这些函数在图像处理中非常有用,特别是在进行频率域分析和滤波时。通过这些变换,可以实现图像的平滑、锐化、去噪等操作。
2025-02-16 09:00:00
837
原创 【OpenCV 常用功能汇总】不要因为被神化而不敢触碰
OpenCV(Open Source Computer Vision Library)是一个强大的计算机视觉库,广泛应用于图像处理、视频分析、特征检测、机器学习等领域。
2025-02-16 08:45:00
417
原创 【Qt 与std::string相比有许多更强大的字符处理功能】
Qt的QString类提供了许多强大的字符串处理功能,这些功能在某些方面比标准C++库中的更为丰富和便捷。以下是QString相对于。
2025-02-15 09:30:00
297
原创 【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
196
原创 【Qt Qt的信号和槽传递机制支持的数据格式】
自定义类:任何具有Q_OBJECT宏的QObject子类都可以通过信号和槽传递。对于非QObject子类的自定义类型,需要使用宏进行注册,然后使用函数在应用程序中注册该类型,以便Qt的元对象系统能够识别和处理它。枚举类型:需要使用Q_ENUM宏在类中声明枚举类型,以便Qt的元对象系统能够识别和处理它。
2025-02-15 09:00:00
253
原创 【Qt 比较常用的字符串处理函数】查找、比较、转换、截取、替换、插入、删除、格式化、分割、比较排序
在Qt中,QString类提供了许多用于字符串处理的函数。
2025-02-14 20:15:00
683
原创 【Qt 为什么 unique_ptr<ClassExample> 和直接声明的 ClassExample对象,connect时的表现形式不一样?】
和直接声明的对象在 Qt 中的行为差异主要源于它们对对象生命周期和所有权管理的不同方式。时,需要特别注意对象的生命周期和所有权转移,以确保与 Qt 的信号和槽机制正确配合。
2025-02-14 20:00:00
187
原创 【python 正则表达式:太复杂了所以通过练习-3(URL 统一资源定位器)】编写常见格式的字符串的正则表达式来由浅入深的认识它
直接头皮发麻,不要慌,我们逐个解释。
2025-01-19 09:30:00
641
1
原创 【python 正则表达式:太复杂了所以通过练习-2(邮箱-IP地址)】编写常见格式的字符串的正则表达式来由浅入深的认识它
【代码】【python 正则表达式:太复杂了所以通过练习-2(邮箱-IP地址)】编写常见格式的字符串的正则表达式来由浅入深的认识它。
2025-01-19 09:15:00
330
原创 【python argparse如何输出指定参数的帮助 help 内容】自定义帮助信息方法 包含所有帮助方法
通过一个完整的示例来展示如何使用自定义的帮助信息来输出特定参数的帮助内容。这个示例将包括一个脚本,该脚本接受一个特殊参数,用于显示指定参数的帮助信息。
2025-01-18 10:11:10
347
原创 【python 正则表达式:太复杂了所以通过练习-1(电话号码-日期)】编写常见格式的字符串的正则表达式来由浅入深的认识它
【代码】【python正则表达式:太复杂了所以通过练习-1(电话号码-日期)】编写常见格式的字符串的正则表达式来由浅入深的认识它。
2025-01-18 10:10:23
554
1
原创 【python argparse.add_argument 方法详解】
add_argument是Python中argparse模块的一个方法,用于为命令行接口定义参数。argparse是Python标准库的一部分,用于编写用户友好的命令行接口。
2025-01-18 10:10:05
340
原创 【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
194
原创 【python 关于python的文档字符串(docstring)】的注意点
Python 中的函数只能有一个文档字符串(docstring),它必须是紧跟在函数定义后面的第一段字符串,位于函数体代码之前。如果你在一个函数中写了多段看起来像文档字符串的文本,只有第一段会被当作文档字符串,其他的不会被识别为文档字符串。因此,当你打印一个函数的文档字符串时,只有定义在函数开头的那部分字符串会被输出。不会被识别为文档字符串,它只是函数体中的一个普通字符串。仍然只会返回第一段字符串。
2025-01-17 20:00:00
241
原创 【python 字典(dict)和集合(set)】创建、访问、基本操作及各自的特点】
Python 中的字典(dict)和集合(set)都是内置的数据结构,它们各自有不同的用途和特点。以下是它们的创建、访问和基本操作,以及它们之间的区别和特点。
2024-12-22 09:15:00
345
原创 【python 列表(list)和元组(tuple)】创建、访问、基本操作及各自的特点
Python 中的列表(list)和元组(tuple)都是用于存储有序集合的数据结构。以下是它们的创建、访问和基本操作,以及它们之间的区别和特点。
2024-12-22 09:00:00
184
原创 【Qt QModbus如何监控plc点位】附代码 + 提醒
注意,你拿到的数据ID和代码中识别的地址是有换算关系的,比如你拿到的可能是16进制或者是8进制的ID,那你在代码中就需要把它换成10进制,代码可以识别的格式。,你可以在写入(sendWriteRequest)后,自连接一个信号(&QModbusReply::finished)与槽,实时监控写入后的状态。,同时由于QModbus不带有回调函数,你就只能通过轮询的方式来读取这个点位的数据,也就是下面介绍的这种情况!类,它负责与 Modbus TCP 服务器建立连接,并定期轮询特定的寄存器点位。
2024-12-22 08:45:00
676
原创 【SQL/MySQL 日志模块中 二进制日志的】作用、存储方式、格式、读取方式
【代码】【SQL/MySQL 日志模块中 二进制日志的】作用、存储方式、格式、读取方式。
2024-12-21 09:15:00
371
原创 【SQL/MySQL 中日志系统部分-错误、二进制、查询、慢查询日志】作用及参数设置
MySQL 日志系统是数据库管理的重要组成部分,它帮助数据库管理员监控数据库活动、优化查询、恢复数据以及诊断问题。
2024-12-21 09:00:00
500
原创 【SQL/MySQL 事务的隔离级别】什么是RU、RC、RR?
如标题所示,看到RU、RC、RR把人整懵圈了,知道代表的是事务的隔离级别,但具体含义却记不得了,所以记录、回顾一下。SQL中的事务隔离级别定义了事务在并发环境下如何相互隔离,以避免并发事务之间的各种问题,如脏读、不可重复读和幻读。不同的数据库管理系统可能支持不同的隔离级别,但大多数遵循SQL标准的数据库系统,包括MySQL和PostgreSQL,都支持以下四个隔离级别:读未提交(Read Uncommitted):读已提交(Read Committed):可重复读(Repeatable Read):串行化(
2024-12-20 19:00:00
387
原创 【SQL/MySQL 如何使用三种触发器】SQL语句实例演示
触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。– 使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。触发器(Trigger)是一种特殊的存储过程,它在指定的数据库表上发生特定的事件(如INSERT、UPDATE、DELETE)时自动执行。
2024-12-20 18:45:00
604
原创 【SQL/MySQL 存储函数和存储过程有什么区别】
MySQL中的存储函数(Stored Functions)和存储过程(Stored Procedures)都是数据库中的存储例程,它们允许用户将SQL语句和控制流语句封装成独立的、可重用的单元。总的来说,存储函数适合于简单的、需要返回单个值的场景,而存储过程适合于执行一系列数据库操作的复杂任务。选择使用存储函数还是存储过程,取决于具体的应用需求和业务逻辑。
2024-11-24 09:30:00
399
原创 【SQL 视图的作用 是否可以理解成是一种查询限制?】不仅仅如此。。
例如,如果视图的定义查询是一个已经优化过的复杂查询,那么使用视图可以避免每次查询时都重复相同的复杂逻辑。例如,可以创建一个视图,仅包含用户需要访问的列,从而隐藏表的其他部分。例如,可以创建一个视图,仅包含用户的姓名和联系信息,而不包含敏感信息,如密码或财务数据。如果底层表的结构发生变化,只要视图的查询仍然有效,用户就不需要改变他们的查询。例如,可以创建一个视图,它总是返回最新的数据,或者返回经过验证的数据。使用视图时需要注意的是,视图的可更新性取决于其定义的查询。的视图)可能是不可更新的。
2024-11-24 09:00:00
477
原创 【Qt 运用QModbusTcpClient类 与Modbus服务器通信】plc通信
是 Qt 框架中用于实现 Modbus TCP 通信的客户端类。它提供了一个方便的 API,允许用户通过 TCP 协议与 Modbus 服务器进行通信。以下是。
2024-11-24 08:30:00
867
原创 【计算机网络通信 AMQP -2 中间件】消息队列中间件是对消息队列的一种具象实现--超直白。。
它也可以是某个软件框架或库的一部分,如用于分布式缓存的 Redis 或 Memcached,或者提供远程过程调用的 gRPC。中间件可以被视为一种“包装好的方法”,因为它封装了网络通信的复杂性,为开发者提供了一组易于使用的接口和协议。这样,开发者就无需从头开始处理底层的网络编程和通信协议,而是可以利用中间件提供的服务来实现更高层次的业务逻辑。总的来说,中间件是一种软件,它提供了一种标准化的方法来实现不同系统间的通信和数据交换,隐藏了底层的复杂性,使得开发者可以更加专注于业务逻辑的实现。
2024-11-23 10:00:00
387
原创 【计算机网络通信 AMQP -1(Advanced Message Queue Protocol)消息队列原理】直白说明+浅浅的认识一下
消息队列是一种在分布式系统中用于异步传输消息的软件组件,它通过发布者和订阅者的模式实现消息的解耦和异步处理。消息队列的原理主要基于先进先出(FIFO)的数据结构,生产者将消息放入队列,消费者从队列中取出消息进行处理,从而实现生产者和消费者之间的松耦合。
2024-11-23 09:00:00
627
原创 【Qt 绘图控件为什么选择graphicsview,其它绘图控件可以缩放移动吗?】
方法,允许你设置视图的中心点。你可以通过改变视图中心点的位置来实现场景的移动。等,它们也可以进行缩放和移动,但这通常需要你自己处理更多的细节,比如手动重绘控件内容和处理用户输入事件。支持用户与场景中的图形项进行交互,包括平移、缩放和旋转。这些交互功能是通过鼠标和键盘事件来实现的。方法,允许你设置缩放因子。由于其内置的交互功能和优化,通常是实现复杂交互式绘图应用的首选。是一个强大的部件,它提供了一个可滚动的视图,用于显示。方法用于将视图的中心点移动到场景中的指定位置,而。,Qt 还提供了其他绘图控件,如。
2024-11-22 20:15:00
318
原创 【Qt QObject::connect: Cannot queue arguments of type ‘your class‘】
在Qt框架中,如果你需要在QObject派生类的信号(signals)或槽(slots)机制中传递自定义类型的数据,或者需要将这些数据存储在QObject的属性(properties)中,你需要确保这些类型已被注册,以便Qt的元对象系统能够识别和处理它们。函数用于注册一个自定义类型,使其可以在Qt的元对象系统中使用。这包括在跨线程的信号和槽通信中传递该类型的实例,或者在Qt属性系统中使用。如果你在代码中看到这样的提示(可能来自Qt Creator的编译器插件或静态分析工具),这意味着你的代码中使用了类型。
2024-11-22 20:00:00
598
原创 【C/C++ explicit关键字】为什么有了explicit关键字的构造函数 就不能再有 其无参构造函数
关键字的构造函数,你就不能有相同签名的无参构造函数(默认构造函数),除非后者也标记为。,如果它不是必需的。这是因为无参构造函数可能会被用于隐式类型转换,而。试图调用无参的默认构造函数,而这个默认构造函数与。的构造函数,这样它就不会与带参数的构造函数重载。构造函数重载的无参构造函数,除非你也将其标记为。的构造函数,编译器不允许隐式调用无参构造函数。这样可以避免编译器错误,并确保类型的安全使用。在这个例子中,无参构造函数显式地调用了带。在 C++ 中,如果你有一个带有。关键字时,你需要确保不会创建与。
2024-10-27 09:00:00
361
原创 【C++/Qt 高精度计算qreal temp = static_cast<qreal>(nwidth) / nImgWidth;】
这行代码是C++中使用Qt框架时的一个类型转换示例。
2024-10-27 09:00:00
234
原创 【C/C++ Qt shared_ptr | make_shared | QSharedPointer 】绕圈圈
在功能上相似,但它们分别属于不同的库,并且在某些特定场景下可能更适合使用其中一个。在 Qt 应用程序中,通常推荐使用。在较新版本的 Qt 中已经不再推荐使用,而。,因为它可能更好地与 Qt 的其他特性集成。
2024-10-26 10:00:00
498
原创 【C/C++ make_shared和shared_ptr直接初始化有什么区别?】
初始化是 C++ 中创建共享智能指针的两种不同方式。它们之间的主要区别在于内存分配、效率、异常安全性和使用上的便利性。的直接初始化,比如当你需要在创建智能指针时立即获取原始指针或者需要与旧代码兼容时。,因为它更高效、更安全,并且在语法上更简洁。然而,有时候你可能需要使用。在实际使用中,推荐使用。
2024-10-26 09:00:00
324
原创 【SQL 数据库索引优化之 覆盖索引】原理深究剖析,拒绝假大空(VIP专属)
一个主键 和一个联合二级索引 、、。当执行查询时:数据库优化器会检查所有可用的索引,以确定是否有任何索引可以用于覆盖这个查询。在这个情况下,如果二级索引包含 、、,并且数据库的存储引擎(如InnoDB)在二级索引的叶子节点中也存储了主键 ,那么这个二级索引就可以作为覆盖索引。为什么系统会自动识别到它们四个加起来是覆盖索引?这是因为数据库的查询优化器在执行查询之前会进行索引扫描和访问路径的选择。如果发现有索引包含所有需要检索的列(在这个例子中是 、、、),那么优化器会选择使用这个索引来执行查询,而不需要进
2024-10-25 20:00:00
282
SQL中 各种事务级别 和 脏读 不可重复读 幻读问题代码示例
2024-08-08
VC++之MFC类库中文手册资源
2024-07-29
MFC实现红绿灯com、dll
2024-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人