自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 收藏
  • 关注

转载 Linux进程间通信——使用匿名管道

本文介绍另一种进程间通信的方式——匿名管道,通过它进程间可以交换更多有用的数据。一、什么是管道如果你使用过Linux的命令,那么对于管道这个名词你一定不会感觉到陌生,因为我们通常通过符号“|"来使用管道,但是管理的真正定义是什么呢?管道是一个进程连接数据流到另一个进程的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入。举个例子,在sh

2017-12-06 16:48:54 429

转载 Linux进程间通信——使用信号

from:http://blog.csdn.net/ljianhui/article/details/10128731一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。

2017-12-01 09:36:46 469

转载 Linux进程间通信——使用信号量

这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行

2017-11-29 17:00:28 488

转载 Linux进程间通信——使用共享内存

一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc

2017-11-28 17:07:15 479

转载 wayland进程间调用

一、基本工作流程以Weston自带的例程simple-shm为例,先感受一下Client如何通过Wayland协议和Compositor通信。1. 连接Server,绑定服务1)   display->display = wl_display_connect()// 通过socket建立与Server端的连接,得到wl_display。它即代表了Server端的display资源,同时

2017-11-15 10:36:32 4584

原创 hash算法总结

一Hash简介概念:把任意长度的输入,通过hash算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出。哈希表:若结构中存在和关键字K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为哈

2017-11-08 10:12:49 383

转载 Wayland(2):Wayland应运而生

话说在上篇(揭开Wayland的面纱(一):X Window的前生今世)中我介绍了一些X Window的历史及发展,还没有提到Wayland本身,不少人已经等不及了。不过,介绍这些是有必要的,毕竟要知道X Window的一些知识,才能明白为什么会有Wayland这个东西。在本篇正式开始介绍Wayland之前,让我们先回到2008年11月4日,也就是整整两年前,我当时在中文领域第一时间报

2017-11-07 16:10:46 759

转载 Wayland(1):X Window的前生今世

简介Wayland是什么呢?它是X Window?还是要取代X Window?它的优势在哪里?Linux桌面/移动会因此有什么变化?在本篇中,我将回顾历史,展望未来,通过简易的文字,来先回顾一下X Window,从而继续解答Wayland。古老的X Window和现代的桌面技术X Window在1984年由MIT研发,它的设计哲学之一是:提供机制,而非策略。举个最简单的例子

2017-11-07 15:52:13 486

转载 xserver相关知识汇总

本文主要是从以下几个方面介绍xorg-xserver 相关的知识 1.linux系统图形界面框架2.xserver 和x client启动过程3.图形2d,3d加速原理简介4.xserver主分支代码解析。5.xserver,xclient协议简介6.一个基于Xlib的简单例子解析7.radeon驱动初始化代码解析.1.lin

2017-11-07 11:13:55 4069

翻译 用docker创建ubuntu VNC桌面

docker-ubuntu-vnc-desktop1.image 地址https://github.com/fcwu/docker-ubuntu-vnc-desktop该image提供了Ubuntu 16.04 LXD的桌面并可以接受VNC的连接2.运行docker image并映射端口docker run -it --rm -p 6080:80 dorowu/ubun

2017-11-07 10:53:37 7449 2

原创 搭建nvidia-docker运行环境-Ubutu16.04

docker一般服务于基于cpu的应用,而如果是gpu的话,就要用到nvidia-docker,nvidia-docker是在docker上做了一层封装,通过nvidia-docker-plugin封装之后调用docker。 nvidia-docker的运行需要基于特定的硬件环境,首先需要安装nvidia driver,而docker容器并不直接支持nvidia gpu。为了解决这个问题,最早的处理办法是在容器内部,全部重新安装nvidia driver,然后通过设置相应的设备参数来启动container

2017-11-07 09:41:34 13415

转载 分治法-二分搜索

二分搜索技术给定已按升序排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定元素x。解析:(1)该问题的规模缩小到一定的程度就可以容易地解决;(2)该问题可以分解为若干个规模较小的相同问题;(3)分解出的子问题的解可以合并为原问题的解;(4)分解出的各个子问题是相互独立的。

2017-11-06 16:11:35 3178

