自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决WSL2突然没网络问题

在使用Windows Subsystem for Linux(WSL)时,有时可能会遇到网络连接问题。以下步骤可以帮助你解决这些问题。

2024-07-12 09:45:19 218

原创 Ubuntu18.04安装ROS

ros-melodic-desktop-full : 依赖: ros-melodic-desktop 但是它将不会被安装。依赖: ros-melodic-urdf-sim-tutorial 但是它将不会被安装。依赖: ros-melodic-perception 但是它将不会被安装。依赖: ros-melodic-simulators 但是它将不会被安装。不要关闭【软件和更新】里面的【更新】设置,全部通知。gpg: 找不到有效的 OpenPGP 数据。在终端执行下面的命令即可。

2024-07-11 12:17:34 501

原创 单通、双通滤光片与IR-CUT的原理

在光学和影像处理领域,滤光片是一种关键的光学元件,用于控制光的传播特性。本文将深入探讨单通滤光片、双通滤光片以及IR-CUT(红外切换)技术,分析它们的原理、应用和技术特点。

2024-07-10 11:32:16 429

原创 设计模式:建造者模式

建造者模式是一种将复杂对象的构建与其表示分离的设计模式。通过使用不同的建造者,可以创建具有不同表示的对象。它主要用于创建一些复杂对象,这些对象由多个部分组成,而这多个部分通常需要分步骤创建。产品(Product)需要构建的复杂对象。建造者(Builder)构建产品的各个部分的抽象接口。具体建造者(ConcreteBuilder)实现Builder接口,构建和装配各个部件。指挥者(Director)构建一个使用Builder接口的对象。

2024-07-10 10:14:36 888

原创 设计模式:工程模式

工程模式是一种通过工厂方法来创建对象的设计模式,避免了直接使用new关键字来实例化对象。它将对象的创建过程封装在一个工厂类中,使得代码更加灵活和可维护。简单工厂模式(Simple Factory Pattern)也称为静态工厂方法模式,使用一个单一的工厂类根据条件创建对象。工厂方法模式(Factory Method Pattern)定义一个创建对象的接口,但让子类决定实例化哪个类。抽象工厂模式(Abstract Factory Pattern)

2024-07-10 09:55:35 960

原创 设计模式:单例模式

在实际应用中,根据具体的需求和性能要求选择合适的单例模式实现。饿汉模式适合于实例初始化开销较小且始终会被使用的情况,而懒汉模式则适用于实例初始化开销较大或可能不被使用的情况。单例模式是一种常用的设计模式,它确保一个类只有一个实例,并提供了一个全局访问点。在C++中,实现单例模式可以采用饿汉模式或懒汉模式,每种模式都有其适用的场景和特点。在饿汉模式中,单例实例在程序启动时就被创建,无论之后是否会被用到。懒汉模式下,单例实例在首次被请求时才被创建。

2024-07-08 21:59:05 450

原创 深入理解C++线程池的实现

在多线程编程中,线程池是一种重要的工具,用于管理和执行多个任务,有效地利用系统资源和提升程序性能。

2024-07-08 12:19:22 1355

原创 JSON、XML、TLV 和 Protobuf 的对比

JSON:适用于需要高可读性和易于调试的数据交换场景,如 Web 应用中的数据传输。XML:适用于需要结构化和标准化数据表示的场景,如配置文件和文档存储。TLV:适用于需要高效传输和处理的场景,如网络通信和协议实现。Protobuf:适用于需要高效数据交换和跨语言数据通信的场景,如分布式系统和微服务架构。根据具体应用场景选择合适的序列化协议,可以在性能和可维护性之间找到最佳平衡。

2024-07-05 16:00:45 330

原创 类图的六种关系实现:泛化、依赖、组合、聚合、关联

C++中通常是通过类实现接口(通常使用纯虚函数)的方式来实现的。

2024-07-05 15:07:45 920

原创 视频流协议对比

每种视频流协议都有其独特的优势和适用场景。RTMP 和 WebRTC 适合实时性要求高的应用,HTTP-FLV 和 WS-FLV 适合低延时直播和互动,HLS 在兼容性和大规模直播方面表现出色,而 RTSP 提供了更多的灵活性和控制功能。MJPEG-Streamer 在一些低复杂度的应用中依然有其价值。根据具体需求选择合适的协议,可以确保最佳的用户体验和技术实现。

2024-07-05 10:23:19 291

原创 C++中的进程、线程与协程

进程、线程和协程是实现并发编程的三种主要方式,各自有其独特的优势和适用场景。进程提供了高隔离性和安全性,但开销较大;线程提供了高效的并发执行,但需要处理同步问题;协程则是非常轻量级的并发单元,适用于需要大量并发的场景。在实际开发中,选择合适的并发编程模型可以显著提高程序的性能和可靠性。

