- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 设计模式系列(12)创建者模式
概念: Builder模式也叫建造者模式或生成器模式,是由GoF提出的32种设计模式中的一种。Builder模式是对象创建模型之一,用来隐藏符合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态创建具有复合属性的对象。 Buidler模式是为对象的创建而设计的模式,创建的是一个复合对象,被创建的对象为一个具有复合属性的复合对象。创建者模式关注对象创建的各部分
2017-06-27 09:58:03 292
转载 STM32的AD用DMA方式时的请注意初始化顺序
今天无意之间看到了这篇帖子,是斑竹好久前发的~~~我突然意识到我的数据好像一直没有错位,看到这个我又试验了一下,发现把DMA_Cmd(DMA1_Channel1, ENABLE);放置到哪儿都是一样的啊~~~这个是原帖部分:STM32的AD用DMA方式时的请注意初始化顺序珍情岁月(84848098) 17:19:23 DMA_DeInit(DMA1_Channel1)
2017-06-23 16:26:33 3472
原创 pid控制算法系列(2)pid控制算法
1.PID控制算法的基本思想 PID算法是一种具有预见性的控制算法,其核心思想是: 1>. PID算法不但考虑控制对象的当前状态值(现在状态),而且还考虑控制对象过去一段时间的状态值(历史状态)和最近一段时间的状态值变化(预期),由这3方面共同决定当前的输出控制信号; 2>.PID控制算法的运算结果是一个数,利用这个数来控制被控对象在多种工作状态(比如加热器的多种功率,阀门的多种开度等
2017-06-16 09:13:38 10544
转载 视觉slam学习资料
一直想写博客,一来是实验室太忙,二来是自己初入视觉slam,怕误人子弟。所以一直没写,但是实验室的同学说我可以介绍一些基础给那些刚入门的人参考。那么从今天开始我就开始陆陆续续的把我所了解的visual slam写给大家。希望一些大牛能指正!这篇博客就把我自己整理的资料贴出来,供大家参考。(1) orb_slam 官网(网站最后有5篇论文,价值很高)http://webdiis.
2017-06-14 14:16:23 550
原创 设计模式系列(11)抽象工厂模式
1.概念 抽象工厂模式是所有形态的工厂模式中最为抽象最为一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品具体类型的情况下,能够创建多个产品族的产品对象。备注:工厂模式要么生产香蕉、要么生产苹果、要么生产西红柿;但是不能生产一个产品组。抽象工厂能够生产一个产品组。解释:具体工厂在开闭原则下,能生产香蕉或者苹果或者梨子(产品等级结构)抽象工厂在开闭
2017-06-13 15:12:00 297
转载 opencv3 UMat、OpenCL
UMat对象起源OpenCV3中引入了一个新的图像容器对象UMat,它跟Mat有着多数相似的功能和相同的API函数,但是代表的意义却太不一样。要说到UMat对象的来龙去脉,必须首先从OpenCL来开始说,OpenCL是一个面向异构系统通用的并行编程标准,这个标准最早是苹果公司提出,后来变成了一个国际标准,目的是通过它开发通用的GPU计算软件,中国的华为是该标准的成员之一。说的直白点就是如果
2017-06-13 08:49:14 4367 5
原创 基于opencv计算星云图像的面积与周长
需求:以上图像是太空望远镜的星云图像,要求通过opencv计算出星云的面积与周长。解决思路:通过二值分割+图像形态学+轮廓提取。代码如下#include #include #include using namespace cv;using namespace std;int main(){ Mat src_image = imread("1.jpg");
2017-06-12 19:35:07 5664 1
转载 caffe 编译中出现的错误——fatal error: hdf5.h: 没有那个文件或目录
“fatal error: hdf5.h: 没有那个文件或目录”解决方法参考自http://blog.csdn.net/hongye000000/article/details/51043913Step 1在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码
2017-06-12 09:29:37 849
原创 odroid-xu4(ubuntu mate 16.04)源码编译opencv 3.2
sudo apt-get updateapt-get install libqt4-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev l
2017-06-10 11:24:20 2020
原创 设计模式系列(10)工厂模式
1.概念 工厂方法模式同样属于类的创建型模式,又被称为多态工厂模式。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。 核心工厂类不再负责产品的创建,这样核心类称为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象话的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。2.类图角色职责1)抽象工厂(C
2017-06-08 14:42:47 301
原创 设计模式系列(9)简单工厂模式
1.什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。2.模式中包含的角色及其职责1) 工厂(Creator)角色简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外外界直接调用,创建所需要的产品对象。1) 抽象(Product)角色简
2017-06-08 11:11:18 355
原创 linux线程系列(7)线程的属性
1.线程属性初始化和销毁初始化和销毁函数:#include int pthread_attr_init(pthread_attr_t *attr)int pthread_attr_destroy(pthread_attr_t *attr)返回:成功返回0,否则返回错误编号线程属性结构体:typedef struct{ int
2017-06-03 08:52:02 369
原创 linux线程系列(6)线程与进程的比较
进程 线程创建 fork pthread_create()终止 return/exit()/_exit() return/pthread_exit()/pthread_cancel()等待
2017-06-02 20:16:32 247
原创 linux线程系列(5)线程清理和控制函数
线程清理函数有两个push和pop函数:#include void pthread_cleanup_push(void (*rtn)(void *), void* arg);void pthread_cleanup_pop(int execute);返回: 成功返回0,否则返回错误编号参数rtn:清理函数指针arg:调用清理函数传递的参数execute:值1时执行线程清理函数
2017-06-02 20:01:39 620 1
原创 一个简单的CMake工程示例
在工程目录下,构建目录src,include,lib,bin。在src目录下存放源代码文件,include目录下存放头文件,lib目录用于存放生成的库(动态库或者静态库),bin目录存放最终生成的可执行文件。src目录存放main.cpp和lib_demo.cpp的源文件:main.cpp#include <iostream>#include "main.h"#inc...
2017-06-02 15:46:07 11905
原创 linux线程系列(4)线程终止
一、主动终止线程的执行函数中调用return语句调用pthread_exit()二、被动终止1、线程可以被同一进程的其他线程取消,其它线程调用pthread_cancel(pthid)。2、线程终止的3种方式#includeint pthread_cancel(pthread_t tid);void pthread_exit(void *retval);i
2017-06-01 11:23:06 1399 1
原创 linux线程系列(3)线程创建
线程创建函数如下:#include int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void*), void *restrict arg);返回: 成功返回0,否则返回错误编号参数tidp:线程标识符指针attr:线程
2017-06-01 08:45:24 442
原创 linux线程系列(2)linux线程分类
线程按照其调度者可分为用户级线程和内核级线程两种a)用户级线程:主要解决的是上下文切换的问题,其调度过程由用户决定;b)内核级线程:由内核调度机制实现。 现在大多数操作系统都采用用户级线程和内核级线程并存的方法。用户级线程要绑定内核级线程运行,一个进程中的内核级线程会分配到固定的时间片,用户级线程分配的时间片以内核级线程为准。默认情况下用户级线程和内核级线程是一对一,也可
2017-06-01 08:31:24 868
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人