- 博客(8)
- 收藏
- 关注
原创 PTAM在Linux下编译运行
一. 环境搭建配置:Ubuntu14.041. 前期准备(1)更新软件源sudo apt-get update(更新软件列表)sudo apt-get upgrade(更新已安装的软件)(2)安装build工具sudo apt-get install build-essential cmake pkg-config(3)安装C++库sudo apt-get in...
2018-10-31 20:59:18 999
原创 Opencv Harris和FAST角点检测算法
Harris算法#include<opencv2/opencv.hpp>#include<time.h>#include<sys/time.h>using namespace cv;using namespace std;int thresh = 53;Mat src, dst, norm_dst, gray_img, abs_dst, o...
2018-10-28 14:17:49 779
原创 Go语言并发模型——通道
原子函数和互斥锁都能工作,但是依靠它们都不会让编写并发程序变得更简单,更不容易出错,或者更有趣。在Go语言里,你不仅可以使用原子函数和互斥锁来保证对共享资源的安全访问以及消除竞争状态,还可以使用通道,通过发送和接收需要共享的资源,在goroutine之间做同步。 当一个资源需要在goroutine之间共享时,通道在goroutine之间架起了一个管道,并提供了确保同步交...
2018-10-18 09:17:49 529
原创 Go语言并发模型——竞争状态
如果两个或者多个goroutine在没有互相同步的情况下,访问某个共享的资源,并试图同时读和写这个资源,就处于相互竞争的状态,这种情况被称作竞争状态。对一个共享资源的读和写操作必须是原子化的,换句话说,同一时刻只能有一个goroutine对共享资源进行读和写操作。下面这一个程序将会出现竞争状态:package mainimport ( "fmt" "run...
2018-10-16 14:17:47 374
原创 Go语言并发模型——goroutine
Go语言里的并发指的是能让某个函数独立于其他函数运行的能力。当一个函数创建为goroutine时,Go会将其视为一个独立的工作单元。这个单元会被调度到可用的逻辑处理器上执行。Go语言运行时的调度器是一个复杂的软件,能管理被创建的所有goroutine并为其分配执行时间。这个调度器在操作系统之上,将操作系统的线程与语言运行时的逻辑处理器绑定,并在逻辑处理器上运行goroutine。调度...
2018-10-15 09:01:54 601
原创 Go语言类型系统——接口与嵌入类型
多态是指代码可以根据类型的具体实现采取不同行为的能力。如果一个类型实现了某个接口,所有使用这个接口的地方,都可以支持这种类型的值。例如标准库里io包里实现的流式处理接口。io包提供了一组构造的非常好的接口和函数,来让代码轻松支持流式数据处理。只要实现两个接口,就能利用整个io包背后的所有强大能力。下面是一个示例程序package mainimport ( "fmt...
2018-10-13 08:50:35 460
原创 Go语言类型系统——基本类型
一、用户定义的类型Go语言里声明用户定义的类型有两种方法。最常用的方法是使用关键字struct,它可以让用户创建一个结构类型。结构里每个字段都会用一个已知类型声明。这个已知类型可以是内置类型,也可以是其他用户定义的类型。1. 结构型类型//user 在程序里定义一个用户类型type user struct { name string email ...
2018-10-11 16:49:31 464
原创 Go语言数组、切片和映射
G语言有3种数据结构可以让用户管理集合数据:数组、切片和映射。一、数组 在Go语言里,数组是一个长度固定的数据类型,用于存储一段具有相同类型的元素的连续块。数组存储的类型可以使内置类型,如整型或者字符串,也可以是某种结构类型。1. 声明和初始化声明数组时需要指定内部存储的数据的类型,以及需要存储的元素的数量,这个数量也称为数组的长度。1)声明一个数组,并设置为0值var...
2018-10-08 22:09:10 364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人