技术交流

技术交流
技术交流
  • 环形光选型
    环形光均匀照射面积 X为环形光发光面尺寸 A'B'为环形光外径 H为环形光LWD(光源工作距离) FOV为视野范围 WD为工作距离 WD/(FOV/2)=H/X X=H*FOV/(2*WD) A'B'=2X+FOV=(H*FOV)/WD+FOV=(H/WD + 1)*FOV ①当H=WD时,要得到均匀光照,需要光源外径A'B'为2倍视野大小 ②当H=WD/2时,要得到均匀光照,需要光源外径A'B'为1.5FOV ③当H...
    2021-01-08 10:32:35
  • 图像处理基础(3):均值滤波器及其变种
    均值滤波器可以归为低通滤波器,是一种线性滤波器,其输出为邻域模板内的像素的简单平均值,主要用于图像的模糊和降噪。 均值滤波器的概念非常的直观,使用滤波器窗口内的像素的平均灰度值代替图像中的像素值,这样的结果就是降低图像中的“尖锐”变化。这就造成,均值滤波器可以降低噪声的同时,也会模糊图像的边缘。均值滤波器的处理结果是过滤掉图像中的“不相关”细节,其中“不相关”细节指的是:与滤波器模板尺寸相比较小的像素区域。 根据均值计算方法的不同,均值滤波器有以下几种: •算术均...
    2021-01-07 14:07:34
  • C++11多线程编程(九)——总结篇
    这篇是多线程编程系列的总结篇,复盘一下前面讲到的多线程的各个知识点。要想成为一个优秀程序员,多线程编程是永远也绕不开的话题,必须要掌握,不同的语言实现多线程的方式都各不相同,但原理都是相通的。 为何需要多线程,因为要充分利用CPU的性能,特别是多核CPU,提升效率,提高用户体验。 早期的C++在语言级别上并不支持多线程,要实现多项只能依靠不同系统多线程函数,这给C++多线程编程带来了一定的麻烦。但在C++11开始,C++正式的支持了多线程编程。 那么...
    2021-01-07 14:02:12
  • C++11多线程编程(八)——死锁问题
    一、死锁现象 看到“死锁”二字,你是不是慌得不知所措。死锁,顾名思义就是这个锁死掉了,再也动不了了。那死锁是怎么产生的呢?当你对某个资源上锁后,却迟迟没有释放或者根本就无法释放,导致别的线程无法获得该资源的访问权限,进而程序无法运行下去,有点像是阻塞的现象。但是阻塞是一种正常现象,而死锁可以说是一种bug,必须要处理。 那么我现在就举个死锁的例子,来分析分析。 # include <iostream> # include ...
    2021-01-07 14:00:41
  • C++11多线程编程(七)——信号量的实现
    一、为何需要信号量 信号量用来干嘛的呢?搜寻答案的话,很多人都会告诉你主要用于线程同步的,意思就是线程通信的。简单来说,比如我运行了2个线程A和B,但是我希望B线程在A线程之前执行,那么我们就可以用信号量来处理。有些人可能会疑惑,那么麻烦干嘛?你不是要B线程先执行吗?那么我让A线程休眠一点时间不就可以了吗?没错,这个思路是可以的,但是如果B线程也因为某些原因(比如硬件,操作系统的原因)导致延缓执行了,这该怎么办?到底A线程该休眠多少时间合适呢?所以正确的做法就是在B...
    2021-01-07 14:00:00
  • C++11多线程编程(六)——线程池的实现
    一、为何需要线程池 那么为什么我们需要线程池技术呢?多线程编程用的好好的,干嘛还要引入线程池这个东西呢?引入一个新的技术肯定不是为了装酷,肯定是为了解决某个问题的,而服务端一般都是效率问题。 我们可以看到多线程提高了CPU的使用率和程序的工作效率,但是如果有大量的线程,就会影响性能,因为要大量的创建与销毁,因为CPU需要在它们之间切换。线程池可以想象成一个池子,它的作用就是让每一个线程结束后,并不会销毁,而是放回到线程池中成为空闲状态,等待下一个对象来使用。 ...
    2021-01-06 16:30:00
1 ··· 82 83 84 ··· 99
在线客服 双翌客服
客服电话
  • 0755-23712116
  • 13822267203