技术交流

技术交流
技术交流
  • C++11多线程编程(五)——生产消费者模型之条件变量
    当某个线程持有这把锁的时候(就是所谓的加锁),那么这个线程是独占所有的资源,这里的资源指的是执行的权限,其他要抢夺资源的线程都不得不等待。在很多情况下,这都容易适用,但是有些情况下,却会产生一些异常情况。 在生产消费者模型当中,肯定都会用到互斥锁的机制的,当生产者往队列中放数据的瞬间,消费者是不能取数据的,那这时候可能会碰见一个问题,如果生成者因为某些原因,放数据过慢,但是消费者取数据很快,当队列中没有数据了,消费者还去取的话,就会发生异常情况。有些人可能会说...
    2021-01-06 16:29:00
  • 图像处理基础(2):自适应中值滤波器(基于OpenCV实现)
    本文主要介绍了自适应的中值滤波器,并基于OpenCV实现了该滤波器,并且将自适应的中值滤波器和常规的中值滤波器对不同概率的椒盐噪声的过滤效果进行了对比。最后,对中值滤波器的优缺点了进行了总结。 空间滤波器 一个空间滤波器包括两个部分: · 一个邻域,滤波器进行操作的像素集合,通常是一个矩形区域 · 对邻域中像素进行的操作 一个滤波器就是在选定的邻域像素上执行预先定义好的操作产生新的像素,并用新的像素替换掉原来像素形成新的图像。 通常,也可以将滤波...
    2021-01-06 15:59:29
  • 同轴光选型
    同轴光有效视野范围 工作距离WD(mm) 300 同轴光光源高度(mm) 59.5 光源工作距离LWD(mm) 50 同轴光发光面尺寸(mm) 50 光源有效视野(mm) 36.63003663 光源型号 发光面尺寸(mm) 光源高度(mm) WLFV-20 20 26.5 WLFV-30 ...
    2021-01-06 14:19:07
  • C++11多线程编程(四)——原子操作
    今天和大家说说C++多线程中的原子操作。首先为什么会有原子操作呢?这纯粹就是C++这门语言的特性所决定的,C++这门语言是为性能而生的,它对性能的追求是没有极限的,它总是想尽一切办法提高性能。互斥锁是可以实现数据的同步,但同时是以牺牲性能为代价的。口说无凭,我们做个实验就知道了。 我们将一个数加一再减一,循环一定的次数,开启20个线程来观察,这个正确的结果应该是等于0的。 首先是不加任何互斥锁同步 # include &l...
    2021-01-05 11:48:12
  • C++11多线程编程(三)——lock_guard技术
    如果熟悉C++多线程的童鞋可能有了解到实现的互斥锁的机制还有这个写法 lock_guard<mutex> guard ( mt ) ; 那么这句话是什么意思呢?为什么又要搞个这样的写法呢? 这个也是构造互斥锁的写法,就是会在lock_guard构造函数里加锁,在析构函数里解锁,之所以搞了这个写法,C++委员会的解释是防止使用mutex加锁解锁的时候,忘记解锁unlock了。 # include <iostream> ...
    2021-01-05 11:36:09
  • 图像处理基础(1):噪声的添加和过滤
    总结学习下图像处理方面基础知识。 这是第一篇,简单的介绍下使用OpenCV的三个基本功能: 图像的读取 图像的显示 访问图像的像素值 然后概述下图像噪声的类型,并为图像添加两种常见的噪声:高斯噪声和椒盐噪声。 最后,使用中值滤波和均值滤波来处理带有噪声的图像。 OpenCV基础 在OpenCV中,完成图像的输入输出以及显示,只需要以下几个函数: namedWindow 创建一个可以通过其名字引用的窗口。第一个参数,设置窗口的name,可以通过n...
    2021-01-05 09:06:20
1 ··· 83 84 85 ··· 99
在线客服 双翌客服
客服电话
  • 0755-23712116
  • 13822267203