- 博客(30)
- 收藏
- 关注
原创 Halcon-开/闭运算
HALCON形态学运算对比指南摘要:本文详细对比了HALCON中的开运算和闭运算操作。开运算(先腐蚀后膨胀)适用于消除小物体和平滑边界,闭运算(先膨胀后腐蚀)用于填补孔洞和连接物体。对比了三种算子类型:通用形态学算子支持自定义结构元素,矩形算子适合轴对齐特征处理,圆形算子提供各向同性处理。性能方面,矩形算子速度最快,通用算子最灵活但消耗资源较多。文末提供了场景化选择建议,如去除水平划痕使用矩形开运算,处理各向噪点推荐圆形算子。
2025-06-27 10:26:30
187
原创 C# | EF框架 | 查询表格时报告表格不存在
中的连接字符串指向正确的 SQLite 文件路径。表是否存在,并确认其中包含已应用的迁移记录。打开 SQLite 数据库文件(使用工具如。如果迁移文件已被手动删除,跳过此步骤。删除现有的迁移文件(位于。
2025-03-06 11:42:06
546
原创 Asp.Net Web API| React.js| EF框架 | SQLite|
设计一个首页面,包含三个按钮分别对应三类用户(数据查看,设计人员,管理员),当点击管理员的时候弹出一个前端页面可以输入信息(以学生数据为例),提交之后后端存储数据库。当点击数据查看的时候,能够看到管理员录入的所有的学生数据。运行成功后,弹出swagger UI页面,测试API接口是否正常;React 应用将在。
2025-02-27 17:55:08
654
原创 C++ | 设计模式 | 代理模式
代理模式是一种,它为某个对象提供一个代理,以控制对该对象的访问。代理模式可以在不改变原始对象的情况下,通过引入代理对象来扩展功能或控制对原始对象的访问。代理模式的核心思想是通过一个代理对象来代替直接操作目标对象,从而实现对目标对象的访问控制、延迟加载、权限管理等功能。代理对象通常与目标对象实现相同的接口,因此客户端代码可以像使用目标对象一样使用代理对象,而无需感知代理的存在。适用于需要对对象的访问进行控制或增强的场景。
2025-02-26 08:52:21
1003
原创 内存映射实例
mmap()函数可以将内存的一块地址空间映射到进程空间的指定地址中。同样的也可以利用其开启一块共享的内存空间。(与malloc类似)开启一个子进程,与父进程利用mmap共同管理一块内存空间。
2024-10-24 22:06:46
285
原创 数据中继引擎【有限状态机】
有两个设备A,B(进程),需要接受输入(或其他),并且将彼此需要通信。在阻塞状态下,通信效率将大打折扣。例如A在接受输入的时候被阻塞,就不能向B写数据。同理B。使用非阻塞的IO将避免程序在没有数据的时候出现的情况。这里我们用有限状态机的思想实现一个。
2024-10-15 21:36:51
316
原创 C++从代码到可执行程序
C++从源代码到最终的可执行程序,经历了几个主要的步骤,包括预处理、编译、汇编和链接。这些步骤将高层的C++源代码逐步转换为机器可以执行的二进制指令。下面我将详细解释这些步骤及其过程。
2024-09-23 14:53:13
1073
原创 C++智能指针
适用于确保独占访问资源的场景,简单高效,自动释放内存。:适用于资源需要在多个对象之间共享的场景,它提供自动化的内存管理。:适用于防止循环引用或弱观察者模式,它不影响对象的生命周期。通过使用智能指针,C++ 程序员可以更方便地管理动态内存的分配和释放,从而减少内存泄漏的风险并编写更稳定的代码。
2024-09-23 11:12:50
667
原创 C++拷贝构造函数
指的是复制数据,复制内存。在C++中,要避免不必要的复制。当把一个对象或变量,一段数据从一个地方复制到另一个地方的时候,我们实际上会拥有两个副本。在程序运行过程中分配的内存大小是有限的,大量的复制势必会造成不必要的占用内存,并且消耗计算资源。一个简单的例子这里实际上是创建了一个a的副本,a和b是两个独立的变量,它们有不同的内存地址。所以如果我们把b改为3,a仍然是2。在类中,也是同样的道理。复制指针就不一样了,指向的内容是同一个,修改b也会影响a。指针赋值指向的内容是同一个,修改b也会影响a。
2024-09-20 19:50:56
801
原创 C++内存分区
*代码段:**存储程序的可执行指令,是只读的。**数据段:**包括已初始化和未初始化的全局和静态变量,程序执行期间存在。**堆:**用于动态分配的大块内存,手动管理分配和释放。**栈:**用于函数调用时存储局部变量和参数,自动管理内存分配和释放。**常量区:**存储程序中的常量数据,只读。
2024-09-20 10:51:44
523
原创 C++运算符重载
C++中我们有运算符重载,这意味着我们可以利用这些运算符,并定义我们自己的运算符。不仅是数学运算符,也会有其它常用的运算符,比如‘&’,dereference(解引用)运算符,->箭头运算符, += 运算符,取址运算符,左移运算符(
2024-09-19 16:26:09
260
原创 C#中线程池【异步】
在 WinForm 项目中,线程池中的线程主要用于执行异步和并发任务。当你调用某些异步方法或使用并行编程时,线程池中的线程就会被使用。
2024-09-14 10:34:46
733
原创 C# Socket网络通信【高并发场景】
单线程:示例中初始的服务器是单线程的,只能顺序处理一个客户端的连接请求。无法并发处理多个客户端。多线程:可以通过为每个客户端连接创建一个新线程来实现并发处理,能够处理多个客户端,但线程的创建和销毁有开销。异步编程:通过异步方法来处理客户端连接,在处理 I/O 操作时不会阻塞线程,能够处理大量并发请求,且资源消耗较低。如果你的服务器需要处理大量并发请求,异步编程模型可能是更优的选择。如果并发量较小,多线程方式也是一个有效的方案。
2024-09-13 15:40:42
1494
原创 C#中单例模式CSingleton
在 C# 中,单例模式是一种设计模式,确保一个类只有一个实例,并提供全局访问点。单例模式常用于需要全局共享某个资源或对象的场景,如数据库连接、日志记录器等。
2024-09-12 15:38:53
1258
原创 MQTT使用教程
MQTT (Message Queuing Telemetry Transport) 是一种轻量级的消息传输协议,专为设备间的通信设计,尤其适用于资源受限的设备和不可靠的网络环境。它广泛应用于物联网(IoT)领域,支持设备之间的低带宽、低功耗通信。特性MQTTHTTP通信模式发布-订阅请求-响应连接方式长连接短连接(可Keep-Alive)数据传输效率高效、低带宽传输开销大消息质量QoS 0/1/2无QoS机制状态管理保持状态无状态带宽与功耗低带宽、低功耗高带宽、相对高功耗实时性。
2024-09-10 18:58:32
1393
原创 C++模板【template】
与其他语言(如Java)中所提到的泛型相似,但C++中的templates(模板)要比其它语言中的泛型要更强大。模板有点像macro(宏),而泛型却非常受制于类型系统和其它因素。模板允许定义一个根据你的用途进行编译的模板,你可以让编译器基于一套规则帮你写代码。
2024-09-09 22:33:14
517
原创 关于Android 开发中 Java方法findViewById的使用
在实际开发中,当遇到有很多UI组件时,各个组件会通过andriod:id 属性给每个组件设置一个唯一的标识。当需要在代码中访问指定的组件时(例如设置单击事件),就可以通过id值,利用方法findViewById(R.id.id值)来访问。例如:public class MainActivity extends AppCompatActivity { Button bn ; EditText s...
2020-04-13 18:12:05
11281
1
原创 Android 中对话框的使用
Android 中对话框的使用对话框的使用对话框的分类使用AlertDialog建立对话框AlertDialog的样式多变,就是因为设置对话框内容时的样式 多变,AlertDialog提供了6种方法设置对话框的内容,如表所示。实例XML文件如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建...
2020-03-25 22:47:38
329
原创 一行代码计算输出两个数中大值MAX
int max(int x, int y);int main(){ cout << max(9, 8); return 0;}int max(int x, int y) { return x > y ? x : y;}
2019-11-12 20:01:33
427
原创 在C/C++中主函数main(int argc,int* argv[])括号内有何意义
1、首先用一段代码来测试argc ,argv中到底含有什么参数#include<stdio.h>#include<stdlib.h>#include<math.h>int main(int argc, int* argv[]){ printf_s("argc=%d\n", argc); for (int i = 0; i < argc; i...
2019-10-20 15:55:28
1607
原创 C++ 文本方式按行写入文件,以及按行读取
#include<stdio.h>#includeusing namespace std;FILE* stream;errno_t err;int open(){if ((err = fopen_s(&stream, “d:/aaa.xyz”, “wb”)) != 0) {cout << “failed open” << endl;re...
2019-10-17 19:43:08
2762
原创 C++ 对文件数据进行写入读取
//从文件中读取数据//step1:打开fopen;//step1:读取fread;//step2 : 关闭;#include<iostream>using namespace std;#include<stdio.h>FILE* stream;errno_t err;int sum;int *p=&sum ; //用来存放已读取多少字节//...
2019-10-12 23:06:37
486
原创 C++ 对txt文档进行编辑
#include<iostream>using namespace std;#include<stdio.h>FILE* stream; //定义一个文件 类型的 指针变量 ,以便接下来对文件 操作errno_t err; //定义一个 errno_t类型的变量,以便监视读取文件操作(open)是否成功( err=0 / err=2)int main(){...
2019-10-11 21:26:45
1836
空空如也
Boost库编译出错。
2024-11-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人