- 博客(17)
- 收藏
- 关注
原创 常用算法题
快速排序是一种分治法(Divide and Conquer)的排序算法,由 C.A.R. Hoare 在 1960 年提出。它的基本思想是通过选择一个“基准”元素(pivot),将待排序的数据分成两部分,一部分比基准小,一部分比基准大,然后递归地对这两部分数据进行排序。二分查找是一种在有序数组中查找某个特定元素的高效算法。它的基本思想是通过将查找区间不断对半分来缩小查找范围,从而加速查找过程。
2025-02-09 15:32:06
88
原创 设计模式之模板方法
模板方法模式是一种行为型设计模式。它定义了一个算法的骨架,并允许子类在不改变算法结构的情况下重新定义算法的某些步骤。换句话说,模板方法模式将固定的部分放到父类中,而允许子类实现可变的部分。
2025-02-08 20:53:59
248
原创 设计模式之工厂模式
工厂模式(Factory Pattern) 是一种创建型设计模式,它提供了一种创建对象的接口,但由子类决定要实例化的类是哪一个。工厂模式将对象的创建过程封装起来,使得客户端不需要知道具体的对象创建细节,只需要通过工厂来获取对象。
2025-02-08 16:16:11
304
原创 设计模式之观察者模式
观察者模式是一种行为设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。实现一个函数通知观察者,调用观察者列表中所有成员的update()函数。维护列表:观察者的增加和移除。具体观察者类继承抽象观察者类。抽象出update()函数。
2025-02-08 15:28:07
271
原创 设计模式之单例模式
多线程问题: 在多线程环境下,懒汉模式可能会在多个线程同时访问 getInstance() 时创建多个实例。即使不使用该单例对象,实例也会在类加载时创建,可能会浪费内存(尤其是当单例对象比较复杂或系统启动时实例不需要立即使用的情况下)。概念:在==类加载(编译阶段)==时就立即创建单例对象,这种方式比较简单,不涉及多线程同步问题。)才创建单例对象,这种方式更节省资源,但需要考虑多线程问题。只有在真正需要使用单例时才会创建实例,避免不必要的内存浪费。当类加载时,实例已经被创建,避免了延迟加载的复杂性。
2025-02-07 20:13:30
184
原创 ffmpeg中关于声音的基础
比如,钢琴的声音和吉他的声音,虽然可以弹一样的音符,但它们的感觉完全不同。码率(Bitrate) 是指每秒钟传输或存储的数据量,通常以 比特每秒(bps) 或 千比特每秒(kbps) 来表示。码率(Bitrate) 是指每秒钟传输或存储的数据量,通常以 比特每秒(bps) 或 千比特每秒(kbps) 来表示。我们听到的声音要么是尖锐的(比如鸟叫),要么是低沉的(比如雷声)。声音的音高其实是由声波的频率决定的:频率越高,声音越尖;不同的乐器发出的声音,即使弹的是同一个音符,钢琴和吉他的声音都不一样。
2025-02-07 15:14:55
219
原创 C内存管理的基本函数
内存碎片指的是虽然总内存足够,但由于多个小内存块分散在堆中,可能导致无法满足大内存分配请求。注意事项:释放内存后,指针变为悬挂指针(指向已释放的内存),必须避免访问它。Worst Fit(最差适应):查找空闲块中最大的一个,这样剩余的空间可能较大,但也可能造成较大的碎片。外部碎片:堆中虽然有足够的总内存,但由于碎片的存在,无法分配一个连续的大内存块。若分配失败,返回 NULL。malloc:分配指定大小的内存块,内存内容未初始化,可能包含垃圾数据。作用:分配一块指定大小的内存区域,返回该内存区域的指针。
2025-02-06 21:31:01
646
原创 源码安装ffmpeg4.3.2
在开始安装之前,我们需要先确保 Ubuntu 系统中有一些 FFmpeg 编译所需的工具和库。这些包中包含了编译 FFmpeg 需要的各种库和工具。
2025-02-06 17:30:35
800
原创 Nvidia Jetson Camera Gets RGB Images with CUDA Optimization
通过 NVIDIA jetson 官方提供的两个sample整合一个通过GMSL2相机获取rgb图像的程序,可以预览,并获得图像的rgb格式(就可以对图像做OpenCV处理或保存了)。最后是实现对采集的图像做实时车道检测
2024-03-20 16:40:45
1013
1
原创 Ubuntu18.04下使用cmake编译一个OpenCV程序(编写CMakeLists.txt文件)
导航1.安装OpenCV1.1首先安装OpenCV。1.2定位OpenCV2.创建一个项目3.编写一个基础OpenCV程序4.编写CMakeLists.txt文件为了记录以及防止遗忘,备份一个大致能满足运行的CMakeLists.txt文件编写。由于是使用嵌入式运行,当运行在树莓派或者Jetson时对资源的使用是比较敏感的,而只用命令行就能解决问题是一件很酷的事。1.安装OpenCV1.1首先安装OpenCV。自己根据需要选择自己所需要的版本。推荐一篇博客:ubuntu安装opencv的正确方法.
2021-09-16 13:51:34
3126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人