- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 C 语言学习(3)---- C语言中的位运算和宏定义
使用 ##__VA_ARGS__ 表示是传入的可变参数,跟前面的 字符串类型的 fmt 配合,将可变参数传递到另一个支持可变参数的函数上。
2023-07-10 19:26:51
911
1
原创 开源项目学习(1) ---- FreeImage 使用指南
FreeImage 支持几乎所有图片格式的解析,解码,转码,图像处理,支持的图片格式包括 PNG,JPG,BMP,TGA,TIFF ...;FreeImage 支持 VisualStudio,Linux,Cygwin,MacoS 等平台,在 windows下开发可以直接下载编译好的 动态链接库文件,在VisualStudio 中设置对应的头文件和库文件的路径。可以获取图像首地址和每一行的内存地址,为编辑每一个像素的内容提供了可能,结合自己的绘制代码,间接实现绘制图像的功能。3.6 图像处理相关API。
2023-07-06 09:45:34
3731
1
原创 C++ 多线程学习(3) ---- 条件变量
比如上面的代码中如果不加锁保护,在判断 mDisplayQueue.empty() 的条件成立后,此时线程被挂起,调度了另一个线程,另外的线程用于唤醒这个 condition_variable,此时当前线程因为还没有处于 wait 状态上(没有处于调度器的等待队列上),所以会丢失掉这个唤醒操作,如果这个唤醒操作只有一次,那么当前线程很可能永远处于阻塞等待的状态上。要解决该问题,就必须让生产者在缓冲区满时休眠,等到下次消费者消耗缓冲区中的数据的时候,生产者才能被唤醒,开始往缓冲区添加数据。
2023-06-30 11:58:48
8371
原创 C++ 多线程学习(2) ---- 竞争条件和互斥锁
在多线程编程中,多个线程可能同时访问和修改同一个变量,如果没有正确的同步机制,可能会导致数据竞争和不一致性等问题,原子变量提供了一种简单有效的方式来解决这个问题。2.unique_lock 可以进行临时上锁再加锁,如在构造对象之后使用 lck.unlock 就可以实现解锁,lck.lock 进行上锁,而不必等到析构的时候自动解锁,lock_guard 是不支持手动释放的。需要更加细粒度的控制,互斥锁可以提供更加细粒度的控制,允许锁定特定资源或者操作,原子变量一般用于单个变量的原子操作;
2023-06-28 19:49:12
340
1
原创 图形图像处理算法(3) ---- 多项式插值法
一个多项式有几次取决于最高次幂的幂指数,有几元取决于未知数的个数,如果某一项不含未知数,称为常数项,多项式在数学的很多分支乃至自然科学中以及工程学中都有很重要的应用。全为0时,牛顿插值多项式就退化为前面的定义的 n 阶多项,对于一个含有 n 个已知点的插值情景,就需要构建 n 次的的多项式,多项式的项数是 n + 1个。有很多问题都可以按照函数的方式进行描述,然而这个函数通常是未知的,我们只能通过少量的已知的点来推断函数的大致模型,为了实现这个目的,在已知点之间做插值处理。多项式是整式的一种。
2023-06-28 17:49:59
961
1
原创 数学基础回顾(2) ---- 代数学基础
无理数,也称无限不循环小数,不能写作两整数之比,若将它写成小数形式,小数点之后的数字有无限多个,并且不会循环。
2023-06-25 20:06:56
74
原创 图形图像处理算法(2) ---- ToneMapping 技术
视频捕捉设备生成的图形一般是正比于光场景的光辐射强度的,即响应符合线性关系,尤其是当前主流的 CMOS Image sensor(CIS),线性度好到可以直接对入射的光子数量进行计数, CIS的线性特点可以使人们很方便对视频捕捉设备捕捉的图像(主要是亮度域)进行处理,从而模拟人类的视觉行为,是设备输出的图像看起来更加自然,这个过程就叫做。,因此相同的输入像素值会被确定的映射到一个相同的输出像素值。上面的公式用来映射亮度域,a 就是前面讲的 key 值,用来控制场景的亮度倾向,一般来说,会有几个特定值,
2023-06-23 20:05:59
5893
1
原创 图形图像处理算法(1) ---- HDR 技术简介
随着HDR技术的发展,越来越多的视频平台和技术厂商持续推动 HDR 内容的制作和传播,HDR可以提供,为了呈现更高的图像品质,给体验者带来更加沉浸的感受,1. 动态范围的概念一般来说,动态范围是指,比如,我们观测场景中不同物体的亮度,它的最大值和最小值的比值就是这个场景亮度的动态范围,或者简单称这个场景的。类似的,人的各种感观(视觉,听觉和痛觉)也有可以分辨的最大值和最小值,因此也有相应的动态范围。自然场景中的动态范围比较大,通常可以达到量级,人眼的动态范围很广,一般至少在。
2023-06-23 19:13:29
4222
1
原创 C++ 多线程学习(1) ---- 线程的创建
计算机术语中的并发,指的是单个系统里同时执行多个独立的活动,而不是顺序一个个执行,对于单核CPU来说,某个时刻只可能处理一个任务,但是它却不是顺序执行的一个个任务,而是对CPU进行分时复用,一直在任务之间切换,每个任务完成一部分就去执行下一个任务,看起来任务在并行发生,虽然不是严格意义上执行多个任务,但是我们仍然称之为。注意传递的参数的生命周期,传递的参数 temp,会在主函数执行完毕之后被回收,假设上面的线程使用的是线程分离的模式运行,打印出的 temp 将是错误的结果。
2023-06-14 15:53:13
1342
原创 人工智能基础知识 ---- 人工智能基本概念
是通过于环境交互来学习解决问题策略的一种算法,强化学习并没有明确正确的的动作监督信号,算法需要和环境进行交互,来获取环境反馈的滞后的奖励信号,因此不能通过计算动作和正确动作之间的误差来优化网络,常见的强化学习网络有。对应只有样本x的数据集,算法需要自行发现数据的模态,这种方式称为无监督学习、无监督学习有一类算法是将自身作为监督信号,训练时,通过计算模型的预测值和自身的关系。,神经网络的研究随着支持向量机(SVM)为代表的传统机器学习算法的兴起走向低谷,称为人工智能的第二次寒冬。
2023-06-07 15:50:39
637
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