2024-07-03 14:44:26 680

原创 I/O多路复用

IO多路复用是一种允许一个线程在单一的系统调用中同时监视多个文件描述符(文件、套接字等)的技术。当这些文件描述符中的任何一个就绪(例如可读或可写)时,系统调用会返回,就绪的文件描述符可以被处理。这样可以避免为每个文件描述符创建一个线程或进程,从而减少系统资源的消耗和上下文切换的开销。

2024-07-03 10:28:28 420

原创 C++智能指针

智能指针是一种类模板,它不仅封装了原始指针,还负责其生命周期的管理。- 独占所有权的智能指针。- 共享所有权的智能指针。- 弱引用的智能指针,用于解决循环引用问题。- 已被弃用,不推荐使用。智能指针在 C++ 中提供了一种高效且安全的内存管理机制。通过和,程序员可以避免许多手动管理内存带来的陷阱。这些工具使得 C++ 编程更加健壮和易于维护。

2024-07-02 16:51:35 335

原创 读写锁的应用

读写锁是一种同步机制,允许多个线程同时读取共享资源,但在写入时需要独占访问。读锁(Read Lock):允许多个线程同时读取共享资源。写锁(Write Lock):允许一个线程独占访问共享资源,禁止其他线程读或写。

2024-07-02 14:08:59 275

原创 条件变量的应用

条件变量是一种线程同步机制,允许线程在等待特定条件成立时进入休眠状态,而不消耗CPU资源。当其他线程改变了共享资源的状态并使条件成立时,可以通知等待的线程重新开始运行。

2024-07-02 12:31:37 284

原创 互斥锁的应用

互斥锁是一种用于线程同步的机制,通过锁定和解锁的操作来控制对共享资源的访问。线程在访问共享资源前必须先获得互斥锁,如果锁已经被其他线程持有,那么当前线程将被阻塞,直到锁被释放。

2024-07-02 12:18:28 249

原创 使用OpenCV和pyzbar库识别二维码

对于检测到的每个二维码,我们提取其边界框位置,并在帧中绘制一个绿色矩形框。在本教程中,我们将学习如何使用Python中的OpenCV库打开摄像头,并使用pyzbar库识别二维码。我们需要安装两个主要的库:OpenCV和pyzbar。OpenCV用于处理图像和视频,pyzbar用于解码二维码。表示我们使用的是默认摄像头。如果你有多个摄像头,可以相应地更改这个参数。以下是用于打开摄像头并识别二维码的完整代码。将以上代码保存到一个Python文件中,例如。是一个布尔值,表示读取是否成功,打开摄像头,其中参数。

2024-06-27 11:52:21 151

原创 摄像头调试

2712x1536 =最大分辨率。10000/300000 =帧率。m00:m模块 插到00位置。001a:i2c 的从机地址。SRGGB = baw格式。imx464:摄像头型号。1 link 一个连线。1 pad 一个端口。10 = 位宽为10。

2024-06-13 10:50:33 160

原创 buildroot构建和编译自己的软件包

修改 ./buildroot/package/rockchip/Config.in,添加。在buildroot目录下,使用。或者刷rootfs也可以。勾选mydemo软件包。

2024-04-12 17:00:15 696

原创 win10 使用 SFTP协议 映射 Ubuntu linux的目录

win10 使用 SFTP协议 映射 Ubuntu linux的目录。

2024-03-18 10:05:54 674 1

原创 网络MTU分析

TCP 报文中(传输通过GRE 隧道),MTU 1500 = IP 首部(20byte) + GRE 头部(24byte) + TCP 首部(20byte) + 负载(1436byte最大)使用IPsec、GRE、OSPF、IS-IS、L2VPN、VPLS等隧道协议需要注意,会给报文添加隧道标头,导致包长大于MTU,会导致数据包分片,回导致丢包或者传输速度变慢。网络类型MTU最大值 ≥ 路由器的MTU+隧道头标长度(不使用隧道,则加0) ≥ 电脑的MTU。电脑的MTU设置为1200。

2024-03-13 10:54:20 1144

原创 ubuntu/linux使用nc命令测速

这里我们可以看到我的网速是117M/s,也就是1000Mdps。3.使用dstst查看net的recv的速度。2.打开客户端,并向服务端发送无限0。1.打开TCP服务端。

2024-03-12 10:55:16 276

原创 linux 使用dd命令备份/还原ubuntu系统

这里不过多介绍,文章很多,直接搜。

2024-02-20 14:55:22 509

空空如也

空空如也

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

TA关注的人

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