转载 递归思想

递归(recursion)是一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法。递归算法设计,就是把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题,在逐步求解小问题后,再返回(回溯)得到大问题的解。递归算法设计的关键在于找出递归关系(方程)和递归终止(边界)条件。递归关系就是使问题向边界条件转化的规则。递归关系必须能使问题越来越简单,规模越来越小。递归边界条件就是所描述问题最简单的、可解的情况,它本身不再使用递归的定义

2017-11-06 16:09:17 1024

原创 特征点检测:FAST and SIFT

特征点检测和匹配是计算机视觉中一个很有用的技术。在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用。这一次先介绍特征点检测的一种方法——FAST(features from accelerated segment test)。很多传统的算法都很耗时,而且特征点检测算法只是很多复杂图像处理里中的第一步,得不偿失。FAST特征点检测是公认的比较快速的特征点检测方法,只利用周围像素比较的信息就可以得到特征点,简单,有效。FAST特征检测算法来源于corner的定义,这个定义基于特征点周围的图像灰度值,检测

2017-11-03 17:11:47 1715

原创 视觉SLAM14讲学习笔记

SLAM特指:搭载传感器的主体,在没有环境先验的信息情况下,在运动过程中建立环境模型,通过估计自己的运动。 SLAM的目的是解决两个问题:1、定位 2、地图构建 也就是说,要一边估计出传感器自身的位置,一边要建立周围环境的模型 最终的目标:实时地,在没有先验知识的情况下进行定位和地图重建

2017-11-02 14:11:12 3122

原创 Ubutu搭建ORB_SLAM运行环境

Ubutu搭建ORB_SLAM运行环境1.安装Pangolin2.安装OpenCV3.安装Eigen(矩阵及线性代数处理工具)4.安装BLAS和LAPACK库(求解线性方程组、线性最小二乘问题)

2017-11-01 14:48:28 334

转载 OpenGL与OpenCV实现增强现实小程序

该程序通过OpenCV实现对Marker的识别和定位,然后通过OpenGL将虚拟物体叠加到摄像头图像下,实现增强现实

2017-10-30 14:59:15 1245

原创 SLAM相关概念及ORB算法步骤总结

ORB-SLAM的优点和缺点ORB算法步骤单目SLAMORB VS PTAM

2017-10-30 10:03:17 3068

转载 《视觉SLAM十四讲》内容摘要

SLAM特指:特指搭载传感器的主体,在没有环境先验的信息情况下,在运动过程中建立环境模型,通过估计自己的运动。 SLAM的目的是解决两个问题:1、定位 2、地图构建 也就是说,要一边估计出传感器自身的位置,一边要建立周围环境的模型 最终的目标:实时地,在没有先验知识的情况下进行定位和地图重建。 当相机作为传感器的时候,我们要做的就是根据一张张连续运动的图像,从中估计出相机的运动以及周围环境中的情况

2017-10-30 10:00:09 2867

原创 算法学习(3):动态规划DP

动态规划过程: 每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划

2017-10-28 14:34:26 396

转载 算法学习(2):BFS/DFS-广度优先/深度优先

DFS思想:一直往深处走,直到找到目标或者走不下去为止。通常用递归来实现使用栈保存未被遍历的结点,结点按照深度优先的次序被访问并被压入栈中,并以相反的次序出栈应用:走迷宫,查找环路,查找联通区域BFS思想:先遍历所有的兄弟节点再遍历子节点,按层遍历。通常用队列来实现使用队列保存未被检测的结点。结点按照广度优先的次序被访问和进出队列应用:找最短的路径,或者到一

2017-10-27 16:44:24 311

转载 算法学习(1):最短路径—Dijkstra算法和Floyd算法

一.Floyd算法1.定义概览Floyd-Warshall算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。算法的时间复杂度为O(N3),空间复杂度为O(N2)。 2.算法描述1)算法思想原理:     Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径

2017-10-27 15:34:28 715

转载 OpenGL学习: 反走样初步(Anti-aliasing basic)

绘制的物体边缘部分出现锯齿的现象称之为走样(aliasing)。反走样(Anti-aliasing)是减轻这种现象的方法。反走样本身也是一个比较复杂的主题,深入了解需要有信号处理中的背景知识,例如信号采样、信号重构、滤波等知识,本节作为一个初步探讨,我们不深入反走样算法的细节。主要以OpenGL中实现的MSAA(Multi-Sampled Anti-Aliasing)为重点,介绍在OpenGL中反走样的处理

2017-10-27 14:51:54 857

转载 C++ auto_ptr智能指针的用法

C++中指针申请和释放内存通常采用的方式是new和delete。然而标准C++中还有一个强大的模版类就是auto_ptr,它可以在你不用的时候自动帮你释放内存。下面简单说一下用法用法一: std::auto_ptrm_example(new MyClass()); 用法二: std::auto_ptrm_example; m_example.reset(new M

2017-10-27 14:31:45 190

转载 浅拷贝和深拷贝的区别

拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的参数(对象的引用)是不可变的(const类型)。此函数经常用在函数调用时用户定义类型的值传递及返回。拷贝构造函数要调用基类的拷贝构造函数和成员函数。如果在类中没有显式地声明一个拷贝构造函数,那么,编译器将会自动生成一个默认的拷贝构造函数,该构造函数完成对象之间的浅拷贝。那么什么是深拷贝呢?如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是

2017-10-27 13:58:11 227

转载 OpenGL学习:几何着色器(geometry shader)

除了顶点着色器(vertex shader)和片元着色器(fragment shader),实际上OpenGL还提供了一个可选的几何着色器(geometry shader)。几何着色器位于顶点和片元着色器之间,如果没有使用时,则顶点着色器输出到片元着色器,在使用几何着色器后,顶点着色器输出组成一个基础图元的顶点信息到几何着色器,经过几何着色器处理后,再输出到片元着色器。几何着色器能够产生0个以上的

2017-10-26 15:50:32 1040

转载 OpenGL学习: uniform blocks(UBO)在着色器中的使用

目前,我们在着色器中要传递多个uniform变量时,总是使用多个uniform,然后在主程序中设置这些变量的值;同时如果要在多个shader之间共享变量,例如投影矩阵projection和视变换矩阵view的话,仍然需要为不同shader分别设置这些uniform变量。本节将为大家介绍interface block,以及基于此的uniform buffer object(UBO),这些技术将简化着

2017-10-25 17:03:56 3654

转载 OpenGL学习脚印:缓冲对象相关函数的使用(buffer object function)

OpenGL中还包含除了我们前面介绍的VAO,VBO,EBO等其他类型的缓冲对象。本文将通过简洁、可靠的例子说明一些重要方法的使用,以辅助学习这些方法。本文的目的不是写成详细而厚重的手册,对于文中未详细说明的部分,请参考官方文档。 学习这些内容的过程需要随着实践慢慢积累,因此本文也将随着实践进行,不断更新。本节示例代码均可以在我的github下载。buffer object的概念

2017-10-24 14:03:01 317

转载 OpenGL学习: 环境纹理映射(environment mapping)

上一节初步学习了使用cubeMap创建天空包围盒,本节继续深入Cubemap这个主题,学习环境纹理贴图。本节示例程序均可以从我的github下载。本节内容整理自: 1.www.learnopengl.com cubemaps环境纹理贴图同上一节的Cubemap创建天空包围盒有些类似,创建环境纹理贴图也是对当前待渲染物体,从包围的环境纹理上采样作为这个物体的纹

2017-10-23 16:34:24 1206

转载 OpenGL学习:立方体纹理和天空包围盒(Cubemaps And Skybox)

写在前面 之前学习了2D纹理映射,实际上还有其他类型的纹理有待我们进一步学习,本节将要学习的立方体纹理(cubemaps),是一种将多个纹理图片复合到一个立方体表面的技术。在游戏中应用得较多的天空包围盒可以使用cubemap实现。本节示例程序均可以在我的github下载。本节内容整理自: 1.Tutorial 25:SkyBox 2.www.learnopengl.co

2017-10-20 14:15:15 1699

转载 便签.txt

1.xorg截图:xwd -display :0.0 -out root.xwd -root   转换:convert 1.xwd 1.jpg  2./etc/fstab:当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录3.ulimit -s unlimited 调节堆栈大小  ulimit -C unlimited

2017-10-20 11:41:15 438

转载 git使用

1.查看某个文件的修改记录:git blame或者 git loggit log --pretty=oneline packaging/opengl-es-mali-midgard.spec  git show 2998bf4ac8ff13e6e6ecc61336626e126cae75aa2.git  remote -v3.git stash,git stash apply,gi

2017-10-19 17:06:13 333

转载 OpenGL学习: 帧缓冲对象(Frame Buffer Object)

写在前面 一直以来,我们在使用OpenGL渲染时,最终的目的地是默认的帧缓冲区,实际上OpenGL也允许我们创建自定义的帧缓冲区。使用自定义的帧缓冲区,可以实现镜面,离屏渲染,以及很酷的后处理效果。本节将学习帧缓存的使用.。本节内容整理自 1.OpenGL Frame Buffer Object (FBO) 2.www.learnopengl.com Framebu

2017-10-19 10:59:59 996

转载 C语言中的volatile

volatilevolatile是一个类型修饰符(type specifier),就像大家更熟悉的const一样,它是被设计用来修饰被不同线程访问和修改的变量。volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。作用简单地说就是防止编译器对代码进

2017-10-14 10:01:42 227

转载 OpenGL学习:Per-fragment operation(3)-混合(blending)

混色的概念所谓混色,就是将当前要绘制的物体的颜色和颜色缓冲区中已经绘制了的物体的颜色进行混合,最终决定了当前物体的

2017-09-29 08:57:43 550

转载 OpenGL学习:Per-fragment operation(2)-深度测试(depth test)

通过本节可以了解到为什么需要深度缓冲区?OpenGL中怎么使用深度缓冲区 ?可视化深度值深度值的精度问题-ZFighting问题背景在绘制3D场景的时候,我们需要决定哪些部分对观察者是可见的,或者说哪些部分对观察者不可见,对于不可见的部分,我们应该及早的丢弃,例如在一个不透明的墙壁后的物体就不应该渲染。这种问题称之为隐藏面消除(Hidden surfac

2017-09-27 15:49:43 585

转载 OpenGL学习:Per-fragment operation(1)-模板测试(stencil test)

片元后处理(Per-fragment operation)per-fragment系列操作包括模板测试,深度测试,混合测试等一系列对每个片元进行的处理,这一系列处理过程如下:    *Pixel ownership test:该测试决定像素在 framebuffer 中的位置是不是为当前 OpenGL ES 所有。也就是说测试某个像素是否对用户可见或者被重叠窗口

2017-09-27 11:36:34 1037

转载 OpenGL学习:模型加载-obj模型和AssImp模型

前面介绍了光照基础内容,以及材质和lighting maps,和光源类型,我们对使用光照增强场景真实感有了一定了解。但是到目前为止,我们通过在程序中指定的立方体数据,绘制立方体,看起来还是很乏味。本节开始介绍模型加载,通过加载丰富的模型,能够丰富我们的场景,变得好玩。本节的示例代码均可以在我的github下载。加载模型可以使用比较好的库,例如obj模型加载的库,Assimp加载库。本节

2017-09-26 16:16:42 10271 1

转载 OpenGL学习: 光照系列3-光源类型和使用多个光源

写在前面 上一节光照中使用材质和lighting maps介绍了使用材质属性和lighting maps使物体的光照效果能反映物体的材料特性,看起来更逼真。在前面的章节中使用的实际上都是一个点光源,本节将学习其他几种光源类型,以及在场景中使用多个光源通过本节可以了解到方向光源点光源聚光灯光源使用多个光源光源类型在前面章节中,我们通过位置和成分分量

2017-09-26 13:39:33 1589

转载 OpenGL学习: 光照系列2-材质和lighting maps使用

上一节光照基础学习实现了Phong reflection model,但是还存在不足,本节使用材质属性,以及使用diffuse map和specular map改善上一节的实现。本节内容整理自: 1.www.learnopengl.com Materials 2.www.learnopengl.com Lighting maps通过本节可以了解到

2017-09-25 14:22:40 425

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除